|
27 | 27 | # (evo): this opcode is changed by EVEX prefix (EVEX opcode) |
28 | 28 | # (v): this opcode requires VEX prefix. |
29 | 29 | # (v1): this opcode only supports 128bit VEX. |
| 30 | +# (xop): this opcode accepts XOP prefix. |
| 31 | +# |
| 32 | +# XOP Superscripts |
| 33 | +# (W=0): this opcode requires XOP.W == 0 |
| 34 | +# (W=1): this opcode requires XOP.W == 1 |
30 | 35 | # |
31 | 36 | # Last Prefix Superscripts |
32 | 37 | # - (66): the last prefix is 0x66 |
@@ -194,7 +199,7 @@ AVXcode: |
194 | 199 | 8c: MOV Ev,Sw |
195 | 200 | 8d: LEA Gv,M |
196 | 201 | 8e: MOV Sw,Ew |
197 | | -8f: Grp1A (1A) | POP Ev (d64) |
| 202 | +8f: Grp1A (1A) | POP Ev (d64) | XOP (Prefix) |
198 | 203 | # 0x90 - 0x9f |
199 | 204 | 90: NOP | PAUSE (F3) | XCHG r8,rAX |
200 | 205 | 91: XCHG rCX/r9,rAX |
@@ -1106,6 +1111,84 @@ AVXcode: 7 |
1106 | 1111 | f8: URDMSR Rq,Id (F2),(v1),(11B) | UWRMSR Id,Rq (F3),(v1),(11B) |
1107 | 1112 | EndTable |
1108 | 1113 |
|
| 1114 | +# From AMD64 Architecture Programmer's Manual Vol3, Appendix A.1.5 |
| 1115 | +Table: XOP map 8h |
| 1116 | +Referrer: |
| 1117 | +XOPcode: 0 |
| 1118 | +85: VPMACSSWW Vo,Ho,Wo,Lo |
| 1119 | +86: VPMACSSWD Vo,Ho,Wo,Lo |
| 1120 | +87: VPMACSSDQL Vo,Ho,Wo,Lo |
| 1121 | +8e: VPMACSSDD Vo,Ho,Wo,Lo |
| 1122 | +8f: VPMACSSDQH Vo,Ho,Wo,Lo |
| 1123 | +95: VPMACSWW Vo,Ho,Wo,Lo |
| 1124 | +96: VPMACSWD Vo,Ho,Wo,Lo |
| 1125 | +97: VPMACSDQL Vo,Ho,Wo,Lo |
| 1126 | +9e: VPMACSDD Vo,Ho,Wo,Lo |
| 1127 | +9f: VPMACSDQH Vo,Ho,Wo,Lo |
| 1128 | +a2: VPCMOV Vx,Hx,Wx,Lx (W=0) | VPCMOV Vx,Hx,Lx,Wx (W=1) |
| 1129 | +a3: VPPERM Vo,Ho,Wo,Lo (W=0) | VPPERM Vo,Ho,Lo,Wo (W=1) |
| 1130 | +a6: VPMADCSSWD Vo,Ho,Wo,Lo |
| 1131 | +b6: VPMADCSWD Vo,Ho,Wo,Lo |
| 1132 | +c0: VPROTB Vo,Wo,Ib |
| 1133 | +c1: VPROTW Vo,Wo,Ib |
| 1134 | +c2: VPROTD Vo,Wo,Ib |
| 1135 | +c3: VPROTQ Vo,Wo,Ib |
| 1136 | +cc: VPCOMccB Vo,Ho,Wo,Ib |
| 1137 | +cd: VPCOMccW Vo,Ho,Wo,Ib |
| 1138 | +ce: VPCOMccD Vo,Ho,Wo,Ib |
| 1139 | +cf: VPCOMccQ Vo,Ho,Wo,Ib |
| 1140 | +ec: VPCOMccUB Vo,Ho,Wo,Ib |
| 1141 | +ed: VPCOMccUW Vo,Ho,Wo,Ib |
| 1142 | +ee: VPCOMccUD Vo,Ho,Wo,Ib |
| 1143 | +ef: VPCOMccUQ Vo,Ho,Wo,Ib |
| 1144 | +EndTable |
| 1145 | + |
| 1146 | +Table: XOP map 9h |
| 1147 | +Referrer: |
| 1148 | +XOPcode: 1 |
| 1149 | +01: GrpXOP1 |
| 1150 | +02: GrpXOP2 |
| 1151 | +12: GrpXOP3 |
| 1152 | +80: VFRCZPS Vx,Wx |
| 1153 | +81: VFRCZPD Vx,Wx |
| 1154 | +82: VFRCZSS Vq,Wss |
| 1155 | +83: VFRCZSD Vq,Wsd |
| 1156 | +90: VPROTB Vo,Wo,Ho (W=0) | VPROTB Vo,Ho,Wo (W=1) |
| 1157 | +91: VPROTW Vo,Wo,Ho (W=0) | VPROTB Vo,Ho,Wo (W=1) |
| 1158 | +92: VPROTD Vo,Wo,Ho (W=0) | VPROTB Vo,Ho,Wo (W=1) |
| 1159 | +93: VPROTQ Vo,Wo,Ho (W=0) | VPROTB Vo,Ho,Wo (W=1) |
| 1160 | +94: VPSHLB Vo,Wo,Ho (W=0) | VPSHLB Vo,Ho,Wo (W=1) |
| 1161 | +95: VPSHLW Vo,Wo,Ho (W=0) | VPSHLW Vo,Ho,Wo (W=1) |
| 1162 | +96: VPSHLD Vo,Wo,Ho (W=0) | VPSHLD Vo,Ho,Wo (W=1) |
| 1163 | +97: VPSHLQ Vo,Wo,Ho (W=0) | VPSHLQ Vo,Ho,Wo (W=1) |
| 1164 | +98: VPSHAB Vo,Wo,Ho (W=0) | VPSHAB Vo,Ho,Wo (W=1) |
| 1165 | +99: VPSHAW Vo,Wo,Ho (W=0) | VPSHAW Vo,Ho,Wo (W=1) |
| 1166 | +9a: VPSHAD Vo,Wo,Ho (W=0) | VPSHAD Vo,Ho,Wo (W=1) |
| 1167 | +9b: VPSHAQ Vo,Wo,Ho (W=0) | VPSHAQ Vo,Ho,Wo (W=1) |
| 1168 | +c1: VPHADDBW Vo,Wo |
| 1169 | +c2: VPHADDBD Vo,Wo |
| 1170 | +c3: VPHADDBQ Vo,Wo |
| 1171 | +c6: VPHADDWD Vo,Wo |
| 1172 | +c7: VPHADDWQ Vo,Wo |
| 1173 | +cb: VPHADDDQ Vo,Wo |
| 1174 | +d1: VPHADDUBWD Vo,Wo |
| 1175 | +d2: VPHADDUBD Vo,Wo |
| 1176 | +d3: VPHADDUBQ Vo,Wo |
| 1177 | +d6: VPHADDUWD Vo,Wo |
| 1178 | +d7: VPHADDUWQ Vo,Wo |
| 1179 | +db: VPHADDUDQ Vo,Wo |
| 1180 | +e1: VPHSUBBW Vo,Wo |
| 1181 | +e2: VPHSUBWD Vo,Wo |
| 1182 | +e3: VPHSUBDQ Vo,Wo |
| 1183 | +EndTable |
| 1184 | + |
| 1185 | +Table: XOP map Ah |
| 1186 | +Referrer: |
| 1187 | +XOPcode: 2 |
| 1188 | +10: BEXTR Gy,Ey,Id |
| 1189 | +12: GrpXOP4 |
| 1190 | +EndTable |
| 1191 | + |
1109 | 1192 | GrpTable: Grp1 |
1110 | 1193 | 0: ADD |
1111 | 1194 | 1: OR |
@@ -1320,3 +1403,29 @@ GrpTable: GrpRNG |
1320 | 1403 | 4: xcrypt-cfb |
1321 | 1404 | 5: xcrypt-ofb |
1322 | 1405 | EndTable |
| 1406 | + |
| 1407 | +# GrpXOP1-4 is shown in AMD APM Vol.3 Appendix A as XOP group #1-4 |
| 1408 | +GrpTable: GrpXOP1 |
| 1409 | +1: BLCFILL By,Ey (xop) |
| 1410 | +2: BLSFILL By,Ey (xop) |
| 1411 | +3: BLCS By,Ey (xop) |
| 1412 | +4: TZMSK By,Ey (xop) |
| 1413 | +5: BLCIC By,Ey (xop) |
| 1414 | +6: BLSIC By,Ey (xop) |
| 1415 | +7: T1MSKC By,Ey (xop) |
| 1416 | +EndTable |
| 1417 | + |
| 1418 | +GrpTable: GrpXOP2 |
| 1419 | +1: BLCMSK By,Ey (xop) |
| 1420 | +6: BLCI By,Ey (xop) |
| 1421 | +EndTable |
| 1422 | + |
| 1423 | +GrpTable: GrpXOP3 |
| 1424 | +0: LLWPCB Ry (xop) |
| 1425 | +1: SLWPCB Ry (xop) |
| 1426 | +EndTable |
| 1427 | + |
| 1428 | +GrpTable: GrpXOP4 |
| 1429 | +0: LWPINS By,Ed,Id (xop) |
| 1430 | +1: LWPVAL By,Ed,Id (xop) |
| 1431 | +EndTable |
0 commit comments