diff options
| author | 2021-05-18 21:30:24 -0300 | |
|---|---|---|
| committer | 2021-07-22 21:51:32 -0400 | |
| commit | 98ed8ff103a975be93dbbb89d554fbea355aacde (patch) | |
| tree | aaeed1b3c418544d9be14353cadcc4ad4d083006 /src/shader_recompiler/backend/glasm/emit_glasm_integer.cpp | |
| parent | glasm: Implement SelectU1 (diff) | |
| download | yuzu-98ed8ff103a975be93dbbb89d554fbea355aacde.tar.gz yuzu-98ed8ff103a975be93dbbb89d554fbea355aacde.tar.xz yuzu-98ed8ff103a975be93dbbb89d554fbea355aacde.zip | |
glasm: Implement BFE.CC
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) { |