English Amiga Board


Go Back   English Amiga Board > Support > support.WinUAE

 
 
Thread Tools
Old 21 June 2018, 12:44   #1
PeterK
Registered User
 
Join Date: Apr 2005
Location: digital hell, Germany, after 1984, but worse
Posts: 3,385
FMOD and FREM are broken in 80 bit non-Jit

Sorry for finding this bug today after the release of 4.0.0, but FMOD and FREM which correspond with FPREM and FPREM1 on the x87 FPU are broken in the 80 bit non-Jit mode only, but not in 64 bit or Jit or softfloat. I wished I did that test 1 or 2 days ago.

-----------------

Btw, on my low-end Mini-PC with just 2*1MB cache for 4 CPU cores WinUAE sometimes gets relative sluggish when the Jit cache is set to more than 8 MB. This is not new since 4.0.0 and not a problem for me at all. I just mention it for the case that other users report similar issues and can't find the reason.
PeterK is offline  
Old 21 June 2018, 17:14   #2
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,571
So whats the problem? I don't really care about those weird FPU instructions that no one uses anyway
Toni Wilen is online now  
Old 21 June 2018, 20:01   #3
PeterK
Registered User
 
Join Date: Apr 2005
Location: digital hell, Germany, after 1984, but worse
Posts: 3,385
I wrote a small program to test my Pow(x,y) function which has a double loop for x and y to check all integer operands from 0 to 31 with positive or negative values for the base. So it runs from 0^0 to 31^31 and prints out all results. For negative base values in Pow() I have to check whether the exponent in FP1 is even or odd to set the sign for (-x)^oddy. This is done with
Code:
     FREM.S #2,FP1  ; or FMOD.S
     FBEQ.W even
     BSET.L #31,D0
even RTS
To reproduce this problem it should be enough to test with a few integer values for FPx from 0 to 5 and check the result of FREM.S #2,FPx and the condition code.

This works with all configs except 80 bit non-Jit. I noticed it because it needs a few loops before the Jit starts and the wrong results suddenly changed into correct values.
PeterK is offline  
Old 21 June 2018, 20:35   #4
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,571
Parameters were swapped for x86 fprem and fprem1.. Fixed.
Toni Wilen is online now  
Old 21 June 2018, 20:40   #5
PeterK
Registered User
 
Join Date: Apr 2005
Location: digital hell, Germany, after 1984, but worse
Posts: 3,385
Is WinUAE.7z updated with that fix?

Ok, test passed. Thanks.

Last edited by PeterK; 21 June 2018 at 21:13.
PeterK is offline  
Old 22 June 2018, 12:35   #6
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,571
I thought I tested each fpu function with some simple tests but perhaps I used same value for both operands and assumed it worked if result was always zero
Toni Wilen is online now  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
64-bit WinUAE doesn't work on 64-bit Windows XP mark_k support.WinUAE 6 24 December 2017 21:17
64 bit winuae and JIT pjhutch support.WinUAE 1 25 September 2011 01:29
REQ: 17-Bit Artwork 2 (1988-04)(17-Bit Software) Sea7 request.Demos 5 13 May 2011 01:07
8 bit to optimized 6 bit palette histogram improvements needed NovaCoder Coders. General 0 14 April 2011 02:13
Gui bug - JIT + 24 Bit (?) rsn8887 support.WinUAE 3 29 October 2008 16:01

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 19:19.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.08137 seconds with 13 queries