using rsp instead of esp

Using esp resulted in crashes on x64.
This commit is contained in:
sgraf812
2013-01-25 14:46:01 +01:00
committed by kai
parent ad4e0e57d2
commit 98669eef5b

View File

@@ -31,7 +31,7 @@ twoPow63 dd 0, 80000000h, 03fffh + 63
ld_read PROC ld_read PROC
fld tbyte ptr [rcx] fld tbyte ptr [rcx]
push rax push rax
fstp qword ptr [esp] fstp qword ptr [rsp]
movq xmm0,qword ptr [rsp] movq xmm0,qword ptr [rsp]
pop rax pop rax
ret ret
@@ -42,7 +42,7 @@ ld_read ENDP
ld_readll PROC ld_readll PROC
fld tbyte ptr [rcx] fld tbyte ptr [rcx]
push rax push rax
fistp qword ptr [esp] fistp qword ptr [rsp]
pop rax pop rax
ret ret
ld_readll ENDP ld_readll ENDP
@@ -55,7 +55,7 @@ ld_readull PROC
lea rax,twoPow63 lea rax,twoPow63
fld tbyte ptr [rax] fld tbyte ptr [rax]
fsubp ST(1),ST(0) ; move it into signed range fsubp ST(1),ST(0) ; move it into signed range
fistp qword ptr [esp] fistp qword ptr [rsp]
pop rax pop rax
btc rax,63 btc rax,63
ret ret
@@ -78,9 +78,9 @@ ld_set ENDP
; rdx: d ; rdx: d
ld_setll PROC ld_setll PROC
push rdx push rdx
fild qword ptr [esp] fild qword ptr [rsp]
fstp tbyte ptr [rcx] fstp tbyte ptr [rcx]
pop rax pop rax
ret ret
ld_setll ENDP ld_setll ENDP
@@ -90,12 +90,12 @@ ld_setll ENDP
ld_setull PROC ld_setull PROC
btc rdx,63 btc rdx,63
push rdx push rdx
fild qword ptr [esp] fild qword ptr [rsp]
lea rax,twoPow63 lea rax,twoPow63
fld tbyte ptr [rax] fld tbyte ptr [rax]
faddp ST(1),ST(0) faddp ST(1),ST(0)
fstp tbyte ptr [rcx] fstp tbyte ptr [rcx]
pop rax pop rax
ret ret
ld_setull ENDP ld_setull ENDP
@@ -104,12 +104,12 @@ ld_setull ENDP
; edx: exp ; edx: exp
ld_expl PROC ld_expl PROC
push rdx push rdx
fild dword ptr [esp] fild dword ptr [rsp]
fld tbyte ptr [rcx] fld tbyte ptr [rcx]
fscale ; ST(0) = ST(0) * (2**ST(1)) fscale ; ST(0) = ST(0) * (2**ST(1))
fstp ST(1) fstp ST(1)
fstp tbyte ptr [rcx] fstp tbyte ptr [rcx]
pop rax pop rax
ret ret
ld_expl ENDP ld_expl ENDP