shader_ir: Add register getter
This commit is contained in:
parent
4aaa2192b9
commit
5e639bfcf6
|
@ -39,6 +39,13 @@ Node ShaderIR::Immediate(u32 value) {
|
||||||
return StoreNode(ImmediateNode(value));
|
return StoreNode(ImmediateNode(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Node ShaderIR::GetRegister(Register reg) {
|
||||||
|
if (reg != Register::ZeroIndex) {
|
||||||
|
used_registers.insert(static_cast<u32>(reg));
|
||||||
|
}
|
||||||
|
return StoreNode(GprNode(reg));
|
||||||
|
}
|
||||||
|
|
||||||
Node ShaderIR::GetImmediate19(Instruction instr) {
|
Node ShaderIR::GetImmediate19(Instruction instr) {
|
||||||
return Immediate(instr.alu.GetImm20_19());
|
return Immediate(instr.alu.GetImm20_19());
|
||||||
}
|
}
|
||||||
|
|
|
@ -610,6 +610,8 @@ private:
|
||||||
return Immediate(*reinterpret_cast<const u32*>(&value));
|
return Immediate(*reinterpret_cast<const u32*>(&value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Generates a node for a passed register.
|
||||||
|
Node GetRegister(Tegra::Shader::Register reg);
|
||||||
/// Generates a node representing a 19-bit immediate value
|
/// Generates a node representing a 19-bit immediate value
|
||||||
Node GetImmediate19(Tegra::Shader::Instruction instr);
|
Node GetImmediate19(Tegra::Shader::Instruction instr);
|
||||||
/// Generates a node representing a 32-bit immediate value
|
/// Generates a node representing a 32-bit immediate value
|
||||||
|
|
Reference in New Issue