2 /* MIPS only supports these built-in functions for non-MIPS16 mode, and
3 -mflip-mips16 will change the mode of some functions to be different
4 from the command-line setting. */
5 /* { dg-skip-if "" { mips*-*-* } { "-mflip-mips16" } { "" } } */
9 #ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1
10 typedef int __attribute__ ((__mode__ (__QI__
))) qi_int_type
;
12 __sync_bool_compare_and_swap (&qi_int
, (qi_int_type
)0, (qi_int_type
)1);
18 #ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
19 typedef int __attribute__ ((__mode__ (__HI__
))) hi_int_type
;
21 __sync_bool_compare_and_swap (&hi_int
, (hi_int_type
)0, (hi_int_type
)1);
27 #ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4
28 typedef int __attribute__ ((__mode__ (__SI__
))) si_int_type
;
30 __sync_bool_compare_and_swap (&si_int
, (si_int_type
)0, (si_int_type
)1);
36 #ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8
37 typedef int __attribute__ ((__mode__ (__DI__
))) di_int_type
;
39 __sync_bool_compare_and_swap (&di_int
, (di_int_type
)0, (di_int_type
)1);
43 /* aligned (16): On S/390 16 byte compare and swap operations are only
44 available if the memory operand resides on a 16 byte boundary. */
47 #ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16
48 typedef int __attribute__ ((__mode__ (__TI__
), aligned (16))) ti_int_type
;
50 __sync_bool_compare_and_swap (&ti_int
, (ti_int_type
)0, (ti_int_type
)1);