blob: a87d1b37a6478ca03e3c9a39bef012c044288a66 (
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
|
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:
|