VirtualBox

Changeset 3361 in vbox


Ignore:
Timestamp:
Jul 2, 2007 10:57:57 PM (18 years ago)
Author:
vboxsync
Message:

fixed some GNU asm macros (missing clobber)

File:
1 edited

Legend:

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

    r2981 r3361  
    22852285#   if defined(PIC) || defined(__DARWIN__) /* darwin: 4.0.1 compiler option / bug? */
    22862286    uint32_t u32 = (uint32_t)u64New;
    2287     __asm__ __volatile__("xchgl %%ebx, %3\n\t"
    2288                          "lock; cmpxchg8b (%5)\n\t"
     2287    uint32_t u32Spill;
     2288    __asm__ __volatile__("xchgl %%ebx, %4\n\t"
     2289                         "lock; cmpxchg8b (%6)\n\t"
    22892290                         "setz  %%al\n\t"
    2290                          "xchgl %%ebx, %3\n\t"
     2291                         "xchgl %%ebx, %4\n\t"
    22912292                         "movzx %%al, %%eax\n\t"
    22922293                         : "=a" (u32Ret),
     2294                           "=d" (u32Spill),
    22932295                           "=m" (*pu64)
    22942296                         : "A" (u64Old),
     
    22972299                           "S" (pu64) );
    22982300#   else /* !PIC */
    2299     __asm__ __volatile__("lock; cmpxchg8b %1\n\t"
     2301    uint32_t u32Spill;
     2302    __asm__ __volatile__("lock; cmpxchg8b %2\n\t"
    23002303                         "setz  %%al\n\t"
    23012304                         "movzx %%al, %%eax\n\t"
    23022305                         : "=a" (u32Ret),
     2306                           "=d" (u32Spill),
    23032307                           "=m" (*pu64)
    23042308                         : "A" (u64Old),
     
    29562960                         "divl %%ecx       \n\t" /* u64Result.lo */
    29572961                         "movl %%edi,%%edx \n\t" /* u64Result.hi */
    2958                          : "=A"(u64Result),
     2962                         : "=A"(u64Result), "=c"(u32Dummy),
    29592963                           "=S"(u32Dummy), "=D"(u32Dummy)
    29602964                         : "a"((uint32_t)u64A),
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