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
This commit is contained in:
parent
c2c765b30f
commit
571848536b
4 changed files with 269 additions and 3 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue