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