Browse Source
Merge pull request #536 from bunnei/isetp_imm
gl_shader_decompiler: Implement ISETP_IMM instruction.
pull/15/merge
bunnei
8 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
9 additions and
8 deletions
-
src/video_core/renderer_opengl/gl_shader_decompiler.cpp
|
|
|
@ -1278,17 +1278,18 @@ private: |
|
|
|
} |
|
|
|
case OpCode::Type::IntegerSetPredicate: { |
|
|
|
std::string op_a = regs.GetRegisterAsInteger(instr.gpr8, 0, instr.isetp.is_signed); |
|
|
|
std::string op_b; |
|
|
|
|
|
|
|
std::string op_b{}; |
|
|
|
|
|
|
|
ASSERT_MSG(!instr.is_b_imm, "ISETP_IMM not implemented"); |
|
|
|
|
|
|
|
if (instr.is_b_imm) { |
|
|
|
op_b += '(' + std::to_string(instr.alu.GetSignedImm20_20()) + ')'; |
|
|
|
} else { |
|
|
|
if (instr.is_b_gpr) { |
|
|
|
op_b += regs.GetRegisterAsInteger(instr.gpr20, 0, instr.isetp.is_signed); |
|
|
|
} else { |
|
|
|
op_b += regs.GetUniform(instr.cbuf34.index, instr.cbuf34.offset, |
|
|
|
GLSLRegister::Type::Integer); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
using Tegra::Shader::Pred; |
|
|
|
// We can't use the constant predicate as destination.
|
|
|
|
|