mirror of
https://github.com/RPCSX/xed.git
synced 2026-01-31 01:05:17 +01:00
amdxop: fix ignore of W0 for a bunch of instr.
* Changed:
BEXTR_XOP
BLCFILL
BLSFILL
BLCS
TZMSK
BLCIC
BLSIC
T1MSKC
BLCMSK
BLCI
* Did not change the LPW instr; AMD docs were not as clear for those.
can revisit.
Change-Id: I984a683025d45e7b2b255ea207383826b77bda6f
This commit is contained in:
committed by
Mark Charney
parent
6a1d1cbc65
commit
11f051d943
@@ -935,10 +935,14 @@ ISA_SET: TBM
|
||||
EXTENSION: TBM
|
||||
FLAGS: MUST [ cf-0 pf-u af-u zf-mod sf-u of-0 ]
|
||||
|
||||
PATTERN: XOPV 0x10 VNP W0 VL128 NOVSR XMAPA MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM32()
|
||||
PATTERN: XOPV 0x10 VNP not64 VL128 NOVSR XMAPA MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM32()
|
||||
OPERANDS: REG0=GPR32_R():w:d MEM0:r:d IMM0:r:d
|
||||
PATTERN: XOPV 0x10 VNP mode64 VL128 NOVSR XMAPA MOD[mm] MOD!=3 REG[rrr] RM[nnn] MODRM() UIMM32()
|
||||
OPERANDS: REG0=GPRy_R():w:y MEM0:r:y IMM0:r:d
|
||||
|
||||
PATTERN: XOPV 0x10 VNP W0 VL128 NOVSR XMAPA MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM32()
|
||||
PATTERN: XOPV 0x10 VNP not64 VL128 NOVSR XMAPA MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM32()
|
||||
OPERANDS: REG0=GPR32_R():w:d REG1=GPR32_B():r:d IMM0:r:d
|
||||
PATTERN: XOPV 0x10 VNP mode64 VL128 NOVSR XMAPA MOD[0b11] MOD=3 REG[rrr] RM[nnn] UIMM32()
|
||||
OPERANDS: REG0=GPRy_R():w:y REG1=GPRy_B():r:y IMM0:r:d
|
||||
}
|
||||
|
||||
@@ -950,10 +954,14 @@ ISA_SET: TBM
|
||||
EXTENSION: TBM
|
||||
FLAGS: MUST [ cf-mod pf-u af-u zf-mod sf-mod of-0 ]
|
||||
|
||||
PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM()
|
||||
PATTERN: XOPV 0x01 VNP not64 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM()
|
||||
OPERANDS: REG0=VGPR32_N():w:d MEM0:r:d
|
||||
PATTERN: XOPV 0x01 VNP mode64 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM()
|
||||
OPERANDS: REG0=VGPRy_N():w:y MEM0:r:y
|
||||
|
||||
PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b001] RM[nnn]
|
||||
PATTERN: XOPV 0x01 VNP not64 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b001] RM[nnn]
|
||||
OPERANDS: REG0=VGPR32_N():w:d REG1=GPR32_B():r:d
|
||||
PATTERN: XOPV 0x01 VNP mode64 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b001] RM[nnn]
|
||||
OPERANDS: REG0=VGPRy_N():w:y REG1=GPRv_B():r:y
|
||||
}
|
||||
|
||||
@@ -965,10 +973,14 @@ ISA_SET: TBM
|
||||
EXTENSION: TBM
|
||||
FLAGS: MUST [ cf-mod pf-u af-u zf-mod sf-mod of-0 ]
|
||||
|
||||
PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM()
|
||||
PATTERN: XOPV 0x01 VNP not64 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM()
|
||||
OPERANDS: REG0=VGPR32_N():w:d MEM0:r:d
|
||||
PATTERN: XOPV 0x01 VNP mode64 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b010] RM[nnn] MODRM()
|
||||
OPERANDS: REG0=VGPRy_N():w:y MEM0:r:y
|
||||
|
||||
PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b010] RM[nnn]
|
||||
PATTERN: XOPV 0x01 VNP not64 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b010] RM[nnn]
|
||||
OPERANDS: REG0=VGPR32_N():w:d REG1=GPR32_B():r:d
|
||||
PATTERN: XOPV 0x01 VNP mode64 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b010] RM[nnn]
|
||||
OPERANDS: REG0=VGPRy_N():w:y REG1=GPRv_B():r:y
|
||||
}
|
||||
|
||||
@@ -980,10 +992,14 @@ ISA_SET: TBM
|
||||
EXTENSION: TBM
|
||||
FLAGS: MUST [ cf-mod pf-u af-u zf-mod sf-mod of-0 ]
|
||||
|
||||
PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM()
|
||||
PATTERN: XOPV 0x01 VNP not64 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM()
|
||||
OPERANDS: REG0=VGPR32_N():w:d MEM0:r:d
|
||||
PATTERN: XOPV 0x01 VNP mode64 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b011] RM[nnn] MODRM()
|
||||
OPERANDS: REG0=VGPRy_N():w:y MEM0:r:y
|
||||
|
||||
PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b011] RM[nnn]
|
||||
PATTERN: XOPV 0x01 VNP not64 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b011] RM[nnn]
|
||||
OPERANDS: REG0=VGPR32_N():w:d REG1=GPR32_B():r:d
|
||||
PATTERN: XOPV 0x01 VNP mode64 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b011] RM[nnn]
|
||||
OPERANDS: REG0=VGPRy_N():w:y REG1=GPRv_B():r:y
|
||||
}
|
||||
|
||||
@@ -995,10 +1011,14 @@ ISA_SET: TBM
|
||||
EXTENSION: TBM
|
||||
FLAGS: MUST [ cf-mod pf-u af-u zf-mod sf-mod of-0 ]
|
||||
|
||||
PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM()
|
||||
PATTERN: XOPV 0x01 VNP not64 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM()
|
||||
OPERANDS: REG0=VGPR32_N():w:d MEM0:r:d
|
||||
PATTERN: XOPV 0x01 VNP mode64 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b100] RM[nnn] MODRM()
|
||||
OPERANDS: REG0=VGPRy_N():w:y MEM0:r:y
|
||||
|
||||
PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b100] RM[nnn]
|
||||
PATTERN: XOPV 0x01 VNP not64 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b100] RM[nnn]
|
||||
OPERANDS: REG0=VGPR32_N():w:d REG1=GPR32_B():r:d
|
||||
PATTERN: XOPV 0x01 VNP mode64 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b100] RM[nnn]
|
||||
OPERANDS: REG0=VGPRy_N():w:y REG1=GPRv_B():r:y
|
||||
}
|
||||
|
||||
@@ -1010,10 +1030,14 @@ ISA_SET: TBM
|
||||
EXTENSION: TBM
|
||||
FLAGS: MUST [ cf-mod pf-u af-u zf-mod sf-mod of-0 ]
|
||||
|
||||
PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM()
|
||||
PATTERN: XOPV 0x01 VNP not64 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM()
|
||||
OPERANDS: REG0=VGPR32_N():w:d MEM0:r:d
|
||||
PATTERN: XOPV 0x01 VNP mode64 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b101] RM[nnn] MODRM()
|
||||
OPERANDS: REG0=VGPRy_N():w:y MEM0:r:y
|
||||
|
||||
PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b101] RM[nnn]
|
||||
PATTERN: XOPV 0x01 VNP not64 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b101] RM[nnn]
|
||||
OPERANDS: REG0=VGPR32_N():w:d REG1=GPR32_B():r:d
|
||||
PATTERN: XOPV 0x01 VNP mode64 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b101] RM[nnn]
|
||||
OPERANDS: REG0=VGPRy_N():w:y REG1=GPRv_B():r:y
|
||||
}
|
||||
|
||||
@@ -1025,10 +1049,14 @@ ISA_SET: TBM
|
||||
EXTENSION: TBM
|
||||
FLAGS: MUST [ cf-mod pf-u af-u zf-mod sf-mod of-0 ]
|
||||
|
||||
PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM()
|
||||
PATTERN: XOPV 0x01 VNP not64 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM()
|
||||
OPERANDS: REG0=VGPR32_N():w:d MEM0:r:d
|
||||
PATTERN: XOPV 0x01 VNP mode64 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM()
|
||||
OPERANDS: REG0=VGPRy_N():w:y MEM0:r:y
|
||||
|
||||
PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b110] RM[nnn]
|
||||
PATTERN: XOPV 0x01 VNP not64 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b110] RM[nnn]
|
||||
OPERANDS: REG0=VGPR32_N():w:d REG1=GPR32_B():r:d
|
||||
PATTERN: XOPV 0x01 VNP mode64 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b110] RM[nnn]
|
||||
OPERANDS: REG0=VGPRy_N():w:y REG1=GPRv_B():r:y
|
||||
}
|
||||
|
||||
@@ -1040,10 +1068,14 @@ ISA_SET: TBM
|
||||
EXTENSION: TBM
|
||||
FLAGS: MUST [ cf-mod pf-u af-u zf-mod sf-mod of-0 ]
|
||||
|
||||
PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM()
|
||||
PATTERN: XOPV 0x01 VNP not64 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM()
|
||||
OPERANDS: REG0=VGPR32_N():w:d MEM0:r:d
|
||||
PATTERN: XOPV 0x01 VNP mode64 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b111] RM[nnn] MODRM()
|
||||
OPERANDS: REG0=VGPRy_N():w:y MEM0:r:y
|
||||
|
||||
PATTERN: XOPV 0x01 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b111] RM[nnn]
|
||||
PATTERN: XOPV 0x01 VNP not64 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b111] RM[nnn]
|
||||
OPERANDS: REG0=VGPR32_N():w:d REG1=GPRv_B():r:d
|
||||
PATTERN: XOPV 0x01 VNP mode64 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b111] RM[nnn]
|
||||
OPERANDS: REG0=VGPRy_N():w:y REG1=GPRv_B():r:y
|
||||
}
|
||||
|
||||
@@ -1055,10 +1087,14 @@ ISA_SET: TBM
|
||||
EXTENSION: TBM
|
||||
FLAGS: MUST [ cf-mod pf-u af-u zf-mod sf-mod of-0 ]
|
||||
|
||||
PATTERN: XOPV 0x02 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM()
|
||||
PATTERN: XOPV 0x02 VNP not64 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM()
|
||||
OPERANDS: REG0=VGPR32_N():w:d MEM0:r:d
|
||||
PATTERN: XOPV 0x02 VNP mode64 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b001] RM[nnn] MODRM()
|
||||
OPERANDS: REG0=VGPRy_N():w:y MEM0:r:y
|
||||
|
||||
PATTERN: XOPV 0x02 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b001] RM[nnn]
|
||||
PATTERN: XOPV 0x02 VNP not64 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b001] RM[nnn]
|
||||
OPERANDS: REG0=VGPR32_N():w:d REG1=GPRv_B():r:d
|
||||
PATTERN: XOPV 0x02 VNP mode64 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b001] RM[nnn]
|
||||
OPERANDS: REG0=VGPRy_N():w:y REG1=GPRv_B():r:y
|
||||
}
|
||||
|
||||
@@ -1070,10 +1106,14 @@ ISA_SET: TBM
|
||||
EXTENSION: TBM
|
||||
FLAGS: MUST [ cf-mod pf-u af-u zf-mod sf-mod of-0 ]
|
||||
|
||||
PATTERN: XOPV 0x02 VNP W0 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM()
|
||||
PATTERN: XOPV 0x02 VNP not64 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM()
|
||||
OPERANDS: REG0=VGPR32_N():w:d MEM0:r:d
|
||||
PATTERN: XOPV 0x02 VNP mode64 VL128 XMAP9 MOD[mm] MOD!=3 REG[0b110] RM[nnn] MODRM()
|
||||
OPERANDS: REG0=VGPRy_N():w:y MEM0:r:y
|
||||
|
||||
PATTERN: XOPV 0x02 VNP W0 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b110] RM[nnn]
|
||||
PATTERN: XOPV 0x02 VNP not64 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b110] RM[nnn]
|
||||
OPERANDS: REG0=VGPR32_N():w:d REG1=GPRv_B():r:d
|
||||
PATTERN: XOPV 0x02 VNP mode64 VL128 XMAP9 MOD[0b11] MOD=3 REG[0b110] RM[nnn]
|
||||
OPERANDS: REG0=VGPRy_N():w:y REG1=GPRv_B():r:y
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user