diff options
| author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2018-12-26 02:58:47 -0300 |
|---|---|---|
| committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-01-15 17:54:53 -0300 |
| commit | 2faad9bf23dbcedc80dca7ed9ad4b81c0416dd5e (patch) | |
| tree | 3faa264db225f2ae09ccf417fd962eddb40c2235 /src/video_core/shader/shader_ir.cpp | |
| parent | 52223313b10af4c76b516d6ead247a1a201a71d8 (diff) | |
shader_decode: Use BitfieldExtract instead of shift + and
Diffstat (limited to 'src/video_core/shader/shader_ir.cpp')
| -rw-r--r-- | src/video_core/shader/shader_ir.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/video_core/shader/shader_ir.cpp b/src/video_core/shader/shader_ir.cpp index b07642517..d4e304b4e 100644 --- a/src/video_core/shader/shader_ir.cpp +++ b/src/video_core/shader/shader_ir.cpp @@ -348,6 +348,11 @@ void ShaderIR::SetLocalMemory(BasicBlock& bb, Node address, Node value) { bb.push_back(Operation(OperationCode::Assign, GetLocalMemory(address), value)); } +Node ShaderIR::BitfieldExtract(Node value, u32 offset, u32 bits) { + return Operation(OperationCode::UBitfieldExtract, NO_PRECISE, value, Immediate(offset), + Immediate(bits)); +} + /*static*/ OperationCode ShaderIR::SignedToUnsignedCode(OperationCode operation_code, bool is_signed) { if (is_signed) { |
