OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM64. | 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM64. |
6 #if defined(TARGET_ARCH_ARM64) | 6 #if defined(TARGET_ARCH_ARM64) |
7 | 7 |
8 #include "vm/intrinsifier.h" | 8 #include "vm/intrinsifier.h" |
9 | 9 |
10 #include "vm/assembler.h" | 10 #include "vm/assembler.h" |
11 #include "vm/flow_graph_compiler.h" | 11 #include "vm/flow_graph_compiler.h" |
12 #include "vm/object.h" | 12 #include "vm/object.h" |
13 #include "vm/object_store.h" | 13 #include "vm/object_store.h" |
14 #include "vm/symbols.h" | 14 #include "vm/symbols.h" |
15 | 15 |
16 namespace dart { | 16 namespace dart { |
17 | 17 |
18 #define __ assembler-> | 18 #define __ assembler-> |
19 | 19 |
20 void Intrinsifier::List_Allocate(Assembler* assembler) { | 20 void Intrinsifier::List_Allocate(Assembler* assembler) { |
21 UNIMPLEMENTED(); | 21 return; |
22 } | 22 } |
23 | 23 |
24 | 24 |
25 void Intrinsifier::Array_getLength(Assembler* assembler) { | 25 void Intrinsifier::Array_getLength(Assembler* assembler) { |
26 UNIMPLEMENTED(); | 26 return; |
27 } | 27 } |
28 | 28 |
29 | 29 |
30 void Intrinsifier::ImmutableList_getLength(Assembler* assembler) { | 30 void Intrinsifier::ImmutableList_getLength(Assembler* assembler) { |
31 UNIMPLEMENTED(); | 31 return; |
32 } | 32 } |
33 | 33 |
34 | 34 |
35 void Intrinsifier::Array_getIndexed(Assembler* assembler) { | 35 void Intrinsifier::Array_getIndexed(Assembler* assembler) { |
36 UNIMPLEMENTED(); | 36 return; |
37 } | 37 } |
38 | 38 |
39 | 39 |
40 void Intrinsifier::ImmutableList_getIndexed(Assembler* assembler) { | 40 void Intrinsifier::ImmutableList_getIndexed(Assembler* assembler) { |
41 UNIMPLEMENTED(); | 41 return; |
42 } | 42 } |
43 | 43 |
44 | 44 |
45 void Intrinsifier::Array_setIndexed(Assembler* assembler) { | 45 void Intrinsifier::Array_setIndexed(Assembler* assembler) { |
46 UNIMPLEMENTED(); | 46 return; |
47 } | 47 } |
48 | 48 |
49 | 49 |
50 // Allocate a GrowableObjectArray using the backing array specified. | 50 // Allocate a GrowableObjectArray using the backing array specified. |
51 // On stack: type argument (+1), data (+0). | 51 // On stack: type argument (+1), data (+0). |
52 void Intrinsifier::GrowableList_Allocate(Assembler* assembler) { | 52 void Intrinsifier::GrowableList_Allocate(Assembler* assembler) { |
53 UNIMPLEMENTED(); | 53 return; |
54 } | 54 } |
55 | 55 |
56 | 56 |
57 void Intrinsifier::GrowableList_getLength(Assembler* assembler) { | 57 void Intrinsifier::GrowableList_getLength(Assembler* assembler) { |
58 UNIMPLEMENTED(); | 58 return; |
59 } | 59 } |
60 | 60 |
61 | 61 |
62 void Intrinsifier::GrowableList_getCapacity(Assembler* assembler) { | 62 void Intrinsifier::GrowableList_getCapacity(Assembler* assembler) { |
63 UNIMPLEMENTED(); | 63 return; |
64 } | 64 } |
65 | 65 |
66 | 66 |
67 void Intrinsifier::GrowableList_getIndexed(Assembler* assembler) { | 67 void Intrinsifier::GrowableList_getIndexed(Assembler* assembler) { |
68 UNIMPLEMENTED(); | 68 return; |
69 } | 69 } |
70 | 70 |
71 | 71 |
72 // Set value into growable object array at specified index. | 72 // Set value into growable object array at specified index. |
73 // On stack: growable array (+2), index (+1), value (+0). | 73 // On stack: growable array (+2), index (+1), value (+0). |
74 void Intrinsifier::GrowableList_setIndexed(Assembler* assembler) { | 74 void Intrinsifier::GrowableList_setIndexed(Assembler* assembler) { |
75 UNIMPLEMENTED(); | 75 return; |
76 } | 76 } |
77 | 77 |
78 | 78 |
79 // Set length of growable object array. The length cannot | 79 // Set length of growable object array. The length cannot |
80 // be greater than the length of the data container. | 80 // be greater than the length of the data container. |
81 // On stack: growable array (+1), length (+0). | 81 // On stack: growable array (+1), length (+0). |
82 void Intrinsifier::GrowableList_setLength(Assembler* assembler) { | 82 void Intrinsifier::GrowableList_setLength(Assembler* assembler) { |
83 UNIMPLEMENTED(); | 83 return; |
84 } | 84 } |
85 | 85 |
86 | 86 |
87 // Set data of growable object array. | 87 // Set data of growable object array. |
88 // On stack: growable array (+1), data (+0). | 88 // On stack: growable array (+1), data (+0). |
89 void Intrinsifier::GrowableList_setData(Assembler* assembler) { | 89 void Intrinsifier::GrowableList_setData(Assembler* assembler) { |
90 UNIMPLEMENTED(); | 90 return; |
91 } | 91 } |
92 | 92 |
93 | 93 |
94 void Intrinsifier::GrowableList_add(Assembler* assembler) { | 94 void Intrinsifier::GrowableList_add(Assembler* assembler) { |
95 UNIMPLEMENTED(); | 95 return; |
96 } | 96 } |
97 | 97 |
98 | 98 |
99 // Gets the length of a TypedData. | 99 // Gets the length of a TypedData. |
100 void Intrinsifier::TypedData_getLength(Assembler* assembler) { | 100 void Intrinsifier::TypedData_getLength(Assembler* assembler) { |
101 UNIMPLEMENTED(); | 101 return; |
102 } | 102 } |
103 | 103 |
104 | 104 |
105 #define TYPED_DATA_ALLOCATOR(clazz) \ | 105 #define TYPED_DATA_ALLOCATOR(clazz) \ |
106 void Intrinsifier::TypedData_##clazz##_new(Assembler* assembler) { \ | 106 void Intrinsifier::TypedData_##clazz##_new(Assembler* assembler) { \ |
107 UNIMPLEMENTED(); \ | 107 return; \ |
108 } \ | 108 } \ |
109 void Intrinsifier::TypedData_##clazz##_factory(Assembler* assembler) { \ | 109 void Intrinsifier::TypedData_##clazz##_factory(Assembler* assembler) { \ |
110 UNIMPLEMENTED(); \ | 110 return; \ |
111 } | 111 } |
112 CLASS_LIST_TYPED_DATA(TYPED_DATA_ALLOCATOR) | 112 CLASS_LIST_TYPED_DATA(TYPED_DATA_ALLOCATOR) |
113 #undef TYPED_DATA_ALLOCATOR | 113 #undef TYPED_DATA_ALLOCATOR |
114 | 114 |
115 | 115 |
116 void Intrinsifier::Integer_addFromInteger(Assembler* assembler) { | 116 void Intrinsifier::Integer_addFromInteger(Assembler* assembler) { |
117 UNIMPLEMENTED(); | 117 return; |
118 } | 118 } |
119 | 119 |
120 | 120 |
121 void Intrinsifier::Integer_add(Assembler* assembler) { | 121 void Intrinsifier::Integer_add(Assembler* assembler) { |
122 UNIMPLEMENTED(); | 122 return; |
123 } | 123 } |
124 | 124 |
125 | 125 |
126 void Intrinsifier::Integer_subFromInteger(Assembler* assembler) { | 126 void Intrinsifier::Integer_subFromInteger(Assembler* assembler) { |
127 UNIMPLEMENTED(); | 127 return; |
128 } | 128 } |
129 | 129 |
130 | 130 |
131 void Intrinsifier::Integer_sub(Assembler* assembler) { | 131 void Intrinsifier::Integer_sub(Assembler* assembler) { |
132 UNIMPLEMENTED(); | 132 return; |
133 } | 133 } |
134 | 134 |
135 | 135 |
136 void Intrinsifier::Integer_mulFromInteger(Assembler* assembler) { | 136 void Intrinsifier::Integer_mulFromInteger(Assembler* assembler) { |
137 UNIMPLEMENTED(); | 137 return; |
138 } | 138 } |
139 | 139 |
140 | 140 |
141 void Intrinsifier::Integer_mul(Assembler* assembler) { | 141 void Intrinsifier::Integer_mul(Assembler* assembler) { |
142 UNIMPLEMENTED(); | 142 return; |
143 } | 143 } |
144 | 144 |
145 | 145 |
146 // Implementation: | 146 // Implementation: |
147 // res = left % right; | 147 // res = left % right; |
148 // if (res < 0) { | 148 // if (res < 0) { |
149 // if (right < 0) { | 149 // if (right < 0) { |
150 // res = res - right; | 150 // res = res - right; |
151 // } else { | 151 // } else { |
152 // res = res + right; | 152 // res = res + right; |
153 // } | 153 // } |
154 // } | 154 // } |
155 void Intrinsifier::Integer_moduloFromInteger(Assembler* assembler) { | 155 void Intrinsifier::Integer_moduloFromInteger(Assembler* assembler) { |
156 UNIMPLEMENTED(); | 156 return; |
157 } | 157 } |
158 | 158 |
159 | 159 |
160 void Intrinsifier::Integer_truncDivide(Assembler* assembler) { | 160 void Intrinsifier::Integer_truncDivide(Assembler* assembler) { |
161 UNIMPLEMENTED(); | 161 return; |
162 } | 162 } |
163 | 163 |
164 | 164 |
165 void Intrinsifier::Integer_negate(Assembler* assembler) { | 165 void Intrinsifier::Integer_negate(Assembler* assembler) { |
166 UNIMPLEMENTED(); | 166 return; |
167 } | 167 } |
168 | 168 |
169 | 169 |
170 void Intrinsifier::Integer_bitAndFromInteger(Assembler* assembler) { | 170 void Intrinsifier::Integer_bitAndFromInteger(Assembler* assembler) { |
171 UNIMPLEMENTED(); | 171 return; |
172 } | 172 } |
173 | 173 |
174 | 174 |
175 void Intrinsifier::Integer_bitAnd(Assembler* assembler) { | 175 void Intrinsifier::Integer_bitAnd(Assembler* assembler) { |
176 UNIMPLEMENTED(); | 176 return; |
177 } | 177 } |
178 | 178 |
179 | 179 |
180 void Intrinsifier::Integer_bitOrFromInteger(Assembler* assembler) { | 180 void Intrinsifier::Integer_bitOrFromInteger(Assembler* assembler) { |
181 UNIMPLEMENTED(); | 181 return; |
182 } | 182 } |
183 | 183 |
184 | 184 |
185 void Intrinsifier::Integer_bitOr(Assembler* assembler) { | 185 void Intrinsifier::Integer_bitOr(Assembler* assembler) { |
186 UNIMPLEMENTED(); | 186 return; |
187 } | 187 } |
188 | 188 |
189 | 189 |
190 void Intrinsifier::Integer_bitXorFromInteger(Assembler* assembler) { | 190 void Intrinsifier::Integer_bitXorFromInteger(Assembler* assembler) { |
191 UNIMPLEMENTED(); | 191 return; |
192 } | 192 } |
193 | 193 |
194 | 194 |
195 void Intrinsifier::Integer_bitXor(Assembler* assembler) { | 195 void Intrinsifier::Integer_bitXor(Assembler* assembler) { |
196 UNIMPLEMENTED(); | 196 return; |
197 } | 197 } |
198 | 198 |
199 | 199 |
200 void Intrinsifier::Integer_shl(Assembler* assembler) { | 200 void Intrinsifier::Integer_shl(Assembler* assembler) { |
201 UNIMPLEMENTED(); | 201 return; |
202 } | 202 } |
203 | 203 |
204 | 204 |
205 void Intrinsifier::Integer_greaterThanFromInt(Assembler* assembler) { | 205 void Intrinsifier::Integer_greaterThanFromInt(Assembler* assembler) { |
206 UNIMPLEMENTED(); | 206 return; |
207 } | 207 } |
208 | 208 |
209 | 209 |
210 void Intrinsifier::Integer_lessThan(Assembler* assembler) { | 210 void Intrinsifier::Integer_lessThan(Assembler* assembler) { |
211 UNIMPLEMENTED(); | 211 return; |
212 } | 212 } |
213 | 213 |
214 | 214 |
215 void Intrinsifier::Integer_greaterThan(Assembler* assembler) { | 215 void Intrinsifier::Integer_greaterThan(Assembler* assembler) { |
216 UNIMPLEMENTED(); | 216 return; |
217 } | 217 } |
218 | 218 |
219 | 219 |
220 void Intrinsifier::Integer_lessEqualThan(Assembler* assembler) { | 220 void Intrinsifier::Integer_lessEqualThan(Assembler* assembler) { |
221 UNIMPLEMENTED(); | 221 return; |
222 } | 222 } |
223 | 223 |
224 | 224 |
225 void Intrinsifier::Integer_greaterEqualThan(Assembler* assembler) { | 225 void Intrinsifier::Integer_greaterEqualThan(Assembler* assembler) { |
226 UNIMPLEMENTED(); | 226 return; |
227 } | 227 } |
228 | 228 |
229 | 229 |
230 // This is called for Smi, Mint and Bigint receivers. The right argument | 230 // This is called for Smi, Mint and Bigint receivers. The right argument |
231 // can be Smi, Mint, Bigint or double. | 231 // can be Smi, Mint, Bigint or double. |
232 void Intrinsifier::Integer_equalToInteger(Assembler* assembler) { | 232 void Intrinsifier::Integer_equalToInteger(Assembler* assembler) { |
233 UNIMPLEMENTED(); | 233 return; |
234 } | 234 } |
235 | 235 |
236 | 236 |
237 void Intrinsifier::Integer_equal(Assembler* assembler) { | 237 void Intrinsifier::Integer_equal(Assembler* assembler) { |
238 UNIMPLEMENTED(); | 238 return; |
239 } | 239 } |
240 | 240 |
241 | 241 |
242 void Intrinsifier::Integer_sar(Assembler* assembler) { | 242 void Intrinsifier::Integer_sar(Assembler* assembler) { |
243 UNIMPLEMENTED(); | 243 return; |
244 } | 244 } |
245 | 245 |
246 | 246 |
247 void Intrinsifier::Smi_bitNegate(Assembler* assembler) { | 247 void Intrinsifier::Smi_bitNegate(Assembler* assembler) { |
248 UNIMPLEMENTED(); | 248 return; |
249 } | 249 } |
250 | 250 |
251 | 251 |
252 void Intrinsifier::Smi_bitLength(Assembler* assembler) { | 252 void Intrinsifier::Smi_bitLength(Assembler* assembler) { |
253 UNIMPLEMENTED(); | 253 return; |
254 } | 254 } |
255 | 255 |
256 | 256 |
257 void Intrinsifier::Double_greaterThan(Assembler* assembler) { | 257 void Intrinsifier::Double_greaterThan(Assembler* assembler) { |
258 UNIMPLEMENTED(); | 258 return; |
259 } | 259 } |
260 | 260 |
261 | 261 |
262 void Intrinsifier::Double_greaterEqualThan(Assembler* assembler) { | 262 void Intrinsifier::Double_greaterEqualThan(Assembler* assembler) { |
263 UNIMPLEMENTED(); | 263 return; |
264 } | 264 } |
265 | 265 |
266 | 266 |
267 void Intrinsifier::Double_lessThan(Assembler* assembler) { | 267 void Intrinsifier::Double_lessThan(Assembler* assembler) { |
268 UNIMPLEMENTED(); | 268 return; |
269 } | 269 } |
270 | 270 |
271 | 271 |
272 void Intrinsifier::Double_equal(Assembler* assembler) { | 272 void Intrinsifier::Double_equal(Assembler* assembler) { |
273 UNIMPLEMENTED(); | 273 return; |
274 } | 274 } |
275 | 275 |
276 | 276 |
277 void Intrinsifier::Double_lessEqualThan(Assembler* assembler) { | 277 void Intrinsifier::Double_lessEqualThan(Assembler* assembler) { |
278 UNIMPLEMENTED(); | 278 return; |
279 } | 279 } |
280 | 280 |
281 | 281 |
282 void Intrinsifier::Double_add(Assembler* assembler) { | 282 void Intrinsifier::Double_add(Assembler* assembler) { |
283 UNIMPLEMENTED(); | 283 return; |
284 } | 284 } |
285 | 285 |
286 | 286 |
287 void Intrinsifier::Double_mul(Assembler* assembler) { | 287 void Intrinsifier::Double_mul(Assembler* assembler) { |
288 UNIMPLEMENTED(); | 288 return; |
289 } | 289 } |
290 | 290 |
291 | 291 |
292 void Intrinsifier::Double_sub(Assembler* assembler) { | 292 void Intrinsifier::Double_sub(Assembler* assembler) { |
293 UNIMPLEMENTED(); | 293 return; |
294 } | 294 } |
295 | 295 |
296 | 296 |
297 void Intrinsifier::Double_div(Assembler* assembler) { | 297 void Intrinsifier::Double_div(Assembler* assembler) { |
298 UNIMPLEMENTED(); | 298 return; |
299 } | 299 } |
300 | 300 |
301 | 301 |
302 // Left is double right is integer (Bigint, Mint or Smi) | 302 // Left is double right is integer (Bigint, Mint or Smi) |
303 void Intrinsifier::Double_mulFromInteger(Assembler* assembler) { | 303 void Intrinsifier::Double_mulFromInteger(Assembler* assembler) { |
304 UNIMPLEMENTED(); | 304 return; |
305 } | 305 } |
306 | 306 |
307 | 307 |
308 void Intrinsifier::Double_fromInteger(Assembler* assembler) { | 308 void Intrinsifier::Double_fromInteger(Assembler* assembler) { |
309 UNIMPLEMENTED(); | 309 return; |
310 } | 310 } |
311 | 311 |
312 | 312 |
313 void Intrinsifier::Double_getIsNaN(Assembler* assembler) { | 313 void Intrinsifier::Double_getIsNaN(Assembler* assembler) { |
314 UNIMPLEMENTED(); | 314 return; |
315 } | 315 } |
316 | 316 |
317 | 317 |
318 void Intrinsifier::Double_getIsNegative(Assembler* assembler) { | 318 void Intrinsifier::Double_getIsNegative(Assembler* assembler) { |
319 UNIMPLEMENTED(); | 319 return; |
320 } | 320 } |
321 | 321 |
322 | 322 |
323 void Intrinsifier::Double_toInt(Assembler* assembler) { | 323 void Intrinsifier::Double_toInt(Assembler* assembler) { |
324 UNIMPLEMENTED(); | 324 return; |
325 } | 325 } |
326 | 326 |
327 | 327 |
328 void Intrinsifier::Math_sqrt(Assembler* assembler) { | 328 void Intrinsifier::Math_sqrt(Assembler* assembler) { |
329 UNIMPLEMENTED(); | 329 return; |
330 } | 330 } |
331 | 331 |
332 | 332 |
333 // var state = ((_A * (_state[kSTATE_LO])) + _state[kSTATE_HI]) & _MASK_64; | 333 // var state = ((_A * (_state[kSTATE_LO])) + _state[kSTATE_HI]) & _MASK_64; |
334 // _state[kSTATE_LO] = state & _MASK_32; | 334 // _state[kSTATE_LO] = state & _MASK_32; |
335 // _state[kSTATE_HI] = state >> 32; | 335 // _state[kSTATE_HI] = state >> 32; |
336 void Intrinsifier::Random_nextState(Assembler* assembler) { | 336 void Intrinsifier::Random_nextState(Assembler* assembler) { |
337 UNIMPLEMENTED(); | 337 return; |
338 } | 338 } |
339 | 339 |
340 | 340 |
341 void Intrinsifier::Object_equal(Assembler* assembler) { | 341 void Intrinsifier::Object_equal(Assembler* assembler) { |
342 UNIMPLEMENTED(); | 342 return; |
343 } | 343 } |
344 | 344 |
345 | 345 |
346 void Intrinsifier::String_getHashCode(Assembler* assembler) { | 346 void Intrinsifier::String_getHashCode(Assembler* assembler) { |
347 UNIMPLEMENTED(); | 347 return; |
348 } | 348 } |
349 | 349 |
350 | 350 |
351 void Intrinsifier::String_getLength(Assembler* assembler) { | 351 void Intrinsifier::String_getLength(Assembler* assembler) { |
352 UNIMPLEMENTED(); | 352 return; |
353 } | 353 } |
354 | 354 |
355 | 355 |
356 void Intrinsifier::String_codeUnitAt(Assembler* assembler) { | 356 void Intrinsifier::String_codeUnitAt(Assembler* assembler) { |
357 UNIMPLEMENTED(); | 357 return; |
358 } | 358 } |
359 | 359 |
360 | 360 |
361 void Intrinsifier::String_getIsEmpty(Assembler* assembler) { | 361 void Intrinsifier::String_getIsEmpty(Assembler* assembler) { |
362 UNIMPLEMENTED(); | 362 return; |
363 } | 363 } |
364 | 364 |
365 | 365 |
366 void Intrinsifier::OneByteString_getHashCode(Assembler* assembler) { | 366 void Intrinsifier::OneByteString_getHashCode(Assembler* assembler) { |
367 UNIMPLEMENTED(); | 367 return; |
368 } | 368 } |
369 | 369 |
370 | 370 |
371 // Arg0: OneByteString (receiver). | 371 // Arg0: OneByteString (receiver). |
372 // Arg1: Start index as Smi. | 372 // Arg1: Start index as Smi. |
373 // Arg2: End index as Smi. | 373 // Arg2: End index as Smi. |
374 // The indexes must be valid. | 374 // The indexes must be valid. |
375 void Intrinsifier::OneByteString_substringUnchecked(Assembler* assembler) { | 375 void Intrinsifier::OneByteString_substringUnchecked(Assembler* assembler) { |
376 UNIMPLEMENTED(); | 376 return; |
377 } | 377 } |
378 | 378 |
379 | 379 |
380 void Intrinsifier::OneByteString_setAt(Assembler* assembler) { | 380 void Intrinsifier::OneByteString_setAt(Assembler* assembler) { |
381 UNIMPLEMENTED(); | 381 return; |
382 } | 382 } |
383 | 383 |
384 | 384 |
385 void Intrinsifier::OneByteString_allocate(Assembler* assembler) { | 385 void Intrinsifier::OneByteString_allocate(Assembler* assembler) { |
386 UNIMPLEMENTED(); | 386 return; |
387 } | 387 } |
388 | 388 |
389 | 389 |
390 // TODO(srdjan): Add combinations (one-byte/two-byte/external strings). | 390 // TODO(srdjan): Add combinations (one-byte/two-byte/external strings). |
391 void StringEquality(Assembler* assembler, intptr_t string_cid) { | 391 void StringEquality(Assembler* assembler, intptr_t string_cid) { |
392 UNIMPLEMENTED(); | 392 return; |
393 } | 393 } |
394 | 394 |
395 | 395 |
396 void Intrinsifier::OneByteString_equality(Assembler* assembler) { | 396 void Intrinsifier::OneByteString_equality(Assembler* assembler) { |
397 UNIMPLEMENTED(); | 397 return; |
398 } | 398 } |
399 | 399 |
400 | 400 |
401 void Intrinsifier::TwoByteString_equality(Assembler* assembler) { | 401 void Intrinsifier::TwoByteString_equality(Assembler* assembler) { |
402 UNIMPLEMENTED(); | 402 return; |
403 } | 403 } |
404 | 404 |
405 | 405 |
406 void Intrinsifier::UserTag_makeCurrent(Assembler* assembler) { | 406 void Intrinsifier::UserTag_makeCurrent(Assembler* assembler) { |
407 UNIMPLEMENTED(); | 407 return; |
408 } | 408 } |
409 | 409 |
410 | 410 |
411 void Intrinsifier::Profiler_getCurrentTag(Assembler* assembler) { | 411 void Intrinsifier::Profiler_getCurrentTag(Assembler* assembler) { |
412 UNIMPLEMENTED(); | 412 return; |
413 } | 413 } |
414 | 414 |
415 | 415 |
416 void Intrinsifier::Profiler_clearCurrentTag(Assembler* assembler) { | 416 void Intrinsifier::Profiler_clearCurrentTag(Assembler* assembler) { |
417 UNIMPLEMENTED(); | 417 return; |
418 } | 418 } |
419 | 419 |
420 } // namespace dart | 420 } // namespace dart |
421 | 421 |
422 #endif // defined TARGET_ARCH_ARM64 | 422 #endif // defined TARGET_ARCH_ARM64 |
OLD | NEW |