VirtualBox

Changeset 104304 in vbox for trunk


Ignore:
Timestamp:
Apr 12, 2024 7:32:46 AM (9 months ago)
Author:
vboxsync
Message:

VMM/IEM: Implement native emitters for paddb,paddw,paddd,paddq, bugref:10652 [missing file]

File:
1 edited

Legend:

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

    r104294 r104304  
    46834683         | iVecRegDst;
    46844684}
     4685
     4686
     4687/** Armv8 vector arith ops element size.    */
     4688typedef enum ARMV8INSTRVECARITHSZ
     4689{
     4690    kArmv8VecInstrArithSz_8   = 0, /**<   8-bit. */
     4691    kArmv8VecInstrArithSz_16  = 1, /**<  16-bit. */
     4692    kArmv8VecInstrArithSz_32  = 2, /**<  32-bit. */
     4693    kArmv8VecInstrArithSz_64  = 3, /**<  64-bit. */
     4694} ARMV8INSTRVECARITHSZ;
     4695
     4696/**
     4697 * A64: Encodes ADD/SUB (vector, register).
     4698 *
     4699 * @returns The encoded instruction.
     4700 * @param   iVecRegDst  The vector register to put the result into.
     4701 * @param   iVecRegSrc1 The first vector source register.
     4702 * @param   iVecRegSrc2 The second vector source register.
     4703 * @param   enmSz       Element size.
     4704 * @param   f128Bit     Flag whether this operates on the full 128-bit (true, default) of the vector register
     4705 *                      or just the low 64-bit (false).
     4706 */
     4707DECL_FORCE_INLINE(uint32_t) Armv8A64MkVecInstrAddSub(bool fSub, uint32_t iVecRegDst, uint32_t iVecRegSrc1, uint32_t iVecRegSrc2,
     4708                                                     ARMV8INSTRVECARITHSZ enmSz, bool f128Bit = true)
     4709{
     4710    Assert(iVecRegDst < 32); Assert(iVecRegSrc1 < 32); Assert(iVecRegSrc2 < 32);
     4711
     4712    return UINT32_C(0x0e208400)
     4713         | ((uint32_t)f128Bit << 30)
     4714         | ((uint32_t)fSub    << 29)
     4715         | ((uint32_t)enmSz   << 22)
     4716         | (iVecRegSrc2 << 16)
     4717         | (iVecRegSrc1 << 5)
     4718         | iVecRegDst;
     4719}
     4720
    46854721/** @} */
    46864722
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