summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/glasm
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-05-18 04:04:06 -0300
committerGravatar ameerj2021-07-22 21:51:32 -0400
commit1ee7f8b943d1ab6ac6dec18bae6c2be3fd8d246c (patch)
tree0967ae40a8bfc7f557e5a8c399bb9f18200d178a /src/shader_recompiler/backend/glasm
parentshader: Read branch conditions from an instruction (diff)
downloadyuzu-1ee7f8b943d1ab6ac6dec18bae6c2be3fd8d246c.tar.gz
yuzu-1ee7f8b943d1ab6ac6dec18bae6c2be3fd8d246c.tar.xz
yuzu-1ee7f8b943d1ab6ac6dec18bae6c2be3fd8d246c.zip
glasm: Do not alias ConditionRef for now
Immediate condition refs where not handled correctly. Just move the value for now.
Diffstat (limited to 'src/shader_recompiler/backend/glasm')
-rw-r--r--src/shader_recompiler/backend/glasm/emit_glasm_bitwise_conversion.cpp4
-rw-r--r--src/shader_recompiler/backend/glasm/reg_alloc.cpp1
2 files changed, 2 insertions, 3 deletions
diff --git a/src/shader_recompiler/backend/glasm/emit_glasm_bitwise_conversion.cpp b/src/shader_recompiler/backend/glasm/emit_glasm_bitwise_conversion.cpp
index 505378bfd..808c72105 100644
--- a/src/shader_recompiler/backend/glasm/emit_glasm_bitwise_conversion.cpp
+++ b/src/shader_recompiler/backend/glasm/emit_glasm_bitwise_conversion.cpp
@@ -22,8 +22,8 @@ void EmitIdentity(EmitContext&, IR::Inst& inst, const IR::Value& value) {
22 Alias(inst, value); 22 Alias(inst, value);
23} 23}
24 24
25void EmitConditionRef(EmitContext&, IR::Inst& inst, const IR::Value& value) { 25void EmitConditionRef(EmitContext& ctx, IR::Inst& inst, const IR::Value& value) {
26 Alias(inst, value); 26 ctx.Add("MOV.S {},{};", inst, ScalarS32{ctx.reg_alloc.Consume(value)});
27} 27}
28 28
29void EmitBitCastU16F16(EmitContext&, IR::Inst& inst, const IR::Value& value) { 29void EmitBitCastU16F16(EmitContext&, IR::Inst& inst, const IR::Value& value) {
diff --git a/src/shader_recompiler/backend/glasm/reg_alloc.cpp b/src/shader_recompiler/backend/glasm/reg_alloc.cpp
index 1a88331b4..707b22247 100644
--- a/src/shader_recompiler/backend/glasm/reg_alloc.cpp
+++ b/src/shader_recompiler/backend/glasm/reg_alloc.cpp
@@ -139,7 +139,6 @@ void RegAlloc::Free(Id id) {
139/*static*/ bool RegAlloc::IsAliased(const IR::Inst& inst) { 139/*static*/ bool RegAlloc::IsAliased(const IR::Inst& inst) {
140 switch (inst.GetOpcode()) { 140 switch (inst.GetOpcode()) {
141 case IR::Opcode::Identity: 141 case IR::Opcode::Identity:
142 case IR::Opcode::ConditionRef:
143 case IR::Opcode::BitCastU16F16: 142 case IR::Opcode::BitCastU16F16:
144 case IR::Opcode::BitCastU32F32: 143 case IR::Opcode::BitCastU32F32:
145 case IR::Opcode::BitCastU64F64: 144 case IR::Opcode::BitCastU64F64: