Implement IMUL, PCNT and CONT shader instructions, fix FFMA32I and HFMA32I (#2972)

* Implement IMUL shader instruction

* Implement PCNT/CONT instruction and fix FFMA32I

* Add HFMA232I to the table

* Shader cache version bump

* No Rc on Ffma32i
This commit is contained in:
gdkchan 2022-01-10 12:08:00 -03:00 committed by GitHub
parent 952c6e4d45
commit 7f6b3d234a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 108 additions and 68 deletions

View file

@ -1960,7 +1960,6 @@ namespace Ryujinx.Graphics.Shader.Decoders
public int Dest => (int)((_opcode >> 0) & 0xFF);
public int SrcA => (int)((_opcode >> 8) & 0xFF);
public int Imm32 => (int)(_opcode >> 20);
public int SrcC => (int)((_opcode >> 39) & 0xFF);
public int Pred => (int)((_opcode >> 16) & 0x7);
public bool PredInv => (_opcode & 0x80000) != 0;
public bool NegC => (_opcode & 0x200000000000000) != 0;
@ -2460,7 +2459,6 @@ namespace Ryujinx.Graphics.Shader.Decoders
public int Dest => (int)((_opcode >> 0) & 0xFF);
public int SrcA => (int)((_opcode >> 8) & 0xFF);
public int Imm => (int)(_opcode >> 20);
public int SrcC => (int)((_opcode >> 39) & 0xFF);
public HalfSwizzle ASwizzle => (HalfSwizzle)((_opcode >> 47) & 0x3);
public int Pred => (int)((_opcode >> 16) & 0x7);
public bool PredInv => (_opcode & 0x80000) != 0;