diff options
Diffstat (limited to '')
| -rw-r--r-- | src/shader_recompiler/frontend/maxwell/translate/impl/integer_floating_point_conversion.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/integer_floating_point_conversion.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/integer_floating_point_conversion.cpp index d6224d5cc..e0e157275 100644 --- a/src/shader_recompiler/frontend/maxwell/translate/impl/integer_floating_point_conversion.cpp +++ b/src/shader_recompiler/frontend/maxwell/translate/impl/integer_floating_point_conversion.cpp | |||
| @@ -114,6 +114,8 @@ void I2F(TranslatorVisitor& v, u64 insn, IR::U32U64 src) { | |||
| 114 | IR::U1 is_least; | 114 | IR::U1 is_least; |
| 115 | if (src_bitsize == 64) { | 115 | if (src_bitsize == 64) { |
| 116 | is_least = v.ir.IEqual(src, v.ir.Imm64(std::numeric_limits<s64>::min())); | 116 | is_least = v.ir.IEqual(src, v.ir.Imm64(std::numeric_limits<s64>::min())); |
| 117 | } else if (src_bitsize == 32) { | ||
| 118 | is_least = v.ir.IEqual(src, v.ir.Imm32(std::numeric_limits<s32>::min())); | ||
| 117 | } else { | 119 | } else { |
| 118 | const IR::U32 least_value{v.ir.Imm32(-(1 << (src_bitsize - 1)))}; | 120 | const IR::U32 least_value{v.ir.Imm32(-(1 << (src_bitsize - 1)))}; |
| 119 | is_least = v.ir.IEqual(src, least_value); | 121 | is_least = v.ir.IEqual(src, least_value); |