diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2020-02-13 21:48:07 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-02-14 01:48:07 +0100 |
| commit | 5a9dba0756e3173e3983cad3626e8e876b3c3041 (patch) | |
| tree | ad89503d9e73008327c62a207cec79ef82454ded /Ryujinx.Graphics.Shader/Decoders | |
| parent | 416ddd0f6e9b5c9e9b3da627cc90c98bb5a3a56b (diff) | |
Sign-extend shader memory instruction offsets (#934)
Diffstat (limited to 'Ryujinx.Graphics.Shader/Decoders')
| -rw-r--r-- | Ryujinx.Graphics.Shader/Decoders/OpCodeLdc.cs | 2 | ||||
| -rw-r--r-- | Ryujinx.Graphics.Shader/Decoders/OpCodeMemory.cs | 2 | ||||
| -rw-r--r-- | Ryujinx.Graphics.Shader/Decoders/OpCodeRed.cs | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/Ryujinx.Graphics.Shader/Decoders/OpCodeLdc.cs b/Ryujinx.Graphics.Shader/Decoders/OpCodeLdc.cs index cc9f0658..c18a0a9e 100644 --- a/Ryujinx.Graphics.Shader/Decoders/OpCodeLdc.cs +++ b/Ryujinx.Graphics.Shader/Decoders/OpCodeLdc.cs @@ -17,7 +17,7 @@ namespace Ryujinx.Graphics.Shader.Decoders Rd = new Register(opCode.Extract(0, 8), RegisterType.Gpr); Ra = new Register(opCode.Extract(8, 8), RegisterType.Gpr); - Offset = opCode.Extract(22, 14); + Offset = (opCode.Extract(20, 16) << 16) >> 16; Slot = opCode.Extract(36, 5); Size = (IntegerSize)opCode.Extract(48, 3); diff --git a/Ryujinx.Graphics.Shader/Decoders/OpCodeMemory.cs b/Ryujinx.Graphics.Shader/Decoders/OpCodeMemory.cs index bece4562..a0a9c8ca 100644 --- a/Ryujinx.Graphics.Shader/Decoders/OpCodeMemory.cs +++ b/Ryujinx.Graphics.Shader/Decoders/OpCodeMemory.cs @@ -18,7 +18,7 @@ namespace Ryujinx.Graphics.Shader.Decoders Rd = new Register(opCode.Extract(0, 8), RegisterType.Gpr); Ra = new Register(opCode.Extract(8, 8), RegisterType.Gpr); - Offset = opCode.Extract(20, 24); + Offset = (opCode.Extract(20, 24) << 8) >> 8; Extended = opCode.Extract(45); diff --git a/Ryujinx.Graphics.Shader/Decoders/OpCodeRed.cs b/Ryujinx.Graphics.Shader/Decoders/OpCodeRed.cs index 8fde82a2..2629d289 100644 --- a/Ryujinx.Graphics.Shader/Decoders/OpCodeRed.cs +++ b/Ryujinx.Graphics.Shader/Decoders/OpCodeRed.cs @@ -24,7 +24,7 @@ namespace Ryujinx.Graphics.Shader.Decoders AtomicOp = (AtomicOp)opCode.Extract(23, 3); - Offset = opCode.Extract(28, 20); + Offset = (opCode.Extract(28, 20) << 12) >> 12; Extended = opCode.Extract(48); } |
