http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51258

--- Comment #3 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot 
Uni-Bielefeld.DE> 2011-11-22 15:05:13 UTC ---
> --- Comment #1 from Andrew Macleod <amacleod at redhat dot com> 2011-11-21 
> 19:21:30 UTC ---
> 32 bit targets don't usually support 128 bit atomic operations natively, and
> leave calls to be resolved by an external atomic library.   There was some
> issue with X32 support where 32 bit could support it under some circumstances.
>
> Now gcc/testsuite/lib/target-supports.exp defines the testsuite check for
> whether 128 bit is supported as:
>
> proc check_effective_target_sync_int_128 { } {
>     if { ([istarget x86_64-*-*] || [istarget i?86-*-*])
>          && ![is-effective-target ia32] } {
>         return 1
>     } else {
>         return 0
>     }
> }
>
> I presume if 32 bit solaris isn't supporting 128 bit operations then this 
> needs
> to be tweaked...

There's nothing Solaris-specific here, as I'm seeing the same issue on a
bi-arch i386-apple-darwin9.8.0 compiler for the 64-bit multilib.  It
seems the 32-bit compiler doesn't generate the 128-bit atomic insns when
generating 64-bit code.

    Rainer

Reply via email to