summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/frontend/maxwell/translate
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader_recompiler/frontend/maxwell/translate')
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/integer_to_integer_conversion.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/integer_to_integer_conversion.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/integer_to_integer_conversion.cpp
index 98b7f59f7..2f1a58805 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/integer_to_integer_conversion.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/integer_to_integer_conversion.cpp
@@ -74,9 +74,6 @@ void I2I(TranslatorVisitor& v, u64 insn, const IR::U32& src_a) {
74 BitField<50, 1, u64> sat; 74 BitField<50, 1, u64> sat;
75 } const i2i{insn}; 75 } const i2i{insn};
76 76
77 if (i2i.cc != 0) {
78 throw NotImplementedException("I2I CC");
79 }
80 if (i2i.src_fmt == IntegerWidth::Short && (i2i.selector == 1 || i2i.selector == 3)) { 77 if (i2i.src_fmt == IntegerWidth::Short && (i2i.selector == 1 || i2i.selector == 3)) {
81 throw NotImplementedException("16-bit source format incompatible with selector {}", 78 throw NotImplementedException("16-bit source format incompatible with selector {}",
82 i2i.selector); 79 i2i.selector);
@@ -105,6 +102,10 @@ void I2I(TranslatorVisitor& v, u64 insn, const IR::U32& src_a) {
105 : ConvertInteger(v.ir, src_values, i2i.dst_fmt)}; 102 : ConvertInteger(v.ir, src_values, i2i.dst_fmt)};
106 103
107 v.X(i2i.dest_reg, result); 104 v.X(i2i.dest_reg, result);
105 if (i2i.cc != 0) {
106 v.SetZFlag(v.ir.GetZeroFromOp(result));
107 v.SetSFlag(v.ir.GetSignFromOp(result));
108 }
108} 109}
109} // Anonymous namespace 110} // Anonymous namespace
110 111