mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-29 23:06:23 -05:00
Merge pull request #536 from bunnei/isetp_imm
gl_shader_decompiler: Implement ISETP_IMM instruction.
This commit is contained in:
commit
4732e1f064
1 changed files with 9 additions and 8 deletions
|
@ -1278,17 +1278,18 @@ private:
|
||||||
}
|
}
|
||||||
case OpCode::Type::IntegerSetPredicate: {
|
case OpCode::Type::IntegerSetPredicate: {
|
||||||
std::string op_a = regs.GetRegisterAsInteger(instr.gpr8, 0, instr.isetp.is_signed);
|
std::string op_a = regs.GetRegisterAsInteger(instr.gpr8, 0, instr.isetp.is_signed);
|
||||||
|
std::string op_b;
|
||||||
|
|
||||||
std::string op_b{};
|
if (instr.is_b_imm) {
|
||||||
|
op_b += '(' + std::to_string(instr.alu.GetSignedImm20_20()) + ')';
|
||||||
ASSERT_MSG(!instr.is_b_imm, "ISETP_IMM not implemented");
|
} else {
|
||||||
|
|
||||||
if (instr.is_b_gpr) {
|
if (instr.is_b_gpr) {
|
||||||
op_b += regs.GetRegisterAsInteger(instr.gpr20, 0, instr.isetp.is_signed);
|
op_b += regs.GetRegisterAsInteger(instr.gpr20, 0, instr.isetp.is_signed);
|
||||||
} else {
|
} else {
|
||||||
op_b += regs.GetUniform(instr.cbuf34.index, instr.cbuf34.offset,
|
op_b += regs.GetUniform(instr.cbuf34.index, instr.cbuf34.offset,
|
||||||
GLSLRegister::Type::Integer);
|
GLSLRegister::Type::Integer);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
using Tegra::Shader::Pred;
|
using Tegra::Shader::Pred;
|
||||||
// We can't use the constant predicate as destination.
|
// We can't use the constant predicate as destination.
|
||||||
|
|
Loading…
Reference in a new issue