mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-25 16:00:12 +01:00
Doesn't quite match the libc code directly because it uses `[gs:eax]` with both having the sign bit set and we can't deal with that with ASM tests. So match the behaviour in a different way.
31 lines
535 B
NASM
31 lines
535 B
NASM
%ifdef CONFIG
|
|
{
|
|
"RegData": {
|
|
"RAX": "0x41424344",
|
|
"RBX": "0x41424344"
|
|
},
|
|
"MemoryRegions": {
|
|
"0xf0000000": "4096"
|
|
},
|
|
"MemoryData": {
|
|
"0xf0000000": "0x41424344"
|
|
},
|
|
"Mode": "32BIT"
|
|
}
|
|
%endif
|
|
|
|
; Ensures that zero extension of addresses are adhered to.
|
|
lea eax, [0xf000_0000]
|
|
mov eax, [ds:eax]
|
|
|
|
; Ensures that zext occurs correctly with two registers that have the sign bit set.
|
|
mov ebx, 0xffff_ffff
|
|
mov ecx, 0xf000_0001
|
|
|
|
; Break the block so it can't optimize through.
|
|
jmp .test
|
|
.test:
|
|
mov ebx, [ebx+ecx]
|
|
|
|
hlt
|