From 48a03594c25d5edc148258fadf977654fe692e52 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Fri, 22 Jun 2018 12:22:35 +0300 Subject: [PATCH] Fix 80-bit non-JIT FMOD and FREM. --- od-win32/fpux64_80.asm | 12 ++++++++---- od-win32/fpux86_80.asm | 15 +++++++++++---- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/od-win32/fpux64_80.asm b/od-win32/fpux64_80.asm index 254b0d1f..4397d51c 100644 --- a/od-win32/fpux64_80.asm +++ b/od-win32/fpux64_80.asm @@ -68,6 +68,11 @@ bits 64 fld tword[rdx] %endmacro +%macro loadfp2swap 0 + fld tword[rdx] + fld tword[rcx] +%endmacro + %macro storefp 0 fstp tword[rcx] %endmacro @@ -220,14 +225,14 @@ xfp_atan: xfp_rem: - loadfp2 + loadfp2swap fprem fstp st1 storefp ret xfp_rem1: - loadfp2 + loadfp2swap fprem1 fstp st1 storefp @@ -248,8 +253,7 @@ xfp_getman: ret xfp_scale: - loadfp2 - fxch + loadfp2swap fscale fstp st1 storefp diff --git a/od-win32/fpux86_80.asm b/od-win32/fpux86_80.asm index c88a5703..ffe780ec 100644 --- a/od-win32/fpux86_80.asm +++ b/od-win32/fpux86_80.asm @@ -70,6 +70,14 @@ section .text fld tword[ecx] %endmacro +%macro loadfp2swap 0 + mov eax,[esp+4] + mov ecx,[esp+8] + fld tword[ecx] + fld tword[eax] +%endmacro + + %macro storefp 0 fstp tword[eax] %endmacro @@ -241,14 +249,14 @@ _xfp_atan: ret _xfp_rem: - loadfp2 + loadfp2swap fprem fstp st1 storefp ret _xfp_rem1: - loadfp2 + loadfp2swap fprem1 fstp st1 storefp @@ -269,8 +277,7 @@ _xfp_getman: ret _xfp_scale: - loadfp2 - fxch + loadfp2swap fscale fstp st1 storefp -- 2.47.3