diff options
| author | 2020-01-25 02:21:05 -0300 | |
|---|---|---|
| committer | 2020-01-25 03:16:10 -0300 | |
| commit | 9a2cdf85205b7c77112d73fbd491426f96e0c993 (patch) | |
| tree | 86e792ccf0c5ea93553cbbe5d208eef1e4aba506 | |
| parent | shader/memory: Move unaligned load/store to functions (diff) | |
| download | yuzu-9a2cdf85205b7c77112d73fbd491426f96e0c993.tar.gz yuzu-9a2cdf85205b7c77112d73fbd491426f96e0c993.tar.xz yuzu-9a2cdf85205b7c77112d73fbd491426f96e0c993.zip | |
shader/memory: Implement unaligned LDL.S16 and LDS.S16
| -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) { | |||
| 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: { |