VirtualBox

Ignore:
Timestamp:
Apr 8, 2024 1:46:29 PM (11 months ago)
Author:
vboxsync
Message:

VMM/IEMAllAImpl-arm64.S: Make it build with gcc, bugref:10391

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllAImpl-arm64.S

    r104195 r104231  
    4141           recognized, nor is the 'fmi' in the error message for cfinv.  'flagm'
    4242           work for v15 and is enabled by default it seems. */
     43# ifdef RT_OS_DARWIN
    4344        .cpu            apple-a14+crc
     45# else
     46        .cpu            cortex-a53+flagm
     47# endif
    4448#endif
    45 
    46 .macro BEGINPROC, a_Name
    47         .private_extern NAME(\a_Name)
    48         .globl          NAME(\a_Name)
    49 NAME(\a_Name):
    50 .endm
    5149
    5250
     
    150148
    151149BEGINCODE
    152         .p2align        2
    153         .private_extern NAME(iemAImpl_placeholder)
    154         .globl          NAME(iemAImpl_placeholder)
    155 NAME(iemAImpl_placeholder):
     150
     151BEGINPROC_HIDDEN iemAImpl_placeholder
    156152        brk #1
    157153        ret
     
    160156
    161157// IEM_DECL_IMPL_DEF(void, iemAImpl_xchg_u8_locked, (uint8_t  *pu8Mem,  uint8_t  *pu8Reg));
    162         .p2align        2
    163         .private_extern NAME(iemAImpl_xchg_u8_locked)
    164         .globl          NAME(iemAImpl_xchg_u8_locked)
    165 NAME(iemAImpl_xchg_u8_locked):
     158BEGINPROC_HIDDEN iemAImpl_xchg_u8_locked
    166159        ldrb    w2, [x1]
    167160        swpalb  w2, w2, [x0]
     
    170163
    171164// IEM_DECL_IMPL_DEF(void, iemAImpl_xchg_u16_locked,(uint16_t *pu16Mem, uint16_t *pu16Reg));
    172         .p2align        2
    173         .private_extern NAME(iemAImpl_xchg_u16_locked)
    174         .globl          NAME(iemAImpl_xchg_u16_locked)
    175 NAME(iemAImpl_xchg_u16_locked):
     165BEGINPROC_HIDDEN iemAImpl_xchg_u16_locked
    176166        ldrh    w2, [x1]
    177167        swpalh  w2, w2, [x0]
     
    192182
    193183/* uint32_t iemAImpl_cmp_u8(uint32_t fEFlags, uint8_t const *puDst, uint8_t uSrc); */
    194         .p2align        2
    195         .private_extern NAME(iemAImpl_sub_u8)
    196         .globl          NAME(iemAImpl_sub_u8)
    197 NAME(iemAImpl_sub_u8):
     184BEGINPROC_HIDDEN iemAImpl_sub_u8
    198185        .cfi_startproc
    199186        /* Do the subtraction. */
     
    221208
    222209/* uint32_t iemAImpl_cmp_u16(uint32_t fEFlags, uint16_t const *puDst, uint16_t uSrc); */
    223         .p2align        2
    224         .private_extern NAME(iemAImpl_sub_u16)
    225         .globl          NAME(iemAImpl_sub_u16)
    226 NAME(iemAImpl_sub_u16):
     210BEGINPROC_HIDDEN iemAImpl_sub_u16
    227211        .cfi_startproc
    228212        /* Do the subtraction. */
     
    250234
    251235/* uint32_t iemAImpl_cmp_u32(uint32_t fEFlags, uint32_t const *puDst, uint32_t uSrc); */
    252         .p2align        2
    253         .private_extern NAME(iemAImpl_sub_u32)
    254         .globl          NAME(iemAImpl_sub_u32)
    255 NAME(iemAImpl_sub_u32):
     236BEGINPROC_HIDDEN iemAImpl_sub_u32
    256237        .cfi_startproc
    257238        /* Do the subtraction. */
     
    314295
    315296/* uint32_t iemAImpl_cmp_u64(uint32_t fEFlags, uint64_t const *puDst, uint64_t uSrc); */
    316         .p2align        2
    317         .private_extern NAME(iemAImpl_sub_u64)
    318         .globl          NAME(iemAImpl_sub_u64)
    319 NAME(iemAImpl_sub_u64):
     297BEGINPROC_HIDDEN iemAImpl_sub_u64
    320298        .cfi_startproc
    321299        /* Do the subtraction. */
     
    340318/* void iemAImpl_shl_u32(uint16_t *pu32Dst, uint8_t cShift, uint32_t *pEFlags); */
    341319.macro SHL_8_16_32, a_Name, a_cBits, a_fIntelFlags, a_LdStSuff
    342         .p2align        2
    343 BEGINPROC \a_Name
     320BEGINPROC_HIDDEN \a_Name
    344321        .cfi_startproc
    345322
     
    427404SHL_8_16_32 iemAImpl_shl_u32_amd,   32, 0,
    428405
    429 ;; @todo this is slightly slower than the C version (release) on an M2. Investigate why.
     406/** @todo this is slightly slower than the C version (release) on an M2. Investigate why. */
    430407/* void iemAImpl_shl_u64(uint16_t *pu64Dst, uint8_t cShift, uint32_t *pEFlags); */
    431408.macro SHL_64, a_Name, a_fIntelFlags
    432         .p2align        2
    433 BEGINPROC \a_Name
     409BEGINPROC_HIDDEN \a_Name
    434410        .cfi_startproc
    435411
     
    494470/* void iemAImpl_shr_u32(uint16_t *pu32Dst, uint8_t cShift, uint32_t *pEFlags); */
    495471.macro shr_8_16_32, a_Name, a_cBits, a_fIntelFlags, a_LdStSuff
    496         .p2align        2
    497 BEGINPROC \a_Name
     472BEGINPROC_HIDDEN \a_Name
    498473        .cfi_startproc
    499474
     
    560535shr_8_16_32 iemAImpl_shr_u32_amd,   32, 0,
    561536
    562 ;; @todo this is slightly slower than the C version (release) on an M2. Investigate why.
     537/** @todo this is slightly slower than the C version (release) on an M2. Investigate why. */
    563538/* void iemAImpl_shr_u64(uint16_t *pu64Dst, uint8_t cShift, uint32_t *pEFlags); */
    564539.macro shr_64, a_Name, a_fIntelFlags
    565         .p2align        2
    566 BEGINPROC \a_Name
     540BEGINPROC_HIDDEN \a_Name
    567541        .cfi_startproc
    568542
     
    626600/* void iemAImpl_sar_u32(uint16_t *pu32Dst, uint8_t cShift, uint32_t *pEFlags); */
    627601.macro sar_8_16_32, a_Name, a_cBits, a_fIntelFlags, a_LdSuff, a_StSuff
    628         .p2align        2
    629 BEGINPROC \a_Name
     602BEGINPROC_HIDDEN \a_Name
    630603        .cfi_startproc
    631604
     
    688661sar_8_16_32 iemAImpl_sar_u32_amd,   32, 0, ,
    689662
    690 ;; @todo this is slightly slower than the C version (release) on an M2. Investigate why.
     663/** @todo this is slightly slower than the C version (release) on an M2. Investigate why. */
    691664/* void iemAImpl_sar_u64(uint16_t *pu64Dst, uint8_t cShift, uint32_t *pEFlags); */
    692665.macro sar_64, a_Name, a_fIntelFlags
    693         .p2align        2
    694 BEGINPROC \a_Name
     666BEGINPROC_HIDDEN \a_Name
    695667        .cfi_startproc
    696668
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