Changeset 102938 in vbox for trunk/include/iprt/asm.h
- Timestamp:
- Jan 17, 2024 7:39:48 PM (13 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/iprt/asm.h
r101609 r102938 304 304 # define RTASM_ARM_DMB_LD RTASM_ARM_DMB_SY 305 305 # define RTASM_ARM_DMB_LD_IN_REG RTASM_ARM_DMB_SY_IN_REG 306 306 307 # elif RT_ARCH_ARM32 >= 4 307 308 # warning armv5 or older … … 1094 1095 "cbnz %w[rc], Ltry_again_ASMAtomicCmpXchgU8_%=\n\t" 1095 1096 "mov %w[fXchg], #1\n\t" 1097 "1:\n\t" 1098 "clrex\n\t" 1096 1099 # else 1097 1100 "ldrexb %[uOld], %[pMem]\n\t" … … 1102 1105 "bne Ltry_again_ASMAtomicCmpXchgU8_%=\n\t" 1103 1106 "mov %[fXchg], #1\n\t" 1104 # endif1105 1107 "1:\n\t" 1108 /** @todo clrexne on armv7? */ 1109 # endif 1106 1110 : [pMem] "+Q" (*pu8) 1107 1111 , [uOld] "=&r" (u32Spill) … … 1231 1235 "cbnz %w[rc], Ltry_again_ASMAtomicCmpXchgU32_%=\n\t" 1232 1236 "mov %w[fXchg], #1\n\t" 1237 "1:\n\t" 1238 "clrex\n\t" 1233 1239 # else 1234 1240 "ldrex %[uOld], %[pMem]\n\t" … … 1239 1245 "bne Ltry_again_ASMAtomicCmpXchgU32_%=\n\t" 1240 1246 "mov %[fXchg], #1\n\t" 1241 # endif1242 1247 "1:\n\t" 1248 /** @todo clrexne on armv7? */ 1249 # endif 1243 1250 : [pMem] "+Q" (*pu32) 1244 1251 , [uOld] "=&r" (u32Spill) … … 1393 1400 "cbnz %w[rc], Ltry_again_ASMAtomicCmpXchgU64_%=\n\t" 1394 1401 "mov %w[fXchg], #1\n\t" 1402 "1:\n\t" 1403 "clrex\n\t" 1395 1404 # else 1396 1405 "ldrexd %[uOld], %H[uOld], %[pMem]\n\t" … … 1402 1411 "bne Ltry_again_ASMAtomicCmpXchgU64_%=\n\t" 1403 1412 "mov %[fXchg], #1\n\t" 1404 # endif1405 1413 "1:\n\t" 1414 /** @todo clrexne on armv7? */ 1415 # endif 1406 1416 : [pMem] "+Q" (*pu64) 1407 1417 , [uOld] "=&r" (u64Spill) … … 1738 1748 "cbnz %w[rc], Ltry_again_ASMAtomicCmpXchgExU8_%=\n\t" 1739 1749 "mov %w[fXchg], #1\n\t" 1750 "1:\n\t" 1751 "clrex\n\t" 1740 1752 # else 1741 1753 "ldrexb %[uOld], %[pMem]\n\t" … … 1746 1758 "bne Ltry_again_ASMAtomicCmpXchgExU8_%=\n\t" 1747 1759 "mov %[fXchg], #1\n\t" 1748 # endif1749 1760 "1:\n\t" 1761 /** @todo clrexne on armv7? */ 1762 # endif 1750 1763 : [pMem] "+Q" (*pu8) 1751 1764 , [uOld] "=&r" (u8ActualOld) … … 1863 1876 "cbnz %w[rc], Ltry_again_ASMAtomicCmpXchgExU16_%=\n\t" 1864 1877 "mov %w[fXchg], #1\n\t" 1878 "1:\n\t" 1879 "clrex\n\t" 1865 1880 # else 1866 1881 "ldrexh %[uOld], %[pMem]\n\t" … … 1871 1886 "bne Ltry_again_ASMAtomicCmpXchgExU16_%=\n\t" 1872 1887 "mov %[fXchg], #1\n\t" 1873 # endif1874 1888 "1:\n\t" 1889 /** @todo clrexne on armv7? */ 1890 # endif 1875 1891 : [pMem] "+Q" (*pu16) 1876 1892 , [uOld] "=&r" (u16ActualOld) … … 1988 2004 "cbnz %w[rc], Ltry_again_ASMAtomicCmpXchgExU32_%=\n\t" 1989 2005 "mov %w[fXchg], #1\n\t" 2006 "1:\n\t" 2007 "clrex\n\t" 1990 2008 # else 1991 2009 "ldrex %[uOld], %[pMem]\n\t" … … 1996 2014 "bne Ltry_again_ASMAtomicCmpXchgExU32_%=\n\t" 1997 2015 "mov %[fXchg], #1\n\t" 1998 # endif1999 2016 "1:\n\t" 2017 /** @todo clrexne on armv7? */ 2018 # endif 2000 2019 : [pMem] "+Q" (*pu32) 2001 2020 , [uOld] "=&r" (u32ActualOld) … … 2158 2177 "cbnz %w[rc], Ltry_again_ASMAtomicCmpXchgU64_%=\n\t" 2159 2178 "mov %w[fXchg], #1\n\t" 2179 "1:\n\t" 2180 "clrex\n\t" 2160 2181 # else 2161 2182 "ldrexd %[uOld], %H[uOld], %[pMem]\n\t" … … 2167 2188 "bne Ltry_again_ASMAtomicCmpXchgU64_%=\n\t" 2168 2189 "mov %[fXchg], #1\n\t" 2169 # endif2170 2190 "1:\n\t" 2191 /** @todo clrexne on armv7? */ 2192 # endif 2171 2193 : [pMem] "+Q" (*pu64) 2172 2194 , [uOld] "=&r" (u64ActualOld)
Note:
See TracChangeset
for help on using the changeset viewer.