gtm-builtins.def revision 1.4 1 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_START, "_ITM_beginTransaction",
2 1.1 mrg BT_FN_UINT32_UINT32_VAR, ATTR_TM_NOTHROW_RT_LIST)
3 1.1 mrg
4 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_COMMIT, "_ITM_commitTransaction",
5 1.1 mrg BT_FN_VOID, ATTR_TM_NOTHROW_LIST)
6 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_COMMIT_EH, "_ITM_commitTransactionEH",
7 1.1 mrg BT_FN_VOID_PTR, ATTR_TM_NOTHROW_LIST)
8 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_ABORT, "_ITM_abortTransaction",
9 1.1 mrg BT_FN_VOID_INT, ATTR_TM_NORETURN_NOTHROW_LIST)
10 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_IRREVOCABLE, "_ITM_changeTransactionMode",
11 1.1 mrg BT_FN_VOID_INT, ATTR_TM_NOTHROW_LIST)
12 1.1 mrg
13 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_MEMCPY, "_ITM_memcpyRtWt",
14 1.1 mrg BT_FN_VOID_PTR_CONST_PTR_SIZE, ATTR_TM_TMPURE_NOTHROW_LIST)
15 1.4 mrg DEF_TM_BUILTIN (BUILT_IN_TM_MEMCPY_RNWT, "_ITM_memcpyRnWt",
16 1.4 mrg BT_FN_VOID_PTR_CONST_PTR_SIZE, ATTR_TM_TMPURE_NOTHROW_LIST)
17 1.4 mrg DEF_TM_BUILTIN (BUILT_IN_TM_MEMCPY_RTWN, "_ITM_memcpyRtWn",
18 1.4 mrg BT_FN_VOID_PTR_CONST_PTR_SIZE, ATTR_TM_TMPURE_NOTHROW_LIST)
19 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_MEMMOVE, "_ITM_memmoveRtWt",
20 1.1 mrg BT_FN_VOID_PTR_CONST_PTR_SIZE, ATTR_TM_TMPURE_NOTHROW_LIST)
21 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_MEMSET, "_ITM_memsetW",
22 1.1 mrg BT_FN_VOID_PTR_INT_SIZE, ATTR_TM_TMPURE_NOTHROW_LIST)
23 1.1 mrg
24 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_GETTMCLONE_IRR, "_ITM_getTMCloneOrIrrevocable",
25 1.1 mrg BT_FN_PTR_PTR, ATTR_TM_CONST_NOTHROW_LIST)
26 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_GETTMCLONE_SAFE, "_ITM_getTMCloneSafe",
27 1.1 mrg BT_FN_PTR_PTR, ATTR_TM_CONST_NOTHROW_LIST)
28 1.1 mrg
29 1.1 mrg /* Memory allocation builtins. */
30 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_MALLOC, "_ITM_malloc",
31 1.1 mrg BT_FN_PTR_SIZE, ATTR_TMPURE_MALLOC_NOTHROW_LIST)
32 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_CALLOC, "_ITM_calloc",
33 1.1 mrg BT_FN_PTR_SIZE_SIZE, ATTR_TMPURE_MALLOC_NOTHROW_LIST)
34 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_FREE, "_ITM_free",
35 1.3 mrg BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST)
36 1.1 mrg
37 1.1 mrg /* Logging builtins. */
38 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOG_1, "_ITM_LU1",
39 1.1 mrg BT_FN_VOID_VPTR, ATTR_TM_TMPURE_NOTHROW_LIST)
40 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOG_2, "_ITM_LU2",
41 1.1 mrg BT_FN_VOID_VPTR, ATTR_TM_TMPURE_NOTHROW_LIST)
42 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOG_4, "_ITM_LU4",
43 1.1 mrg BT_FN_VOID_VPTR, ATTR_TM_TMPURE_NOTHROW_LIST)
44 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOG_8, "_ITM_LU8",
45 1.1 mrg BT_FN_VOID_VPTR, ATTR_TM_TMPURE_NOTHROW_LIST)
46 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOG_FLOAT, "_ITM_LF",
47 1.1 mrg BT_FN_VOID_VPTR, ATTR_TM_TMPURE_NOTHROW_LIST)
48 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOG_DOUBLE, "_ITM_LD",
49 1.1 mrg BT_FN_VOID_VPTR, ATTR_TM_TMPURE_NOTHROW_LIST)
50 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOG_LDOUBLE, "_ITM_LE",
51 1.1 mrg BT_FN_VOID_VPTR, ATTR_TM_TMPURE_NOTHROW_LIST)
52 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOG, "_ITM_LB",
53 1.1 mrg BT_FN_VOID_VPTR_SIZE, ATTR_TM_TMPURE_NOTHROW_LIST)
54 1.1 mrg
55 1.1 mrg /* These stubs should get defined in the backend if applicable. */
56 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_LOG_M64, "__builtin__ITM_LM64")
57 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_LOG_M128, "__builtin__ITM_LM128")
58 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_LOG_M256, "__builtin__ITM_LM256")
59 1.1 mrg
60 1.1 mrg /* Writes.
61 1.1 mrg
62 1.1 mrg Note: The writes must follow the following order: STORE, WAR, WAW.
63 1.1 mrg The TM optimizations depend on this order.
64 1.1 mrg
65 1.1 mrg BUILT_IN_TM_STORE_1 must be the first builtin.
66 1.1 mrg BUILTIN_TM_LOAD_STORE_P depends on this. */
67 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_1, "_ITM_WU1",
68 1.1 mrg BT_FN_VOID_VPTR_I1, ATTR_TM_NOTHROW_LIST)
69 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_WAR_1, "_ITM_WaRU1",
70 1.1 mrg BT_FN_VOID_VPTR_I1, ATTR_TM_NOTHROW_LIST)
71 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_WAW_1, "_ITM_WaWU1",
72 1.1 mrg BT_FN_VOID_VPTR_I1, ATTR_TM_NOTHROW_LIST)
73 1.1 mrg
74 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_2, "_ITM_WU2",
75 1.1 mrg BT_FN_VOID_VPTR_I2, ATTR_TM_NOTHROW_LIST)
76 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_WAR_2, "_ITM_WaRU2",
77 1.1 mrg BT_FN_VOID_VPTR_I2, ATTR_TM_NOTHROW_LIST)
78 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_WAW_2, "_ITM_WaWU2",
79 1.1 mrg BT_FN_VOID_VPTR_I2, ATTR_TM_NOTHROW_LIST)
80 1.1 mrg
81 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_4, "_ITM_WU4",
82 1.1 mrg BT_FN_VOID_VPTR_I4, ATTR_TM_NOTHROW_LIST)
83 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_WAR_4, "_ITM_WaRU4",
84 1.1 mrg BT_FN_VOID_VPTR_I4, ATTR_TM_NOTHROW_LIST)
85 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_WAW_4, "_ITM_WaWU4",
86 1.1 mrg BT_FN_VOID_VPTR_I4, ATTR_TM_NOTHROW_LIST)
87 1.1 mrg
88 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_8, "_ITM_WU8",
89 1.1 mrg BT_FN_VOID_VPTR_I8, ATTR_TM_NOTHROW_LIST)
90 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_WAR_8, "_ITM_WaRU8",
91 1.1 mrg BT_FN_VOID_VPTR_I8, ATTR_TM_NOTHROW_LIST)
92 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_WAW_8, "_ITM_WaWU8",
93 1.1 mrg BT_FN_VOID_VPTR_I8, ATTR_TM_NOTHROW_LIST)
94 1.1 mrg
95 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_FLOAT, "_ITM_WF",
96 1.1 mrg BT_FN_VOID_VPTR_FLOAT, ATTR_TM_NOTHROW_LIST)
97 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_WAR_FLOAT, "_ITM_WaRF",
98 1.1 mrg BT_FN_VOID_VPTR_FLOAT, ATTR_TM_NOTHROW_LIST)
99 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_WAW_FLOAT, "_ITM_WaWF",
100 1.1 mrg BT_FN_VOID_VPTR_FLOAT, ATTR_TM_NOTHROW_LIST)
101 1.1 mrg
102 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_DOUBLE, "_ITM_WD",
103 1.1 mrg BT_FN_VOID_VPTR_DOUBLE, ATTR_TM_NOTHROW_LIST)
104 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_WAR_DOUBLE, "_ITM_WaRD",
105 1.1 mrg BT_FN_VOID_VPTR_DOUBLE, ATTR_TM_NOTHROW_LIST)
106 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_WAW_DOUBLE, "_ITM_WaWD",
107 1.1 mrg BT_FN_VOID_VPTR_DOUBLE, ATTR_TM_NOTHROW_LIST)
108 1.1 mrg
109 1.1 mrg /* These stubs should get defined in the backend if applicable. */
110 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_STORE_M64, "__builtin__ITM_WM64")
111 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_STORE_WAR_M64, "__builtin__ITM_WaRM64")
112 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_STORE_WAW_M64, "__builtin__ITM_WaWM64")
113 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_STORE_M128, "__builtin__ITM_WM128")
114 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_STORE_WAR_M128, "__builtin__ITM_WaRM128")
115 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_STORE_WAW_M128, "__builtin__ITM_WaWM128")
116 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_STORE_M256, "__builtin__ITM_WM256")
117 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_STORE_WAR_M256, "__builtin__ITM_WaRM256")
118 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_STORE_WAW_M256, "__builtin__ITM_WaWM256")
119 1.1 mrg
120 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_LDOUBLE, "_ITM_WE",
121 1.1 mrg BT_FN_VOID_VPTR_LDOUBLE, ATTR_TM_NOTHROW_LIST)
122 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_WAR_LDOUBLE, "_ITM_WaRE",
123 1.1 mrg BT_FN_VOID_VPTR_LDOUBLE, ATTR_TM_NOTHROW_LIST)
124 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_STORE_WAW_LDOUBLE, "_ITM_WaWE",
125 1.1 mrg BT_FN_VOID_VPTR_LDOUBLE, ATTR_TM_NOTHROW_LIST)
126 1.1 mrg /* Note: BUILT_IN_TM_STORE_WAW_LDOUBLE must be the last TM store.
127 1.1 mrg BUILTIN_TM_STORE_P depends on this. */
128 1.1 mrg
129 1.1 mrg /* Reads.
130 1.1 mrg
131 1.1 mrg Note: The reads must follow the following order: LOAD, RAR, RAW, RFW.
132 1.1 mrg The TM optimizations depend on this order. */
133 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_1, "_ITM_RU1",
134 1.1 mrg BT_FN_I1_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
135 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RAR_1, "_ITM_RaRU1",
136 1.1 mrg BT_FN_I1_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
137 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RAW_1, "_ITM_RaWU1",
138 1.1 mrg BT_FN_I1_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
139 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RFW_1, "_ITM_RfWU1",
140 1.1 mrg BT_FN_I1_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
141 1.1 mrg
142 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_2, "_ITM_RU2",
143 1.1 mrg BT_FN_I2_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
144 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RAR_2, "_ITM_RaRU2",
145 1.1 mrg BT_FN_I2_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
146 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RAW_2, "_ITM_RaWU2",
147 1.1 mrg BT_FN_I2_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
148 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RFW_2, "_ITM_RfWU2",
149 1.1 mrg BT_FN_I2_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
150 1.1 mrg
151 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_4, "_ITM_RU4",
152 1.1 mrg BT_FN_I4_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
153 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RAR_4, "_ITM_RaRU4",
154 1.1 mrg BT_FN_I4_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
155 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RAW_4, "_ITM_RaWU4",
156 1.1 mrg BT_FN_I4_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
157 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RFW_4, "_ITM_RfWU4",
158 1.1 mrg BT_FN_I4_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
159 1.1 mrg
160 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_8, "_ITM_RU8",
161 1.1 mrg BT_FN_I8_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
162 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RAR_8, "_ITM_RaRU8",
163 1.1 mrg BT_FN_I8_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
164 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RAW_8, "_ITM_RaWU8",
165 1.1 mrg BT_FN_I8_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
166 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RFW_8, "_ITM_RfWU8",
167 1.1 mrg BT_FN_I8_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
168 1.1 mrg
169 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_FLOAT, "_ITM_RF",
170 1.1 mrg BT_FN_FLOAT_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
171 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RAR_FLOAT, "_ITM_RaRF",
172 1.1 mrg BT_FN_FLOAT_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
173 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RAW_FLOAT, "_ITM_RaWF",
174 1.1 mrg BT_FN_FLOAT_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
175 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RFW_FLOAT, "_ITM_RfWF",
176 1.1 mrg BT_FN_FLOAT_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
177 1.1 mrg
178 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_DOUBLE, "_ITM_RD",
179 1.1 mrg BT_FN_DOUBLE_CONST_DOUBLE_PTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
180 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RAR_DOUBLE, "_ITM_RaRD",
181 1.1 mrg BT_FN_DOUBLE_CONST_DOUBLE_PTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
182 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RAW_DOUBLE, "_ITM_RaWD",
183 1.1 mrg BT_FN_DOUBLE_CONST_DOUBLE_PTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
184 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RFW_DOUBLE, "_ITM_RfWD",
185 1.1 mrg BT_FN_DOUBLE_CONST_DOUBLE_PTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
186 1.1 mrg
187 1.1 mrg /* These stubs should get defined in the backend if applicable. */
188 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_LOAD_M64, "__builtin__ITM_RM64")
189 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_LOAD_RAR_M64, "__builtin__ITM_RaRM64")
190 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_LOAD_RAW_M64, "__builtin__ITM_RaRM64")
191 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_LOAD_RFW_M64, "__builtin__ITM_RfWM64")
192 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_LOAD_M128, "__builtin__ITM_RM128")
193 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_LOAD_RAR_M128, "__builtin__ITM_RaRM128")
194 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_LOAD_RAW_M128, "__builtin__ITM_RaRM128")
195 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_LOAD_RFW_M128, "__builtin__ITM_RfWM128")
196 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_LOAD_M256, "__builtin__ITM_RM256")
197 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_LOAD_RAR_M256, "__builtin__ITM_RaRM256")
198 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_LOAD_RAW_M256, "__builtin__ITM_RaRM256")
199 1.1 mrg DEF_BUILTIN_STUB (BUILT_IN_TM_LOAD_RFW_M256, "__builtin__ITM_RfWM256")
200 1.1 mrg
201 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_LDOUBLE, "_ITM_RE",
202 1.1 mrg BT_FN_LDOUBLE_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
203 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RAR_LDOUBLE, "_ITM_RaRE",
204 1.1 mrg BT_FN_LDOUBLE_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
205 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RAW_LDOUBLE, "_ITM_RaWE",
206 1.1 mrg BT_FN_LDOUBLE_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
207 1.1 mrg DEF_TM_BUILTIN (BUILT_IN_TM_LOAD_RFW_LDOUBLE, "_ITM_RfWE",
208 1.1 mrg BT_FN_LDOUBLE_VPTR, ATTR_TM_PURE_TMPURE_NOTHROW_LIST)
209 1.1 mrg
210 1.1 mrg /* Note: BUILT_IN_TM_LOAD_RFW_LDOUBLE must be the last TM load as well
211 1.1 mrg as the last builtin. BUILTIN_TM_LOAD_STORE_P and BUILTIN_TM_LOAD_P
212 1.1 mrg depend on this. */
213