Changeset 66812 in vbox
- Timestamp:
- May 5, 2017 6:48:33 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 115233
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/disopcode.h
r66810 r66812 1064 1064 1065 1065 /* For making IEM / bs3-cpu-generated-1 happy: */ 1066 #define OP_PARM_M_RO OP_PARM_M /**< Annotates read only memory of variable operand size (xrstor). */ 1067 #define OP_PARM_M_RW OP_PARM_M /**< Annotates read-write memory of variable operand size (xsave). */ 1068 #define OP_PARM_Mb_RO OP_PARM_Mb /**< Annotates read only memory byte operand. */ 1069 #define OP_PARM_Md_RO OP_PARM_Md /**< Annotates read only memory byte operand. */ 1070 #define OP_PARM_Md_WO OP_PARM_Md /**< Annotates write only memory byte operand. */ 1071 #define OP_PARM_Mq_WO OP_PARM_Mq /**< Annotates write only memory quad word operand. */ 1072 #define OP_PARM_Pq_WO OP_PARM_Pq /**< Annotates write only operand. */ 1073 #define OP_PARM_Nq OP_PARM_Qq /**< Missing 'N' class (MMX reg selected by modrm.mem) in disasm. */ 1066 1074 #define OP_PARM_Uq (OP_PARM_U+OP_PARM_q) 1067 1075 #define OP_PARM_UqHi (OP_PARM_U+OP_PARM_dq) 1068 #define OP_PARM_WqZxReg OP_PARM_Wq /**< Annotates that register targets get their upper bits cleared. */ 1069 #define OP_PARM_VssZxReg OP_PARM_Vss /**< Annotates that register targets get their upper bits cleared. */ 1070 #define OP_PARM_VsdZxReg OP_PARM_Vsd /**< Annotates that register targets get their upper bits cleared. */ 1076 #define OP_PARM_Vdq_WO OP_PARM_Vdq /**< Annotates that only YMM/XMM[127:64] are accessed. */ 1077 #define OP_PARM_Vpd_WO OP_PARM_Vpd /**< Annotates write only operand. */ 1078 #define OP_PARM_Vps_WO OP_PARM_Vps /**< Annotates write only operand. */ 1079 #define OP_PARM_Vq_WO OP_PARM_Vq /**< Annotates write only operand. */ 1071 1080 #define OP_PARM_VqHi OP_PARM_Vdq /**< Annotates that only YMM/XMM[127:64] are accessed. */ 1072 #define OP_PARM_VqZxReg OP_PARM_Vq /**< Annotates that register targets get their upper bits cleared */ 1073 #define OP_PARM_MbRO OP_PARM_Mb /**< Annotates read only memory byte operand. */ 1074 #define OP_PARM_MdRO OP_PARM_Md /**< Annotates read only memory byte operand. */ 1075 #define OP_PARM_MdWO OP_PARM_Md /**< Annotates write only memory byte operand. */ 1076 #define OP_PARM_MqWO OP_PARM_Mq /**< Annotates write only memory quad word operand. */ 1077 #define OP_PARM_MRO OP_PARM_M /**< Annotates read only memory of variable operand size (xrstor). */ 1078 #define OP_PARM_MRW OP_PARM_M /**< Annotates read-write memory of variable operand size (xsave). */ 1079 #define OP_PARM_Nq OP_PARM_Qq /**< Missing 'N' class (MMX reg selected by modrm.mem) in disasm. */ 1081 #define OP_PARM_VqHi_WO OP_PARM_Vdq /**< Annotates that only YMM/XMM[127:64] are written. */ 1082 #define OP_PARM_VqZxReg_WO OP_PARM_Vq /**< Annotates that register targets get their upper bits cleared */ 1083 #define OP_PARM_VsdZxReg_WO OP_PARM_Vsd /**< Annotates that register targets get their upper bits cleared. */ 1084 #define OP_PARM_VsdZxReg_WO OP_PARM_Vsd /**< Annotates that register targets get their upper bits cleared. */ 1085 #define OP_PARM_VssZxReg_WO OP_PARM_Vss /**< Annotates that register targets get their upper bits cleared. */ 1086 #define OP_PARM_Wpd_WO OP_PARM_Wpd /**< Annotates write only operand. */ 1087 #define OP_PARM_Wps_WO OP_PARM_Wps /**< Annotates write only operand. */ 1088 #define OP_PARM_WqZxReg_WO OP_PARM_Wq /**< Annotates that register targets get their upper bits cleared. */ 1089 #define OP_PARM_Wss_WO OP_PARM_Wss /**< Annotates write only operand. */ 1090 #define OP_PARM_Wsd_WO OP_PARM_Wsd /**< Annotates write only operand. */ 1091 1080 1092 1081 1093 /** @} */ -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsPython.py
r66811 r66812 210 210 g_kdOpTypes = { 211 211 # Fixed addresses 212 'Ap': ( 'IDX_ParseImmAddrF', 'imm', '%Ap', 'Ap', ),212 'Ap': ( 'IDX_ParseImmAddrF', 'imm', '%Ap', 'Ap', ), 213 213 214 214 # ModR/M.rm 215 'Eb': ( 'IDX_UseModRM', 'rm', '%Eb', 'Eb', ), 216 'Ew': ( 'IDX_UseModRM', 'rm', '%Ew', 'Ew', ), 217 'Ev': ( 'IDX_UseModRM', 'rm', '%Ev', 'Ev', ), 218 'Wss': ( 'IDX_UseModRM', 'rm', '%Wss', 'Wss', ), 219 'Wsd': ( 'IDX_UseModRM', 'rm', '%Wsd', 'Wsd', ), 220 'Wps': ( 'IDX_UseModRM', 'rm', '%Wps', 'Wps', ), 221 'Wpd': ( 'IDX_UseModRM', 'rm', '%Wpd', 'Wpd', ), 222 'Wdq': ( 'IDX_UseModRM', 'rm', '%Wdq', 'Wdq', ), 223 'Wq': ( 'IDX_UseModRM', 'rm', '%Wq', 'Wq', ), 224 'WqZxReg': ( 'IDX_UseModRM', 'rm', '%Wq', 'Wq', ), 215 'Eb': ( 'IDX_UseModRM', 'rm', '%Eb', 'Eb', ), 216 'Ew': ( 'IDX_UseModRM', 'rm', '%Ew', 'Ew', ), 217 'Ev': ( 'IDX_UseModRM', 'rm', '%Ev', 'Ev', ), 218 'Wss': ( 'IDX_UseModRM', 'rm', '%Wss', 'Wss', ), 219 'Wss_WO': ( 'IDX_UseModRM', 'rm', '%Wss', 'Wss', ), 220 'Wsd': ( 'IDX_UseModRM', 'rm', '%Wsd', 'Wsd', ), 221 'Wsd_WO': ( 'IDX_UseModRM', 'rm', '%Wsd', 'Wsd', ), 222 'Wps': ( 'IDX_UseModRM', 'rm', '%Wps', 'Wps', ), 223 'Wps_WO': ( 'IDX_UseModRM', 'rm', '%Wps', 'Wps', ), 224 'Wpd': ( 'IDX_UseModRM', 'rm', '%Wpd', 'Wpd', ), 225 'Wpd_WO': ( 'IDX_UseModRM', 'rm', '%Wpd', 'Wpd', ), 226 'Wdq': ( 'IDX_UseModRM', 'rm', '%Wdq', 'Wdq', ), 227 'Wdq_WO': ( 'IDX_UseModRM', 'rm', '%Wdq', 'Wdq', ), 228 'Wq': ( 'IDX_UseModRM', 'rm', '%Wq', 'Wq', ), 229 'WqZxReg_WO': ( 'IDX_UseModRM', 'rm', '%Wq', 'Wq', ), 225 230 226 231 # ModR/M.rm - register only. 227 'Uq': ( 'IDX_UseModRM', 'rm', '%Uq', 'Uq', ),228 'UqHi': ( 'IDX_UseModRM', 'rm', '%Uq', 'UqHi', ),229 'Nq': ( 'IDX_UseModRM', 'rm', '%Qq', 'Nq', ),232 'Uq': ( 'IDX_UseModRM', 'rm', '%Uq', 'Uq', ), 233 'UqHi': ( 'IDX_UseModRM', 'rm', '%Uq', 'UqHi', ), 234 'Nq': ( 'IDX_UseModRM', 'rm', '%Qq', 'Nq', ), 230 235 231 236 # ModR/M.rm - memory only. 232 'Ma': ( 'IDX_UseModRM', 'rm', '%Ma', 'Ma', ), ##< Only used by BOUND.233 'Mb RO':( 'IDX_UseModRM', 'rm', '%Mb', 'Mb', ),234 'Md RO':( 'IDX_UseModRM', 'rm', '%Md', 'Md', ),235 'Md WO':( 'IDX_UseModRM', 'rm', '%Md', 'Md', ),236 'Mq': ( 'IDX_UseModRM', 'rm', '%Mq', 'Mq', ),237 'Mq WO':( 'IDX_UseModRM', 'rm', '%Mq', 'Mq', ),238 'M RO':( 'IDX_UseModRM', 'rm', '%M', 'M', ),239 'M RW':( 'IDX_UseModRM', 'rm', '%M', 'M', ),237 'Ma': ( 'IDX_UseModRM', 'rm', '%Ma', 'Ma', ), ##< Only used by BOUND. 238 'Mb_RO': ( 'IDX_UseModRM', 'rm', '%Mb', 'Mb', ), 239 'Md_RO': ( 'IDX_UseModRM', 'rm', '%Md', 'Md', ), 240 'Md_WO': ( 'IDX_UseModRM', 'rm', '%Md', 'Md', ), 241 'Mq': ( 'IDX_UseModRM', 'rm', '%Mq', 'Mq', ), 242 'Mq_WO': ( 'IDX_UseModRM', 'rm', '%Mq', 'Mq', ), 243 'M_RO': ( 'IDX_UseModRM', 'rm', '%M', 'M', ), 244 'M_RW': ( 'IDX_UseModRM', 'rm', '%M', 'M', ), 240 245 241 246 # ModR/M.reg 242 'Gb': ( 'IDX_UseModRM', 'reg', '%Gb', 'Gb', ), 243 'Gw': ( 'IDX_UseModRM', 'reg', '%Gw', 'Gw', ), 244 'Gv': ( 'IDX_UseModRM', 'reg', '%Gv', 'Gv', ), 245 'Pq': ( 'IDX_UseModRM', 'reg', '%Pq', 'Pq', ), 246 'Vss': ( 'IDX_UseModRM', 'reg', '%Vss', 'Vss', ), 247 'VssZxReg': ( 'IDX_UseModRM', 'reg', '%Vss', 'Vss', ), 248 'Vsd': ( 'IDX_UseModRM', 'reg', '%Vsd', 'Vsd', ), 249 'VsdZxReg': ( 'IDX_UseModRM', 'reg', '%Vsd', 'Vsd', ), 250 'Vps': ( 'IDX_UseModRM', 'reg', '%Vps', 'Vps', ), 251 'Vpd': ( 'IDX_UseModRM', 'reg', '%Vpd', 'Vpd', ), 252 'Vq': ( 'IDX_UseModRM', 'reg', '%Vq', 'Vq', ), 253 'Vdq': ( 'IDX_UseModRM', 'reg', '%Vdq', 'Vdq', ), 254 'VqHi': ( 'IDX_UseModRM', 'reg', '%Vdq', 'VdqHi', ), 255 'VqZxReg': ( 'IDX_UseModRM', 'reg', '%Vq', 'VqZx', ), 247 'Gb': ( 'IDX_UseModRM', 'reg', '%Gb', 'Gb', ), 248 'Gw': ( 'IDX_UseModRM', 'reg', '%Gw', 'Gw', ), 249 'Gv': ( 'IDX_UseModRM', 'reg', '%Gv', 'Gv', ), 250 'Pq_WO': ( 'IDX_UseModRM', 'reg', '%Pq', 'Pq', ), 251 'Vss': ( 'IDX_UseModRM', 'reg', '%Vss', 'Vss', ), 252 'VssZxReg_WO': ( 'IDX_UseModRM', 'reg', '%Vss', 'Vss', ), 253 'Vsd': ( 'IDX_UseModRM', 'reg', '%Vsd', 'Vsd', ), 254 'VsdZxReg_WO': ( 'IDX_UseModRM', 'reg', '%Vsd', 'Vsd', ), 255 'Vps': ( 'IDX_UseModRM', 'reg', '%Vps', 'Vps', ), 256 'Vps_WO': ( 'IDX_UseModRM', 'reg', '%Vps', 'Vps', ), 257 'Vpd': ( 'IDX_UseModRM', 'reg', '%Vpd', 'Vpd', ), 258 'Vpd_WO': ( 'IDX_UseModRM', 'reg', '%Vpd', 'Vpd', ), 259 'Vq': ( 'IDX_UseModRM', 'reg', '%Vq', 'Vq', ), 260 'Vq_WO': ( 'IDX_UseModRM', 'reg', '%Vq', 'Vq', ), 261 'Vdq_WO': ( 'IDX_UseModRM', 'reg', '%Vdq', 'Vdq', ), 262 'VqHi': ( 'IDX_UseModRM', 'reg', '%Vdq', 'VdqHi', ), 263 'VqHi_WO': ( 'IDX_UseModRM', 'reg', '%Vdq', 'VdqHi', ), 264 'VqZxReg_WO': ( 'IDX_UseModRM', 'reg', '%Vq', 'VqZx', ), 256 265 257 266 # Immediate values. 258 'Ib': ( 'IDX_ParseImmByte', 'imm', '%Ib', 'Ib', ), ##< NB! Could be IDX_ParseImmByteSX for some instructions.259 'Iw': ( 'IDX_ParseImmUshort', 'imm', '%Iw', 'Iw', ),260 'Id': ( 'IDX_ParseImmUlong', 'imm', '%Id', 'Id', ),261 'Iq': ( 'IDX_ParseImmQword', 'imm', '%Iq', 'Iq', ),262 'Iv': ( 'IDX_ParseImmV', 'imm', '%Iv', 'Iv', ), ##< o16: word, o32: dword, o64: qword263 'Iz': ( 'IDX_ParseImmZ', 'imm', '%Iz', 'Iz', ), ##< o16: word, o32|o64:dword267 'Ib': ( 'IDX_ParseImmByte', 'imm', '%Ib', 'Ib', ), ##< NB! Could be IDX_ParseImmByteSX for some instrs. 268 'Iw': ( 'IDX_ParseImmUshort', 'imm', '%Iw', 'Iw', ), 269 'Id': ( 'IDX_ParseImmUlong', 'imm', '%Id', 'Id', ), 270 'Iq': ( 'IDX_ParseImmQword', 'imm', '%Iq', 'Iq', ), 271 'Iv': ( 'IDX_ParseImmV', 'imm', '%Iv', 'Iv', ), ##< o16: word, o32: dword, o64: qword 272 'Iz': ( 'IDX_ParseImmZ', 'imm', '%Iz', 'Iz', ), ##< o16: word, o32|o64:dword 264 273 265 274 # Address operands (no ModR/M). 266 'Ob': ( 'IDX_ParseImmAddr', 'imm', '%Ob', 'Ob', ),267 'Ov': ( 'IDX_ParseImmAddr', 'imm', '%Ov', 'Ov', ),275 'Ob': ( 'IDX_ParseImmAddr', 'imm', '%Ob', 'Ob', ), 276 'Ov': ( 'IDX_ParseImmAddr', 'imm', '%Ov', 'Ov', ), 268 277 269 278 # Relative jump targets 270 'Jb': ( 'IDX_ParseImmBRel', 'imm', '%Jb', 'Jb', ),271 'Jv': ( 'IDX_ParseImmVRel', 'imm', '%Jv', 'Jv', ),279 'Jb': ( 'IDX_ParseImmBRel', 'imm', '%Jb', 'Jb', ), 280 'Jv': ( 'IDX_ParseImmVRel', 'imm', '%Jv', 'Jv', ), 272 281 273 282 # DS:rSI 274 'Xb': ( 'IDX_ParseXb', 'rSI', '%eSI', 'Xb', ),275 'Xv': ( 'IDX_ParseXv', 'rSI', '%eSI', 'Xv', ),283 'Xb': ( 'IDX_ParseXb', 'rSI', '%eSI', 'Xb', ), 284 'Xv': ( 'IDX_ParseXv', 'rSI', '%eSI', 'Xv', ), 276 285 # ES:rDI 277 'Yb': ( 'IDX_ParseYb', 'rDI', '%eDI', 'Yb', ),278 'Yv': ( 'IDX_ParseYv', 'rDI', '%eDI', 'Yv', ),279 280 'Fv': ( 'IDX_ParseFixedReg', 'rFLAGS', '%Fv', 'Fv', ),286 'Yb': ( 'IDX_ParseYb', 'rDI', '%eDI', 'Yb', ), 287 'Yv': ( 'IDX_ParseYv', 'rDI', '%eDI', 'Yv', ), 288 289 'Fv': ( 'IDX_ParseFixedReg', 'rFLAGS', '%Fv', 'Fv', ), 281 290 282 291 # Fixed registers. 283 'AL': ( 'IDX_ParseFixedReg', 'AL', 'al', 'REG_AL', ),284 'rAX': ( 'IDX_ParseFixedReg', 'rAX', '%eAX', 'REG_EAX', ),285 'CS': ( 'IDX_ParseFixedReg', 'CS', 'cs', 'REG_CS', ), # 8086: push CS286 'DS': ( 'IDX_ParseFixedReg', 'DS', 'ds', 'REG_DS', ),287 'ES': ( 'IDX_ParseFixedReg', 'ES', 'es', 'REG_ES', ),288 'FS': ( 'IDX_ParseFixedReg', 'FS', 'fs', 'REG_FS', ),289 'GS': ( 'IDX_ParseFixedReg', 'GS', 'gs', 'REG_GS', ),290 'SS': ( 'IDX_ParseFixedReg', 'SS', 'ss', 'REG_SS', ),292 'AL': ( 'IDX_ParseFixedReg', 'AL', 'al', 'REG_AL', ), 293 'rAX': ( 'IDX_ParseFixedReg', 'rAX', '%eAX', 'REG_EAX', ), 294 'CS': ( 'IDX_ParseFixedReg', 'CS', 'cs', 'REG_CS', ), # 8086: push CS 295 'DS': ( 'IDX_ParseFixedReg', 'DS', 'ds', 'REG_DS', ), 296 'ES': ( 'IDX_ParseFixedReg', 'ES', 'es', 'REG_ES', ), 297 'FS': ( 'IDX_ParseFixedReg', 'FS', 'fs', 'REG_FS', ), 298 'GS': ( 'IDX_ParseFixedReg', 'GS', 'gs', 'REG_GS', ), 299 'SS': ( 'IDX_ParseFixedReg', 'SS', 'ss', 'REG_SS', ), 291 300 }; 292 301 -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h
r66811 r66812 1001 1001 FNIEMOP_DEF(iemOp_movups_Vps_Wps) 1002 1002 { 1003 IEMOP_MNEMONIC2(RM, MOVUPS, movups, Vps , Wps, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1003 IEMOP_MNEMONIC2(RM, MOVUPS, movups, Vps_WO, Wps, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1004 1004 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 1005 1005 if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT)) … … 1053 1053 FNIEMOP_DEF(iemOp_movupd_Vpd_Wpd) 1054 1054 { 1055 IEMOP_MNEMONIC2(RM, MOVUPD, movupd, Vpd , Wpd, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1055 IEMOP_MNEMONIC2(RM, MOVUPD, movupd, Vpd_WO, Wpd, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1056 1056 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 1057 1057 if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT)) … … 1104 1104 FNIEMOP_DEF(iemOp_movss_Vss_Wss) 1105 1105 { 1106 IEMOP_MNEMONIC2(RM, MOVSS, movss, VssZxReg , Wss, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1106 IEMOP_MNEMONIC2(RM, MOVSS, movss, VssZxReg_WO, Wss, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1107 1107 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 1108 1108 if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT)) … … 1158 1158 FNIEMOP_DEF(iemOp_movsd_Vsd_Wsd) 1159 1159 { 1160 IEMOP_MNEMONIC2(RM, MOVSD, movsd, VsdZxReg , Wsd, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1160 IEMOP_MNEMONIC2(RM, MOVSD, movsd, VsdZxReg_WO, Wsd, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1161 1161 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 1162 1162 if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT)) … … 1212 1212 FNIEMOP_DEF(iemOp_movups_Wps_Vps) 1213 1213 { 1214 IEMOP_MNEMONIC2(MR, MOVUPS, movups, Wps , Vps, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1214 IEMOP_MNEMONIC2(MR, MOVUPS, movups, Wps_WO, Vps, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1215 1215 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 1216 1216 if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT)) … … 1263 1263 FNIEMOP_DEF(iemOp_movupd_Wpd_Vpd) 1264 1264 { 1265 IEMOP_MNEMONIC2(MR, MOVUPD, movupd, Wpd , Vpd, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1265 IEMOP_MNEMONIC2(MR, MOVUPD, movupd, Wpd_WO, Vpd, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1266 1266 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 1267 1267 if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT)) … … 1314 1314 FNIEMOP_DEF(iemOp_movss_Wss_Vss) 1315 1315 { 1316 IEMOP_MNEMONIC2(MR, MOVSS, movss, Wss , Vss, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1316 IEMOP_MNEMONIC2(MR, MOVSS, movss, Wss_WO, Vss, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1317 1317 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 1318 1318 if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT)) … … 1368 1368 FNIEMOP_DEF(iemOp_movsd_Wsd_Vsd) 1369 1369 { 1370 IEMOP_MNEMONIC2(MR, MOVSD, movsd, Wsd , Vsd, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1370 IEMOP_MNEMONIC2(MR, MOVSD, movsd, Wsd_WO, Vsd, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1371 1371 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 1372 1372 if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT)) … … 1426 1426 * @optest op1=0 op2=-42 -> op1=-42 1427 1427 */ 1428 IEMOP_MNEMONIC2(RM_REG, MOVHLPS, movhlps, Vq , UqHi, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1428 IEMOP_MNEMONIC2(RM_REG, MOVHLPS, movhlps, Vq_WO, UqHi, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1429 1429 1430 1430 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); … … 1454 1454 * @opfunction iemOp_movlps_Vq_Mq__vmovhlps 1455 1455 */ 1456 IEMOP_MNEMONIC2(RM_MEM, MOVLPS, movlps, Vq , Mq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1456 IEMOP_MNEMONIC2(RM_MEM, MOVLPS, movlps, Vq_WO, Mq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1457 1457 1458 1458 IEM_MC_BEGIN(0, 2); … … 1490 1490 if ((bRm & X86_MODRM_MOD_MASK) != (3 << X86_MODRM_MOD_SHIFT)) 1491 1491 { 1492 IEMOP_MNEMONIC2(RM_MEM, MOVLPD, movlpd, Vq , Mq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1492 IEMOP_MNEMONIC2(RM_MEM, MOVLPD, movlpd, Vq_WO, Mq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1493 1493 1494 1494 IEM_MC_BEGIN(0, 2); … … 1534 1534 FNIEMOP_DEF(iemOp_movsldup_Vdq_Wdq) 1535 1535 { 1536 IEMOP_MNEMONIC2(RM, MOVSLDUP, movsldup, Vdq , Wdq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1536 IEMOP_MNEMONIC2(RM, MOVSLDUP, movsldup, Vdq_WO, Wdq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1537 1537 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 1538 1538 if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT)) … … 1594 1594 FNIEMOP_DEF(iemOp_movddup_Vdq_Wdq) 1595 1595 { 1596 IEMOP_MNEMONIC2(RM, MOVDDUP, movddup, Vdq , Wdq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1596 IEMOP_MNEMONIC2(RM, MOVDDUP, movddup, Vdq_WO, Wdq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1597 1597 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 1598 1598 if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT)) … … 1657 1657 if ((bRm & X86_MODRM_MOD_MASK) != (3 << X86_MODRM_MOD_SHIFT)) 1658 1658 { 1659 IEMOP_MNEMONIC2(MR_MEM, MOVLPS, movlps, Mq WO, Vq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1659 IEMOP_MNEMONIC2(MR_MEM, MOVLPS, movlps, Mq_WO, Vq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1660 1660 1661 1661 IEM_MC_BEGIN(0, 2); … … 1705 1705 if ((bRm & X86_MODRM_MOD_MASK) != (3 << X86_MODRM_MOD_SHIFT)) 1706 1706 { 1707 IEMOP_MNEMONIC2(MR_MEM, MOVLPD, movlpd, Mq WO, Vq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1707 IEMOP_MNEMONIC2(MR_MEM, MOVLPD, movlpd, Mq_WO, Vq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1708 1708 IEM_MC_BEGIN(0, 2); 1709 1709 IEM_MC_LOCAL(uint64_t, uSrc); … … 1826 1826 * @optest op1=0 op2=-42 -> op1=-42 1827 1827 */ 1828 IEMOP_MNEMONIC2(RM_REG, MOVLHPS, movlhps, VqHi , Uq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1828 IEMOP_MNEMONIC2(RM_REG, MOVLHPS, movlhps, VqHi_WO, Uq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1829 1829 1830 1830 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); … … 1854 1854 * @opfunction iemOp_movhps_Vdq_Mq__movlhps_Vdq_Uq 1855 1855 */ 1856 IEMOP_MNEMONIC2(RM_MEM, MOVHPS, movhps, VqHi , Mq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1856 IEMOP_MNEMONIC2(RM_MEM, MOVHPS, movhps, VqHi_WO, Mq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1857 1857 1858 1858 IEM_MC_BEGIN(0, 2); … … 1890 1890 if ((bRm & X86_MODRM_MOD_MASK) != (3 << X86_MODRM_MOD_SHIFT)) 1891 1891 { 1892 IEMOP_MNEMONIC2(RM_MEM, MOVHPD, movhpd, VqHi , Mq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1892 IEMOP_MNEMONIC2(RM_MEM, MOVHPD, movhpd, VqHi_WO, Mq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1893 1893 IEM_MC_BEGIN(0, 2); 1894 1894 IEM_MC_LOCAL(uint64_t, uSrc); … … 1933 1933 FNIEMOP_DEF(iemOp_movshdup_Vdq_Wdq) 1934 1934 { 1935 IEMOP_MNEMONIC2(RM, MOVSHDUP, movshdup, Vdq , Wdq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1935 IEMOP_MNEMONIC2(RM, MOVSHDUP, movshdup, Vdq_WO, Wdq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1936 1936 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 1937 1937 if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT)) … … 2008 2008 if ((bRm & X86_MODRM_MOD_MASK) != (3 << X86_MODRM_MOD_SHIFT)) 2009 2009 { 2010 IEMOP_MNEMONIC2(MR_MEM, MOVHPS, movhps, Mq WO, VqHi, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);2010 IEMOP_MNEMONIC2(MR_MEM, MOVHPS, movhps, Mq_WO, VqHi, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 2011 2011 2012 2012 IEM_MC_BEGIN(0, 2); … … 2056 2056 if ((bRm & X86_MODRM_MOD_MASK) != (3 << X86_MODRM_MOD_SHIFT)) 2057 2057 { 2058 IEMOP_MNEMONIC2(MR_MEM, MOVHPD, movhpd, Mq WO, VqHi, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);2058 IEMOP_MNEMONIC2(MR_MEM, MOVHPD, movhpd, Mq_WO, VqHi, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 2059 2059 2060 2060 IEM_MC_BEGIN(0, 2); … … 4325 4325 FNIEMOP_DEF(iemOp_movq_Vq_Wq) 4326 4326 { 4327 IEMOP_MNEMONIC2(RM, MOVQ, movq, VqZxReg , Wq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);4327 IEMOP_MNEMONIC2(RM, MOVQ, movq, VqZxReg_WO, Wq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 4328 4328 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 4329 4329 if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT)) … … 6453 6453 FNIEMOP_DEF_1(iemOp_Grp15_ldmxcsr, uint8_t, bRm) 6454 6454 { 6455 IEMOP_MNEMONIC1(M_MEM, LDMXCSR, ldmxcsr, Md RO, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);6455 IEMOP_MNEMONIC1(M_MEM, LDMXCSR, ldmxcsr, Md_RO, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 6456 6456 if (!IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse) 6457 6457 return IEMOP_RAISE_INVALID_OPCODE(); … … 6490 6490 FNIEMOP_DEF_1(iemOp_Grp15_stmxcsr, uint8_t, bRm) 6491 6491 { 6492 IEMOP_MNEMONIC1(M_MEM, STMXCSR, stmxcsr, Md WO, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);6492 IEMOP_MNEMONIC1(M_MEM, STMXCSR, stmxcsr, Md_WO, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 6493 6493 if (!IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse) 6494 6494 return IEMOP_RAISE_INVALID_OPCODE(); … … 6517 6517 FNIEMOP_DEF_1(iemOp_Grp15_xsave, uint8_t, bRm) 6518 6518 { 6519 IEMOP_MNEMONIC1(M_MEM, XSAVE, xsave, M RW, DISOPTYPE_HARMLESS, 0);6519 IEMOP_MNEMONIC1(M_MEM, XSAVE, xsave, M_RW, DISOPTYPE_HARMLESS, 0); 6520 6520 if (!IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fXSaveRstor) 6521 6521 return IEMOP_RAISE_INVALID_OPCODE(); … … 6545 6545 FNIEMOP_DEF_1(iemOp_Grp15_xrstor, uint8_t, bRm) 6546 6546 { 6547 IEMOP_MNEMONIC1(M_MEM, XRSTOR, xrstor, M RO, DISOPTYPE_HARMLESS, 0);6547 IEMOP_MNEMONIC1(M_MEM, XRSTOR, xrstor, M_RO, DISOPTYPE_HARMLESS, 0); 6548 6548 if (!IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fXSaveRstor) 6549 6549 return IEMOP_RAISE_INVALID_OPCODE(); … … 6575 6575 FNIEMOP_DEF_1(iemOp_Grp15_clflush, uint8_t, bRm) 6576 6576 { 6577 IEMOP_MNEMONIC1(M_MEM, CLFLUSH, clflush, Mb RO, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);6577 IEMOP_MNEMONIC1(M_MEM, CLFLUSH, clflush, Mb_RO, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 6578 6578 if (!IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fClFlush) 6579 6579 return FNIEMOP_CALL_1(iemOp_InvalidWithRMAllNeeded, bRm); … … 6600 6600 FNIEMOP_DEF_1(iemOp_Grp15_clflushopt, uint8_t, bRm) 6601 6601 { 6602 IEMOP_MNEMONIC1(M_MEM, CLFLUSHOPT, clflushopt, Mb RO, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);6602 IEMOP_MNEMONIC1(M_MEM, CLFLUSHOPT, clflushopt, Mb_RO, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 6603 6603 if (!IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fClFlushOpt) 6604 6604 return FNIEMOP_CALL_1(iemOp_InvalidWithRMAllNeeded, bRm); … … 8341 8341 FNIEMOP_DEF(iemOp_movq_Wq_Vq) 8342 8342 { 8343 IEMOP_MNEMONIC2(MR, MOVQ, movq, WqZxReg , Vq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);8343 IEMOP_MNEMONIC2(MR, MOVQ, movq, WqZxReg_WO, Vq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 8344 8344 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 8345 8345 if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT)) … … 8402 8402 * Register, register. 8403 8403 */ 8404 IEMOP_MNEMONIC2(RM_REG, MOVQ2DQ, movq2dq, VqZxReg , Nq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);8404 IEMOP_MNEMONIC2(RM_REG, MOVQ2DQ, movq2dq, VqZxReg_WO, Nq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 8405 8405 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 8406 8406 IEM_MC_BEGIN(0, 1); … … 8454 8454 * Register, register. 8455 8455 */ 8456 IEMOP_MNEMONIC2(RM_REG, MOVDQ2Q, movdq2q, Pq , Uq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);8456 IEMOP_MNEMONIC2(RM_REG, MOVDQ2Q, movdq2q, Pq_WO, Uq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 8457 8457 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 8458 8458 IEM_MC_BEGIN(0, 1); -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsVexMap1.cpp.h
r66479 r66812 2227 2227 FNIEMOP_DEF_1(iemOp_VGrp15_vstmxcsr, uint8_t, bRm) 2228 2228 { 2229 IEMOP_MNEMONIC1(VEX_M_MEM, VSTMXCSR, vstmxcsr, Md WO, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);2229 IEMOP_MNEMONIC1(VEX_M_MEM, VSTMXCSR, vstmxcsr, Md_WO, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 2230 2230 if (!IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fAvx) 2231 2231 return IEMOP_RAISE_INVALID_OPCODE(); -
trunk/src/VBox/ValidationKit/bootsectors/Config.kmk
r66446 r66812 560 560 # -0 Use 8086 instruction set (16-bit only). 561 561 # -3 Use 386 instruction set (16-bit only). 562 # -e<num> Stop after <num> errors. 562 563 # -wx Maxium warning level. 563 564 # -zl Don't emit default library information. … … 603 604 TEMPLATE_VBoxBS3KitImg_CXXTOOL = Bs3Ow16 604 605 TEMPLATE_VBoxBS3KitImg_CFLAGS = $(if $(BS3KIT_SEGNM_DATA16),-nd=$(BS3KIT_SEGNM_DATA16),) \ 605 -nt=BS3TEXT16 -nc=$(BS3KIT_CLASS_CODE16) -ecc -q -0 - wx -zl -zdp -zu -ml $(BS3_OW_DBG_OPT) -s -oa -ob -of -oi -ol -or -os -oh -d+606 -nt=BS3TEXT16 -nc=$(BS3KIT_CLASS_CODE16) -ecc -q -0 -e125 -wx -zl -zdp -zu -ml $(BS3_OW_DBG_OPT) -s -oa -ob -of -oi -ol -or -os -oh -d+ 606 607 TEMPLATE_VBoxBS3KitImg_CXXFLAGS = $(if $(BS3KIT_SEGNM_DATA16),-nd=$(BS3KIT_SEGNM_DATA16),) \ 607 -nt=BS3TEXT16 -nc=$(BS3KIT_CLASS_CODE16) -ecc -q -0 - wx -zl -zdp -zu -ml $(BS3_OW_DBG_OPT) -s -oa -ob -of -oi -ol -or -os -oh -d+608 -nt=BS3TEXT16 -nc=$(BS3KIT_CLASS_CODE16) -ecc -q -0 -e125 -wx -zl -zdp -zu -ml $(BS3_OW_DBG_OPT) -s -oa -ob -of -oi -ol -or -os -oh -d+ 608 609 TEMPLATE_VBoxBS3KitImg_CDEFS = ARCH_BITS=16 RT_ARCH_X86 609 610 … … 772 773 TEMPLATE_VBoxBS3KitImg32_CXXTOOL = Bs3Ow32 773 774 TEMPLATE_VBoxBS3KitImg32_CFLAGS = \ 774 -nt=BS3TEXT32 -nd=BS3DATA32 -nc=BS3CLASS32CODE -ecc -q - wx -zl -mf $(BS3_OW_DBG_OPT) -s -oa -ob -of -oi -ol -or -os -d+775 -nt=BS3TEXT32 -nd=BS3DATA32 -nc=BS3CLASS32CODE -ecc -q -e125 -wx -zl -mf $(BS3_OW_DBG_OPT) -s -oa -ob -of -oi -ol -or -os -d+ 775 776 TEMPLATE_VBoxBS3KitImg32_CXXFLAGS = \ 776 -nt=BS3TEXT32 -nd=BS3DATA32 -nc=BS3CLASS32CODE -ecc -q - wx -zl -mf $(BS3_OW_DBG_OPT) -s -oa -ob -of -oi -ol -or -os -d+777 -nt=BS3TEXT32 -nd=BS3DATA32 -nc=BS3CLASS32CODE -ecc -q -e125 -wx -zl -mf $(BS3_OW_DBG_OPT) -s -oa -ob -of -oi -ol -or -os -d+ 777 778 TEMPLATE_VBoxBS3KitImg32_INCS = $(VBOX_PATH_BS3KIT_SRC) . 778 779 TEMPLATE_VBoxBS3KitImg32_LDTOOL = VBoxBsUnusedLd -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c
r66811 r66812 1583 1583 1584 1584 1585 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Pq_ Uq(PBS3CG1STATE pThis, unsigned iEncoding)1585 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Pq_WO_Uq(PBS3CG1STATE pThis, unsigned iEncoding) 1586 1586 { 1587 1587 unsigned off; … … 1607 1607 1608 1608 1609 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vq_ UqHi(PBS3CG1STATE pThis, unsigned iEncoding)1609 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vq_WO_UqHi(PBS3CG1STATE pThis, unsigned iEncoding) 1610 1610 { 1611 1611 unsigned off; … … 1699 1699 1700 1700 1701 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vdq_W dq(PBS3CG1STATE pThis, unsigned iEncoding)1701 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vdq_WO_Wdq(PBS3CG1STATE pThis, unsigned iEncoding) 1702 1702 { 1703 1703 unsigned off; … … 1821 1821 1822 1822 1823 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VqZxReg_ Nq(PBS3CG1STATE pThis, unsigned iEncoding)1823 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VqZxReg_WO_Nq(PBS3CG1STATE pThis, unsigned iEncoding) 1824 1824 { 1825 1825 unsigned off; … … 1888 1888 1889 1889 1890 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Mb RO(PBS3CG1STATE pThis, unsigned iEncoding)1890 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Mb_RO(PBS3CG1STATE pThis, unsigned iEncoding) 1891 1891 { 1892 1892 unsigned off; … … 1905 1905 1906 1906 1907 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Md RO(PBS3CG1STATE pThis, unsigned iEncoding)1907 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Md_RO(PBS3CG1STATE pThis, unsigned iEncoding) 1908 1908 { 1909 1909 unsigned off; … … 1922 1922 1923 1923 1924 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Md WO(PBS3CG1STATE pThis, unsigned iEncoding)1924 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Md_WO(PBS3CG1STATE pThis, unsigned iEncoding) 1925 1925 { 1926 1926 unsigned off; … … 2253 2253 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Gv_Ev__OR__BS3CG1ENC_MODRM_Ev_Gv(pThis, iEncoding); 2254 2254 2255 case BS3CG1ENC_MODRM_Wss_ Vss:2255 case BS3CG1ENC_MODRM_Wss_WO_Vss: 2256 2256 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Wss_Vss(pThis, iEncoding); 2257 case BS3CG1ENC_MODRM_Wsd_ Vsd:2257 case BS3CG1ENC_MODRM_Wsd_WO_Vsd: 2258 2258 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Wsd_Vsd(pThis, iEncoding); 2259 case BS3CG1ENC_MODRM_Wps_ Vps:2260 case BS3CG1ENC_MODRM_Wpd_ Vpd:2259 case BS3CG1ENC_MODRM_Wps_WO_Vps: 2260 case BS3CG1ENC_MODRM_Wpd_WO_Vpd: 2261 2261 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Wps_Vps__OR__BS3CG1ENC_MODRM_Wpd_Vpd(pThis, iEncoding); 2262 case BS3CG1ENC_MODRM_WqZxReg_ Vq:2262 case BS3CG1ENC_MODRM_WqZxReg_WO_Vq: 2263 2263 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_WqZxReg_Vq(pThis, iEncoding); 2264 2264 2265 case BS3CG1ENC_MODRM_Pq_ Uq:2266 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Pq_ Uq(pThis, iEncoding);2267 2268 case BS3CG1ENC_MODRM_Vq_ UqHi:2269 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vq_ UqHi(pThis, iEncoding);2270 case BS3CG1ENC_MODRM_Vq_ Mq:2265 case BS3CG1ENC_MODRM_Pq_WO_Uq: 2266 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Pq_WO_Uq(pThis, iEncoding); 2267 2268 case BS3CG1ENC_MODRM_Vq_WO_UqHi: 2269 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vq_WO_UqHi(pThis, iEncoding); 2270 case BS3CG1ENC_MODRM_Vq_WO_Mq: 2271 2271 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vq_Mq(pThis, iEncoding); 2272 case BS3CG1ENC_MODRM_VqHi_ Uq:2272 case BS3CG1ENC_MODRM_VqHi_WO_Uq: 2273 2273 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VqHi_Uq(pThis, iEncoding); 2274 case BS3CG1ENC_MODRM_VqHi_ Mq:2274 case BS3CG1ENC_MODRM_VqHi_WO_Mq: 2275 2275 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VqHi_Mq(pThis, iEncoding); 2276 case BS3CG1ENC_MODRM_Vdq_W dq:2277 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vdq_W dq(pThis, iEncoding);2278 case BS3CG1ENC_MODRM_Vpd_W pd:2279 case BS3CG1ENC_MODRM_Vps_W ps:2276 case BS3CG1ENC_MODRM_Vdq_WO_Wdq: 2277 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vdq_WO_Wdq(pThis, iEncoding); 2278 case BS3CG1ENC_MODRM_Vpd_WO_Wpd: 2279 case BS3CG1ENC_MODRM_Vps_WO_Wps: 2280 2280 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vps_Wps__OR__BS3CG1ENC_MODRM_Vpd_Wpd(pThis, iEncoding); 2281 case BS3CG1ENC_MODRM_VssZxReg_W ss:2281 case BS3CG1ENC_MODRM_VssZxReg_WO_Wss: 2282 2282 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VssZxReg_Wss(pThis, iEncoding); 2283 case BS3CG1ENC_MODRM_VsdZxReg_W sd:2284 case BS3CG1ENC_MODRM_VqZxReg_W q:2283 case BS3CG1ENC_MODRM_VsdZxReg_WO_Wsd: 2284 case BS3CG1ENC_MODRM_VqZxReg_WO_Wq: 2285 2285 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VsdZxReg_Wsd__OR__MODRM_VqZxReg_Wq(pThis, iEncoding); 2286 case BS3CG1ENC_MODRM_VqZxReg_ Nq:2287 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VqZxReg_ Nq(pThis, iEncoding);2286 case BS3CG1ENC_MODRM_VqZxReg_WO_Nq: 2287 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VqZxReg_WO_Nq(pThis, iEncoding); 2288 2288 2289 2289 case BS3CG1ENC_MODRM_Gv_Ma: 2290 2290 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Gv_Ma(pThis, iEncoding); 2291 2291 2292 case BS3CG1ENC_MODRM_Mb RO:2293 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Mb RO(pThis, iEncoding);2294 case BS3CG1ENC_MODRM_Md RO:2295 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Md RO(pThis, iEncoding);2296 case BS3CG1ENC_MODRM_Md WO:2297 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Md WO(pThis, iEncoding);2298 case BS3CG1ENC_VEX_MODRM_Md WO:2292 case BS3CG1ENC_MODRM_Mb_RO: 2293 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Mb_RO(pThis, iEncoding); 2294 case BS3CG1ENC_MODRM_Md_RO: 2295 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Md_RO(pThis, iEncoding); 2296 case BS3CG1ENC_MODRM_Md_WO: 2297 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Md_WO(pThis, iEncoding); 2298 case BS3CG1ENC_VEX_MODRM_Md_WO: 2299 2299 return Bs3Cg1EncodeNext_BS3CG1ENC_VEX_MODRM_MdWO(pThis, iEncoding); 2300 case BS3CG1ENC_MODRM_Mq WO_Vq:2300 case BS3CG1ENC_MODRM_Mq_WO_Vq: 2301 2301 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_MqWO_Vq(pThis, iEncoding); 2302 case BS3CG1ENC_MODRM_Mq WO_VqHi:2302 case BS3CG1ENC_MODRM_Mq_WO_VqHi: 2303 2303 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_MqWO_VqHi(pThis, iEncoding); 2304 2304 … … 2398 2398 break; 2399 2399 2400 case BS3CG1ENC_MODRM_Wss_ Vss:2400 case BS3CG1ENC_MODRM_Wss_WO_Vss: 2401 2401 pThis->iRmOp = 0; 2402 2402 pThis->iRegOp = 1; … … 2407 2407 break; 2408 2408 2409 case BS3CG1ENC_MODRM_Wsd_ Vsd:2410 case BS3CG1ENC_MODRM_WqZxReg_ Vq:2409 case BS3CG1ENC_MODRM_Wsd_WO_Vsd: 2410 case BS3CG1ENC_MODRM_WqZxReg_WO_Vq: 2411 2411 pThis->iRmOp = 0; 2412 2412 pThis->iRegOp = 1; … … 2417 2417 break; 2418 2418 2419 case BS3CG1ENC_MODRM_Wps_ Vps:2420 case BS3CG1ENC_MODRM_Wpd_ Vpd:2419 case BS3CG1ENC_MODRM_Wps_WO_Vps: 2420 case BS3CG1ENC_MODRM_Wpd_WO_Vpd: 2421 2421 pThis->iRmOp = 0; 2422 2422 pThis->iRegOp = 1; … … 2427 2427 break; 2428 2428 2429 case BS3CG1ENC_MODRM_Vdq_W dq:2429 case BS3CG1ENC_MODRM_Vdq_WO_Wdq: 2430 2430 pThis->iRmOp = 1; 2431 2431 pThis->iRegOp = 0; … … 2436 2436 break; 2437 2437 2438 case BS3CG1ENC_MODRM_Vpd_W pd:2439 case BS3CG1ENC_MODRM_Vps_W ps:2438 case BS3CG1ENC_MODRM_Vpd_WO_Wpd: 2439 case BS3CG1ENC_MODRM_Vps_WO_Wps: 2440 2440 pThis->iRmOp = 1; 2441 2441 pThis->iRegOp = 0; … … 2446 2446 break; 2447 2447 2448 case BS3CG1ENC_MODRM_Pq_ Uq:2449 case BS3CG1ENC_MODRM_Vq_ UqHi:2450 case BS3CG1ENC_MODRM_VqHi_ Uq:2448 case BS3CG1ENC_MODRM_Pq_WO_Uq: 2449 case BS3CG1ENC_MODRM_Vq_WO_UqHi: 2450 case BS3CG1ENC_MODRM_VqHi_WO_Uq: 2451 2451 pThis->iRmOp = 1; 2452 2452 pThis->iRegOp = 0; … … 2457 2457 break; 2458 2458 2459 case BS3CG1ENC_MODRM_Vq_ Mq:2460 case BS3CG1ENC_MODRM_VqHi_ Mq:2459 case BS3CG1ENC_MODRM_Vq_WO_Mq: 2460 case BS3CG1ENC_MODRM_VqHi_WO_Mq: 2461 2461 pThis->iRmOp = 1; 2462 2462 pThis->iRegOp = 0; … … 2467 2467 break; 2468 2468 2469 case BS3CG1ENC_MODRM_VssZxReg_W ss:2469 case BS3CG1ENC_MODRM_VssZxReg_WO_Wss: 2470 2470 pThis->iRmOp = 1; 2471 2471 pThis->iRegOp = 0; … … 2476 2476 break; 2477 2477 2478 case BS3CG1ENC_MODRM_VsdZxReg_W sd:2479 case BS3CG1ENC_MODRM_VqZxReg_W q:2480 case BS3CG1ENC_MODRM_VqZxReg_ Nq:2478 case BS3CG1ENC_MODRM_VsdZxReg_WO_Wsd: 2479 case BS3CG1ENC_MODRM_VqZxReg_WO_Wq: 2480 case BS3CG1ENC_MODRM_VqZxReg_WO_Nq: 2481 2481 pThis->iRmOp = 1; 2482 2482 pThis->iRegOp = 0; … … 2487 2487 break; 2488 2488 2489 case BS3CG1ENC_MODRM_Mb RO:2489 case BS3CG1ENC_MODRM_Mb_RO: 2490 2490 pThis->iRmOp = 0; 2491 2491 pThis->aOperands[0].cbOp = 1; … … 2493 2493 break; 2494 2494 2495 case BS3CG1ENC_MODRM_Md RO:2495 case BS3CG1ENC_MODRM_Md_RO: 2496 2496 pThis->iRmOp = 0; 2497 2497 pThis->aOperands[0].cbOp = 4; … … 2499 2499 break; 2500 2500 2501 case BS3CG1ENC_MODRM_Md WO:2502 case BS3CG1ENC_VEX_MODRM_Md WO:2501 case BS3CG1ENC_MODRM_Md_WO: 2502 case BS3CG1ENC_VEX_MODRM_Md_WO: 2503 2503 pThis->iRmOp = 0; 2504 2504 pThis->aOperands[0].cbOp = 4; … … 2506 2506 break; 2507 2507 2508 case BS3CG1ENC_MODRM_Mq WO_Vq:2509 case BS3CG1ENC_MODRM_Mq WO_VqHi:2508 case BS3CG1ENC_MODRM_Mq_WO_Vq: 2509 case BS3CG1ENC_MODRM_Mq_WO_VqHi: 2510 2510 pThis->iRmOp = 0; 2511 2511 pThis->iRegOp = 1; -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1.h
r66811 r66812 45 45 BS3CG1OP_Ev, 46 46 BS3CG1OP_Wss, 47 BS3CG1OP_Wss_WO, 47 48 BS3CG1OP_Wsd, 49 BS3CG1OP_Wsd_WO, 48 50 BS3CG1OP_Wps, 51 BS3CG1OP_Wps_WO, 49 52 BS3CG1OP_Wpd, 53 BS3CG1OP_Wpd_WO, 50 54 BS3CG1OP_Wdq, 55 BS3CG1OP_Wdq_WO, 51 56 BS3CG1OP_Wq, 52 BS3CG1OP_WqZxReg, 57 BS3CG1OP_Wq_WO, 58 BS3CG1OP_WqZxReg_WO, 53 59 54 60 BS3CG1OP_Gb, 55 61 BS3CG1OP_Gv, 56 62 BS3CG1OP_Nq, 57 BS3CG1OP_Pq ,63 BS3CG1OP_Pq_WO, 58 64 BS3CG1OP_Uq, 59 65 BS3CG1OP_UqHi, 60 66 BS3CG1OP_Vss, 61 BS3CG1OP_VssZxReg, 67 BS3CG1OP_Vss_WO, 68 BS3CG1OP_VssZxReg_WO, 62 69 BS3CG1OP_Vsd, 63 BS3CG1OP_VsdZxReg, 70 BS3CG1OP_Vsd_WO, 71 BS3CG1OP_VsdZxReg_WO, 64 72 BS3CG1OP_Vps, 73 BS3CG1OP_Vps_WO, 65 74 BS3CG1OP_Vpd, 75 BS3CG1OP_Vpd_WO, 66 76 BS3CG1OP_Vq, 77 BS3CG1OP_Vq_WO, 67 78 BS3CG1OP_Vdq, 79 BS3CG1OP_Vdq_WO, 68 80 BS3CG1OP_VqHi, 69 BS3CG1OP_VqZxReg, 81 BS3CG1OP_VqHi_WO, 82 BS3CG1OP_VqZxReg_WO, 70 83 71 84 BS3CG1OP_Ib, … … 76 89 77 90 BS3CG1OP_Ma, 78 BS3CG1OP_Mb RO,79 BS3CG1OP_Md RO,80 BS3CG1OP_Md WO,91 BS3CG1OP_Mb_RO, 92 BS3CG1OP_Md_RO, 93 BS3CG1OP_Md_WO, 81 94 BS3CG1OP_Mq, 82 BS3CG1OP_Mq WO,95 BS3CG1OP_Mq_WO, 83 96 84 97 BS3CG1OP_END … … 100 113 BS3CG1ENC_MODRM_Eb_Gb, 101 114 BS3CG1ENC_MODRM_Ev_Gv, 102 BS3CG1ENC_MODRM_Wss_ Vss,103 BS3CG1ENC_MODRM_Wsd_ Vsd,104 BS3CG1ENC_MODRM_Wps_ Vps,105 BS3CG1ENC_MODRM_Wpd_ Vpd,106 BS3CG1ENC_MODRM_WqZxReg_ Vq,115 BS3CG1ENC_MODRM_Wss_WO_Vss, 116 BS3CG1ENC_MODRM_Wsd_WO_Vsd, 117 BS3CG1ENC_MODRM_Wps_WO_Vps, 118 BS3CG1ENC_MODRM_Wpd_WO_Vpd, 119 BS3CG1ENC_MODRM_WqZxReg_WO_Vq, 107 120 108 121 BS3CG1ENC_MODRM_Gb_Eb, 109 122 BS3CG1ENC_MODRM_Gv_Ev, 110 123 BS3CG1ENC_MODRM_Gv_Ma, /**< bound instruction */ 111 BS3CG1ENC_MODRM_Pq_ Uq,112 BS3CG1ENC_MODRM_Vq_ UqHi,113 BS3CG1ENC_MODRM_Vq_ Mq,114 BS3CG1ENC_MODRM_VqHi_ Uq,115 BS3CG1ENC_MODRM_VqHi_ Mq,116 BS3CG1ENC_MODRM_Vdq_W dq,117 BS3CG1ENC_MODRM_Vpd_W pd,118 BS3CG1ENC_MODRM_Vps_W ps,119 BS3CG1ENC_MODRM_VssZxReg_W ss,120 BS3CG1ENC_MODRM_VsdZxReg_W sd,121 BS3CG1ENC_MODRM_VqZxReg_W q,122 BS3CG1ENC_MODRM_VqZxReg_ Nq,123 BS3CG1ENC_MODRM_Mb RO,124 BS3CG1ENC_MODRM_Md RO,125 BS3CG1ENC_MODRM_Md WO,126 BS3CG1ENC_MODRM_Mq WO_Vq,127 BS3CG1ENC_MODRM_Mq WO_VqHi,128 129 BS3CG1ENC_VEX_MODRM_Md WO,124 BS3CG1ENC_MODRM_Pq_WO_Uq, 125 BS3CG1ENC_MODRM_Vq_WO_UqHi, 126 BS3CG1ENC_MODRM_Vq_WO_Mq, 127 BS3CG1ENC_MODRM_VqHi_WO_Uq, 128 BS3CG1ENC_MODRM_VqHi_WO_Mq, 129 BS3CG1ENC_MODRM_Vdq_WO_Wdq, 130 BS3CG1ENC_MODRM_Vpd_WO_Wpd, 131 BS3CG1ENC_MODRM_Vps_WO_Wps, 132 BS3CG1ENC_MODRM_VssZxReg_WO_Wss, 133 BS3CG1ENC_MODRM_VsdZxReg_WO_Wsd, 134 BS3CG1ENC_MODRM_VqZxReg_WO_Wq, 135 BS3CG1ENC_MODRM_VqZxReg_WO_Nq, 136 BS3CG1ENC_MODRM_Mb_RO, 137 BS3CG1ENC_MODRM_Md_RO, 138 BS3CG1ENC_MODRM_Md_WO, 139 BS3CG1ENC_MODRM_Mq_WO_Vq, 140 BS3CG1ENC_MODRM_Mq_WO_VqHi, 141 142 BS3CG1ENC_VEX_MODRM_Md_WO, 130 143 131 144 BS3CG1ENC_FIXED,
Note:
See TracChangeset
for help on using the changeset viewer.