diff options
author | Liam <byteslice@airmail.cc> | 2022-11-21 17:31:18 +0100 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2022-11-23 04:22:28 +0100 |
commit | 9737615948d431cf56826f3c109bbc0fef7b4d10 (patch) | |
tree | 9d4742bf8f2b64b9a5b30ae33b105a5e9344ab3b /src/shader_recompiler/frontend/maxwell/translate | |
parent | Merge pull request #9279 from liamwhite/this-would-have-never-happened-in-rust (diff) | |
download | yuzu-9737615948d431cf56826f3c109bbc0fef7b4d10.tar yuzu-9737615948d431cf56826f3c109bbc0fef7b4d10.tar.gz yuzu-9737615948d431cf56826f3c109bbc0fef7b4d10.tar.bz2 yuzu-9737615948d431cf56826f3c109bbc0fef7b4d10.tar.lz yuzu-9737615948d431cf56826f3c109bbc0fef7b4d10.tar.xz yuzu-9737615948d431cf56826f3c109bbc0fef7b4d10.tar.zst yuzu-9737615948d431cf56826f3c109bbc0fef7b4d10.zip |
Diffstat (limited to 'src/shader_recompiler/frontend/maxwell/translate')
-rw-r--r-- | src/shader_recompiler/frontend/maxwell/translate/impl/floating_point_conversion_integer.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/floating_point_conversion_integer.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/floating_point_conversion_integer.cpp index 4942878b9..85c18d942 100644 --- a/src/shader_recompiler/frontend/maxwell/translate/impl/floating_point_conversion_integer.cpp +++ b/src/shader_recompiler/frontend/maxwell/translate/impl/floating_point_conversion_integer.cpp @@ -176,12 +176,13 @@ void TranslateF2I(TranslatorVisitor& v, u64 insn, const IR::F16F32F64& src_a) { (f2i.src_format == SrcFormat::F64) != (f2i.dest_format == DestFormat::I64); if (special_nan_cases) { if (f2i.dest_format == DestFormat::I32) { + constexpr u32 nan_value = 0x8000'0000U; handled_special_case = true; - result = IR::U32{v.ir.Select(v.ir.FPIsNan(op_a), v.ir.Imm32(0x8000'0000U), result)}; + result = IR::U32{v.ir.Select(v.ir.FPIsNan(op_a), v.ir.Imm32(nan_value), result)}; } else if (f2i.dest_format == DestFormat::I64) { + constexpr u64 nan_value = 0x8000'0000'0000'0000ULL; handled_special_case = true; - result = IR::U64{ - v.ir.Select(v.ir.FPIsNan(op_a), v.ir.Imm64(0x8000'0000'0000'0000UL), result)}; + result = IR::U64{v.ir.Select(v.ir.FPIsNan(op_a), v.ir.Imm64(nan_value), result)}; } } if (!handled_special_case && is_signed) { |