Changeset 108269 in vbox for trunk/src/VBox/VMM/VMMAll/target-x86
- Timestamp:
- Feb 18, 2025 9:14:21 AM (2 months ago)
- svn:sync-xref-src-repo-rev:
- 167594
- Location:
- trunk/src/VBox/VMM/VMMAll/target-x86
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllInstOneByte-x86.cpp.h
r108267 r108269 15296 15296 IEM_MC_LOCAL(uint16_t, u16Target); 15297 15297 IEM_MC_FETCH_GREG_U16(u16Target, IEM_GET_MODRM_RM(pVCpu, bRm)); 15298 IEM_MC_ SET_RIP_U16_AND_FINISH(u16Target);15298 IEM_MC_IND_JMP_U16_AND_FINISH(u16Target); 15299 15299 IEM_MC_END(); 15300 15300 break; … … 15305 15305 IEM_MC_LOCAL(uint32_t, u32Target); 15306 15306 IEM_MC_FETCH_GREG_U32(u32Target, IEM_GET_MODRM_RM(pVCpu, bRm)); 15307 IEM_MC_ SET_RIP_U32_AND_FINISH(u32Target);15307 IEM_MC_IND_JMP_U32_AND_FINISH(u32Target); 15308 15308 IEM_MC_END(); 15309 15309 break; … … 15314 15314 IEM_MC_LOCAL(uint64_t, u64Target); 15315 15315 IEM_MC_FETCH_GREG_U64(u64Target, IEM_GET_MODRM_RM(pVCpu, bRm)); 15316 IEM_MC_ SET_RIP_U64_AND_FINISH(u64Target);15316 IEM_MC_IND_JMP_U64_AND_FINISH(u64Target); 15317 15317 IEM_MC_END(); 15318 15318 break; … … 15333 15333 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 15334 15334 IEM_MC_FETCH_MEM_U16(u16Target, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); 15335 IEM_MC_ SET_RIP_U16_AND_FINISH(u16Target);15335 IEM_MC_IND_JMP_U16_AND_FINISH(u16Target); 15336 15336 IEM_MC_END(); 15337 15337 break; … … 15344 15344 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 15345 15345 IEM_MC_FETCH_MEM_U32(u32Target, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); 15346 IEM_MC_ SET_RIP_U32_AND_FINISH(u32Target);15346 IEM_MC_IND_JMP_U32_AND_FINISH(u32Target); 15347 15347 IEM_MC_END(); 15348 15348 break; … … 15355 15355 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 15356 15356 IEM_MC_FETCH_MEM_U64(u64Target, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); 15357 IEM_MC_ SET_RIP_U64_AND_FINISH(u64Target);15357 IEM_MC_IND_JMP_U64_AND_FINISH(u64Target); 15358 15358 IEM_MC_END(); 15359 15359 break; -
trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllN8veLiveness-x86.h
r108267 r108269 348 348 #define IEM_MC_REL_JMP_S32_AND_FINISH_THREADED_PC64_WITH_FLAGS(a_i32, a_cbInstr, a_rcNormal) IEM_LIVENESS_PC64_JMP_WITH_FLAGS() 349 349 #define IEM_MC_REL_JMP_S32_AND_FINISH_THREADED_PC64_INTRAPG_WITH_FLAGS(a_i32, a_cbInstr, a_rcNormal) IEM_LIVENESS_PC64_INTRAPG_JMP_WITH_FLAGS() 350 #define IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC16(a_u16NewIP) IEM_LIVENESS_PC16_JMP_NO_FLAGS()351 #define IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC32(a_u16NewIP) IEM_LIVENESS_PC32_JMP_NO_FLAGS()352 #define IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC64(a_u16NewIP) IEM_LIVENESS_PC64_JMP_NO_FLAGS()353 #define IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC16_WITH_FLAGS(a_u16NewIP) IEM_LIVENESS_PC16_JMP_WITH_FLAGS()354 #define IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC32_WITH_FLAGS(a_u16NewIP) IEM_LIVENESS_PC32_JMP_WITH_FLAGS()355 #define IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC64_WITH_FLAGS(a_u16NewIP) IEM_LIVENESS_PC64_JMP_WITH_FLAGS()356 #define IEM_MC_ SET_RIP_U32_AND_FINISH_THREADED_PC32(a_u32NewEIP) IEM_LIVENESS_PC32_JMP_NO_FLAGS()357 #define IEM_MC_ SET_RIP_U32_AND_FINISH_THREADED_PC64(a_u32NewEIP) IEM_LIVENESS_PC64_JMP_NO_FLAGS()358 #define IEM_MC_ SET_RIP_U32_AND_FINISH_THREADED_PC32_WITH_FLAGS(a_u32NewEIP) IEM_LIVENESS_PC32_JMP_WITH_FLAGS()359 #define IEM_MC_ SET_RIP_U32_AND_FINISH_THREADED_PC64_WITH_FLAGS(a_u32NewEIP) IEM_LIVENESS_PC64_JMP_WITH_FLAGS()360 #define IEM_MC_ SET_RIP_U64_AND_FINISH_THREADED_PC64(a_u32NewEIP) IEM_LIVENESS_PC64_JMP_NO_FLAGS()361 #define IEM_MC_ SET_RIP_U64_AND_FINISH_THREADED_PC64_WITH_FLAGS(a_u32NewEIP) IEM_LIVENESS_PC64_JMP_WITH_FLAGS()350 #define IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC16(a_u16NewIP) IEM_LIVENESS_PC16_JMP_NO_FLAGS() 351 #define IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC32(a_u16NewIP) IEM_LIVENESS_PC32_JMP_NO_FLAGS() 352 #define IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC64(a_u16NewIP) IEM_LIVENESS_PC64_JMP_NO_FLAGS() 353 #define IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC16_WITH_FLAGS(a_u16NewIP) IEM_LIVENESS_PC16_JMP_WITH_FLAGS() 354 #define IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC32_WITH_FLAGS(a_u16NewIP) IEM_LIVENESS_PC32_JMP_WITH_FLAGS() 355 #define IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC64_WITH_FLAGS(a_u16NewIP) IEM_LIVENESS_PC64_JMP_WITH_FLAGS() 356 #define IEM_MC_IND_JMP_U32_AND_FINISH_THREADED_PC32(a_u32NewEIP) IEM_LIVENESS_PC32_JMP_NO_FLAGS() 357 #define IEM_MC_IND_JMP_U32_AND_FINISH_THREADED_PC64(a_u32NewEIP) IEM_LIVENESS_PC64_JMP_NO_FLAGS() 358 #define IEM_MC_IND_JMP_U32_AND_FINISH_THREADED_PC32_WITH_FLAGS(a_u32NewEIP) IEM_LIVENESS_PC32_JMP_WITH_FLAGS() 359 #define IEM_MC_IND_JMP_U32_AND_FINISH_THREADED_PC64_WITH_FLAGS(a_u32NewEIP) IEM_LIVENESS_PC64_JMP_WITH_FLAGS() 360 #define IEM_MC_IND_JMP_U64_AND_FINISH_THREADED_PC64(a_u32NewEIP) IEM_LIVENESS_PC64_JMP_NO_FLAGS() 361 #define IEM_MC_IND_JMP_U64_AND_FINISH_THREADED_PC64_WITH_FLAGS(a_u32NewEIP) IEM_LIVENESS_PC64_JMP_WITH_FLAGS() 362 362 363 363 #define IEM_MC_REL_CALL_S16_AND_FINISH_THREADED_PC16(a_i16, a_cbInstr) do { IEM_LIVENESS_PC16_JMP_NO_FLAGS(); IEM_LIVENESS_STACK(); } while (0) -
trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllN8veRecompFuncs-x86.h
r108267 r108269 1409 1409 1410 1410 /********************************************************************************************************************************* 1411 * Emitters for changing PC/RIP/EIP/IP with a indirect jump (IEM_MC_ SET_RIP_UXX_AND_FINISH). *1411 * Emitters for changing PC/RIP/EIP/IP with a indirect jump (IEM_MC_IND_JMP_UXX_AND_FINISH). * 1412 1412 *********************************************************************************************************************************/ 1413 1413 1414 /** Variant of IEM_MC_ SET_RIP_U16_AND_FINISH for pre-386 targets. */1415 #define IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC16(a_u16NewIP) \1414 /** Variant of IEM_MC_IND_JMP_U16_AND_FINISH for pre-386 targets. */ 1415 #define IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC16(a_u16NewIP) \ 1416 1416 off = iemNativeEmitRipJumpNoFlags(pReNative, off, (a_u16NewIP), false /*f64Bit*/, pCallEntry->idxInstr, sizeof(uint16_t)) 1417 1417 1418 /** Variant of IEM_MC_ SET_RIP_U16_AND_FINISH for 386+ targets. */1419 #define IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC32(a_u16NewIP) \1418 /** Variant of IEM_MC_IND_JMP_U16_AND_FINISH for 386+ targets. */ 1419 #define IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC32(a_u16NewIP) \ 1420 1420 off = iemNativeEmitRipJumpNoFlags(pReNative, off, (a_u16NewIP), false /*f64Bit*/, pCallEntry->idxInstr, sizeof(uint16_t)) 1421 1421 1422 /** Variant of IEM_MC_ SET_RIP_U16_AND_FINISH for use in 64-bit code. */1423 #define IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC64(a_u16NewIP) \1422 /** Variant of IEM_MC_IND_JMP_U16_AND_FINISH for use in 64-bit code. */ 1423 #define IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC64(a_u16NewIP) \ 1424 1424 off = iemNativeEmitRipJumpNoFlags(pReNative, off, (a_u16NewIP), true /*f64Bit*/, pCallEntry->idxInstr, sizeof(uint16_t)) 1425 1425 1426 /** Variant of IEM_MC_ SET_RIP_U16_AND_FINISH for pre-386 targets that checks and1426 /** Variant of IEM_MC_IND_JMP_U16_AND_FINISH for pre-386 targets that checks and 1427 1427 * clears flags. */ 1428 #define IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC16_WITH_FLAGS(a_u16NewIP) \1429 IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC16(a_u16NewIP); \1428 #define IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC16_WITH_FLAGS(a_u16NewIP) \ 1429 IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC16(a_u16NewIP); \ 1430 1430 off = iemNativeEmitFinishInstructionFlagsCheck(pReNative, off) 1431 1431 1432 /** Variant of IEM_MC_ SET_RIP_U16_AND_FINISH for 386+ targets that checks and1432 /** Variant of IEM_MC_IND_JMP_U16_AND_FINISH for 386+ targets that checks and 1433 1433 * clears flags. */ 1434 #define IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC32_WITH_FLAGS(a_u16NewIP) \1435 IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC32(a_u16NewIP); \1434 #define IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC32_WITH_FLAGS(a_u16NewIP) \ 1435 IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC32(a_u16NewIP); \ 1436 1436 off = iemNativeEmitFinishInstructionFlagsCheck(pReNative, off) 1437 1437 1438 /** Variant of IEM_MC_ SET_RIP_U16_AND_FINISH for use in 64-bit code that checks and1438 /** Variant of IEM_MC_IND_JMP_U16_AND_FINISH for use in 64-bit code that checks and 1439 1439 * clears flags. */ 1440 #define IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC64_WITH_FLAGS(a_u16NewIP) \1441 IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC64(a_u16NewIP); \1440 #define IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC64_WITH_FLAGS(a_u16NewIP) \ 1441 IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC64(a_u16NewIP); \ 1442 1442 off = iemNativeEmitFinishInstructionFlagsCheck(pReNative, off) 1443 1443 1444 #undef IEM_MC_ SET_RIP_U16_AND_FINISH1445 1446 1447 /** Variant of IEM_MC_ SET_RIP_U32_AND_FINISH for 386+ targets. */1448 #define IEM_MC_ SET_RIP_U32_AND_FINISH_THREADED_PC32(a_u32NewEIP) \1444 #undef IEM_MC_IND_JMP_U16_AND_FINISH 1445 1446 1447 /** Variant of IEM_MC_IND_JMP_U32_AND_FINISH for 386+ targets. */ 1448 #define IEM_MC_IND_JMP_U32_AND_FINISH_THREADED_PC32(a_u32NewEIP) \ 1449 1449 off = iemNativeEmitRipJumpNoFlags(pReNative, off, (a_u32NewEIP), false /*f64Bit*/, pCallEntry->idxInstr, sizeof(uint32_t)) 1450 1450 1451 /** Variant of IEM_MC_ SET_RIP_U32_AND_FINISH for use in 64-bit code. */1452 #define IEM_MC_ SET_RIP_U32_AND_FINISH_THREADED_PC64(a_u32NewEIP) \1451 /** Variant of IEM_MC_IND_JMP_U32_AND_FINISH for use in 64-bit code. */ 1452 #define IEM_MC_IND_JMP_U32_AND_FINISH_THREADED_PC64(a_u32NewEIP) \ 1453 1453 off = iemNativeEmitRipJumpNoFlags(pReNative, off, (a_u32NewEIP), true /*f64Bit*/, pCallEntry->idxInstr, sizeof(uint32_t)) 1454 1454 1455 /** Variant of IEM_MC_ SET_RIP_U32_AND_FINISH for 386+ targets that checks and1455 /** Variant of IEM_MC_IND_JMP_U32_AND_FINISH for 386+ targets that checks and 1456 1456 * clears flags. */ 1457 #define IEM_MC_ SET_RIP_U32_AND_FINISH_THREADED_PC32_WITH_FLAGS(a_u32NewEIP) \1458 IEM_MC_ SET_RIP_U32_AND_FINISH_THREADED_PC32(a_u32NewEIP); \1457 #define IEM_MC_IND_JMP_U32_AND_FINISH_THREADED_PC32_WITH_FLAGS(a_u32NewEIP) \ 1458 IEM_MC_IND_JMP_U32_AND_FINISH_THREADED_PC32(a_u32NewEIP); \ 1459 1459 off = iemNativeEmitFinishInstructionFlagsCheck(pReNative, off) 1460 1460 1461 /** Variant of IEM_MC_ SET_RIP_U32_AND_FINISH for use in 64-bit code that checks1461 /** Variant of IEM_MC_IND_JMP_U32_AND_FINISH for use in 64-bit code that checks 1462 1462 * and clears flags. */ 1463 #define IEM_MC_ SET_RIP_U32_AND_FINISH_THREADED_PC64_WITH_FLAGS(a_u32NewEIP) \1464 IEM_MC_ SET_RIP_U32_AND_FINISH_THREADED_PC64(a_u32NewEIP); \1463 #define IEM_MC_IND_JMP_U32_AND_FINISH_THREADED_PC64_WITH_FLAGS(a_u32NewEIP) \ 1464 IEM_MC_IND_JMP_U32_AND_FINISH_THREADED_PC64(a_u32NewEIP); \ 1465 1465 off = iemNativeEmitFinishInstructionFlagsCheck(pReNative, off) 1466 1466 1467 #undef IEM_MC_ SET_RIP_U32_AND_FINISH1468 1469 1470 /** Variant of IEM_MC_ SET_RIP_U64_AND_FINISH for use in 64-bit code. */1471 #define IEM_MC_ SET_RIP_U64_AND_FINISH_THREADED_PC64(a_u64NewEIP) \1467 #undef IEM_MC_IND_JMP_U32_AND_FINISH 1468 1469 1470 /** Variant of IEM_MC_IND_JMP_U64_AND_FINISH for use in 64-bit code. */ 1471 #define IEM_MC_IND_JMP_U64_AND_FINISH_THREADED_PC64(a_u64NewEIP) \ 1472 1472 off = iemNativeEmitRipJumpNoFlags(pReNative, off, (a_u64NewEIP), true /*f64Bit*/, pCallEntry->idxInstr, sizeof(uint64_t)) 1473 1473 1474 /** Variant of IEM_MC_ SET_RIP_U64_AND_FINISH for use in 64-bit code that checks1474 /** Variant of IEM_MC_IND_JMP_U64_AND_FINISH for use in 64-bit code that checks 1475 1475 * and clears flags. */ 1476 #define IEM_MC_ SET_RIP_U64_AND_FINISH_THREADED_PC64_WITH_FLAGS(a_u64NewEIP) \1477 IEM_MC_ SET_RIP_U64_AND_FINISH_THREADED_PC64(a_u64NewEIP); \1476 #define IEM_MC_IND_JMP_U64_AND_FINISH_THREADED_PC64_WITH_FLAGS(a_u64NewEIP) \ 1477 IEM_MC_IND_JMP_U64_AND_FINISH_THREADED_PC64(a_u64NewEIP); \ 1478 1478 off = iemNativeEmitFinishInstructionFlagsCheck(pReNative, off) 1479 1479 1480 #undef IEM_MC_ SET_RIP_U64_AND_FINISH1480 #undef IEM_MC_IND_JMP_U64_AND_FINISH 1481 1481 1482 1482 -
trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllThrdFuncs-x86.cpp
r108267 r108269 301 301 302 302 303 /** Variant of IEM_MC_ SET_RIP_U16_AND_FINISH for pre-386 targets. */304 #define IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC16(a_u16NewIP) \303 /** Variant of IEM_MC_IND_JMP_U16_AND_FINISH for pre-386 targets. */ 304 #define IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC16(a_u16NewIP) \ 305 305 return iemRegRipJumpU16AndFinishNoFlags((pVCpu), (a_u16NewIP)) 306 306 307 /** Variant of IEM_MC_ SET_RIP_U16_AND_FINISH for 386+ targets. */308 #define IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC32(a_u16NewIP) \307 /** Variant of IEM_MC_IND_JMP_U16_AND_FINISH for 386+ targets. */ 308 #define IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC32(a_u16NewIP) \ 309 309 return iemRegRipJumpU16AndFinishNoFlags((pVCpu), (a_u16NewIP)) 310 310 311 /** Variant of IEM_MC_ SET_RIP_U16_AND_FINISH for use in 64-bit code. */312 #define IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC64(a_u16NewIP) \311 /** Variant of IEM_MC_IND_JMP_U16_AND_FINISH for use in 64-bit code. */ 312 #define IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC64(a_u16NewIP) \ 313 313 return iemRegRipJumpU16AndFinishNoFlags((pVCpu), (a_u16NewIP)) 314 314 315 /** Variant of IEM_MC_ SET_RIP_U16_AND_FINISH for pre-386 targets that checks and315 /** Variant of IEM_MC_IND_JMP_U16_AND_FINISH for pre-386 targets that checks and 316 316 * clears flags. */ 317 #define IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC16_WITH_FLAGS(a_u16NewIP) \317 #define IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC16_WITH_FLAGS(a_u16NewIP) \ 318 318 return iemRegRipJumpU16AndFinishClearingRF((pVCpu), (a_u16NewIP), 0 /* cbInstr - not used */) 319 319 320 /** Variant of IEM_MC_ SET_RIP_U16_AND_FINISH for 386+ targets that checks and320 /** Variant of IEM_MC_IND_JMP_U16_AND_FINISH for 386+ targets that checks and 321 321 * clears flags. */ 322 #define IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC32_WITH_FLAGS(a_u16NewIP) \322 #define IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC32_WITH_FLAGS(a_u16NewIP) \ 323 323 return iemRegRipJumpU16AndFinishClearingRF((pVCpu), (a_u16NewIP), 0 /* cbInstr - not used */) 324 324 325 /** Variant of IEM_MC_ SET_RIP_U16_AND_FINISH for use in 64-bit code that checks and325 /** Variant of IEM_MC_IND_JMP_U16_AND_FINISH for use in 64-bit code that checks and 326 326 * clears flags. */ 327 #define IEM_MC_ SET_RIP_U16_AND_FINISH_THREADED_PC64_WITH_FLAGS(a_u16NewIP) \327 #define IEM_MC_IND_JMP_U16_AND_FINISH_THREADED_PC64_WITH_FLAGS(a_u16NewIP) \ 328 328 return iemRegRipJumpU16AndFinishClearingRF((pVCpu), (a_u16NewIP), 0 /* cbInstr - not used */) 329 329 330 #undef IEM_MC_ SET_RIP_U16_AND_FINISH331 332 333 /** Variant of IEM_MC_ SET_RIP_U32_AND_FINISH for 386+ targets. */334 #define IEM_MC_ SET_RIP_U32_AND_FINISH_THREADED_PC32(a_u32NewEIP) \330 #undef IEM_MC_IND_JMP_U16_AND_FINISH 331 332 333 /** Variant of IEM_MC_IND_JMP_U32_AND_FINISH for 386+ targets. */ 334 #define IEM_MC_IND_JMP_U32_AND_FINISH_THREADED_PC32(a_u32NewEIP) \ 335 335 return iemRegRipJumpU32AndFinishNoFlags((pVCpu), (a_u32NewEIP)) 336 336 337 /** Variant of IEM_MC_ SET_RIP_U32_AND_FINISH for use in 64-bit code. */338 #define IEM_MC_ SET_RIP_U32_AND_FINISH_THREADED_PC64(a_u32NewEIP) \337 /** Variant of IEM_MC_IND_JMP_U32_AND_FINISH for use in 64-bit code. */ 338 #define IEM_MC_IND_JMP_U32_AND_FINISH_THREADED_PC64(a_u32NewEIP) \ 339 339 return iemRegRipJumpU32AndFinishNoFlags((pVCpu), (a_u32NewEIP)) 340 340 341 /** Variant of IEM_MC_ SET_RIP_U32_AND_FINISH for 386+ targets that checks and341 /** Variant of IEM_MC_IND_JMP_U32_AND_FINISH for 386+ targets that checks and 342 342 * clears flags. */ 343 #define IEM_MC_ SET_RIP_U32_AND_FINISH_THREADED_PC32_WITH_FLAGS(a_u32NewEIP) \343 #define IEM_MC_IND_JMP_U32_AND_FINISH_THREADED_PC32_WITH_FLAGS(a_u32NewEIP) \ 344 344 return iemRegRipJumpU32AndFinishClearingRF((pVCpu), (a_u32NewEIP), 0 /* cbInstr - not used */) 345 345 346 /** Variant of IEM_MC_ SET_RIP_U32_AND_FINISH for use in 64-bit code that checks346 /** Variant of IEM_MC_IND_JMP_U32_AND_FINISH for use in 64-bit code that checks 347 347 * and clears flags. */ 348 #define IEM_MC_ SET_RIP_U32_AND_FINISH_THREADED_PC64_WITH_FLAGS(a_u32NewEIP) \348 #define IEM_MC_IND_JMP_U32_AND_FINISH_THREADED_PC64_WITH_FLAGS(a_u32NewEIP) \ 349 349 return iemRegRipJumpU32AndFinishClearingRF((pVCpu), (a_u32NewEIP), 0 /* cbInstr - not used */) 350 350 351 #undef IEM_MC_ SET_RIP_U32_AND_FINISH352 353 354 /** Variant of IEM_MC_ SET_RIP_U64_AND_FINISH for use in 64-bit code. */355 #define IEM_MC_ SET_RIP_U64_AND_FINISH_THREADED_PC64(a_u32NewEIP) \351 #undef IEM_MC_IND_JMP_U32_AND_FINISH 352 353 354 /** Variant of IEM_MC_IND_JMP_U64_AND_FINISH for use in 64-bit code. */ 355 #define IEM_MC_IND_JMP_U64_AND_FINISH_THREADED_PC64(a_u32NewEIP) \ 356 356 return iemRegRipJumpU64AndFinishNoFlags((pVCpu), (a_u32NewEIP)) 357 357 358 /** Variant of IEM_MC_ SET_RIP_U64_AND_FINISH for use in 64-bit code that checks358 /** Variant of IEM_MC_IND_JMP_U64_AND_FINISH for use in 64-bit code that checks 359 359 * and clears flags. */ 360 #define IEM_MC_ SET_RIP_U64_AND_FINISH_THREADED_PC64_WITH_FLAGS(a_u32NewEIP) \360 #define IEM_MC_IND_JMP_U64_AND_FINISH_THREADED_PC64_WITH_FLAGS(a_u32NewEIP) \ 361 361 return iemRegRipJumpU64AndFinishClearingRF((pVCpu), (a_u32NewEIP), 0 /* cbInstr - not used */) 362 362 363 #undef IEM_MC_ SET_RIP_U64_AND_FINISH363 #undef IEM_MC_IND_JMP_U64_AND_FINISH 364 364 365 365
Note:
See TracChangeset
for help on using the changeset viewer.