- Timestamp:
- Oct 24, 2023 12:44:45 AM (16 months ago)
- svn:sync-xref-src-repo-rev:
- 159650
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstPython.py
r101568 r101569 2893 2893 'IEM_MC_IF_EFL_BITS_EQ': (McBlock.parseMcGenericCond, True, False, ), 2894 2894 'IEM_MC_IF_EFL_BITS_NE': (McBlock.parseMcGenericCond, True, False, ), 2895 'IEM_MC_IF_EFL_NO_BITS_SET': (McBlock.parseMcGenericCond, True, False,),2895 'IEM_MC_IF_EFL_NO_BITS_SET': (McBlock.parseMcGenericCond, True, True, ), 2896 2896 'IEM_MC_IF_FCW_IM': (McBlock.parseMcGenericCond, True, False, ), 2897 2897 'IEM_MC_IF_FPUREG_IS_EMPTY': (McBlock.parseMcGenericCond, True, False, ), -
trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompiler.cpp
r101568 r101569 4282 4282 4283 4283 4284 #define IEM_MC_IF_EFL_NO_BITS_SET(a_fBits) \ 4285 off = iemNativeEmitIfEflagNoBitsSet(pReNative, off, (a_fBits)); \ 4286 AssertReturn(off != UINT32_MAX, UINT32_MAX); \ 4287 do { 4288 4289 /** Emits code for IEM_MC_IF_EFL_NO_BITS_SET. */ 4290 DECLINLINE(uint32_t) iemNativeEmitIfEflagNoBitsSet(PIEMRECOMPILERSTATE pReNative, uint32_t off, uint32_t fBitsInEfl) 4291 { 4292 PIEMNATIVECOND pEntry = iemNativeCondPushIf(pReNative); 4293 AssertReturn(pEntry, UINT32_MAX); 4294 4295 /* Get the eflags. */ 4296 uint8_t const idxEflReg = iemNativeRegAllocTmpForGuestReg(pReNative, &off, kIemNativeGstReg_EFlags, 4297 kIemNativeGstRegUse_ReadOnly); 4298 AssertReturn(idxEflReg != UINT8_MAX, UINT32_MAX); 4299 4300 /* Test and jump. */ 4301 off = iemNativeEmitTestAnyBitsInGprAndJmpToLabelIfAnySet(pReNative, off, idxEflReg, fBitsInEfl, pEntry->idxLabelElse); 4302 4303 /* Free but don't flush the EFlags register. */ 4304 iemNativeRegFreeTmp(pReNative, idxEflReg); 4305 4306 /* Make a copy of the core state now as we start the if-block. */ 4307 iemNativeCondStartIfBlock(pReNative, off); 4308 4309 return off; 4310 } 4311 4312 4284 4313 #define IEM_MC_IF_EFL_BIT_SET(a_fBit) \ 4285 4314 off = iemNativeEmitIfEflagsBitSet(pReNative, off, (a_fBit)); \
Note:
See TracChangeset
for help on using the changeset viewer.