From 6c6225f07164838fcec757a11c99681e1fe22037 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Wed, 9 May 2018 19:04:44 +0300 Subject: [PATCH] Fix JIT FPU FETOXM1 --- jit/compemu_raw_x86.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/jit/compemu_raw_x86.cpp b/jit/compemu_raw_x86.cpp index 8f918c8a..1edbfabd 100644 --- a/jit/compemu_raw_x86.cpp +++ b/jit/compemu_raw_x86.cpp @@ -2752,10 +2752,16 @@ LENDFUNC(NONE,NONE,2,raw_fetox_rr,(FW d, FR s)) emit_byte(0xe1); /* fsub x*log2(e) - int(x*log2(e)) */ emit_byte(0xd9); emit_byte(0xf0); /* f2xm1 (2^frac(x))-1 */ + emit_byte(0xd8); + emit_byte(0x05); + emit_long((uae_u32)&one); /* fadd (2^frac(x))-1 + 1 */ emit_byte(0xd9); - emit_byte(0xfd); /* fscale ((2^frac(x))-1)*2^int(x*log2(e)) */ + emit_byte(0xfd); /* fscale ((2^frac(x)))*2^int(x*log2(e)) */ emit_byte(0xdd); emit_byte(0xd9); /* fstp copy & pop */ + emit_byte(0xd8); + emit_byte(0x25); + emit_long((uae_u32)&one); /* fsub 1 */ if (s!=d) tos_make(d); /* store y=(e^x)-1 */ } -- 2.47.3