From 9a2cdf85205b7c77112d73fbd491426f96e0c993 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Sat, 25 Jan 2020 02:21:05 -0300 Subject: shader/memory: Implement unaligned LDL.S16 and LDS.S16 --- src/video_core/shader/decode/memory.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'src/video_core') 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: { -- cgit v1.2.3