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 | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/shader_recompiler/backend/glasm/emit_glasm_integer.cpp b/src/shader_recompiler/backend/glasm/emit_glasm_integer.cpp index c9386805a..40f48a091 100644 --- a/src/shader_recompiler/backend/glasm/emit_glasm_integer.cpp +++ b/src/shader_recompiler/backend/glasm/emit_glasm_integer.cpp | |||
| @@ -141,14 +141,16 @@ void EmitUMax32(EmitContext& ctx, IR::Inst& inst, ScalarU32 a, ScalarU32 b) { | |||
| 141 | 141 | ||
| 142 | void EmitSClamp32(EmitContext& ctx, IR::Inst& inst, ScalarS32 value, ScalarS32 min, ScalarS32 max) { | 142 | void EmitSClamp32(EmitContext& ctx, IR::Inst& inst, ScalarS32 value, ScalarS32 min, ScalarS32 max) { |
| 143 | const Register ret{ctx.reg_alloc.Define(inst)}; | 143 | const Register ret{ctx.reg_alloc.Define(inst)}; |
| 144 | ctx.Add("MIN.S {}.x,{},{};", ret, max, value); | 144 | ctx.Add("MIN.S {}.x,{},{};" |
| 145 | ctx.Add("MAX.S {}.x,{},{};", ret, ret, min); | 145 | "MAX.S {}.x,{},{};", |
| 146 | ret, max, value, ret, ret, min); | ||
| 146 | } | 147 | } |
| 147 | 148 | ||
| 148 | void EmitUClamp32(EmitContext& ctx, IR::Inst& inst, ScalarU32 value, ScalarU32 min, ScalarU32 max) { | 149 | void EmitUClamp32(EmitContext& ctx, IR::Inst& inst, ScalarU32 value, ScalarU32 min, ScalarU32 max) { |
| 149 | const Register ret{ctx.reg_alloc.Define(inst)}; | 150 | const Register ret{ctx.reg_alloc.Define(inst)}; |
| 150 | ctx.Add("MIN.U {}.x,{},{};", ret, max, value); | 151 | ctx.Add("MIN.U {}.x,{},{};" |
| 151 | ctx.Add("MAX.U {}.x,{},{};", ret, ret, min); | 152 | "MAX.U {}.x,{},{};", |
| 153 | ret, max, value, ret, ret, min); | ||
| 152 | } | 154 | } |
| 153 | 155 | ||
| 154 | void EmitSLessThan(EmitContext& ctx, IR::Inst& inst, ScalarS32 lhs, ScalarS32 rhs) { | 156 | void EmitSLessThan(EmitContext& ctx, IR::Inst& inst, ScalarS32 lhs, ScalarS32 rhs) { |