VirtualBox

Changeset 104145 in vbox


Ignore:
Timestamp:
Apr 3, 2024 7:32:08 PM (12 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
162567
Message:

VMM/IEM: Correct canonical check on arm64 hosts, wrong shift (both direction and count). The comment was correct, though. Cause a lot of false TLB misses. bugref:10371

File:
1 edited

Legend:

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

    r103622 r104145  
    566566# elif defined(RT_ARCH_ARM64)
    567567        /* lsr  reg1, regflat, #48 */
    568         pCodeBuf[off++] = Armv8A64MkInstrLslImm(pTlbState->idxReg1, idxRegFlatPtr, 4);
     568        pCodeBuf[off++] = Armv8A64MkInstrLsrImm(pTlbState->idxReg1, idxRegFlatPtr, 48);
    569569        /* add  reg1, reg1, #1 */
    570570        pCodeBuf[off++] = Armv8A64MkInstrAddUImm12(pTlbState->idxReg1, pTlbState->idxReg1, 1, false /*f64Bit*/);
    571571        /* tst  reg1, #0xfffe */
    572572        Assert(Armv8A64ConvertImmRImmS2Mask32(14, 31) == 0xfffe);
    573         pCodeBuf[off++] = Armv8A64MkInstrTstImm(pTlbState->idxReg1, 14, 31,  false /*f64Bit*/);
     573        pCodeBuf[off++] = Armv8A64MkInstrTstImm(pTlbState->idxReg1, 14, 31, false /*f64Bit*/);
    574574        /* b.nq tlbmiss */
    575575        off = iemNativeEmitJccToLabelEx(pReNative, pCodeBuf, off, idxLabelTlbMiss, kIemNativeInstrCond_ne);
Note: See TracChangeset for help on using the changeset viewer.

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