From 653a67c8addcb980ce10a27765e582c972f8d69c Mon Sep 17 00:00:00 2001 From: "Hagb (Junyu Guo 郭俊余)" Date: Wed, 8 Jan 2025 22:34:15 +0800 Subject: Port rounding of some x87 instructions from Box86 (#2242) * Port rounding of some x87 instructions from Box86 Ported from https://github.com/ptitSeb/box86/pull/951. The original pull request and this commit also contain some improvements on precision of `F2XM1` and `FYL2XP1`. * Run fpu_rounding test with dynarec only for ARM64 They have been implemented on dynarec only for ARM64. --- docs/USAGE.md | 4 ++-- docs/box64.pod | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'docs') diff --git a/docs/USAGE.md b/docs/USAGE.md index e74c11ad..03eef42e 100644 --- a/docs/USAGE.md +++ b/docs/USAGE.md @@ -368,8 +368,8 @@ Generate x86 -NAN. #### BOX64_DYNAREC_FASTROUND * Generate precise x86 rounding. - * 0 : Generate float/double -> int rounding like on x86. - * 1 : Do not do anything special with edge case Rounding, to go as fast as possible (no INF/NAN/Overflow -> MIN_INT conversion). (default, faster) + * 0 : Generate float/double -> int rounding and use current rounding mode for float/double computation like on x86. + * 1 : Do not do anything special with edge case Rounding, to go as fast as possible (no INF/NAN/Overflow -> MIN_INT conversion, and no non-default rounding modes). (default, faster) * 2 : Everything from 1 plus also fast round of double->float (not taking into account current rounding mode). #### BOX64_DYNAREC_SAFEFLAGS * diff --git a/docs/box64.pod b/docs/box64.pod index e12f7c0a..59813110 100644 --- a/docs/box64.pod +++ b/docs/box64.pod @@ -335,8 +335,8 @@ Enable/Disable generation of -NAN Enable/Disable generation of precise x86 rounding - * 0 : Generate float/double -> int rounding like on x86 - * 1 : Don't do anything special with edge case Rounding, to go as fast as possible (no INF/NAN/Overflow -> MIN_INT conversion) (default, faster) + * 0 : Generate float/double -> int rounding and use current rounding mode for float/double computation like on x86 + * 1 : Don't do anything special with edge case Rounding, to go as fast as possible (no INF/NAN/Overflow -> MIN_INT conversion, and no non-default rounding modes) (default, faster) =item B=I<0|1|2> -- cgit 1.4.1