VirtualBox

Changeset 12232 in vbox for trunk/include


Ignore:
Timestamp:
Sep 8, 2008 3:23:46 PM (17 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
36218
Message:

iprt/asm.h: better fix

File:
1 edited

Legend:

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

    r12223 r12232  
    25382538                         : "0" (*pu64),
    25392539                           "b" ( (uint32_t)u64 ),
    2540                            "c" ( (uint32_t)(u64 >> 32) ),
    2541                            "m" (*pu64));
     2540                           "c" ( (uint32_t)(u64 >> 32) ));
    25422541#   endif
    25432542#  else
     
    28392838                         : "=a" (u32Ret),
    28402839                           "=d" (u32Spill),
    2841                            "=m" (*pu64)
     2840                           "+m" (*pu64)
    28422841                         : "A" (u64Old),
    28432842                           "m" ( u32EBX ),
    28442843                           "c" ( (uint32_t)(u64New >> 32) ),
    2845                            "S" (pu64)
    2846 #    ifdef RT_OS_DARWIN
    2847                          :  "memory"
    2848 #    else
    2849                          ,  "m" (*pu64)
    2850 #    endif
    2851                         );
     2844                           "S" (pu64));
    28522845#   else /* !PIC */
    28532846    uint32_t u32Spill;
     
    28572850                         : "=a" (u32Ret),
    28582851                           "=d" (u32Spill),
    2859                            "=m" (*pu64)
     2852                           "+m" (*pu64)
    28602853                         : "A" (u64Old),
    28612854                           "b" ( (uint32_t)u64New ),
    2862                            "c" ( (uint32_t)(u64New >> 32) ),
    2863                            "m" (*pu64));
     2855                           "c" ( (uint32_t)(u64New >> 32) ));
    28642856#   endif
    28652857    return (bool)u32Ret;
     
    37283720                         "movl %3, %%ebx\n\t"
    37293721                         : "=A" (u64),
    3730                            "=m" (*pu64)
     3722                           "+m" (*pu64)
    37313723                         : "0" (0),
    37323724                           "m" (u32EBX),
    37333725                           "c" (0),
    3734                            "S" (pu64)
    3735 #    ifdef RT_OS_DARWIN
    3736                          :  "memory"
    3737 #    else
    3738                          ,  "m" (*pu64)
    3739 #    endif
    3740                         );
     3726                           "S" (pu64));
    37413727#   else /* !PIC */
    37423728    __asm__ __volatile__("lock; cmpxchg8b %1\n\t"
    37433729                         : "=A" (u64),
    3744                            "=m" (*pu64)
     3730                           "+m" (*pu64)
    37453731                         : "0" (0),
    37463732                           "b" (0),
    3747                            "c" (0),
    3748                            "m" (*pu64));
     3733                           "c" (0));
    37493734#   endif
    37503735#  else
     
    38073792                         "movl %3, %%ebx\n\t"
    38083793                         : "=A" (u64),
    3809                            "=m" (*pu64)
     3794                           "+m" (*pu64)
    38103795                         : "0" (0),
    38113796                           "m" (u32EBX),
    38123797                           "c" (0),
    3813                            "S" (pu64)
    3814 #    ifdef RT_OS_DARWIN
    3815                          :  "memory"
    3816 #    else
    3817                          ,  "m" (*pu64)
    3818 #    endif
    3819                         );
     3798                           "S" (pu64));
    38203799#   else /* !PIC */
    38213800    __asm__ __volatile__("cmpxchg8b %1\n\t"
    38223801                         : "=A" (u64),
    3823                            "=m" (*pu64)
     3802                           "+m" (*pu64)
    38243803                         : "0" (0),
    38253804                           "b" (0),
    3826                            "c" (0),
    3827                            "m" (*pu64));
     3805                           "c" (0));
    38283806#   endif
    38293807#  else
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette