VirtualBox

Changeset 105173 in vbox for trunk/include


Ignore:
Timestamp:
Jul 7, 2024 1:04:51 PM (7 months ago)
Author:
vboxsync
Message:

VMM/IEM: Implement native emitter for packuswb, bugref:10652

File:
1 edited

Legend:

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

    r105172 r105173  
    49344934}
    49354935
     4936
     4937/** Armv8 [Signed,Unsigned] Extract {Unsigned} operation. */
     4938typedef enum
     4939{
     4940    kArmv8VecInstrQxtnOp_Sqxtn  =                 RT_BIT_32(14),                /**< SQXTN  */
     4941    kArmv8VecInstrQxtnOp_Sqxtun = RT_BIT_32(29) |                RT_BIT_32(13), /**< SQXTUN */
     4942    kArmv8VecInstrQxtnOp_Uqxtn  = RT_BIT_32(29) | RT_BIT_32(14)                 /**< UQXTN  */
     4943} ARMV8INSTRVECQXTNOP;
     4944
     4945/**
     4946 * A64: Encodes SQXTN/SQXTN2/UQXTN/UQXTN2/SQXTUN/SQXTUN2 (vector, register).
     4947 *
     4948 * @returns The encoded instruction.
     4949 * @param   enmOp       The operation to perform.
     4950 * @param   fUpper      Flag whether to write the result to the lower (false) or upper (true) half of the destinatiom register.
     4951 * @param   iVecRegDst  The vector register to put the result into.
     4952 * @param   iVecRegSrc  The first vector source register.
     4953 * @param   enmSz       Element size.
     4954 */
     4955DECL_FORCE_INLINE(uint32_t) Armv8A64MkVecInstrQxtn(ARMV8INSTRVECQXTNOP enmOp, bool fUpper, uint32_t iVecRegDst, uint32_t iVecRegSrc, ARMV8INSTRVECARITHSZ enmSz)
     4956{
     4957    Assert(iVecRegDst < 32); Assert(iVecRegSrc < 32);
     4958
     4959    return UINT32_C(0x0e210800)
     4960         | ((uint32_t)enmOp)
     4961         | ((uint32_t)fUpper    << 30)
     4962         | ((uint32_t)enmSz     << 22)
     4963         | (iVecRegSrc << 5)
     4964         | iVecRegDst;
     4965}
     4966
    49364967/** @} */
    49374968
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