VirtualBox

Changeset 104984 in vbox for trunk/include/iprt/armv8.h


Ignore:
Timestamp:
Jun 20, 2024 2:07:04 PM (8 months ago)
Author:
vboxsync
Message:

VMM/IEM: Relax alignment restrictions in native code TLB lookup, avoid the fallback/tlbmiss code path for most accesses as long as they're within the same page. bugref:10687

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/armv8.h

    r104728 r104984  
    40524052
    40534053
     4054/**
     4055 * A64: Encodes TBZ (conditional branch w/ immediate) instructions.
     4056 *
     4057 * @returns The encoded instruction.
     4058 * @param   iImm14          Signed number of instruction to jump (i.e. *4).
     4059 * @param   iReg            The GPR to check for zero / non-zero value.
     4060 * @param   iBitNo          The bit to test for.
     4061 */
     4062DECL_FORCE_INLINE(uint32_t) Armv8A64MkInstrTbz(int32_t iImm14, uint32_t iReg, uint32_t iBitNo)
     4063{
     4064    return Armv8A64MkInstrTbzTbnz(false /*fJmpIfNotZero*/, iImm14, iReg, iBitNo);
     4065}
     4066
     4067
     4068/**
     4069 * A64: Encodes TBNZ (conditional branch w/ immediate) instructions.
     4070 *
     4071 * @returns The encoded instruction.
     4072 * @param   iImm14          Signed number of instruction to jump (i.e. *4).
     4073 * @param   iReg            The GPR to check for zero / non-zero value.
     4074 * @param   iBitNo          The bit to test for.
     4075 */
     4076DECL_FORCE_INLINE(uint32_t) Armv8A64MkInstrTbnz(int32_t iImm14, uint32_t iReg, uint32_t iBitNo)
     4077{
     4078    return Armv8A64MkInstrTbzTbnz(true /*fJmpIfNotZero*/, iImm14, iReg, iBitNo);
     4079}
     4080
     4081
    40544082
    40554083/** Armv8 Condition codes.    */
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