Changeset 104231 in vbox for trunk/src/VBox/VMM/VMMAll/IEMAllAImpl-arm64.S
- Timestamp:
- Apr 8, 2024 1:46:29 PM (11 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllAImpl-arm64.S
r104195 r104231 41 41 recognized, nor is the 'fmi' in the error message for cfinv. 'flagm' 42 42 work for v15 and is enabled by default it seems. */ 43 # ifdef RT_OS_DARWIN 43 44 .cpu apple-a14+crc 45 # else 46 .cpu cortex-a53+flagm 47 # endif 44 48 #endif 45 46 .macro BEGINPROC, a_Name47 .private_extern NAME(\a_Name)48 .globl NAME(\a_Name)49 NAME(\a_Name):50 .endm51 49 52 50 … … 150 148 151 149 BEGINCODE 152 .p2align 2 153 .private_extern NAME(iemAImpl_placeholder) 154 .globl NAME(iemAImpl_placeholder) 155 NAME(iemAImpl_placeholder): 150 151 BEGINPROC_HIDDEN iemAImpl_placeholder 156 152 brk #1 157 153 ret … … 160 156 161 157 // 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): 158 BEGINPROC_HIDDEN iemAImpl_xchg_u8_locked 166 159 ldrb w2, [x1] 167 160 swpalb w2, w2, [x0] … … 170 163 171 164 // 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): 165 BEGINPROC_HIDDEN iemAImpl_xchg_u16_locked 176 166 ldrh w2, [x1] 177 167 swpalh w2, w2, [x0] … … 192 182 193 183 /* 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): 184 BEGINPROC_HIDDEN iemAImpl_sub_u8 198 185 .cfi_startproc 199 186 /* Do the subtraction. */ … … 221 208 222 209 /* 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): 210 BEGINPROC_HIDDEN iemAImpl_sub_u16 227 211 .cfi_startproc 228 212 /* Do the subtraction. */ … … 250 234 251 235 /* 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): 236 BEGINPROC_HIDDEN iemAImpl_sub_u32 256 237 .cfi_startproc 257 238 /* Do the subtraction. */ … … 314 295 315 296 /* 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): 297 BEGINPROC_HIDDEN iemAImpl_sub_u64 320 298 .cfi_startproc 321 299 /* Do the subtraction. */ … … 340 318 /* void iemAImpl_shl_u32(uint16_t *pu32Dst, uint8_t cShift, uint32_t *pEFlags); */ 341 319 .macro SHL_8_16_32, a_Name, a_cBits, a_fIntelFlags, a_LdStSuff 342 .p2align 2 343 BEGINPROC \a_Name 320 BEGINPROC_HIDDEN \a_Name 344 321 .cfi_startproc 345 322 … … 427 404 SHL_8_16_32 iemAImpl_shl_u32_amd, 32, 0, 428 405 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. */ 430 407 /* void iemAImpl_shl_u64(uint16_t *pu64Dst, uint8_t cShift, uint32_t *pEFlags); */ 431 408 .macro SHL_64, a_Name, a_fIntelFlags 432 .p2align 2 433 BEGINPROC \a_Name 409 BEGINPROC_HIDDEN \a_Name 434 410 .cfi_startproc 435 411 … … 494 470 /* void iemAImpl_shr_u32(uint16_t *pu32Dst, uint8_t cShift, uint32_t *pEFlags); */ 495 471 .macro shr_8_16_32, a_Name, a_cBits, a_fIntelFlags, a_LdStSuff 496 .p2align 2 497 BEGINPROC \a_Name 472 BEGINPROC_HIDDEN \a_Name 498 473 .cfi_startproc 499 474 … … 560 535 shr_8_16_32 iemAImpl_shr_u32_amd, 32, 0, 561 536 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. */ 563 538 /* void iemAImpl_shr_u64(uint16_t *pu64Dst, uint8_t cShift, uint32_t *pEFlags); */ 564 539 .macro shr_64, a_Name, a_fIntelFlags 565 .p2align 2 566 BEGINPROC \a_Name 540 BEGINPROC_HIDDEN \a_Name 567 541 .cfi_startproc 568 542 … … 626 600 /* void iemAImpl_sar_u32(uint16_t *pu32Dst, uint8_t cShift, uint32_t *pEFlags); */ 627 601 .macro sar_8_16_32, a_Name, a_cBits, a_fIntelFlags, a_LdSuff, a_StSuff 628 .p2align 2 629 BEGINPROC \a_Name 602 BEGINPROC_HIDDEN \a_Name 630 603 .cfi_startproc 631 604 … … 688 661 sar_8_16_32 iemAImpl_sar_u32_amd, 32, 0, , 689 662 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. */ 691 664 /* void iemAImpl_sar_u64(uint16_t *pu64Dst, uint8_t cShift, uint32_t *pEFlags); */ 692 665 .macro sar_64, a_Name, a_fIntelFlags 693 .p2align 2 694 BEGINPROC \a_Name 666 BEGINPROC_HIDDEN \a_Name 695 667 .cfi_startproc 696 668
Note:
See TracChangeset
for help on using the changeset viewer.