summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2020-01-25 06:21:05 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2020-01-25 07:16:10 +0100
commit9a2cdf85205b7c77112d73fbd491426f96e0c993 (patch)
tree86e792ccf0c5ea93553cbbe5d208eef1e4aba506 /src
parentshader/memory: Move unaligned load/store to functions (diff)
downloadyuzu-9a2cdf85205b7c77112d73fbd491426f96e0c993.tar
yuzu-9a2cdf85205b7c77112d73fbd491426f96e0c993.tar.gz
yuzu-9a2cdf85205b7c77112d73fbd491426f96e0c993.tar.bz2
yuzu-9a2cdf85205b7c77112d73fbd491426f96e0c993.tar.lz
yuzu-9a2cdf85205b7c77112d73fbd491426f96e0c993.tar.xz
yuzu-9a2cdf85205b7c77112d73fbd491426f96e0c993.tar.zst
yuzu-9a2cdf85205b7c77112d73fbd491426f96e0c993.zip
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) {
};
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: {