Explorar el Código

glasm: Implement BFE.CC

ReinUsesLisp hace 5 años
padre
commit
98ed8ff103
Se han modificado 1 ficheros con 8 adiciones y 0 borrados
  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) {