mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-06 13:00:15 +02:00
asm_tests: x87 fst/fld optimization for different addrmodes
This commit is contained in:
1 parent
2d53867668
commit
58a034b79d
3 files changed
+112
No files matched your search
@@ -0,0 +1,44 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x3f800000",
|
||||
"RBX": "0x3f800000",
|
||||
"RCX": "0x3f800000",
|
||||
"RBP": "0x3f800000",
|
||||
"RDI": "0x3f800000",
|
||||
"RSP": "0x3f800000"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0xf0000000": "4096"
|
||||
},
|
||||
"Mode": "32BIT"
|
||||
}
|
||||
%endif
|
||||
|
||||
section .bss
|
||||
base resb 4096
|
||||
|
||||
section .text
|
||||
|
||||
; Setup
|
||||
fld1
|
||||
lea edx, [rel base]
|
||||
mov esi, 0x64
|
||||
|
||||
; Test fst
|
||||
fst dword [edx]
|
||||
fst dword [edx + 0xa]
|
||||
fst dword [edx + esi]
|
||||
fst dword [edx + esi * 4]
|
||||
fst dword [edx + esi + 0xa]
|
||||
fst dword [edx + esi * 4 + 0xa]
|
||||
|
||||
; Result check
|
||||
mov eax, dword [edx]
|
||||
mov ebx, dword [edx + 0xa]
|
||||
mov ecx, dword [edx + esi]
|
||||
mov ebp, dword [edx + esi * 4]
|
||||
mov edi, dword [edx + esi + 0xa]
|
||||
mov esp, dword [edx + esi * 4 + 0xa]
|
||||
|
||||
hlt
|
||||
@@ -0,0 +1,25 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"MM7": ["0x8000000000000000", "0x4000"]
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
lea rdx, [rel data]
|
||||
fld tword [rdx + 8 * 0]
|
||||
|
||||
lea rdx, [rel data2]
|
||||
lea rax, [rdx + 8 * 0]
|
||||
fstp tword [rax]
|
||||
fld tword [rdx + 8 * 0]
|
||||
|
||||
hlt
|
||||
|
||||
align 8
|
||||
data:
|
||||
dt 2.0
|
||||
dq 0
|
||||
data2:
|
||||
dt 0.0
|
||||
dq 0
|
||||
@@ -0,0 +1,43 @@
|
||||
%ifdef CONFIG
|
||||
{
|
||||
"RegData": {
|
||||
"RAX": "0x3f800000",
|
||||
"RBX": "0x3f800000",
|
||||
"RCX": "0x3f800000",
|
||||
"R8": "0x3f800000",
|
||||
"R9": "0x3f800000",
|
||||
"R10": "0x3f800000"
|
||||
},
|
||||
"MemoryRegions": {
|
||||
"0x100000000": "4096"
|
||||
}
|
||||
}
|
||||
%endif
|
||||
|
||||
section .bss
|
||||
base resb 4096
|
||||
|
||||
section .text
|
||||
|
||||
; Setup
|
||||
fld1
|
||||
lea rdx, [rel base]
|
||||
mov rsi, 0x64
|
||||
|
||||
; Test fst
|
||||
fst dword [rdx]
|
||||
fst dword [rdx + 0xa]
|
||||
fst dword [rdx + rsi]
|
||||
fst dword [rdx + rsi * 4]
|
||||
fst dword [rdx + rsi + 0xa]
|
||||
fst dword [rdx + rsi * 4 + 0xa]
|
||||
|
||||
; Result check
|
||||
mov eax, dword [rdx]
|
||||
mov ebx, dword [rdx + 0xa]
|
||||
mov ecx, dword [rdx + rsi]
|
||||
mov r8d, dword [rdx + rsi * 4]
|
||||
mov r9d, dword [rdx + rsi + 0xa]
|
||||
mov r10d, dword [rdx + rsi * 4 + 0xa]
|
||||
|
||||
hlt
|
||||
Reference in new issue
Block a user