VirtualBox

Ignore:
Timestamp:
Sep 23, 2024 10:42:27 PM (4 months ago)
Author:
vboxsync
Message:

VMM/IEM: Eliminated the #ifndef IEMNATIVE_WITH_RECOMPILER_PER_CHUNK_TAIL_CODE bits to try reduce the #ifdef-spaghetti a little. bugref:10677

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/IEMN8veRecompilerEmit.h

    r106123 r106125  
    83108310    Assert(IEMNATIVELABELTYPE_IS_EXIT_REASON(enmExitReason));
    83118311
    8312 #if defined(IEMNATIVE_WITH_RECOMPILER_PER_CHUNK_TAIL_CODE) && defined(RT_ARCH_AMD64)
     8312#if defined(RT_ARCH_AMD64)
    83138313    /* jcc rel32 */
    83148314    pCodeBuf[off++] = 0x0f;
     
    83408340    Assert(IEMNATIVELABELTYPE_IS_EXIT_REASON(enmExitReason));
    83418341
    8342 #ifdef IEMNATIVE_WITH_RECOMPILER_PER_CHUNK_TAIL_CODE
    8343 # ifdef RT_ARCH_AMD64
     8342#ifdef RT_ARCH_AMD64
    83448343    off = iemNativeEmitJccTbExitEx(pReNative, iemNativeInstrBufEnsure(pReNative, off, 6), off, enmExitReason, enmCond);
    8345 # elif defined(RT_ARCH_ARM64)
     8344#elif defined(RT_ARCH_ARM64)
    83468345    off = iemNativeEmitJccTbExitEx(pReNative, iemNativeInstrBufEnsure(pReNative, off, 2), off, enmExitReason, enmCond);
    8347 # else
    8348 #  error "Port me!"
    8349 # endif
    8350     IEMNATIVE_ASSERT_INSTR_BUF_ENSURE(pReNative, off);
    8351     return off;
    8352 #else
    8353     return iemNativeEmitJccToNewLabel(pReNative, off, enmExitReason, 0 /*uData*/, enmCond);
    8354 #endif
     8346#else
     8347# error "Port me!"
     8348#endif
     8349    IEMNATIVE_ASSERT_INSTR_BUF_ENSURE(pReNative, off);
     8350    return off;
    83558351}
    83568352
     
    84258421    iemNativeMarkCurCondBranchAsExiting(pReNative);
    84268422
    8427 #ifdef IEMNATIVE_WITH_RECOMPILER_PER_CHUNK_TAIL_CODE
    8428 # ifdef RT_ARCH_AMD64
     8423#ifdef RT_ARCH_AMD64
    84298424    /* jmp rel32 */
    84308425    pCodeBuf[off++] = 0xe9;
     
    84358430    pCodeBuf[off++] = 0xff;
    84368431
    8437 # elif defined(RT_ARCH_ARM64)
     8432#elif defined(RT_ARCH_ARM64)
    84388433    iemNativeAddTbExitFixup(pReNative, off, enmExitReason);
    84398434    pCodeBuf[off++] = Armv8A64MkInstrB(-1);
    84408435
    8441 # else
    8442 #  error "Port me!"
    8443 # endif
    8444     return off;
    8445 
    8446 #else
    8447     uint32_t const idxLabel = iemNativeLabelCreate(pReNative, enmExitReason, UINT32_MAX /*offWhere*/, 0 /*uData*/);
    8448     return iemNativeEmitJmpToLabelEx(pReNative, pCodeBuf, off, idxLabel);
    8449 #endif
     8436#else
     8437# error "Port me!"
     8438#endif
     8439    return off;
    84508440}
    84518441
     
    84628452        iemNativeMarkCurCondBranchAsExiting(pReNative);
    84638453
    8464 #ifdef IEMNATIVE_WITH_RECOMPILER_PER_CHUNK_TAIL_CODE
    8465 # ifdef RT_ARCH_AMD64
     8454#ifdef RT_ARCH_AMD64
    84668455    PIEMNATIVEINSTR pCodeBuf = iemNativeInstrBufEnsure(pReNative, off, 6);
    84678456
     
    84748463    pCodeBuf[off++] = 0xff;
    84758464
    8476 # elif defined(RT_ARCH_ARM64)
     8465#elif defined(RT_ARCH_ARM64)
    84778466    PIEMNATIVEINSTR pCodeBuf = iemNativeInstrBufEnsure(pReNative, off, 1);
    84788467    iemNativeAddTbExitFixup(pReNative, off, enmExitReason);
    84798468    pCodeBuf[off++] = Armv8A64MkInstrB(-1);
    84808469
    8481 # else
    8482 #  error "Port me!"
    8483 # endif
    8484     IEMNATIVE_ASSERT_INSTR_BUF_ENSURE(pReNative, off);
    8485     return off;
    8486 
    8487 #else
    8488     return iemNativeEmitJmpToNewLabel(pReNative, off, enmExitReason);
    8489 #endif
     8470#else
     8471# error "Port me!"
     8472#endif
     8473    IEMNATIVE_ASSERT_INSTR_BUF_ENSURE(pReNative, off);
     8474    return off;
    84908475}
    84918476
     
    85878572    Assert(IEMNATIVELABELTYPE_IS_EXIT_REASON(enmExitReason));
    85888573
    8589 #if defined(IEMNATIVE_WITH_RECOMPILER_PER_CHUNK_TAIL_CODE) && defined(RT_ARCH_AMD64)
     8574#if defined(RT_ARCH_AMD64)
    85908575    Assert(iBitNo < 64);
    85918576    uint8_t * const pbCodeBuf = iemNativeInstrBufEnsure(pReNative, off, 5);
     
    86388623    Assert(IEMNATIVELABELTYPE_IS_EXIT_REASON(enmExitReason));
    86398624
    8640 #if defined(IEMNATIVE_WITH_RECOMPILER_PER_CHUNK_TAIL_CODE) && defined(RT_ARCH_AMD64)
     8625#if defined(RT_ARCH_AMD64)
    86418626    /* test reg32,reg32  / test reg64,reg64 */
    86428627    if (f64Bit)
     
    86718656                                         uint8_t iGprSrc, bool f64Bit, IEMNATIVELABELTYPE enmExitReason)
    86728657{
    8673 #if defined(IEMNATIVE_WITH_RECOMPILER_PER_CHUNK_TAIL_CODE) && defined(RT_ARCH_AMD64)
     8658#if defined(RT_ARCH_AMD64)
    86748659    off = iemNativeEmitTestIfGprIsNotZeroAndTbExitEx(pReNative, iemNativeInstrBufEnsure(pReNative, off, 3 + 6),
    86758660                                                     off, iGprSrc, f64Bit, enmExitReason);
     
    86958680{
    86968681    Assert(IEMNATIVELABELTYPE_IS_EXIT_REASON(enmExitReason));
    8697 #if defined(IEMNATIVE_WITH_RECOMPILER_PER_CHUNK_TAIL_CODE) && defined(RT_ARCH_AMD64)
     8682#if defined(RT_ARCH_AMD64)
    86988683    /* test reg32,reg32  / test reg64,reg64 */
    86998684    if (f64Bit)
     
    87288713                                      uint8_t iGprSrc, bool f64Bit, IEMNATIVELABELTYPE enmExitReason)
    87298714{
    8730 #if defined(IEMNATIVE_WITH_RECOMPILER_PER_CHUNK_TAIL_CODE) && defined(RT_ARCH_AMD64)
     8715#if defined(RT_ARCH_AMD64)
    87318716    off = iemNativeEmitTestIfGprIsZeroAndTbExitEx(pReNative, iemNativeInstrBufEnsure(pReNative, off, 3 + 6),
    87328717                                                  off, iGprSrc, f64Bit, enmExitReason);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette