box64 icon indicating copy to clipboard operation
box64 copied to clipboard

ARM64 Dynarec 'mov %al,%fs:0xfffffffffffffe44' not implemented

Open tristanmorgan opened this issue 2 years ago • 1 comments

Hi, it seems that 'MOV FS:Eb, Gb' was not implemented in the ARM64 dynarec. There are implementations for RV64 and Box86 (assuming I understand this code correctly).

Here is the output from running Minecraft bedrock server on a Pi4.

0x1071ba8d2: Dynarec stopped because of Opcode 64 88 04 25 91 FE FF FF 0F B6 47 48 A8 01 0F
0x1071ba8d2: Dynarec stopped because of Opcode 64 88 04 25 91 FE FF FF 0F B6 47 48 A8 01 0F
0x1071bb628: Dynarec stopped because of Opcode 64 88 04 25 91 FE FF FF 0F B6 86 D3 11 00 00
0x1071bb628: Dynarec stopped because of Opcode 64 88 04 25 91 FE FF FF 0F B6 86 D3 11 00 00
0x1071bcbb9: Dynarec stopped because of Opcode 64 88 04 25 91 FE FF FF 48 8D 7C 24 50 E8 95
0x1071bb0f8: Dynarec stopped because of Opcode 64 88 04 25 91 FE FF FF 0F B6 86 D3 11 00 00
0x1071bb0f8: Dynarec stopped because of Opcode 64 88 04 25 91 FE FF FF 0F B6 86 D3 11 00 00

(Edit: while using BOX64_DYNAREC_MISSING=1)

tristanmorgan avatar Feb 05 '24 23:02 tristanmorgan

running through objdump it looks like the instructions are mov %al,%fs:0xfffffffffffffe44

0x107465f6a: Dynarec stopped because of x64 Opcode 64 88 04 25 44 FE FF FF 41 0F B6 46 48 A8 01
    7465f6a:       64 88 04 25 44 fe ff    mov    %al,%fs:0xfffffffffffffe44

tristanmorgan avatar Jun 28 '24 00:06 tristanmorgan

The opcode has been added some time ago, you can update and try again/

ptitSeb avatar Sep 15 '24 14:09 ptitSeb

Hi @ptitSeb, I've run with a recent build of Box64 on ARM and unfortunately I'm still seeing the logged errors.

Box64 with Dynarec v0.3.1 baa3f573 built on Oct 5 2024 06:36:24

bedrock_server Version: 1.21.31.04

0x10779bb6a: Dynarec stopped because of x64 Opcode 64 88 04 25 44 FE FF FF 41 0F B6 46 48 A8 01
0x10779bb6a: Dynarec stopped because of x64 Opcode 64 88 04 25 44 FE FF FF 41 0F B6 46 48 A8 01
0x10779c8df: Dynarec stopped because of x64 Opcode 64 88 04 25 44 FE FF FF 4C 89 E7 E8 B1 66 24
0x10779c8df: Dynarec stopped because of x64 Opcode 64 88 04 25 44 FE FF FF 4C 89 E7 E8 B1 66 24
0x10779cf4e: Dynarec stopped because of x64 Opcode 64 88 04 25 44 FE FF FF E8 45 54 76 FB 48 89
0x10779c3bf: Dynarec stopped because of x64 Opcode 64 88 04 25 44 FE FF FF 48 89 DF E8 D1 6B 24
0x10779c3bf: Dynarec stopped because of x64 Opcode 64 88 04 25 44 FE FF FF 48 89 DF E8 D1 6B 24

tristanmorgan avatar Oct 07 '24 00:10 tristanmorgan

Ah yeah, sorry, I added 64 8A opcode earlier, instead of 64 88 (I was confused by the dump that as at&t assembly style, while I'm used to the intel style).

Anyway, it's added now.

ptitSeb avatar Oct 07 '24 06:10 ptitSeb

Thank you so much. Closed with 2ef6011c7ae

tristanmorgan avatar Oct 07 '24 10:10 tristanmorgan