1/* This file contains the definitions and documentation for the 2 synchronization builtins used in the GNU compiler. 3 Copyright (C) 2005, 2007, 2010 Free Software Foundation, Inc. 4 5This file is part of GCC. 6 7GCC is free software; you can redistribute it and/or modify it under 8the terms of the GNU General Public License as published by the Free 9Software Foundation; either version 3, or (at your option) any later 10version. 11 12GCC is distributed in the hope that it will be useful, but WITHOUT ANY 13WARRANTY; without even the implied warranty of MERCHANTABILITY or 14FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15for more details. 16 17You should have received a copy of the GNU General Public License 18along 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 31DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_ADD_N, "__sync_fetch_and_add", 32 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 33DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_ADD_1, "__sync_fetch_and_add_1", 34 BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST) 35DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_ADD_2, "__sync_fetch_and_add_2", 36 BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST) 37DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_ADD_4, "__sync_fetch_and_add_4", 38 BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST) 39DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_ADD_8, "__sync_fetch_and_add_8", 40 BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST) 41DEF_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 44DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_SUB_N, "__sync_fetch_and_sub", 45 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 46DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_SUB_1, "__sync_fetch_and_sub_1", 47 BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST) 48DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_SUB_2, "__sync_fetch_and_sub_2", 49 BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST) 50DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_SUB_4, "__sync_fetch_and_sub_4", 51 BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST) 52DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_SUB_8, "__sync_fetch_and_sub_8", 53 BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST) 54DEF_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 57DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_OR_N, "__sync_fetch_and_or", 58 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 59DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_OR_1, "__sync_fetch_and_or_1", 60 BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST) 61DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_OR_2, "__sync_fetch_and_or_2", 62 BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST) 63DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_OR_4, "__sync_fetch_and_or_4", 64 BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST) 65DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_OR_8, "__sync_fetch_and_or_8", 66 BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST) 67DEF_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 70DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_AND_N, "__sync_fetch_and_and", 71 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 72DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_AND_1, "__sync_fetch_and_and_1", 73 BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST) 74DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_AND_2, "__sync_fetch_and_and_2", 75 BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST) 76DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_AND_4, "__sync_fetch_and_and_4", 77 BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST) 78DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_AND_8, "__sync_fetch_and_and_8", 79 BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST) 80DEF_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 83DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_XOR_N, "__sync_fetch_and_xor", 84 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 85DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_XOR_1, "__sync_fetch_and_xor_1", 86 BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST) 87DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_XOR_2, "__sync_fetch_and_xor_2", 88 BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST) 89DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_XOR_4, "__sync_fetch_and_xor_4", 90 BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST) 91DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_XOR_8, "__sync_fetch_and_xor_8", 92 BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST) 93DEF_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 96DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_NAND_N, "__sync_fetch_and_nand", 97 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 98DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_NAND_1, "__sync_fetch_and_nand_1", 99 BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST) 100DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_NAND_2, "__sync_fetch_and_nand_2", 101 BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST) 102DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_NAND_4, "__sync_fetch_and_nand_4", 103 BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST) 104DEF_SYNC_BUILTIN (BUILT_IN_SYNC_FETCH_AND_NAND_8, "__sync_fetch_and_nand_8", 105 BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST) 106DEF_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 109DEF_SYNC_BUILTIN (BUILT_IN_SYNC_ADD_AND_FETCH_N, "__sync_add_and_fetch", 110 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 111DEF_SYNC_BUILTIN (BUILT_IN_SYNC_ADD_AND_FETCH_1, "__sync_add_and_fetch_1", 112 BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST) 113DEF_SYNC_BUILTIN (BUILT_IN_SYNC_ADD_AND_FETCH_2, "__sync_add_and_fetch_2", 114 BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST) 115DEF_SYNC_BUILTIN (BUILT_IN_SYNC_ADD_AND_FETCH_4, "__sync_add_and_fetch_4", 116 BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST) 117DEF_SYNC_BUILTIN (BUILT_IN_SYNC_ADD_AND_FETCH_8, "__sync_add_and_fetch_8", 118 BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST) 119DEF_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 122DEF_SYNC_BUILTIN (BUILT_IN_SYNC_SUB_AND_FETCH_N, "__sync_sub_and_fetch", 123 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 124DEF_SYNC_BUILTIN (BUILT_IN_SYNC_SUB_AND_FETCH_1, "__sync_sub_and_fetch_1", 125 BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST) 126DEF_SYNC_BUILTIN (BUILT_IN_SYNC_SUB_AND_FETCH_2, "__sync_sub_and_fetch_2", 127 BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST) 128DEF_SYNC_BUILTIN (BUILT_IN_SYNC_SUB_AND_FETCH_4, "__sync_sub_and_fetch_4", 129 BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST) 130DEF_SYNC_BUILTIN (BUILT_IN_SYNC_SUB_AND_FETCH_8, "__sync_sub_and_fetch_8", 131 BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST) 132DEF_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 135DEF_SYNC_BUILTIN (BUILT_IN_SYNC_OR_AND_FETCH_N, "__sync_or_and_fetch", 136 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 137DEF_SYNC_BUILTIN (BUILT_IN_SYNC_OR_AND_FETCH_1, "__sync_or_and_fetch_1", 138 BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST) 139DEF_SYNC_BUILTIN (BUILT_IN_SYNC_OR_AND_FETCH_2, "__sync_or_and_fetch_2", 140 BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST) 141DEF_SYNC_BUILTIN (BUILT_IN_SYNC_OR_AND_FETCH_4, "__sync_or_and_fetch_4", 142 BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST) 143DEF_SYNC_BUILTIN (BUILT_IN_SYNC_OR_AND_FETCH_8, "__sync_or_and_fetch_8", 144 BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST) 145DEF_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 148DEF_SYNC_BUILTIN (BUILT_IN_SYNC_AND_AND_FETCH_N, "__sync_and_and_fetch", 149 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 150DEF_SYNC_BUILTIN (BUILT_IN_SYNC_AND_AND_FETCH_1, "__sync_and_and_fetch_1", 151 BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST) 152DEF_SYNC_BUILTIN (BUILT_IN_SYNC_AND_AND_FETCH_2, "__sync_and_and_fetch_2", 153 BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST) 154DEF_SYNC_BUILTIN (BUILT_IN_SYNC_AND_AND_FETCH_4, "__sync_and_and_fetch_4", 155 BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST) 156DEF_SYNC_BUILTIN (BUILT_IN_SYNC_AND_AND_FETCH_8, "__sync_and_and_fetch_8", 157 BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST) 158DEF_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 161DEF_SYNC_BUILTIN (BUILT_IN_SYNC_XOR_AND_FETCH_N, "__sync_xor_and_fetch", 162 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 163DEF_SYNC_BUILTIN (BUILT_IN_SYNC_XOR_AND_FETCH_1, "__sync_xor_and_fetch_1", 164 BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST) 165DEF_SYNC_BUILTIN (BUILT_IN_SYNC_XOR_AND_FETCH_2, "__sync_xor_and_fetch_2", 166 BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST) 167DEF_SYNC_BUILTIN (BUILT_IN_SYNC_XOR_AND_FETCH_4, "__sync_xor_and_fetch_4", 168 BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST) 169DEF_SYNC_BUILTIN (BUILT_IN_SYNC_XOR_AND_FETCH_8, "__sync_xor_and_fetch_8", 170 BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST) 171DEF_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 174DEF_SYNC_BUILTIN (BUILT_IN_SYNC_NAND_AND_FETCH_N, "__sync_nand_and_fetch", 175 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 176DEF_SYNC_BUILTIN (BUILT_IN_SYNC_NAND_AND_FETCH_1, "__sync_nand_and_fetch_1", 177 BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LEAF_LIST) 178DEF_SYNC_BUILTIN (BUILT_IN_SYNC_NAND_AND_FETCH_2, "__sync_nand_and_fetch_2", 179 BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LEAF_LIST) 180DEF_SYNC_BUILTIN (BUILT_IN_SYNC_NAND_AND_FETCH_4, "__sync_nand_and_fetch_4", 181 BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LEAF_LIST) 182DEF_SYNC_BUILTIN (BUILT_IN_SYNC_NAND_AND_FETCH_8, "__sync_nand_and_fetch_8", 183 BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LEAF_LIST) 184DEF_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 187DEF_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) 190DEF_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) 193DEF_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) 196DEF_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) 199DEF_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) 202DEF_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 206DEF_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) 209DEF_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) 212DEF_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) 215DEF_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) 218DEF_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) 221DEF_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 225DEF_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) 228DEF_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) 231DEF_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) 234DEF_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) 237DEF_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) 240DEF_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 244DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_RELEASE_N, "__sync_lock_release", 245 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 246DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_RELEASE_1, "__sync_lock_release_1", 247 BT_FN_VOID_VPTR, ATTR_NOTHROW_LEAF_LIST) 248DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_RELEASE_2, "__sync_lock_release_2", 249 BT_FN_VOID_VPTR, ATTR_NOTHROW_LEAF_LIST) 250DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_RELEASE_4, "__sync_lock_release_4", 251 BT_FN_VOID_VPTR, ATTR_NOTHROW_LEAF_LIST) 252DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_RELEASE_8, "__sync_lock_release_8", 253 BT_FN_VOID_VPTR, ATTR_NOTHROW_LEAF_LIST) 254DEF_SYNC_BUILTIN (BUILT_IN_SYNC_LOCK_RELEASE_16, "__sync_lock_release_16", 255 BT_FN_VOID_VPTR, ATTR_NOTHROW_LEAF_LIST) 256 257DEF_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 262DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_TEST_AND_SET, "__atomic_test_and_set", 263 BT_FN_BOOL_VPTR_INT, ATTR_NOTHROW_LEAF_LIST) 264 265DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_CLEAR, "__atomic_clear", BT_FN_VOID_VPTR_INT, 266 ATTR_NOTHROW_LEAF_LIST) 267 268DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE, 269 "__atomic_exchange", 270 BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT, ATTR_NOTHROW_LEAF_LIST) 271DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_N, 272 "__atomic_exchange_n", 273 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 274DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_1, 275 "__atomic_exchange_1", 276 BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 277DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_2, 278 "__atomic_exchange_2", 279 BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 280DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_4, 281 "__atomic_exchange_4", 282 BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 283DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_8, 284 "__atomic_exchange_8", 285 BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 286DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_EXCHANGE_16, 287 "__atomic_exchange_16", 288 BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST) 289 290DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD, 291 "__atomic_load", 292 BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, ATTR_NOTHROW_LEAF_LIST) 293DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_N, 294 "__atomic_load_n", 295 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 296DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_1, 297 "__atomic_load_1", 298 BT_FN_I1_CONST_VPTR_INT, ATTR_NOTHROW_LEAF_LIST) 299DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_2, 300 "__atomic_load_2", 301 BT_FN_I2_CONST_VPTR_INT, ATTR_NOTHROW_LEAF_LIST) 302DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_4, 303 "__atomic_load_4", 304 BT_FN_I4_CONST_VPTR_INT, ATTR_NOTHROW_LEAF_LIST) 305DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_8, 306 "__atomic_load_8", 307 BT_FN_I8_CONST_VPTR_INT, ATTR_NOTHROW_LEAF_LIST) 308DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_LOAD_16, 309 "__atomic_load_16", 310 BT_FN_I16_CONST_VPTR_INT, ATTR_NOTHROW_LEAF_LIST) 311 312DEF_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) 316DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_COMPARE_EXCHANGE_N, 317 "__atomic_compare_exchange_n", 318 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 319DEF_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) 322DEF_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) 325DEF_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) 328DEF_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) 331DEF_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 335DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE, 336 "__atomic_store", 337 BT_FN_VOID_SIZE_VPTR_PTR_INT, ATTR_NOTHROW_LEAF_LIST) 338DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_N, 339 "__atomic_store_n", 340 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 341DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_1, 342 "__atomic_store_1", 343 BT_FN_VOID_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 344DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_2, 345 "__atomic_store_2", 346 BT_FN_VOID_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 347DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_4, 348 "__atomic_store_4", 349 BT_FN_VOID_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 350DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_8, 351 "__atomic_store_8", 352 BT_FN_VOID_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 353DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_STORE_16, 354 "__atomic_store_16", 355 BT_FN_VOID_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST) 356 357DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_N, 358 "__atomic_add_fetch", 359 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 360DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_1, 361 "__atomic_add_fetch_1", 362 BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 363DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_2, 364 "__atomic_add_fetch_2", 365 BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 366DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_4, 367 "__atomic_add_fetch_4", 368 BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 369DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_ADD_FETCH_8, 370 "__atomic_add_fetch_8", 371 BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 372DEF_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 376DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_N, 377 "__atomic_sub_fetch", 378 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 379DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_1, 380 "__atomic_sub_fetch_1", 381 BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 382DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_2, 383 "__atomic_sub_fetch_2", 384 BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 385DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_4, 386 "__atomic_sub_fetch_4", 387 BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 388DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SUB_FETCH_8, 389 "__atomic_sub_fetch_8", 390 BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 391DEF_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 395DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_N, 396 "__atomic_and_fetch", 397 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 398DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_1, 399 "__atomic_and_fetch_1", 400 BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 401DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_2, 402 "__atomic_and_fetch_2", 403 BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 404DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_4, 405 "__atomic_and_fetch_4", 406 BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 407DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_AND_FETCH_8, 408 "__atomic_and_fetch_8", 409 BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 410DEF_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 414DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_N, 415 "__atomic_nand_fetch", 416 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 417DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_1, 418 "__atomic_nand_fetch_1", 419 BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 420DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_2, 421 "__atomic_nand_fetch_2", 422 BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 423DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_4, 424 "__atomic_nand_fetch_4", 425 BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 426DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_NAND_FETCH_8, 427 "__atomic_nand_fetch_8", 428 BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 429DEF_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 433DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_N, 434 "__atomic_xor_fetch", 435 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 436DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_1, 437 "__atomic_xor_fetch_1", 438 BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 439DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_2, 440 "__atomic_xor_fetch_2", 441 BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 442DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_4, 443 "__atomic_xor_fetch_4", 444 BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 445DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_XOR_FETCH_8, 446 "__atomic_xor_fetch_8", 447 BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 448DEF_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 452DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_N, 453 "__atomic_or_fetch", 454 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 455DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_1, 456 "__atomic_or_fetch_1", 457 BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 458DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_2, 459 "__atomic_or_fetch_2", 460 BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 461DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_4, 462 "__atomic_or_fetch_4", 463 BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 464DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_OR_FETCH_8, 465 "__atomic_or_fetch_8", 466 BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 467DEF_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 471DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_N, 472 "__atomic_fetch_add", 473 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 474DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_1, 475 "__atomic_fetch_add_1", 476 BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 477DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_2, 478 "__atomic_fetch_add_2", 479 BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 480DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_4, 481 "__atomic_fetch_add_4", 482 BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 483DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_ADD_8, 484 "__atomic_fetch_add_8", 485 BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 486DEF_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 490DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_N, 491 "__atomic_fetch_sub", 492 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 493DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_1, 494 "__atomic_fetch_sub_1", 495 BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 496DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_2, 497 "__atomic_fetch_sub_2", 498 BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 499DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_4, 500 "__atomic_fetch_sub_4", 501 BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 502DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_SUB_8, 503 "__atomic_fetch_sub_8", 504 BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 505DEF_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 509DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_N, 510 "__atomic_fetch_and", 511 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 512DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_1, 513 "__atomic_fetch_and_1", 514 BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 515DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_2, 516 "__atomic_fetch_and_2", 517 BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 518DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_4, 519 "__atomic_fetch_and_4", 520 BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 521DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_AND_8, 522 "__atomic_fetch_and_8", 523 BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 524DEF_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 528DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_N, 529 "__atomic_fetch_nand", 530 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 531DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_1, 532 "__atomic_fetch_nand_1", 533 BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 534DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_2, 535 "__atomic_fetch_nand_2", 536 BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 537DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_4, 538 "__atomic_fetch_nand_4", 539 BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 540DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_NAND_8, 541 "__atomic_fetch_nand_8", 542 BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 543DEF_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 547DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_N, 548 "__atomic_fetch_xor", 549 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 550DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_1, 551 "__atomic_fetch_xor_1", 552 BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 553DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_2, 554 "__atomic_fetch_xor_2", 555 BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 556DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_4, 557 "__atomic_fetch_xor_4", 558 BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 559DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_XOR_8, 560 "__atomic_fetch_xor_8", 561 BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 562DEF_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 567DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_N, 568 "__atomic_fetch_or", 569 BT_FN_VOID_VAR, ATTR_NOTHROW_LEAF_LIST) 570DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_1, 571 "__atomic_fetch_or_1", 572 BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 573DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_2, 574 "__atomic_fetch_or_2", 575 BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 576DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_4, 577 "__atomic_fetch_or_4", 578 BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 579DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_FETCH_OR_8, 580 "__atomic_fetch_or_8", 581 BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 582DEF_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 586DEF_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 590DEF_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 595DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_THREAD_FENCE, 596 "__atomic_thread_fence", 597 BT_FN_VOID_INT, ATTR_NOTHROW_LEAF_LIST) 598 599DEF_SYNC_BUILTIN (BUILT_IN_ATOMIC_SIGNAL_FENCE, 600 "__atomic_signal_fence", 601 BT_FN_VOID_INT, ATTR_NOTHROW_LEAF_LIST) 602 603