summary refs log tree commit diff stats
path: root/results/classifier/zero-shot/118/kernel/1850
blob: 44a0d3b0f996ba28e33a1ad519fcdf671ad81f6e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
register: 0.985
architecture: 0.937
kernel: 0.921
files: 0.852
semantic: 0.719
device: 0.700
graphic: 0.669
assembly: 0.656
performance: 0.573
ppc: 0.540
PID: 0.443
arm: 0.439
network: 0.430
vnc: 0.405
socket: 0.378
permissions: 0.364
debug: 0.314
TCG: 0.308
mistranslation: 0.282
user-level: 0.270
x86: 0.255
risc-v: 0.252
boot: 0.248
VMM: 0.196
virtual: 0.182
hypervisor: 0.164
i386: 0.143
peripherals: 0.134
KVM: 0.129

AARCH64 Illegal Instruction (CurrentEL)
Description of problem:
While emulating Aarch64 in QEMU, whenever the instruction `CurrentEL` is executed,
QEMU crashes with the following message.

`qemu: uncaught target signal 4 (Illegal instruction) - core dumped
Illegal instruction (core dumped)`

I've tried both QEMU user space translation (qemu-aarch64-static) and QEMU emulation (qemu-system-aarch64),
and both fail with the above message.

C Code to reproduce bug, courtesy of https://github.com/cirosantilli/linux-kernel-module-cheat/blob/35684b1b7e0a04a68987056cb15abd97e3d2f0cc/baremetal/arch/aarch64/el.c
```
#include <stdio.h>
#include <inttypes.h>

int main(void) {
        register uint64_t x0 __asm__ ("x0");
	__asm__ ("mrs x0, CurrentEL;" : : : "%x0");
	printf("%" PRIu64 "\n", x0 >> 2);
	return 0;
}
```
Steps to reproduce:
1. Copy C code above into file.
2. Compile code `gcc ./main.c --static`
3. Execute elf bin `./a.out`
Additional information: