|
|
@@ -9,525 +9,525 @@ namespace Ryujinx.Cpu.LightningJit.Arm32
|
|
|
|
|
|
static InstTableT32()
|
|
|
{
|
|
|
- InstEncoding[] rnRdsConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] rnRdsConstraints =
|
|
|
+ [
|
|
|
new(0x000D0000, 0x000F0000),
|
|
|
- new(0x00100F00, 0x00100F00),
|
|
|
- };
|
|
|
+ new(0x00100F00, 0x00100F00)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] rnRnConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] rnRnConstraints =
|
|
|
+ [
|
|
|
new(0x000D0000, 0x000F0000),
|
|
|
- new(0x000F0000, 0x000F0000),
|
|
|
- };
|
|
|
+ new(0x000F0000, 0x000F0000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] rdsConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x00100F00, 0x00100F00),
|
|
|
- };
|
|
|
+ InstEncoding[] rdsConstraints =
|
|
|
+ [
|
|
|
+ new(0x00100F00, 0x00100F00)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] vdVmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] vdVmConstraints =
|
|
|
+ [
|
|
|
new(0x00001000, 0x00001000),
|
|
|
- new(0x00000001, 0x00000001),
|
|
|
- };
|
|
|
+ new(0x00000001, 0x00000001)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] condCondCondConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] condCondCondConstraints =
|
|
|
+ [
|
|
|
new(0x03800000, 0x03C00000),
|
|
|
new(0x03C00000, 0x03C00000),
|
|
|
- new(0x03800000, 0x03800000),
|
|
|
- };
|
|
|
-
|
|
|
- InstEncoding[] rnConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x000F0000, 0x000F0000),
|
|
|
- };
|
|
|
-
|
|
|
- InstEncoding[] hConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x00000001, 0x00000001),
|
|
|
- };
|
|
|
-
|
|
|
- InstEncoding[] imodmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x00000000, 0x00000700),
|
|
|
- };
|
|
|
-
|
|
|
- InstEncoding[] optionConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x00000000, 0x0000000F),
|
|
|
- };
|
|
|
-
|
|
|
- InstEncoding[] puwPwPuwPuwConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ new(0x03800000, 0x03800000)
|
|
|
+ ];
|
|
|
+
|
|
|
+ InstEncoding[] rnConstraints =
|
|
|
+ [
|
|
|
+ new(0x000F0000, 0x000F0000)
|
|
|
+ ];
|
|
|
+
|
|
|
+ InstEncoding[] hConstraints =
|
|
|
+ [
|
|
|
+ new(0x00000001, 0x00000001)
|
|
|
+ ];
|
|
|
+
|
|
|
+ InstEncoding[] imodmConstraints =
|
|
|
+ [
|
|
|
+ new(0x00000000, 0x00000700)
|
|
|
+ ];
|
|
|
+
|
|
|
+ InstEncoding[] optionConstraints =
|
|
|
+ [
|
|
|
+ new(0x00000000, 0x0000000F)
|
|
|
+ ];
|
|
|
+
|
|
|
+ InstEncoding[] puwPwPuwPuwConstraints =
|
|
|
+ [
|
|
|
new(0x00000000, 0x01A00000),
|
|
|
new(0x01000000, 0x01200000),
|
|
|
new(0x00200000, 0x01A00000),
|
|
|
- new(0x01A00000, 0x01A00000),
|
|
|
- };
|
|
|
+ new(0x01A00000, 0x01A00000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] rnPuwConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] rnPuwConstraints =
|
|
|
+ [
|
|
|
new(0x000F0000, 0x000F0000),
|
|
|
- new(0x00000000, 0x01A00000),
|
|
|
- };
|
|
|
+ new(0x00000000, 0x01A00000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] puwConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x00000000, 0x01A00000),
|
|
|
- };
|
|
|
+ InstEncoding[] puwConstraints =
|
|
|
+ [
|
|
|
+ new(0x00000000, 0x01A00000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] rnRtConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] rnRtConstraints =
|
|
|
+ [
|
|
|
new(0x000F0000, 0x000F0000),
|
|
|
- new(0x0000F000, 0x0000F000),
|
|
|
- };
|
|
|
+ new(0x0000F000, 0x0000F000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] rnRtpuwPuwPwConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] rnRtpuwPuwPwConstraints =
|
|
|
+ [
|
|
|
new(0x000F0000, 0x000F0000),
|
|
|
new(0x0000F400, 0x0000F700),
|
|
|
new(0x00000600, 0x00000700),
|
|
|
- new(0x00000000, 0x00000500),
|
|
|
- };
|
|
|
+ new(0x00000000, 0x00000500)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] rtConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x0000F000, 0x0000F000),
|
|
|
- };
|
|
|
+ InstEncoding[] rtConstraints =
|
|
|
+ [
|
|
|
+ new(0x0000F000, 0x0000F000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] rnPwConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] rnPwConstraints =
|
|
|
+ [
|
|
|
new(0x000F0000, 0x000F0000),
|
|
|
- new(0x00000000, 0x01200000),
|
|
|
- };
|
|
|
+ new(0x00000000, 0x01200000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] pwConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x00000000, 0x01200000),
|
|
|
- };
|
|
|
+ InstEncoding[] pwConstraints =
|
|
|
+ [
|
|
|
+ new(0x00000000, 0x01200000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] rnPuwPwConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] rnPuwPwConstraints =
|
|
|
+ [
|
|
|
new(0x000F0000, 0x000F0000),
|
|
|
new(0x00000600, 0x00000700),
|
|
|
- new(0x00000000, 0x00000500),
|
|
|
- };
|
|
|
+ new(0x00000000, 0x00000500)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] raConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x0000F000, 0x0000F000),
|
|
|
- };
|
|
|
+ InstEncoding[] raConstraints =
|
|
|
+ [
|
|
|
+ new(0x0000F000, 0x0000F000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sTConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sTConstraints =
|
|
|
+ [
|
|
|
new(0x00100000, 0x00100000),
|
|
|
- new(0x00000010, 0x00000010),
|
|
|
- };
|
|
|
+ new(0x00000010, 0x00000010)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] vdVnVmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] vdVnVmConstraints =
|
|
|
+ [
|
|
|
new(0x00001000, 0x00001000),
|
|
|
new(0x00010000, 0x00010000),
|
|
|
- new(0x00000001, 0x00000001),
|
|
|
- };
|
|
|
+ new(0x00000001, 0x00000001)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] shimm2imm3Constraints = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x00200000, 0x002070C0),
|
|
|
- };
|
|
|
+ InstEncoding[] shimm2imm3Constraints =
|
|
|
+ [
|
|
|
+ new(0x00200000, 0x002070C0)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] rnimm8Constraints = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x000E0000, 0x000F00FF),
|
|
|
- };
|
|
|
+ InstEncoding[] rnimm8Constraints =
|
|
|
+ [
|
|
|
+ new(0x000E0000, 0x000F00FF)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeQvdQvnQvmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeQvdQvnQvmConstraints =
|
|
|
+ [
|
|
|
new(0x00300000, 0x00300000),
|
|
|
new(0x00001040, 0x00001040),
|
|
|
new(0x00010040, 0x00010040),
|
|
|
- new(0x00000041, 0x00000041),
|
|
|
- };
|
|
|
+ new(0x00000041, 0x00000041)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeVdConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeVdConstraints =
|
|
|
+ [
|
|
|
new(0x00300000, 0x00300000),
|
|
|
- new(0x00001000, 0x00001000),
|
|
|
- };
|
|
|
+ new(0x00001000, 0x00001000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] qvdQvnQvmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] qvdQvnQvmConstraints =
|
|
|
+ [
|
|
|
new(0x00001040, 0x00001040),
|
|
|
new(0x00010040, 0x00010040),
|
|
|
- new(0x00000041, 0x00000041),
|
|
|
- };
|
|
|
+ new(0x00000041, 0x00000041)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeQvdQvmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeQvdQvmConstraints =
|
|
|
+ [
|
|
|
new(0x000C0000, 0x000C0000),
|
|
|
new(0x00001040, 0x00001040),
|
|
|
- new(0x00000041, 0x00000041),
|
|
|
- };
|
|
|
+ new(0x00000041, 0x00000041)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeVnVmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeVnVmConstraints =
|
|
|
+ [
|
|
|
new(0x00300000, 0x00300000),
|
|
|
new(0x00010000, 0x00010000),
|
|
|
- new(0x00000001, 0x00000001),
|
|
|
- };
|
|
|
+ new(0x00000001, 0x00000001)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeVdOpvnConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeVdOpvnConstraints =
|
|
|
+ [
|
|
|
new(0x00300000, 0x00300000),
|
|
|
new(0x00001000, 0x00001000),
|
|
|
- new(0x00010100, 0x00010100),
|
|
|
- };
|
|
|
+ new(0x00010100, 0x00010100)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] cmodeCmodeQvdConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] cmodeCmodeQvdConstraints =
|
|
|
+ [
|
|
|
new(0x00000000, 0x00000100),
|
|
|
new(0x00000C00, 0x00000C00),
|
|
|
- new(0x00001040, 0x00001040),
|
|
|
- };
|
|
|
+ new(0x00001040, 0x00001040)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] qvdQvnQvmOpConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] qvdQvnQvmOpConstraints =
|
|
|
+ [
|
|
|
new(0x00001040, 0x00001040),
|
|
|
new(0x00010040, 0x00010040),
|
|
|
new(0x00000041, 0x00000041),
|
|
|
- new(0x00000000, 0x00300000),
|
|
|
- };
|
|
|
+ new(0x00000000, 0x00300000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] qvdQvnQvmSizeConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] qvdQvnQvmSizeConstraints =
|
|
|
+ [
|
|
|
new(0x00001040, 0x00001040),
|
|
|
new(0x00010040, 0x00010040),
|
|
|
new(0x00000041, 0x00000041),
|
|
|
- new(0x00300000, 0x00300000),
|
|
|
- };
|
|
|
+ new(0x00300000, 0x00300000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] qvdQvnConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] qvdQvnConstraints =
|
|
|
+ [
|
|
|
new(0x00001040, 0x00001040),
|
|
|
- new(0x00010040, 0x00010040),
|
|
|
- };
|
|
|
+ new(0x00010040, 0x00010040)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] qvdQvmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] qvdQvmConstraints =
|
|
|
+ [
|
|
|
new(0x00001040, 0x00001040),
|
|
|
- new(0x00000041, 0x00000041),
|
|
|
- };
|
|
|
+ new(0x00000041, 0x00000041)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x00000000, 0x00000300),
|
|
|
- };
|
|
|
+ InstEncoding[] sizeConstraints =
|
|
|
+ [
|
|
|
+ new(0x00000000, 0x00000300)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] vmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x00000001, 0x00000001),
|
|
|
- };
|
|
|
+ InstEncoding[] vmConstraints =
|
|
|
+ [
|
|
|
+ new(0x00000001, 0x00000001)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] opvdOpvmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] opvdOpvmConstraints =
|
|
|
+ [
|
|
|
new(0x00001100, 0x00001100),
|
|
|
- new(0x00000001, 0x00000101),
|
|
|
- };
|
|
|
+ new(0x00000001, 0x00000101)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] imm6Opimm6Imm6QvdQvmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] imm6Opimm6Imm6QvdQvmConstraints =
|
|
|
+ [
|
|
|
new(0x00000000, 0x00380000),
|
|
|
new(0x00200000, 0x00300200),
|
|
|
new(0x00000000, 0x00200000),
|
|
|
new(0x00001040, 0x00001040),
|
|
|
- new(0x00000041, 0x00000041),
|
|
|
- };
|
|
|
+ new(0x00000041, 0x00000041)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] qvdEbConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] qvdEbConstraints =
|
|
|
+ [
|
|
|
new(0x00210000, 0x00210000),
|
|
|
- new(0x00400020, 0x00400020),
|
|
|
- };
|
|
|
+ new(0x00400020, 0x00400020)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] imm4QvdConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] imm4QvdConstraints =
|
|
|
+ [
|
|
|
new(0x00000000, 0x00070000),
|
|
|
- new(0x00001040, 0x00001040),
|
|
|
- };
|
|
|
+ new(0x00001040, 0x00001040)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] qvdQvnQvmQimm4Constraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] qvdQvnQvmQimm4Constraints =
|
|
|
+ [
|
|
|
new(0x00001040, 0x00001040),
|
|
|
new(0x00010040, 0x00010040),
|
|
|
new(0x00000041, 0x00000041),
|
|
|
- new(0x00000800, 0x00000840),
|
|
|
- };
|
|
|
+ new(0x00000800, 0x00000840)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] qvdConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x00001040, 0x00001040),
|
|
|
- };
|
|
|
+ InstEncoding[] qvdConstraints =
|
|
|
+ [
|
|
|
+ new(0x00001040, 0x00001040)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] vdVnConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] vdVnConstraints =
|
|
|
+ [
|
|
|
new(0x00001000, 0x00001000),
|
|
|
- new(0x00010000, 0x00010000),
|
|
|
- };
|
|
|
+ new(0x00010000, 0x00010000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeConstraints2 = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x00000C00, 0x00000C00),
|
|
|
- };
|
|
|
+ InstEncoding[] sizeConstraints2 =
|
|
|
+ [
|
|
|
+ new(0x00000C00, 0x00000C00)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeIndexAlignIndexAlignConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeIndexAlignIndexAlignConstraints =
|
|
|
+ [
|
|
|
new(0x00000C00, 0x00000C00),
|
|
|
new(0x00000010, 0x00000030),
|
|
|
- new(0x00000020, 0x00000030),
|
|
|
- };
|
|
|
-
|
|
|
- InstEncoding[] sizeSizeaConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x000000C0, 0x000000C0),
|
|
|
- new(0x00000010, 0x000000D0),
|
|
|
- };
|
|
|
-
|
|
|
- InstEncoding[] alignConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x00000020, 0x00000020),
|
|
|
- };
|
|
|
-
|
|
|
- InstEncoding[] alignConstraints2 = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x00000030, 0x00000030),
|
|
|
- };
|
|
|
+ new(0x00000020, 0x00000030)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeConstraints3 = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeSizeaConstraints =
|
|
|
+ [
|
|
|
new(0x000000C0, 0x000000C0),
|
|
|
- };
|
|
|
-
|
|
|
- InstEncoding[] alignSizeConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ new(0x00000010, 0x000000D0)
|
|
|
+ ];
|
|
|
+
|
|
|
+ InstEncoding[] alignConstraints =
|
|
|
+ [
|
|
|
+ new(0x00000020, 0x00000020)
|
|
|
+ ];
|
|
|
+
|
|
|
+ InstEncoding[] alignConstraints2 =
|
|
|
+ [
|
|
|
+ new(0x00000030, 0x00000030)
|
|
|
+ ];
|
|
|
+
|
|
|
+ InstEncoding[] sizeConstraints3 =
|
|
|
+ [
|
|
|
+ new(0x000000C0, 0x000000C0)
|
|
|
+ ];
|
|
|
+
|
|
|
+ InstEncoding[] alignSizeConstraints =
|
|
|
+ [
|
|
|
new(0x00000030, 0x00000030),
|
|
|
- new(0x000000C0, 0x000000C0),
|
|
|
- };
|
|
|
+ new(0x000000C0, 0x000000C0)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeAConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeAConstraints =
|
|
|
+ [
|
|
|
new(0x000000C0, 0x000000C0),
|
|
|
- new(0x00000010, 0x00000010),
|
|
|
- };
|
|
|
+ new(0x00000010, 0x00000010)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeAlignConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeAlignConstraints =
|
|
|
+ [
|
|
|
new(0x000000C0, 0x000000C0),
|
|
|
- new(0x00000020, 0x00000020),
|
|
|
- };
|
|
|
+ new(0x00000020, 0x00000020)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeIndexAlignConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeIndexAlignConstraints =
|
|
|
+ [
|
|
|
new(0x00000C00, 0x00000C00),
|
|
|
- new(0x00000030, 0x00000030),
|
|
|
- };
|
|
|
+ new(0x00000030, 0x00000030)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeaConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x000000C0, 0x000000D0),
|
|
|
- };
|
|
|
+ InstEncoding[] sizeaConstraints =
|
|
|
+ [
|
|
|
+ new(0x000000C0, 0x000000D0)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeSizeVdConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeSizeVdConstraints =
|
|
|
+ [
|
|
|
new(0x00300000, 0x00300000),
|
|
|
new(0x00000000, 0x00300000),
|
|
|
- new(0x00001000, 0x00001000),
|
|
|
- };
|
|
|
+ new(0x00001000, 0x00001000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeQvdQvnConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeQvdQvnConstraints =
|
|
|
+ [
|
|
|
new(0x00300000, 0x00300000),
|
|
|
new(0x10001000, 0x10001000),
|
|
|
- new(0x10010000, 0x10010000),
|
|
|
- };
|
|
|
+ new(0x10010000, 0x10010000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] imm3hImm3hImm3hImm3hImm3hVdConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] imm3hImm3hImm3hImm3hImm3hVdConstraints =
|
|
|
+ [
|
|
|
new(0x00000000, 0x00380000),
|
|
|
new(0x00180000, 0x00380000),
|
|
|
new(0x00280000, 0x00380000),
|
|
|
new(0x00300000, 0x00380000),
|
|
|
new(0x00380000, 0x00380000),
|
|
|
- new(0x00001000, 0x00001000),
|
|
|
- };
|
|
|
+ new(0x00001000, 0x00001000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeVmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeVmConstraints =
|
|
|
+ [
|
|
|
new(0x000C0000, 0x000C0000),
|
|
|
- new(0x00000001, 0x00000001),
|
|
|
- };
|
|
|
+ new(0x00000001, 0x00000001)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] opc1opc2Constraints = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x00000040, 0x00400060),
|
|
|
- };
|
|
|
+ InstEncoding[] opc1opc2Constraints =
|
|
|
+ [
|
|
|
+ new(0x00000040, 0x00400060)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] uopc1opc2Uopc1opc2Constraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] uopc1opc2Uopc1opc2Constraints =
|
|
|
+ [
|
|
|
new(0x00800000, 0x00C00060),
|
|
|
- new(0x00000040, 0x00400060),
|
|
|
- };
|
|
|
+ new(0x00000040, 0x00400060)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeOpuOpsizeVdConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeOpuOpsizeVdConstraints =
|
|
|
+ [
|
|
|
new(0x00300000, 0x00300000),
|
|
|
new(0x10000200, 0x10000200),
|
|
|
new(0x00100200, 0x00300200),
|
|
|
- new(0x00001000, 0x00001000),
|
|
|
- };
|
|
|
+ new(0x00001000, 0x00001000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeOpsizeOpsizeQvdQvnQvmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeOpsizeOpsizeQvdQvnQvmConstraints =
|
|
|
+ [
|
|
|
new(0x00300000, 0x00300000),
|
|
|
new(0x10100000, 0x10300000),
|
|
|
new(0x10200000, 0x10300000),
|
|
|
new(0x00001040, 0x00001040),
|
|
|
new(0x00010040, 0x00010040),
|
|
|
- new(0x00000041, 0x00000041),
|
|
|
- };
|
|
|
+ new(0x00000041, 0x00000041)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] cmodeQvdConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] cmodeQvdConstraints =
|
|
|
+ [
|
|
|
new(0x00000E00, 0x00000E00),
|
|
|
- new(0x00001040, 0x00001040),
|
|
|
- };
|
|
|
+ new(0x00001040, 0x00001040)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] qConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x00000040, 0x00000040),
|
|
|
- };
|
|
|
+ InstEncoding[] qConstraints =
|
|
|
+ [
|
|
|
+ new(0x00000040, 0x00000040)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeQConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeQConstraints =
|
|
|
+ [
|
|
|
new(0x00300000, 0x00300000),
|
|
|
- new(0x00000040, 0x00000040),
|
|
|
- };
|
|
|
+ new(0x00000040, 0x00000040)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeConstraints4 = new InstEncoding[]
|
|
|
- {
|
|
|
- new(0x00300000, 0x00300000),
|
|
|
- };
|
|
|
+ InstEncoding[] sizeConstraints4 =
|
|
|
+ [
|
|
|
+ new(0x00300000, 0x00300000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] qvdQvnQvmSizeSizeConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] qvdQvnQvmSizeSizeConstraints =
|
|
|
+ [
|
|
|
new(0x00001040, 0x00001040),
|
|
|
new(0x00010040, 0x00010040),
|
|
|
new(0x00000041, 0x00000041),
|
|
|
new(0x00000000, 0x00300000),
|
|
|
- new(0x00300000, 0x00300000),
|
|
|
- };
|
|
|
+ new(0x00300000, 0x00300000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeSizeQvdQvnConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeSizeQvdQvnConstraints =
|
|
|
+ [
|
|
|
new(0x00300000, 0x00300000),
|
|
|
new(0x00000000, 0x00300000),
|
|
|
new(0x10001000, 0x10001000),
|
|
|
- new(0x10010000, 0x10010000),
|
|
|
- };
|
|
|
+ new(0x10010000, 0x10010000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] opSizeVmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] opSizeVmConstraints =
|
|
|
+ [
|
|
|
new(0x00000000, 0x000000C0),
|
|
|
new(0x000C0000, 0x000C0000),
|
|
|
- new(0x00000001, 0x00000001),
|
|
|
- };
|
|
|
+ new(0x00000001, 0x00000001)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] qvdQvmQvnConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] qvdQvmQvnConstraints =
|
|
|
+ [
|
|
|
new(0x00001040, 0x00001040),
|
|
|
new(0x00000041, 0x00000041),
|
|
|
- new(0x00010040, 0x00010040),
|
|
|
- };
|
|
|
+ new(0x00010040, 0x00010040)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] imm6UopVmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] imm6UopVmConstraints =
|
|
|
+ [
|
|
|
new(0x00000000, 0x00380000),
|
|
|
new(0x00000000, 0x10000100),
|
|
|
- new(0x00000001, 0x00000001),
|
|
|
- };
|
|
|
+ new(0x00000001, 0x00000001)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] imm6lUopQvdQvmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] imm6lUopQvdQvmConstraints =
|
|
|
+ [
|
|
|
new(0x00000000, 0x00380080),
|
|
|
new(0x00000000, 0x10000100),
|
|
|
new(0x00001040, 0x00001040),
|
|
|
- new(0x00000041, 0x00000041),
|
|
|
- };
|
|
|
+ new(0x00000041, 0x00000041)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] qvdQvmSizeSizeConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] qvdQvmSizeSizeConstraints =
|
|
|
+ [
|
|
|
new(0x00001040, 0x00001040),
|
|
|
new(0x00000041, 0x00000041),
|
|
|
new(0x00000000, 0x000C0000),
|
|
|
- new(0x000C0000, 0x000C0000),
|
|
|
- };
|
|
|
+ new(0x000C0000, 0x000C0000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeSizeSizeQvdQvmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeSizeSizeQvdQvmConstraints =
|
|
|
+ [
|
|
|
new(0x00040000, 0x000C0000),
|
|
|
new(0x00080000, 0x000C0000),
|
|
|
new(0x000C0000, 0x000C0000),
|
|
|
new(0x00001040, 0x00001040),
|
|
|
- new(0x00000041, 0x00000041),
|
|
|
- };
|
|
|
+ new(0x00000041, 0x00000041)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeSizeQvdQvmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeSizeQvdQvmConstraints =
|
|
|
+ [
|
|
|
new(0x00080000, 0x000C0000),
|
|
|
new(0x000C0000, 0x000C0000),
|
|
|
new(0x00001040, 0x00001040),
|
|
|
- new(0x00000041, 0x00000041),
|
|
|
- };
|
|
|
+ new(0x00000041, 0x00000041)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] imm6lQvdQvmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] imm6lQvdQvmConstraints =
|
|
|
+ [
|
|
|
new(0x00000000, 0x00380080),
|
|
|
new(0x00001040, 0x00001040),
|
|
|
- new(0x00000041, 0x00000041),
|
|
|
- };
|
|
|
+ new(0x00000041, 0x00000041)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] imm6VmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] imm6VmConstraints =
|
|
|
+ [
|
|
|
new(0x00000000, 0x00380000),
|
|
|
- new(0x00000001, 0x00000001),
|
|
|
- };
|
|
|
+ new(0x00000001, 0x00000001)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] imm6VdImm6Imm6Imm6Constraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] imm6VdImm6Imm6Imm6Constraints =
|
|
|
+ [
|
|
|
new(0x00000000, 0x00380000),
|
|
|
new(0x00001000, 0x00001000),
|
|
|
new(0x00080000, 0x003F0000),
|
|
|
new(0x00100000, 0x003F0000),
|
|
|
- new(0x00200000, 0x003F0000),
|
|
|
- };
|
|
|
+ new(0x00200000, 0x003F0000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeVdConstraints2 = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeVdConstraints2 =
|
|
|
+ [
|
|
|
new(0x000C0000, 0x000C0000),
|
|
|
- new(0x00001000, 0x00001000),
|
|
|
- };
|
|
|
+ new(0x00001000, 0x00001000)
|
|
|
+ ];
|
|
|
|
|
|
- InstEncoding[] sizeQsizeQvdQvmConstraints = new InstEncoding[]
|
|
|
- {
|
|
|
+ InstEncoding[] sizeQsizeQvdQvmConstraints =
|
|
|
+ [
|
|
|
new(0x000C0000, 0x000C0000),
|
|
|
new(0x00080000, 0x000C0040),
|
|
|
new(0x00001040, 0x00001040),
|
|
|
- new(0x00000041, 0x00000041),
|
|
|
- };
|
|
|
+ new(0x00000041, 0x00000041)
|
|
|
+ ];
|
|
|
|
|
|
- List<InstInfoForTable> insts = new()
|
|
|
- {
|
|
|
+ List<InstInfoForTable> insts =
|
|
|
+ [
|
|
|
new(0xF1400000, 0xFBE08000, InstName.AdcI, T.AdcIT1, IsaVersion.v80, InstFlags.Rd),
|
|
|
new(0xEB400000, 0xFFE08000, InstName.AdcR, T.AdcRT2, IsaVersion.v80, InstFlags.Rd),
|
|
|
new(0xF1000000, 0xFBE08000, rnRdsConstraints, InstName.AddI, T.AddIT3, IsaVersion.v80, InstFlags.Rd),
|
|
|
@@ -1190,7 +1190,7 @@ namespace Ryujinx.Cpu.LightningJit.Arm32
|
|
|
new(0xF3AF8002, 0xFFFFFFFF, InstName.Wfe, T.WfeT2, IsaVersion.v80, InstFlags.None),
|
|
|
new(0xF3AF8003, 0xFFFFFFFF, InstName.Wfi, T.WfiT2, IsaVersion.v80, InstFlags.None),
|
|
|
new(0xF3AF8001, 0xFFFFFFFF, InstName.Yield, T.YieldT2, IsaVersion.v80, InstFlags.None),
|
|
|
- };
|
|
|
+ ];
|
|
|
|
|
|
_table = new(insts);
|
|
|
}
|