blob: c6ae041be8f2cf3ca3ba90b57e895e7cf16cddcf (
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
|
Illegal instruction
Hi, Folks
I am running a test using box64. The binary is built on x86. Most of the tests are working well and the performance looks good. But there is one test failed with "Illegal instruction".
Here is the full output:
Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS PageSize:4096 Cores:80
Params database has 14 entries
Box64 with Dynarec v0.2.1 d1f63fe2 built on Jan 30 2023 01:32:10
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 39 Env var
Looking for ./gcc-x64
argv[1]="test.c"
argv[2]="-o"
argv[3]="test.s"
Rename process to "gcc-x64"
Using native(wrapped) libm.so.6
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux-x86-64.so.2
Using native(wrapped) libpthread.so.0
Using native(wrapped) libdl.so.2
Using native(wrapped) libutil.so.1
Using native(wrapped) librt.so.1
449170|SIGILL @0xc1e230 (???(0xc1e230)) (x64pc=0x50113/???:"???", rsp=0xffffbe8beeb8, stack=0xffffbe0c2000:0xffffbe8c2000 own=(nil) fp=0x751e9038), for accessing 0xc1e230 (code=1/prot=87), db=(nil)((nil):(nil)/(nil):(nil)/???:clean, hash:0/0) handler=(nil)
RSP-0x20:0x00000000751e9038 RSP-0x18:0x0000000075224940 RSP-0x10:0x0000000075158ab0 RSP-0x08:0x0000000000000006
RSP+0x00:0x0000000000437237 RSP+0x08:0x0000ffffbe8bef30 RSP+0x10:0x0000000000484c3e RSP+0x18:0x0000ffffbe8bf0c8 opcode=48 85 FF B8 01 00 00 00 (C3 00 00 00 00)
Illegal instruction (core dumped)
If my understanding is correct, the illegal instruction is reported against opcode C3.
But i checked the code, C3 is already implemented in Dynarec:
https://github.com/ptitSeb/box64/blob/dd111f55f6e846be683b248cd8d76cdc1c621f12/src/dynarec/arm64/dynarec_arm64_00.c#L1592
Is there anything wrong here?
|