1169689Skan/* This file contains the definitions and documentation for the
2169689Skan   synchronization builtins used in the GNU compiler.
3169689Skan   Copyright (C) 2005 Free Software Foundation, Inc.
4169689Skan
5169689SkanThis file is part of GCC.
6169689Skan
7169689SkanGCC is free software; you can redistribute it and/or modify it under
8169689Skanthe terms of the GNU General Public License as published by the Free
9169689SkanSoftware Foundation; either version 2, or (at your option) any later
10169689Skanversion.
11169689Skan
12169689SkanGCC is distributed in the hope that it will be useful, but WITHOUT ANY
13169689SkanWARRANTY; without even the implied warranty of MERCHANTABILITY or
14169689SkanFITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15169689Skanfor more details.
16169689Skan
17169689SkanYou should have received a copy of the GNU General Public License
18169689Skanalong with GCC; see the file COPYING.  If not, write to the Free
19169689SkanSoftware Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
20169689Skan02110-1301, USA.  */
21169689Skan
22169689Skan/* Before including this file, you should define a macro:
23169689Skan
24169689Skan     DEF_SYNC_BUILTIN (ENUM, NAME, TYPE, ATTRS)
25169689Skan
26169689Skan   See builtins.def for details.  */
27169689Skan   
28169689Skan/* Synchronization Primitives.  The "_N" version is the one that the user
29169689Skan   is supposed to be using.  It's overloaded, and is resolved to one of the
30169689Skan   "_1" through "_16" versions, plus some extra casts.  */
31169689Skan
32169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_ADD_N, "__sync_fetch_and_add",
33169689Skan		  BT_FN_VOID_VAR, ATTR_NOTHROW_LIST)
34169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_ADD_1, "__sync_fetch_and_add_1",
35169689Skan		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LIST)
36169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_ADD_2, "__sync_fetch_and_add_2",
37169689Skan		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LIST)
38169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_ADD_4, "__sync_fetch_and_add_4",
39169689Skan		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LIST)
40169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_ADD_8, "__sync_fetch_and_add_8",
41169689Skan		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LIST)
42169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_ADD_16, "__sync_fetch_and_add_16",
43169689Skan		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LIST)
44169689Skan
45169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_SUB_N, "__sync_fetch_and_sub",
46169689Skan		  BT_FN_VOID_VAR, ATTR_NOTHROW_LIST)
47169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_SUB_1, "__sync_fetch_and_sub_1",
48169689Skan		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LIST)
49169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_SUB_2, "__sync_fetch_and_sub_2",
50169689Skan		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LIST)
51169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_SUB_4, "__sync_fetch_and_sub_4",
52169689Skan		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LIST)
53169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_SUB_8, "__sync_fetch_and_sub_8",
54169689Skan		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LIST)
55169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_SUB_16, "__sync_fetch_and_sub_16",
56169689Skan		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LIST)
57169689Skan
58169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_OR_N, "__sync_fetch_and_or",
59169689Skan		  BT_FN_VOID_VAR, ATTR_NOTHROW_LIST)
60169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_OR_1, "__sync_fetch_and_or_1",
61169689Skan		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LIST)
62169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_OR_2, "__sync_fetch_and_or_2",
63169689Skan		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LIST)
64169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_OR_4, "__sync_fetch_and_or_4",
65169689Skan		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LIST)
66169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_OR_8, "__sync_fetch_and_or_8",
67169689Skan		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LIST)
68169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_OR_16, "__sync_fetch_and_or_16",
69169689Skan		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LIST)
70169689Skan
71169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_AND_N, "__sync_fetch_and_and",
72169689Skan		  BT_FN_VOID_VAR, ATTR_NOTHROW_LIST)
73169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_AND_1, "__sync_fetch_and_and_1",
74169689Skan		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LIST)
75169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_AND_2, "__sync_fetch_and_and_2",
76169689Skan		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LIST)
77169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_AND_4, "__sync_fetch_and_and_4",
78169689Skan		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LIST)
79169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_AND_8, "__sync_fetch_and_and_8",
80169689Skan		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LIST)
81169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_AND_16, "__sync_fetch_and_and_16",
82169689Skan		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LIST)
83169689Skan
84169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_XOR_N, "__sync_fetch_and_xor",
85169689Skan		  BT_FN_VOID_VAR, ATTR_NOTHROW_LIST)
86169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_XOR_1, "__sync_fetch_and_xor_1",
87169689Skan		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LIST)
88169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_XOR_2, "__sync_fetch_and_xor_2",
89169689Skan		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LIST)
90169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_XOR_4, "__sync_fetch_and_xor_4",
91169689Skan		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LIST)
92169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_XOR_8, "__sync_fetch_and_xor_8",
93169689Skan		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LIST)
94169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_XOR_16, "__sync_fetch_and_xor_16",
95169689Skan		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LIST)
96169689Skan
97169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_NAND_N, "__sync_fetch_and_nand",
98169689Skan		  BT_FN_VOID_VAR, ATTR_NOTHROW_LIST)
99169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_NAND_1, "__sync_fetch_and_nand_1",
100169689Skan		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LIST)
101169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_NAND_2, "__sync_fetch_and_nand_2",
102169689Skan		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LIST)
103169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_NAND_4, "__sync_fetch_and_nand_4",
104169689Skan		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LIST)
105169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_NAND_8, "__sync_fetch_and_nand_8",
106169689Skan		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LIST)
107169689SkanDEF_SYNC_BUILTIN (BUILT_IN_FETCH_AND_NAND_16, "__sync_fetch_and_nand_16",
108169689Skan		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LIST)
109169689Skan
110169689SkanDEF_SYNC_BUILTIN (BUILT_IN_ADD_AND_FETCH_N, "__sync_add_and_fetch",
111169689Skan		  BT_FN_VOID_VAR, ATTR_NOTHROW_LIST)
112169689SkanDEF_SYNC_BUILTIN (BUILT_IN_ADD_AND_FETCH_1, "__sync_add_and_fetch_1",
113169689Skan		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LIST)
114169689SkanDEF_SYNC_BUILTIN (BUILT_IN_ADD_AND_FETCH_2, "__sync_add_and_fetch_2",
115169689Skan		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LIST)
116169689SkanDEF_SYNC_BUILTIN (BUILT_IN_ADD_AND_FETCH_4, "__sync_add_and_fetch_4",
117169689Skan		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LIST)
118169689SkanDEF_SYNC_BUILTIN (BUILT_IN_ADD_AND_FETCH_8, "__sync_add_and_fetch_8",
119169689Skan		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LIST)
120169689SkanDEF_SYNC_BUILTIN (BUILT_IN_ADD_AND_FETCH_16, "__sync_add_and_fetch_16",
121169689Skan		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LIST)
122169689Skan
123169689SkanDEF_SYNC_BUILTIN (BUILT_IN_SUB_AND_FETCH_N, "__sync_sub_and_fetch",
124169689Skan		  BT_FN_VOID_VAR, ATTR_NOTHROW_LIST)
125169689SkanDEF_SYNC_BUILTIN (BUILT_IN_SUB_AND_FETCH_1, "__sync_sub_and_fetch_1",
126169689Skan		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LIST)
127169689SkanDEF_SYNC_BUILTIN (BUILT_IN_SUB_AND_FETCH_2, "__sync_sub_and_fetch_2",
128169689Skan		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LIST)
129169689SkanDEF_SYNC_BUILTIN (BUILT_IN_SUB_AND_FETCH_4, "__sync_sub_and_fetch_4",
130169689Skan		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LIST)
131169689SkanDEF_SYNC_BUILTIN (BUILT_IN_SUB_AND_FETCH_8, "__sync_sub_and_fetch_8",
132169689Skan		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LIST)
133169689SkanDEF_SYNC_BUILTIN (BUILT_IN_SUB_AND_FETCH_16, "__sync_sub_and_fetch_16",
134169689Skan		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LIST)
135169689Skan
136169689SkanDEF_SYNC_BUILTIN (BUILT_IN_OR_AND_FETCH_N, "__sync_or_and_fetch",
137169689Skan		  BT_FN_VOID_VAR, ATTR_NOTHROW_LIST)
138169689SkanDEF_SYNC_BUILTIN (BUILT_IN_OR_AND_FETCH_1, "__sync_or_and_fetch_1",
139169689Skan		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LIST)
140169689SkanDEF_SYNC_BUILTIN (BUILT_IN_OR_AND_FETCH_2, "__sync_or_and_fetch_2",
141169689Skan		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LIST)
142169689SkanDEF_SYNC_BUILTIN (BUILT_IN_OR_AND_FETCH_4, "__sync_or_and_fetch_4",
143169689Skan		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LIST)
144169689SkanDEF_SYNC_BUILTIN (BUILT_IN_OR_AND_FETCH_8, "__sync_or_and_fetch_8",
145169689Skan		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LIST)
146169689SkanDEF_SYNC_BUILTIN (BUILT_IN_OR_AND_FETCH_16, "__sync_or_and_fetch_16",
147169689Skan		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LIST)
148169689Skan
149169689SkanDEF_SYNC_BUILTIN (BUILT_IN_AND_AND_FETCH_N, "__sync_and_and_fetch",
150169689Skan		  BT_FN_VOID_VAR, ATTR_NOTHROW_LIST)
151169689SkanDEF_SYNC_BUILTIN (BUILT_IN_AND_AND_FETCH_1, "__sync_and_and_fetch_1",
152169689Skan		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LIST)
153169689SkanDEF_SYNC_BUILTIN (BUILT_IN_AND_AND_FETCH_2, "__sync_and_and_fetch_2",
154169689Skan		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LIST)
155169689SkanDEF_SYNC_BUILTIN (BUILT_IN_AND_AND_FETCH_4, "__sync_and_and_fetch_4",
156169689Skan		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LIST)
157169689SkanDEF_SYNC_BUILTIN (BUILT_IN_AND_AND_FETCH_8, "__sync_and_and_fetch_8",
158169689Skan		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LIST)
159169689SkanDEF_SYNC_BUILTIN (BUILT_IN_AND_AND_FETCH_16, "__sync_and_and_fetch_16",
160169689Skan		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LIST)
161169689Skan
162169689SkanDEF_SYNC_BUILTIN (BUILT_IN_XOR_AND_FETCH_N, "__sync_xor_and_fetch",
163169689Skan		  BT_FN_VOID_VAR, ATTR_NOTHROW_LIST)
164169689SkanDEF_SYNC_BUILTIN (BUILT_IN_XOR_AND_FETCH_1, "__sync_xor_and_fetch_1",
165169689Skan		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LIST)
166169689SkanDEF_SYNC_BUILTIN (BUILT_IN_XOR_AND_FETCH_2, "__sync_xor_and_fetch_2",
167169689Skan		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LIST)
168169689SkanDEF_SYNC_BUILTIN (BUILT_IN_XOR_AND_FETCH_4, "__sync_xor_and_fetch_4",
169169689Skan		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LIST)
170169689SkanDEF_SYNC_BUILTIN (BUILT_IN_XOR_AND_FETCH_8, "__sync_xor_and_fetch_8",
171169689Skan		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LIST)
172169689SkanDEF_SYNC_BUILTIN (BUILT_IN_XOR_AND_FETCH_16, "__sync_xor_and_fetch_16",
173169689Skan		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LIST)
174169689Skan
175169689SkanDEF_SYNC_BUILTIN (BUILT_IN_NAND_AND_FETCH_N, "__sync_nand_and_fetch",
176169689Skan		  BT_FN_VOID_VAR, ATTR_NOTHROW_LIST)
177169689SkanDEF_SYNC_BUILTIN (BUILT_IN_NAND_AND_FETCH_1, "__sync_nand_and_fetch_1",
178169689Skan		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LIST)
179169689SkanDEF_SYNC_BUILTIN (BUILT_IN_NAND_AND_FETCH_2, "__sync_nand_and_fetch_2",
180169689Skan		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LIST)
181169689SkanDEF_SYNC_BUILTIN (BUILT_IN_NAND_AND_FETCH_4, "__sync_nand_and_fetch_4",
182169689Skan		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LIST)
183169689SkanDEF_SYNC_BUILTIN (BUILT_IN_NAND_AND_FETCH_8, "__sync_nand_and_fetch_8",
184169689Skan		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LIST)
185169689SkanDEF_SYNC_BUILTIN (BUILT_IN_NAND_AND_FETCH_16, "__sync_nand_and_fetch_16",
186169689Skan		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LIST)
187169689Skan
188169689SkanDEF_SYNC_BUILTIN (BUILT_IN_BOOL_COMPARE_AND_SWAP_N,
189169689Skan		  "__sync_bool_compare_and_swap",
190169689Skan		  BT_FN_VOID_VAR, ATTR_NOTHROW_LIST)
191169689SkanDEF_SYNC_BUILTIN (BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
192169689Skan		  "__sync_bool_compare_and_swap_1",
193169689Skan		  BT_FN_BOOL_VPTR_I1_I1, ATTR_NOTHROW_LIST)
194169689SkanDEF_SYNC_BUILTIN (BUILT_IN_BOOL_COMPARE_AND_SWAP_2,
195169689Skan		  "__sync_bool_compare_and_swap_2",
196169689Skan		  BT_FN_BOOL_VPTR_I2_I2, ATTR_NOTHROW_LIST)
197169689SkanDEF_SYNC_BUILTIN (BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
198169689Skan		  "__sync_bool_compare_and_swap_4",
199169689Skan		  BT_FN_BOOL_VPTR_I4_I4, ATTR_NOTHROW_LIST)
200169689SkanDEF_SYNC_BUILTIN (BUILT_IN_BOOL_COMPARE_AND_SWAP_8,
201169689Skan		  "__sync_bool_compare_and_swap_8",
202169689Skan		  BT_FN_BOOL_VPTR_I8_I8, ATTR_NOTHROW_LIST)
203169689SkanDEF_SYNC_BUILTIN (BUILT_IN_BOOL_COMPARE_AND_SWAP_16,
204169689Skan		  "__sync_bool_compare_and_swap_16",
205169689Skan		  BT_FN_BOOL_VPTR_I16_I16, ATTR_NOTHROW_LIST)
206169689Skan
207169689SkanDEF_SYNC_BUILTIN (BUILT_IN_VAL_COMPARE_AND_SWAP_N,
208169689Skan		  "__sync_val_compare_and_swap",
209169689Skan		  BT_FN_VOID_VAR, ATTR_NOTHROW_LIST)
210169689SkanDEF_SYNC_BUILTIN (BUILT_IN_VAL_COMPARE_AND_SWAP_1,
211169689Skan		  "__sync_val_compare_and_swap_1",
212169689Skan		  BT_FN_I1_VPTR_I1_I1, ATTR_NOTHROW_LIST)
213169689SkanDEF_SYNC_BUILTIN (BUILT_IN_VAL_COMPARE_AND_SWAP_2,
214169689Skan		  "__sync_val_compare_and_swap_2",
215169689Skan		  BT_FN_I2_VPTR_I2_I2, ATTR_NOTHROW_LIST)
216169689SkanDEF_SYNC_BUILTIN (BUILT_IN_VAL_COMPARE_AND_SWAP_4,
217169689Skan		  "__sync_val_compare_and_swap_4",
218169689Skan		  BT_FN_I4_VPTR_I4_I4, ATTR_NOTHROW_LIST)
219169689SkanDEF_SYNC_BUILTIN (BUILT_IN_VAL_COMPARE_AND_SWAP_8,
220169689Skan		  "__sync_val_compare_and_swap_8",
221169689Skan		  BT_FN_I8_VPTR_I8_I8, ATTR_NOTHROW_LIST)
222169689SkanDEF_SYNC_BUILTIN (BUILT_IN_VAL_COMPARE_AND_SWAP_16,
223169689Skan		  "__sync_val_compare_and_swap_16",
224169689Skan		  BT_FN_I16_VPTR_I16_I16, ATTR_NOTHROW_LIST)
225169689Skan
226169689SkanDEF_SYNC_BUILTIN (BUILT_IN_LOCK_TEST_AND_SET_N, "__sync_lock_test_and_set",
227169689Skan		  BT_FN_VOID_VAR, ATTR_NOTHROW_LIST)
228169689SkanDEF_SYNC_BUILTIN (BUILT_IN_LOCK_TEST_AND_SET_1, "__sync_lock_test_and_set_1",
229169689Skan		  BT_FN_I1_VPTR_I1, ATTR_NOTHROW_LIST)
230169689SkanDEF_SYNC_BUILTIN (BUILT_IN_LOCK_TEST_AND_SET_2, "__sync_lock_test_and_set_2",
231169689Skan		  BT_FN_I2_VPTR_I2, ATTR_NOTHROW_LIST)
232169689SkanDEF_SYNC_BUILTIN (BUILT_IN_LOCK_TEST_AND_SET_4, "__sync_lock_test_and_set_4",
233169689Skan		  BT_FN_I4_VPTR_I4, ATTR_NOTHROW_LIST)
234169689SkanDEF_SYNC_BUILTIN (BUILT_IN_LOCK_TEST_AND_SET_8, "__sync_lock_test_and_set_8",
235169689Skan		  BT_FN_I8_VPTR_I8, ATTR_NOTHROW_LIST)
236169689SkanDEF_SYNC_BUILTIN (BUILT_IN_LOCK_TEST_AND_SET_16, "__sync_lock_test_and_set_16",
237169689Skan		  BT_FN_I16_VPTR_I16, ATTR_NOTHROW_LIST)
238169689Skan
239169689SkanDEF_SYNC_BUILTIN (BUILT_IN_LOCK_RELEASE_N, "__sync_lock_release",
240169689Skan		  BT_FN_VOID_VAR, ATTR_NOTHROW_LIST)
241169689SkanDEF_SYNC_BUILTIN (BUILT_IN_LOCK_RELEASE_1, "__sync_lock_release_1",
242169689Skan		  BT_FN_VOID_VPTR, ATTR_NOTHROW_LIST)
243169689SkanDEF_SYNC_BUILTIN (BUILT_IN_LOCK_RELEASE_2, "__sync_lock_release_2",
244169689Skan		  BT_FN_VOID_VPTR, ATTR_NOTHROW_LIST)
245169689SkanDEF_SYNC_BUILTIN (BUILT_IN_LOCK_RELEASE_4, "__sync_lock_release_4",
246169689Skan		  BT_FN_VOID_VPTR, ATTR_NOTHROW_LIST)
247169689SkanDEF_SYNC_BUILTIN (BUILT_IN_LOCK_RELEASE_8, "__sync_lock_release_8",
248169689Skan		  BT_FN_VOID_VPTR, ATTR_NOTHROW_LIST)
249169689SkanDEF_SYNC_BUILTIN (BUILT_IN_LOCK_RELEASE_16, "__sync_lock_release_16",
250169689Skan		  BT_FN_VOID_VPTR, ATTR_NOTHROW_LIST)
251169689Skan
252169689SkanDEF_SYNC_BUILTIN (BUILT_IN_SYNCHRONIZE, "__sync_synchronize",
253169689Skan		  BT_FN_VOID, ATTR_NOTHROW_LIST)
254