This series is taken from my MacOS branch and fixes setting the FPSR quotient byte for the fmod and frem instructions which was causing the MacOS _Pack5 SANE trancendentals implementation to return incorrect values for sin() and cos().
The first 2 patches update make_quotient() to take separate sign and value parameters so that it can be used for both floatx80_modrem() and a manual division calculation, whilst the last 2 patches fix the value of the quotient byte for both the fmod and frem instructions. This series has been validated against the fmod and frem results using a custom test program which has been run on a real 68040 Mac. Many thanks to the mac68k folk for their help debugging this, in particular SolraBizna for narrowing down the issue to the transcendentals and writing the custom test program, and also treellama and Cat7 for running the test program on real hardware and uploading the generated results file for further analysis. Signed-off-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> v3: - Drop R-B tags from patch 4 - Rework patch 4 as suggested by Richard v2: - Add Laurent's R-B tags to patches 1, 3 and 4 - Rework patch 2 as suggested by Richard Mark Cave-Ayland (4): target/m68k: pass quotient directly into make_quotient() target/m68k: pass sign directly into make_quotient() target/m68k: fix FPSR quotient byte for fmod instruction target/m68k: fix FPSR quotient byte for frem instruction target/m68k/fpu_helper.c | 49 +++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 18 deletions(-) -- 2.30.2