ReinUsesLisp 5 лет назад
Родитель
Сommit
98ed8ff103
1 измененных файлов с 8 добавлено и 0 удалено
  1. 8 0
      src/shader_recompiler/backend/glasm/emit_glasm_integer.cpp

+ 8 - 0
src/shader_recompiler/backend/glasm/emit_glasm_integer.cpp

@@ -122,6 +122,14 @@ void EmitBitFieldUExtract(EmitContext& ctx, IR::Inst& inst, ScalarU32 base, Scal
                 "BFE.U {},RC,{};",
                 count, offset, ret, base);
     }
+    if (const auto zero = inst.GetAssociatedPseudoOperation(IR::Opcode::GetZeroFromOp)) {
+        ctx.Add("SEQ.S {},{},0;", *zero, ret);
+        zero->Invalidate();
+    }
+    if (const auto sign = inst.GetAssociatedPseudoOperation(IR::Opcode::GetSignFromOp)) {
+        ctx.Add("SLT.S {},{},0;", *sign, ret);
+        sign->Invalidate();
+    }
 }
 
 void EmitBitReverse32(EmitContext& ctx, IR::Inst& inst, ScalarS32 value) {