VirtualBox

Changeset 3361

Show
Ignore:
Timestamp:
07/03/07 00:57:57 (2 years ago)
Author:
vboxsync
Message:

fixed some GNU asm macros (missing clobber)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • 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), 

© 2008 Sun Microsystems, Inc.
ContactPrivacy policy