diff options
author | gdk <gab.dark.100@gmail.com> | 2019-11-14 14:20:30 -0300 |
---|---|---|
committer | Thog <thog@protonmail.com> | 2020-01-09 02:13:00 +0100 |
commit | f0a59f345c633b757ebd2a22fca23d7dab0f9f99 (patch) | |
tree | 444aa5ac024119594bc9f5b51e3710483537e6e6 /Ryujinx.Graphics.Shader/Decoders/OpCodeTable.cs | |
parent | d274328c3192fd85b9eec661b00f1599d673776c (diff) |
Add partial support for the BRX shader instruction
Diffstat (limited to 'Ryujinx.Graphics.Shader/Decoders/OpCodeTable.cs')
-rw-r--r-- | Ryujinx.Graphics.Shader/Decoders/OpCodeTable.cs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/Ryujinx.Graphics.Shader/Decoders/OpCodeTable.cs b/Ryujinx.Graphics.Shader/Decoders/OpCodeTable.cs index 58bd2b88..bc30940d 100644 --- a/Ryujinx.Graphics.Shader/Decoders/OpCodeTable.cs +++ b/Ryujinx.Graphics.Shader/Decoders/OpCodeTable.cs @@ -41,7 +41,8 @@ namespace Ryujinx.Graphics.Shader.Decoders Set("0101001111110x", InstEmit.Bfi, typeof(OpCodeAluRegCbuf)); Set("0101101111110x", InstEmit.Bfi, typeof(OpCodeAluReg)); Set("111000100100xx", InstEmit.Bra, typeof(OpCodeBranch)); - Set("111000110100xx", InstEmit.Brk, typeof(OpCodeSync)); + Set("111000110100xx", InstEmit.Brk, typeof(OpCodeBranchPop)); + Set("111000100101xx", InstEmit.Brx, typeof(OpCodeBranchIndir)); Set("0101000010100x", InstEmit.Csetp, typeof(OpCodePsetp)); Set("111000110000xx", InstEmit.Exit, typeof(OpCodeExit)); Set("0100110010101x", InstEmit.F2F, typeof(OpCodeFArithCbuf)); @@ -137,7 +138,7 @@ namespace Ryujinx.Graphics.Shader.Decoders Set("0101110010011x", InstEmit.Mov, typeof(OpCodeAluReg)); Set("0101000010000x", InstEmit.Mufu, typeof(OpCodeFArith)); Set("1111101111100x", InstEmit.Out, typeof(OpCode)); - Set("111000101010xx", InstEmit.Pbk, typeof(OpCodeSsy)); + Set("111000101010xx", InstEmit.Pbk, typeof(OpCodePush)); Set("0100110000001x", InstEmit.Popc, typeof(OpCodeAluCbuf)); Set("0011100x00001x", InstEmit.Popc, typeof(OpCodeAluImm)); Set("0101110000001x", InstEmit.Popc, typeof(OpCodeAluReg)); @@ -157,12 +158,12 @@ namespace Ryujinx.Graphics.Shader.Decoders Set("0100110000101x", InstEmit.Shr, typeof(OpCodeAluCbuf)); Set("0011100x00101x", InstEmit.Shr, typeof(OpCodeAluImm)); Set("0101110000101x", InstEmit.Shr, typeof(OpCodeAluReg)); - Set("111000101001xx", InstEmit.Ssy, typeof(OpCodeSsy)); + Set("111000101001xx", InstEmit.Ssy, typeof(OpCodePush)); Set("1110111101010x", InstEmit.St, typeof(OpCodeMemory)); Set("1110111011011x", InstEmit.Stg, typeof(OpCodeMemory)); Set("1110111101011x", InstEmit.Sts, typeof(OpCodeMemory)); Set("11101011001xxx", InstEmit.Sust, typeof(OpCodeImage)); - Set("1111000011111x", InstEmit.Sync, typeof(OpCodeSync)); + Set("1111000011111x", InstEmit.Sync, typeof(OpCodeBranchPop)); Set("110000xxxx111x", InstEmit.Tex, typeof(OpCodeTex)); Set("1101111010111x", InstEmit.TexB, typeof(OpCodeTexB)); Set("1101x00xxxxxxx", InstEmit.Texs, typeof(OpCodeTexs)); |