aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics/Gal/Shader/ShaderOpCodeTable.cs
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2018-07-17 16:50:00 -0300
committergdkchan <gab.dark.100@gmail.com>2018-07-17 16:50:00 -0300
commit571848536b347a85c85955745a16d4f7b9a0c04a (patch)
treec953477670bf892fd746baeffbe0cfe036952366 /Ryujinx.Graphics/Gal/Shader/ShaderOpCodeTable.cs
parentc2c765b30fdfa9184df580133e22ae946eebc022 (diff)
Implement some shader instructions (#252)
* Add IADDI32, IADD and SEL shader instructions * Add LOP shader instruction and fix LOP32I pass_b * Add ISET shader instruction * Add IADD3 shader instruction * Address feedback * Fixup OperA in Iadd_I32
Diffstat (limited to 'Ryujinx.Graphics/Gal/Shader/ShaderOpCodeTable.cs')
-rw-r--r--Ryujinx.Graphics/Gal/Shader/ShaderOpCodeTable.cs16
1 files changed, 16 insertions, 0 deletions
diff --git a/Ryujinx.Graphics/Gal/Shader/ShaderOpCodeTable.cs b/Ryujinx.Graphics/Gal/Shader/ShaderOpCodeTable.cs
index b4f51e50..1ac11785 100644
--- a/Ryujinx.Graphics/Gal/Shader/ShaderOpCodeTable.cs
+++ b/Ryujinx.Graphics/Gal/Shader/ShaderOpCodeTable.cs
@@ -64,6 +64,13 @@ namespace Ryujinx.Graphics.Gal.Shader
Set("0100110011100x", ShaderDecode.I2i_C);
Set("0011100x11100x", ShaderDecode.I2i_I);
Set("0101110011100x", ShaderDecode.I2i_R);
+ Set("0100110000010x", ShaderDecode.Iadd_C);
+ Set("0011100000010x", ShaderDecode.Iadd_I);
+ Set("0001110x0xxxxx", ShaderDecode.Iadd_I32);
+ Set("0101110000010x", ShaderDecode.Iadd_R);
+ Set("010011001100xx", ShaderDecode.Iadd3_C);
+ Set("001110001100xx", ShaderDecode.Iadd3_I);
+ Set("010111001100xx", ShaderDecode.Iadd3_R);
Set("0100110000100x", ShaderDecode.Imnmx_C);
Set("0011100x00100x", ShaderDecode.Imnmx_I);
Set("0101110000100x", ShaderDecode.Imnmx_R);
@@ -71,13 +78,19 @@ namespace Ryujinx.Graphics.Gal.Shader
Set("0100110000011x", ShaderDecode.Iscadd_C);
Set("0011100x00011x", ShaderDecode.Iscadd_I);
Set("0101110000011x", ShaderDecode.Iscadd_R);
+ Set("010010110101xx", ShaderDecode.Iset_C);
+ Set("001101100101xx", ShaderDecode.Iset_I);
+ Set("010110110101xx", ShaderDecode.Iset_R);
Set("010010110110xx", ShaderDecode.Isetp_C);
Set("0011011x0110xx", ShaderDecode.Isetp_I);
Set("010110110110xx", ShaderDecode.Isetp_R);
Set("111000110011xx", ShaderDecode.Kil);
Set("1110111111011x", ShaderDecode.Ld_A);
Set("1110111110010x", ShaderDecode.Ld_C);
+ Set("0100110001000x", ShaderDecode.Lop_C);
+ Set("0011100001000x", ShaderDecode.Lop_I);
Set("000001xxxxxxxx", ShaderDecode.Lop_I32);
+ Set("0101110001000x", ShaderDecode.Lop_R);
Set("0100110010011x", ShaderDecode.Mov_C);
Set("0011100x10011x", ShaderDecode.Mov_I);
Set("000000010000xx", ShaderDecode.Mov_I32);
@@ -87,6 +100,9 @@ namespace Ryujinx.Graphics.Gal.Shader
Set("0100110010010x", ShaderDecode.Rro_C);
Set("0011100x10010x", ShaderDecode.Rro_I);
Set("0101110010010x", ShaderDecode.Rro_R);
+ Set("0100110010100x", ShaderDecode.Sel_C);
+ Set("0011100010100x", ShaderDecode.Sel_I);
+ Set("0101110010100x", ShaderDecode.Sel_R);
Set("0100110001001x", ShaderDecode.Shl_C);
Set("0011100x01001x", ShaderDecode.Shl_I);
Set("0101110001001x", ShaderDecode.Shl_R);