diff options
author | Nguyen Dac Nam <nam.kazt.91@gmail.com> | 2020-02-21 15:16:45 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-21 15:16:45 +0100 |
commit | 10d8afb302e526815fe0589d7feb7d57443795da (patch) | |
tree | 81225e658e01f09121435be10ef2801c49e7076a | |
parent | shader: implement LOP3 fast replace for old function (diff) | |
download | yuzu-10d8afb302e526815fe0589d7feb7d57443795da.tar yuzu-10d8afb302e526815fe0589d7feb7d57443795da.tar.gz yuzu-10d8afb302e526815fe0589d7feb7d57443795da.tar.bz2 yuzu-10d8afb302e526815fe0589d7feb7d57443795da.tar.lz yuzu-10d8afb302e526815fe0589d7feb7d57443795da.tar.xz yuzu-10d8afb302e526815fe0589d7feb7d57443795da.tar.zst yuzu-10d8afb302e526815fe0589d7feb7d57443795da.zip |
-rw-r--r-- | src/video_core/shader/decode/arithmetic_integer.cpp | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/src/video_core/shader/decode/arithmetic_integer.cpp b/src/video_core/shader/decode/arithmetic_integer.cpp index 83d3944ac..2fe787d6f 100644 --- a/src/video_core/shader/decode/arithmetic_integer.cpp +++ b/src/video_core/shader/decode/arithmetic_integer.cpp @@ -293,52 +293,52 @@ u32 ShaderIR::DecodeArithmeticInteger(NodeBlock& bb, u32 pc) { void ShaderIR::WriteLop3Instruction(NodeBlock& bb, Register dest, Node op_a, Node op_b, Node op_c, Node imm_lut, bool sets_cc) { - const Node lop3_fast = [&](Node na, Node nb, Node nc, Node ttbl) { + const Node lop3_fast = [&](const Node na, const Node nb, const Node nc, const Node ttbl) { Node value = Immediate(0); - ImmediateNode imm = std::get<ImmediateNode>(*ttbl); + const ImmediateNode imm = std::get<ImmediateNode>(*ttbl); if (imm.GetValue() & 0x01) { - Node a = Operation(OperationCode::IBitwiseNot, na); - Node b = Operation(OperationCode::IBitwiseNot, nb); - Node c = Operation(OperationCode::IBitwiseNot, nc); + const Node a = Operation(OperationCode::IBitwiseNot, na); + const Node b = Operation(OperationCode::IBitwiseNot, nb); + const Node c = Operation(OperationCode::IBitwiseNot, nc); Node r = Operation(OperationCode::IBitwiseAnd, NO_PRECISE, a, b); r = Operation(OperationCode::IBitwiseAnd, NO_PRECISE, r, c); value = Operation(OperationCode::IBitwiseOr, value, r); } if (imm.GetValue() & 0x02) { - Node a = Operation(OperationCode::IBitwiseNot, na); - Node b = Operation(OperationCode::IBitwiseNot, nb); + const Node a = Operation(OperationCode::IBitwiseNot, na); + const Node b = Operation(OperationCode::IBitwiseNot, nb); Node r = Operation(OperationCode::IBitwiseAnd, NO_PRECISE, a, b); r = Operation(OperationCode::IBitwiseAnd, NO_PRECISE, r, nc); value = Operation(OperationCode::IBitwiseOr, value, r); } if (imm.GetValue() & 0x04) { - Node a = Operation(OperationCode::IBitwiseNot, na); - Node c = Operation(OperationCode::IBitwiseNot, nc); + const Node a = Operation(OperationCode::IBitwiseNot, na); + const Node c = Operation(OperationCode::IBitwiseNot, nc); Node r = Operation(OperationCode::IBitwiseAnd, NO_PRECISE, a, nb); r = Operation(OperationCode::IBitwiseAnd, NO_PRECISE, r, c); value = Operation(OperationCode::IBitwiseOr, value, r); } if (imm.GetValue() & 0x08) { - Node a = Operation(OperationCode::IBitwiseNot, na); + const Node a = Operation(OperationCode::IBitwiseNot, na); Node r = Operation(OperationCode::IBitwiseAnd, NO_PRECISE, a, nb); r = Operation(OperationCode::IBitwiseAnd, NO_PRECISE, r, nc); value = Operation(OperationCode::IBitwiseOr, value, r); } if (imm.GetValue() & 0x10) { - Node b = Operation(OperationCode::IBitwiseNot, nb); - Node c = Operation(OperationCode::IBitwiseNot, nc); + const Node b = Operation(OperationCode::IBitwiseNot, nb); + const Node c = Operation(OperationCode::IBitwiseNot, nc); Node r = Operation(OperationCode::IBitwiseAnd, NO_PRECISE, na, b); r = Operation(OperationCode::IBitwiseAnd, NO_PRECISE, r, c); value = Operation(OperationCode::IBitwiseOr, value, r); } if (imm.GetValue() & 0x20) { - Node b = Operation(OperationCode::IBitwiseNot, nb); + const Node b = Operation(OperationCode::IBitwiseNot, nb); Node r = Operation(OperationCode::IBitwiseAnd, NO_PRECISE, na, b); r = Operation(OperationCode::IBitwiseAnd, NO_PRECISE, r, nc); value = Operation(OperationCode::IBitwiseOr, value, r); } if (imm.GetValue() & 0x40) { - Node c = Operation(OperationCode::IBitwiseNot, nc); + const Node c = Operation(OperationCode::IBitwiseNot, nc); Node r = Operation(OperationCode::IBitwiseAnd, NO_PRECISE, na, nb); r = Operation(OperationCode::IBitwiseAnd, NO_PRECISE, r, c); value = Operation(OperationCode::IBitwiseOr, value, r); |