Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(494)

Side by Side Diff: runtime/vm/intrinsifier_arm64.cc

Issue 253623003: Enables all startup code for arm64. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/vm/intermediate_language_arm64.cc ('k') | runtime/vm/raw_object_snapshot.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
OLDNEW
« no previous file with comments | « runtime/vm/intermediate_language_arm64.cc ('k') | runtime/vm/raw_object_snapshot.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698