diff options
Diffstat (limited to 'src/shader_recompiler/backend/glasm/emit_glasm_integer.cpp')
| -rw-r--r-- | src/shader_recompiler/backend/glasm/emit_glasm_integer.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/shader_recompiler/backend/glasm/emit_glasm_integer.cpp b/src/shader_recompiler/backend/glasm/emit_glasm_integer.cpp index 1befeca91..ba69c7a1b 100644 --- a/src/shader_recompiler/backend/glasm/emit_glasm_integer.cpp +++ b/src/shader_recompiler/backend/glasm/emit_glasm_integer.cpp | |||
| @@ -122,6 +122,14 @@ void EmitBitFieldUExtract(EmitContext& ctx, IR::Inst& inst, ScalarU32 base, Scal | |||
| 122 | "BFE.U {},RC,{};", | 122 | "BFE.U {},RC,{};", |
| 123 | count, offset, ret, base); | 123 | count, offset, ret, base); |
| 124 | } | 124 | } |
| 125 | if (const auto zero = inst.GetAssociatedPseudoOperation(IR::Opcode::GetZeroFromOp)) { | ||
| 126 | ctx.Add("SEQ.S {},{},0;", *zero, ret); | ||
| 127 | zero->Invalidate(); | ||
| 128 | } | ||
| 129 | if (const auto sign = inst.GetAssociatedPseudoOperation(IR::Opcode::GetSignFromOp)) { | ||
| 130 | ctx.Add("SLT.S {},{},0;", *sign, ret); | ||
| 131 | sign->Invalidate(); | ||
| 132 | } | ||
| 125 | } | 133 | } |
| 126 | 134 | ||
| 127 | void EmitBitReverse32(EmitContext& ctx, IR::Inst& inst, ScalarS32 value) { | 135 | void EmitBitReverse32(EmitContext& ctx, IR::Inst& inst, ScalarS32 value) { |