diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-01-25 02:21:05 -0300 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-01-25 03:16:10 -0300 |
commit | 9a2cdf85205b7c77112d73fbd491426f96e0c993 (patch) | |
tree | 86e792ccf0c5ea93553cbbe5d208eef1e4aba506 /src | |
parent | 531f25a03789dbdd3242edbe00d07dabc85847eb (diff) |
shader/memory: Implement unaligned LDL.S16 and LDS.S16
Diffstat (limited to 'src')
-rw-r--r-- | src/video_core/shader/decode/memory.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/video_core/shader/decode/memory.cpp b/src/video_core/shader/decode/memory.cpp index 2f5ca5de5..8cd0e7d96 100644 --- a/src/video_core/shader/decode/memory.cpp +++ b/src/video_core/shader/decode/memory.cpp @@ -169,12 +169,10 @@ u32 ShaderIR::DecodeMemory(NodeBlock& bb, u32 pc) { }; switch (instr.ldst_sl.type.Value()) { - case StoreType::Signed16: { - Node address = GetAddress(0); - - SetRegister(bb, instr.gpr0, Sign16Extend(GetMemory(0))); + case StoreType::Signed16: + SetRegister(bb, instr.gpr0, + Sign16Extend(ExtractUnaligned(GetMemory(0), GetAddress(0), 0b10, 16))); break; - } case StoreType::Bits32: case StoreType::Bits64: case StoreType::Bits128: { |