diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2018-12-27 05:50:22 +0100 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-01-15 21:54:53 +0100 |
commit | d911740e5d474ae459f9e05d82a7dba9c7e06340 (patch) | |
tree | 1f513427747b05f1305949791ddf90d1406c99c7 /src/video_core/shader/shader_ir.cpp | |
parent | gl_shader_decompiler: Fixup AssignCompositeHalf (diff) | |
download | yuzu-d911740e5d474ae459f9e05d82a7dba9c7e06340.tar yuzu-d911740e5d474ae459f9e05d82a7dba9c7e06340.tar.gz yuzu-d911740e5d474ae459f9e05d82a7dba9c7e06340.tar.bz2 yuzu-d911740e5d474ae459f9e05d82a7dba9c7e06340.tar.lz yuzu-d911740e5d474ae459f9e05d82a7dba9c7e06340.tar.xz yuzu-d911740e5d474ae459f9e05d82a7dba9c7e06340.tar.zst yuzu-d911740e5d474ae459f9e05d82a7dba9c7e06340.zip |
Diffstat (limited to 'src/video_core/shader/shader_ir.cpp')
-rw-r--r-- | src/video_core/shader/shader_ir.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/video_core/shader/shader_ir.cpp b/src/video_core/shader/shader_ir.cpp index d4e304b4e..4474af7c4 100644 --- a/src/video_core/shader/shader_ir.cpp +++ b/src/video_core/shader/shader_ir.cpp @@ -121,6 +121,10 @@ Node ShaderIR::GetLocalMemory(Node address) { return StoreNode(LmemNode(address)); } +Node ShaderIR::GetTemporal(u32 id) { + return GetRegister(Register::ZeroIndex + 1 + id); +} + Node ShaderIR::GetOperandAbsNegFloat(Node value, bool absolute, bool negate) { if (absolute) { value = Operation(OperationCode::FAbsolute, NO_PRECISE, value); @@ -348,6 +352,10 @@ void ShaderIR::SetLocalMemory(BasicBlock& bb, Node address, Node value) { bb.push_back(Operation(OperationCode::Assign, GetLocalMemory(address), value)); } +void ShaderIR::SetTemporal(BasicBlock& bb, u32 id, Node value) { + SetRegister(bb, Register::ZeroIndex + 1 + id, value); +} + Node ShaderIR::BitfieldExtract(Node value, u32 offset, u32 bits) { return Operation(OperationCode::UBitfieldExtract, NO_PRECISE, value, Immediate(offset), Immediate(bits)); |