FEX-Emu / FEX

A fast usermode x86 and x86-64 emulator for Arm64 Linux
https://fex-emu.com
MIT License
2.27k stars 121 forks source link

asm_tests failing on HDK8650 #3690

Closed pmatos closed 4 months ago

pmatos commented 4 months ago

Currently, and since 2e40da3d6b448598f6d86033b33f2a630357520b , the following asm_tests are failing:

The following tests FAILED:
    4977 - jit_1/Test_64Bit_REP/F3_C2.asm (Failed)
    4978 - jit_500/Test_64Bit_REP/F3_C2.asm (Failed)
    4979 - jit_500_m/Test_64Bit_REP/F3_C2.asm (Failed)
    5052 - jit_1/Test_64Bit_REPNE/F2_C2.asm (Failed)
    5053 - jit_500/Test_64Bit_REPNE/F2_C2.asm (Failed)
    5054 - jit_500_m/Test_64Bit_REPNE/F2_C2.asm (Failed)
    5394 - jit_1/Test_64Bit_TwoByte/0F_2A.asm (Failed)
    5395 - jit_500/Test_64Bit_TwoByte/0F_2A.asm (Failed)
    5396 - jit_500_m/Test_64Bit_TwoByte/0F_2A.asm (Failed)

This seems to be related to enabling AFP and RPRES in 2e40da3d6b448598f6d86033b33f2a630357520b.

pmatos commented 4 months ago

Simplified version of F3_C2.asm that shows the failure:

%ifdef CONFIG
{
  "RegData": {
    "XMM0": ["0x51525354FFFFFFFF", "0x5152535440000000"]
  },
  "MemoryRegions": {
    "0x100000000": "4096"
  }
}
%endif

mov rdx, 0xe0000000

mov rax, 0x515253543f800000
mov [rdx + 8 * 0], rax
mov rax, 0x5152535440000000
mov [rdx + 8 * 1], rax

mov rax, 0x515253543f800000
mov [rdx + 8 * 2], rax
mov rax, 0x5152535440800000
mov [rdx + 8 * 3], rax

movapd xmm0, [rdx + 8 * 0]
movapd xmm8, [rdx + 8 * 2]

cmpss xmm0, xmm8, 0x00 ; EQ

hlt

Current results:

Core1: XMM[0][0]: : 0x51525354ffffffff == 0x51525354ffffffff (Expected)
Core1: XMM[0][1]: : 0x5152535440800000 != 0x5152535440000000 (Expected)