From e886bfb7c1fc64d6f8111e394a06fefe595744ec Mon Sep 17 00:00:00 2001 From: Wunkolo Date: Fri, 30 Sep 2022 14:37:26 -0700 Subject: [PATCH] backend/x64: Fix `FixupLUT` argument order The last two arguments(fixup response response for finite values) are neg-pos, not pos-neg. Found this out while re-using this function for some math stuff. Thankfully nothing currently uses this fixup response at the moment. --- src/dynarmic/backend/x64/constants.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/dynarmic/backend/x64/constants.h b/src/dynarmic/backend/x64/constants.h index d4044a82..f8173241 100644 --- a/src/dynarmic/backend/x64/constants.h +++ b/src/dynarmic/backend/x64/constants.h @@ -122,8 +122,8 @@ constexpr u32 FixupLUT(FpFixup src_qnan = FpFixup::Dest, FpFixup src_posone = FpFixup::Dest, FpFixup src_neginf = FpFixup::Dest, FpFixup src_posinf = FpFixup::Dest, - FpFixup src_pos = FpFixup::Dest, - FpFixup src_neg = FpFixup::Dest) { + FpFixup src_neg = FpFixup::Dest, + FpFixup src_pos = FpFixup::Dest) { u32 fixup_lut = 0; fixup_lut = mcl::bit::set_bits<0, 3, u32>(fixup_lut, static_cast(src_qnan)); fixup_lut = mcl::bit::set_bits<4, 7, u32>(fixup_lut, static_cast(src_snan)); @@ -131,8 +131,8 @@ constexpr u32 FixupLUT(FpFixup src_qnan = FpFixup::Dest, fixup_lut = mcl::bit::set_bits<12, 15, u32>(fixup_lut, static_cast(src_posone)); fixup_lut = mcl::bit::set_bits<16, 19, u32>(fixup_lut, static_cast(src_neginf)); fixup_lut = mcl::bit::set_bits<20, 23, u32>(fixup_lut, static_cast(src_posinf)); - fixup_lut = mcl::bit::set_bits<24, 27, u32>(fixup_lut, static_cast(src_pos)); - fixup_lut = mcl::bit::set_bits<28, 31, u32>(fixup_lut, static_cast(src_neg)); + fixup_lut = mcl::bit::set_bits<24, 27, u32>(fixup_lut, static_cast(src_neg)); + fixup_lut = mcl::bit::set_bits<28, 31, u32>(fixup_lut, static_cast(src_pos)); return fixup_lut; }