shader_decode: Implement SEL
This commit is contained in:
parent
ccb71bece9
commit
8486e7f8c8
|
@ -41,6 +41,14 @@ u32 ShaderIR::DecodeArithmeticInteger(BasicBlock& bb, u32 pc) {
|
||||||
SetRegister(bb, instr.gpr0, Operation(OperationCode::IAdd, PRECISE, op_a, op_b));
|
SetRegister(bb, instr.gpr0, Operation(OperationCode::IAdd, PRECISE, op_a, op_b));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case OpCode::Id::SEL_C:
|
||||||
|
case OpCode::Id::SEL_R:
|
||||||
|
case OpCode::Id::SEL_IMM: {
|
||||||
|
const Node condition = GetPredicate(instr.sel.pred, instr.sel.neg_pred != 0);
|
||||||
|
const Node value = Operation(OperationCode::Select, PRECISE, condition, op_a, op_b);
|
||||||
|
SetRegister(bb, instr.gpr0, value);
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
UNIMPLEMENTED_MSG("Unhandled ArithmeticInteger instruction: {}", opcode->get().GetName());
|
UNIMPLEMENTED_MSG("Unhandled ArithmeticInteger instruction: {}", opcode->get().GetName());
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue