summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar bunnei2020-03-25 19:29:16 -0400
committerGravatar GitHub2020-03-25 19:29:16 -0400
commit23c7dda7108f71b2a044c92a5a998804466cbdfa (patch)
treeebab46fc7693ce6a67a57a1a83a64893bb8a29ef /src
parentMerge pull request #3520 from ReinUsesLisp/legacy-varyings (diff)
parentxmad: fix clang build error (diff)
downloadyuzu-23c7dda7108f71b2a044c92a5a998804466cbdfa.tar.gz
yuzu-23c7dda7108f71b2a044c92a5a998804466cbdfa.tar.xz
yuzu-23c7dda7108f71b2a044c92a5a998804466cbdfa.zip
Merge pull request #3544 from makigumo/myfork/patch-2
xmad: fix clang build error
Diffstat (limited to 'src')
-rw-r--r--src/video_core/shader/decode/xmad.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/video_core/shader/decode/xmad.cpp b/src/video_core/shader/decode/xmad.cpp
index fbd7e9a17..6191ffba1 100644
--- a/src/video_core/shader/decode/xmad.cpp
+++ b/src/video_core/shader/decode/xmad.cpp
@@ -31,7 +31,7 @@ u32 ShaderIR::DecodeXmad(NodeBlock& bb, u32 pc) {
31 const bool is_signed_b = instr.xmad.sign_b == 1; 31 const bool is_signed_b = instr.xmad.sign_b == 1;
32 const bool is_signed_c = is_signed_a; 32 const bool is_signed_c = is_signed_a;
33 33
34 auto [is_merge, is_psl, is_high_b, mode, op_b, 34 auto [is_merge, is_psl, is_high_b, mode, op_b_binding,
35 op_c] = [&]() -> std::tuple<bool, bool, bool, Tegra::Shader::XmadMode, Node, Node> { 35 op_c] = [&]() -> std::tuple<bool, bool, bool, Tegra::Shader::XmadMode, Node, Node> {
36 switch (opcode->get().GetId()) { 36 switch (opcode->get().GetId()) {
37 case OpCode::Id::XMAD_CR: 37 case OpCode::Id::XMAD_CR:
@@ -67,9 +67,10 @@ u32 ShaderIR::DecodeXmad(NodeBlock& bb, u32 pc) {
67 op_a = SignedOperation(OperationCode::IBitfieldExtract, is_signed_a, std::move(op_a), 67 op_a = SignedOperation(OperationCode::IBitfieldExtract, is_signed_a, std::move(op_a),
68 instr.xmad.high_a ? Immediate(16) : Immediate(0), Immediate(16)); 68 instr.xmad.high_a ? Immediate(16) : Immediate(0), Immediate(16));
69 69
70 const Node original_b = op_b; 70 const Node original_b = op_b_binding;
71 op_b = SignedOperation(OperationCode::IBitfieldExtract, is_signed_b, std::move(op_b), 71 const Node op_b =
72 is_high_b ? Immediate(16) : Immediate(0), Immediate(16)); 72 SignedOperation(OperationCode::IBitfieldExtract, is_signed_b, std::move(op_b_binding),
73 is_high_b ? Immediate(16) : Immediate(0), Immediate(16));
73 74
74 // we already check sign_a and sign_b is difference or not before so just use one in here. 75 // we already check sign_a and sign_b is difference or not before so just use one in here.
75 Node product = SignedOperation(OperationCode::IMul, is_signed_a, op_a, op_b); 76 Node product = SignedOperation(OperationCode::IMul, is_signed_a, op_a, op_b);