summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2020-01-25 02:21:05 -0300
committerGravatar ReinUsesLisp2020-01-25 03:16:10 -0300
commit9a2cdf85205b7c77112d73fbd491426f96e0c993 (patch)
tree86e792ccf0c5ea93553cbbe5d208eef1e4aba506 /src
parentshader/memory: Move unaligned load/store to functions (diff)
downloadyuzu-9a2cdf85205b7c77112d73fbd491426f96e0c993.tar.gz
yuzu-9a2cdf85205b7c77112d73fbd491426f96e0c993.tar.xz
yuzu-9a2cdf85205b7c77112d73fbd491426f96e0c993.zip
shader/memory: Implement unaligned LDL.S16 and LDS.S16
Diffstat (limited to 'src')
-rw-r--r--src/video_core/shader/decode/memory.cpp8
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) {
169 }; 169 };
170 170
171 switch (instr.ldst_sl.type.Value()) { 171 switch (instr.ldst_sl.type.Value()) {
172 case StoreType::Signed16: { 172 case StoreType::Signed16:
173 Node address = GetAddress(0); 173 SetRegister(bb, instr.gpr0,
174 174 Sign16Extend(ExtractUnaligned(GetMemory(0), GetAddress(0), 0b10, 16)));
175 SetRegister(bb, instr.gpr0, Sign16Extend(GetMemory(0)));
176 break; 175 break;
177 }
178 case StoreType::Bits32: 176 case StoreType::Bits32:
179 case StoreType::Bits64: 177 case StoreType::Bits64:
180 case StoreType::Bits128: { 178 case StoreType::Bits128: {