Home | History | Annotate | Download | only in include
      1 /* This file contains the definitions and documentation for the
      2    synchronization builtins used in the GNU compiler.
      3    Copyright (C) 2005-2013 Free Software Foundation, Inc.
      4 
      5 This file is part of GCC.
      6 
      7 GCC is free software; you can redistribute it and/or modify it under
      8 the terms of the GNU General Public License as published by the Free
      9 Software Foundation; either version 3, or (at your option) any later
     10 version.
     11 
     12 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
     13 WARRANTY; without even the implied warranty of MERCHANTABILITY or
     14 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
     15 for more details.
     16 
     17 You should have received a copy of the GNU General Public License
     18 along with GCC; see the file COPYING3.  If not see
     19 <http://www.gnu.org/licenses/>.  */
     20 
     21 /* Before including this file, you should define a macro:
     22 
     23      DEF_SYNC_BUILTIN (ENUM, NAME, TYPE, ATTRS)
     24 
     25    See builtins.def for details.  */
     26 
     27 /* Synchronization Primitives.  The "_N" version is the one that the user
     28    is supposed to be using.  It's overloaded, and is resolved to one of the
     29    "_1" through "_16" versions, plus some extra casts.  */
     30 
     31 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_ADD_N, "__sync_fetch_and_add",
     32 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
     33 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_ADD_1, "__sync_fetch_and_add_1",
     34 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
     35 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_ADD_2, "__sync_fetch_and_add_2",
     36 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
     37 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_ADD_4, "__sync_fetch_and_add_4",
     38 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
     39 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_ADD_8, "__sync_fetch_and_add_8",
     40 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
     41 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_ADD_16, "__sync_fetch_and_add_16",
     42 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
     43 
     44 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_SUB_N, "__sync_fetch_and_sub",
     45 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
     46 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_SUB_1, "__sync_fetch_and_sub_1",
     47 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
     48 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_SUB_2, "__sync_fetch_and_sub_2",
     49 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
     50 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_SUB_4, "__sync_fetch_and_sub_4",
     51 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
     52 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_SUB_8, "__sync_fetch_and_sub_8",
     53 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
     54 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_SUB_16, "__sync_fetch_and_sub_16",
     55 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
     56 
     57 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_OR_N, "__sync_fetch_and_or",
     58 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
     59 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_OR_1, "__sync_fetch_and_or_1",
     60 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
     61 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_OR_2, "__sync_fetch_and_or_2",
     62 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
     63 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_OR_4, "__sync_fetch_and_or_4",
     64 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
     65 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_OR_8, "__sync_fetch_and_or_8",
     66 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
     67 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_OR_16, "__sync_fetch_and_or_16",
     68 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
     69 
     70 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_AND_N, "__sync_fetch_and_and",
     71 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
     72 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_AND_1, "__sync_fetch_and_and_1",
     73 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
     74 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_AND_2, "__sync_fetch_and_and_2",
     75 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
     76 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_AND_4, "__sync_fetch_and_and_4",
     77 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
     78 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_AND_8, "__sync_fetch_and_and_8",
     79 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
     80 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_AND_16, "__sync_fetch_and_and_16",
     81 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
     82 
     83 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_XOR_N, "__sync_fetch_and_xor",
     84 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
     85 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_XOR_1, "__sync_fetch_and_xor_1",
     86 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
     87 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_XOR_2, "__sync_fetch_and_xor_2",
     88 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
     89 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_XOR_4, "__sync_fetch_and_xor_4",
     90 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
     91 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_XOR_8, "__sync_fetch_and_xor_8",
     92 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
     93 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_XOR_16, "__sync_fetch_and_xor_16",
     94 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
     95 
     96 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_NAND_N, "__sync_fetch_and_nand",
     97 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
     98 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_NAND_1, "__sync_fetch_and_nand_1",
     99 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
    100 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_NAND_2, "__sync_fetch_and_nand_2",
    101 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
    102 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_NAND_4, "__sync_fetch_and_nand_4",
    103 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
    104 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_NAND_8, "__sync_fetch_and_nand_8",
    105 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
    106 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_NAND_16, "__sync_fetch_and_nand_16",
    107 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
    108 
    109 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_ADD_AND_FETCH_N, "__sync_add_and_fetch",
    110 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    111 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_ADD_AND_FETCH_1, "__sync_add_and_fetch_1",
    112 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
    113 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_ADD_AND_FETCH_2, "__sync_add_and_fetch_2",
    114 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
    115 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_ADD_AND_FETCH_4, "__sync_add_and_fetch_4",
    116 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
    117 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_ADD_AND_FETCH_8, "__sync_add_and_fetch_8",
    118 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
    119 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_ADD_AND_FETCH_16, "__sync_add_and_fetch_16",
    120 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
    121 
    122 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_SUB_AND_FETCH_N, "__sync_sub_and_fetch",
    123 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    124 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_SUB_AND_FETCH_1, "__sync_sub_and_fetch_1",
    125 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
    126 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_SUB_AND_FETCH_2, "__sync_sub_and_fetch_2",
    127 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
    128 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_SUB_AND_FETCH_4, "__sync_sub_and_fetch_4",
    129 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
    130 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_SUB_AND_FETCH_8, "__sync_sub_and_fetch_8",
    131 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
    132 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_SUB_AND_FETCH_16, "__sync_sub_and_fetch_16",
    133 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
    134 
    135 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_OR_AND_FETCH_N, "__sync_or_and_fetch",
    136 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    137 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_OR_AND_FETCH_1, "__sync_or_and_fetch_1",
    138 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
    139 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_OR_AND_FETCH_2, "__sync_or_and_fetch_2",
    140 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
    141 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_OR_AND_FETCH_4, "__sync_or_and_fetch_4",
    142 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
    143 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_OR_AND_FETCH_8, "__sync_or_and_fetch_8",
    144 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
    145 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_OR_AND_FETCH_16, "__sync_or_and_fetch_16",
    146 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
    147 
    148 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_AND_AND_FETCH_N, "__sync_and_and_fetch",
    149 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    150 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_AND_AND_FETCH_1, "__sync_and_and_fetch_1",
    151 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
    152 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_AND_AND_FETCH_2, "__sync_and_and_fetch_2",
    153 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
    154 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_AND_AND_FETCH_4, "__sync_and_and_fetch_4",
    155 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
    156 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_AND_AND_FETCH_8, "__sync_and_and_fetch_8",
    157 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
    158 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_AND_AND_FETCH_16, "__sync_and_and_fetch_16",
    159 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
    160 
    161 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_XOR_AND_FETCH_N, "__sync_xor_and_fetch",
    162 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    163 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_XOR_AND_FETCH_1, "__sync_xor_and_fetch_1",
    164 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
    165 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_XOR_AND_FETCH_2, "__sync_xor_and_fetch_2",
    166 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
    167 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_XOR_AND_FETCH_4, "__sync_xor_and_fetch_4",
    168 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
    169 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_XOR_AND_FETCH_8, "__sync_xor_and_fetch_8",
    170 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
    171 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_XOR_AND_FETCH_16, "__sync_xor_and_fetch_16",
    172 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
    173 
    174 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_NAND_AND_FETCH_N, "__sync_nand_and_fetch",
    175 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    176 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_NAND_AND_FETCH_1, "__sync_nand_and_fetch_1",
    177 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
    178 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_NAND_AND_FETCH_2, "__sync_nand_and_fetch_2",
    179 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
    180 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_NAND_AND_FETCH_4, "__sync_nand_and_fetch_4",
    181 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
    182 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_NAND_AND_FETCH_8, "__sync_nand_and_fetch_8",
    183 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
    184 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_NAND_AND_FETCH_16, "__sync_nand_and_fetch_16",
    185 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
    186 
    187 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_N,
    188 		  "__sync_bool_compare_and_swap",
    189 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    190 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_1,
    191 		  "__sync_bool_compare_and_swap_1",
    192 		  BT_FN_BOOL_VPTR_I1_I1, ATTR_NOTHROW_LEAF_LIST)
    193 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_2,
    194 		  "__sync_bool_compare_and_swap_2",
    195 		  BT_FN_BOOL_VPTR_I2_I2, ATTR_NOTHROW_LEAF_LIST)
    196 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_4,
    197 		  "__sync_bool_compare_and_swap_4",
    198 		  BT_FN_BOOL_VPTR_I4_I4, ATTR_NOTHROW_LEAF_LIST)
    199 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_8,
    200 		  "__sync_bool_compare_and_swap_8",
    201 		  BT_FN_BOOL_VPTR_I8_I8, ATTR_NOTHROW_LEAF_LIST)
    202 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_BOOL_COMPARE_AND_SWAP_16,
    203 		  "__sync_bool_compare_and_swap_16",
    204 		  BT_FN_BOOL_VPTR_I16_I16, ATTR_NOTHROW_LEAF_LIST)
    205 
    206 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_N,
    207 		  "__sync_val_compare_and_swap",
    208 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    209 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_1,
    210 		  "__sync_val_compare_and_swap_1",
    211 		  BT_FN_I1_VPTR_I1_I1, ATTR_NOTHROW_LEAF_LIST)
    212 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_2,
    213 		  "__sync_val_compare_and_swap_2",
    214 		  BT_FN_I2_VPTR_I2_I2, ATTR_NOTHROW_LEAF_LIST)
    215 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_4,
    216 		  "__sync_val_compare_and_swap_4",
    217 		  BT_FN_I4_VPTR_I4_I4, ATTR_NOTHROW_LEAF_LIST)
    218 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_8,
    219 		  "__sync_val_compare_and_swap_8",
    220 		  BT_FN_I8_VPTR_I8_I8, ATTR_NOTHROW_LEAF_LIST)
    221 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_16,
    222 		  "__sync_val_compare_and_swap_16",
    223 		  BT_FN_I16_VPTR_I16_I16, ATTR_NOTHROW_LEAF_LIST)
    224 
    225 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_TEST_AND_SET_N,
    226 		  "__sync_lock_test_and_set",
    227 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    228 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_TEST_AND_SET_1,
    229 		  "__sync_lock_test_and_set_1",
    230 		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST)
    231 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_TEST_AND_SET_2,
    232 		  "__sync_lock_test_and_set_2",
    233 		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST)
    234 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_TEST_AND_SET_4,
    235 		  "__sync_lock_test_and_set_4",
    236 		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST)
    237 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_TEST_AND_SET_8,
    238 		  "__sync_lock_test_and_set_8",
    239 		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST)
    240 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_TEST_AND_SET_16,
    241 		  "__sync_lock_test_and_set_16",
    242 		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LEAF_LIST)
    243 
    244 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_RELEASE_N, "__sync_lock_release",
    245 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    246 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_RELEASE_1, "__sync_lock_release_1",
    247 		  BT_FN_VOID_VPTR, ATTR_NOTHROW_LEAF_LIST)
    248 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_RELEASE_2, "__sync_lock_release_2",
    249 		  BT_FN_VOID_VPTR, ATTR_NOTHROW_LEAF_LIST)
    250 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_RELEASE_4, "__sync_lock_release_4",
    251 		  BT_FN_VOID_VPTR, ATTR_NOTHROW_LEAF_LIST)
    252 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_RELEASE_8, "__sync_lock_release_8",
    253 		  BT_FN_VOID_VPTR, ATTR_NOTHROW_LEAF_LIST)
    254 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_RELEASE_16, "__sync_lock_release_16",
    255 		  BT_FN_VOID_VPTR, ATTR_NOTHROW_LEAF_LIST)
    256 
    257 DEF_SYNC_BUILTIN (BUILT_IN_SYNC_SYNCHRONIZE, "__sync_synchronize",
    258 		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
    259 
    260 /* __sync* builtins for the C++ memory model.  */
    261 
    262 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_TEST_AND_SET, "__atomic_test_and_set",
    263 		  BT_FN_BOOL_VPTR_INT, ATTR_NOTHROW_LEAF_LIST)
    264 
    265 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_CLEAR, "__atomic_clear", BT_FN_VOID_VPTR_INT,
    266 		  ATTR_NOTHROW_LEAF_LIST)
    267 
    268 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE,
    269 		  "__atomic_exchange",
    270 		  BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT, ATTR_NOTHROW_LEAF_LIST)
    271 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_N,
    272 		  "__atomic_exchange_n",
    273 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    274 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_1,
    275 		  "__atomic_exchange_1",
    276 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
    277 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_2,
    278 		  "__atomic_exchange_2",
    279 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
    280 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_4,
    281 		  "__atomic_exchange_4",
    282 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
    283 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_8,
    284 		  "__atomic_exchange_8",
    285 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
    286 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_16,
    287 		  "__atomic_exchange_16",
    288 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
    289 
    290 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD,
    291 		  "__atomic_load",
    292 		  BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, ATTR_NOTHROW_LEAF_LIST)
    293 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_N,
    294 		  "__atomic_load_n",
    295 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    296 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_1,
    297 		  "__atomic_load_1",
    298 		  BT_FN_I1_CONST_VPTR_INT, ATTR_NOTHROW_LEAF_LIST)
    299 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_2,
    300 		  "__atomic_load_2",
    301 		  BT_FN_I2_CONST_VPTR_INT, ATTR_NOTHROW_LEAF_LIST)
    302 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_4,
    303 		  "__atomic_load_4",
    304 		  BT_FN_I4_CONST_VPTR_INT, ATTR_NOTHROW_LEAF_LIST)
    305 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_8,
    306 		  "__atomic_load_8",
    307 		  BT_FN_I8_CONST_VPTR_INT, ATTR_NOTHROW_LEAF_LIST)
    308 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_16,
    309 		  "__atomic_load_16",
    310 		  BT_FN_I16_CONST_VPTR_INT, ATTR_NOTHROW_LEAF_LIST)
    311 
    312 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE,
    313 		  "__atomic_compare_exchange",
    314 		  BT_FN_BOOL_SIZE_VPTR_PTR_PTR_INT_INT,
    315 		  ATTR_NOTHROW_LEAF_LIST)
    316 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE_N,
    317 		  "__atomic_compare_exchange_n",
    318 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    319 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE_1,
    320 		  "__atomic_compare_exchange_1",
    321 		  BT_FN_BOOL_VPTR_PTR_I1_BOOL_INT_INT, ATTR_NOTHROW_LEAF_LIST)
    322 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE_2,
    323 		  "__atomic_compare_exchange_2",
    324 		  BT_FN_BOOL_VPTR_PTR_I2_BOOL_INT_INT, ATTR_NOTHROW_LEAF_LIST)
    325 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE_4,
    326 		  "__atomic_compare_exchange_4",
    327 		  BT_FN_BOOL_VPTR_PTR_I4_BOOL_INT_INT, ATTR_NOTHROW_LEAF_LIST)
    328 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE_8,
    329 		  "__atomic_compare_exchange_8",
    330 		  BT_FN_BOOL_VPTR_PTR_I8_BOOL_INT_INT, ATTR_NOTHROW_LEAF_LIST)
    331 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE_16,
    332 		  "__atomic_compare_exchange_16",
    333 		  BT_FN_BOOL_VPTR_PTR_I16_BOOL_INT_INT, ATTR_NOTHROW_LEAF_LIST)
    334 
    335 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE,
    336 		  "__atomic_store",
    337 		  BT_FN_VOID_SIZE_VPTR_PTR_INT, ATTR_NOTHROW_LEAF_LIST)
    338 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_N,
    339 		  "__atomic_store_n",
    340 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    341 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_1,
    342 		  "__atomic_store_1",
    343 		  BT_FN_VOID_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
    344 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_2,
    345 		  "__atomic_store_2",
    346 		  BT_FN_VOID_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
    347 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_4,
    348 		  "__atomic_store_4",
    349 		  BT_FN_VOID_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
    350 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_8,
    351 		  "__atomic_store_8",
    352 		  BT_FN_VOID_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
    353 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_16,
    354 		  "__atomic_store_16",
    355 		  BT_FN_VOID_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
    356 
    357 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_N,
    358 		  "__atomic_add_fetch",
    359 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    360 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_1,
    361 		  "__atomic_add_fetch_1",
    362 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
    363 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_2,
    364 		  "__atomic_add_fetch_2",
    365 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
    366 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_4,
    367 		  "__atomic_add_fetch_4",
    368 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
    369 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_8,
    370 		  "__atomic_add_fetch_8",
    371 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
    372 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_16,
    373 		  "__atomic_add_fetch_16",
    374 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
    375 
    376 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_N,
    377 		  "__atomic_sub_fetch",
    378 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    379 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_1,
    380 		  "__atomic_sub_fetch_1",
    381 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
    382 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_2,
    383 		  "__atomic_sub_fetch_2",
    384 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
    385 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_4,
    386 		  "__atomic_sub_fetch_4",
    387 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
    388 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_8,
    389 		  "__atomic_sub_fetch_8",
    390 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
    391 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_16,
    392 		  "__atomic_sub_fetch_16",
    393 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
    394 
    395 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_N,
    396 		  "__atomic_and_fetch",
    397 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    398 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_1,
    399 		  "__atomic_and_fetch_1",
    400 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
    401 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_2,
    402 		  "__atomic_and_fetch_2",
    403 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
    404 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_4,
    405 		  "__atomic_and_fetch_4",
    406 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
    407 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_8,
    408 		  "__atomic_and_fetch_8",
    409 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
    410 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_16,
    411 		  "__atomic_and_fetch_16",
    412 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
    413 
    414 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_N,
    415 		  "__atomic_nand_fetch",
    416 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    417 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_1,
    418 		  "__atomic_nand_fetch_1",
    419 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
    420 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_2,
    421 		  "__atomic_nand_fetch_2",
    422 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
    423 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_4,
    424 		  "__atomic_nand_fetch_4",
    425 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
    426 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_8,
    427 		  "__atomic_nand_fetch_8",
    428 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
    429 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_16,
    430 		  "__atomic_nand_fetch_16",
    431 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
    432 
    433 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_N,
    434 		  "__atomic_xor_fetch",
    435 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    436 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_1,
    437 		  "__atomic_xor_fetch_1",
    438 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
    439 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_2,
    440 		  "__atomic_xor_fetch_2",
    441 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
    442 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_4,
    443 		  "__atomic_xor_fetch_4",
    444 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
    445 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_8,
    446 		  "__atomic_xor_fetch_8",
    447 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
    448 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_16,
    449 		  "__atomic_xor_fetch_16",
    450 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
    451 
    452 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_N,
    453 		  "__atomic_or_fetch",
    454 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    455 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_1,
    456 		  "__atomic_or_fetch_1",
    457 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
    458 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_2,
    459 		  "__atomic_or_fetch_2",
    460 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
    461 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_4,
    462 		  "__atomic_or_fetch_4",
    463 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
    464 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_8,
    465 		  "__atomic_or_fetch_8",
    466 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
    467 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_16,
    468 		  "__atomic_or_fetch_16",
    469 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
    470 
    471 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_N,
    472 		  "__atomic_fetch_add",
    473 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    474 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_1,
    475 		  "__atomic_fetch_add_1",
    476 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
    477 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_2,
    478 		  "__atomic_fetch_add_2",
    479 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
    480 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_4,
    481 		  "__atomic_fetch_add_4",
    482 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
    483 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_8,
    484 		  "__atomic_fetch_add_8",
    485 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
    486 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_16,
    487 		  "__atomic_fetch_add_16",
    488 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
    489 
    490 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_N,
    491 		  "__atomic_fetch_sub",
    492 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    493 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_1,
    494 		  "__atomic_fetch_sub_1",
    495 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
    496 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_2,
    497 		  "__atomic_fetch_sub_2",
    498 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
    499 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_4,
    500 		  "__atomic_fetch_sub_4",
    501 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
    502 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_8,
    503 		  "__atomic_fetch_sub_8",
    504 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
    505 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_16,
    506 		  "__atomic_fetch_sub_16",
    507 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
    508 
    509 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_N,
    510 		  "__atomic_fetch_and",
    511 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    512 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_1,
    513 		  "__atomic_fetch_and_1",
    514 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
    515 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_2,
    516 		  "__atomic_fetch_and_2",
    517 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
    518 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_4,
    519 		  "__atomic_fetch_and_4",
    520 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
    521 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_8,
    522 		  "__atomic_fetch_and_8",
    523 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
    524 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_16,
    525 		  "__atomic_fetch_and_16",
    526 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
    527 
    528 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_N,
    529 		  "__atomic_fetch_nand",
    530 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    531 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_1,
    532 		  "__atomic_fetch_nand_1",
    533 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
    534 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_2,
    535 		  "__atomic_fetch_nand_2",
    536 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
    537 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_4,
    538 		  "__atomic_fetch_nand_4",
    539 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
    540 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_8,
    541 		  "__atomic_fetch_nand_8",
    542 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
    543 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_16,
    544 		  "__atomic_fetch_nand_16",
    545 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
    546 
    547 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_N,
    548 		  "__atomic_fetch_xor",
    549 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    550 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_1,
    551 		  "__atomic_fetch_xor_1",
    552 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
    553 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_2,
    554 		  "__atomic_fetch_xor_2",
    555 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
    556 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_4,
    557 		  "__atomic_fetch_xor_4",
    558 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
    559 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_8,
    560 		  "__atomic_fetch_xor_8",
    561 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
    562 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_16,
    563 		  "__atomic_fetch_xor_16",
    564 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
    565 
    566 
    567 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_N,
    568 		  "__atomic_fetch_or",
    569 		  BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST)
    570 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_1,
    571 		  "__atomic_fetch_or_1",
    572 		  BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST)
    573 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_2,
    574 		  "__atomic_fetch_or_2",
    575 		  BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST)
    576 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_4,
    577 		  "__atomic_fetch_or_4",
    578 		  BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST)
    579 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_8,
    580 		  "__atomic_fetch_or_8",
    581 		  BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST)
    582 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_16,
    583 		  "__atomic_fetch_or_16",
    584 		  BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST)
    585 
    586 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ALWAYS_LOCK_FREE,
    587 		  "__atomic_always_lock_free",
    588 		  BT_FN_BOOL_SIZE_CONST_VPTR, ATTR_CONST_NOTHROW_LEAF_LIST)
    589 
    590 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_IS_LOCK_FREE,
    591 		  "__atomic_is_lock_free",
    592 		  BT_FN_BOOL_SIZE_CONST_VPTR, ATTR_CONST_NOTHROW_LEAF_LIST)
    593 
    594 
    595 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_THREAD_FENCE,
    596 		  "__atomic_thread_fence",
    597 		  BT_FN_VOID_INT, ATTR_NOTHROW_LEAF_LIST)
    598 
    599 DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SIGNAL_FENCE,
    600 		  "__atomic_signal_fence",
    601 		  BT_FN_VOID_INT, ATTR_NOTHROW_LEAF_LIST)
    602 
    603