OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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_ARM. | 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM. |
6 #if defined(TARGET_ARCH_ARM) | 6 #if defined(TARGET_ARCH_ARM) |
7 | 7 |
8 #include "vm/intrinsifier.h" | 8 #include "vm/intrinsifier.h" |
9 | 9 |
10 #include "vm/assembler.h" | 10 #include "vm/assembler.h" |
(...skipping 1857 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1868 __ Bind(&return_false); | 1868 __ Bind(&return_false); |
1869 __ Pop(R4); | 1869 __ Pop(R4); |
1870 __ LoadObject(R0, Bool::False()); | 1870 __ LoadObject(R0, Bool::False()); |
1871 __ Ret(); | 1871 __ Ret(); |
1872 | 1872 |
1873 __ Bind(&fall_through); | 1873 __ Bind(&fall_through); |
1874 __ Pop(R4); | 1874 __ Pop(R4); |
1875 } | 1875 } |
1876 | 1876 |
1877 | 1877 |
| 1878 void Intrinsifier::Object_getHash(Assembler* assembler) { |
| 1879 UNREACHABLE(); |
| 1880 } |
| 1881 |
| 1882 |
| 1883 void Intrinsifier::Object_setHash(Assembler* assembler) { |
| 1884 UNREACHABLE(); |
| 1885 } |
| 1886 |
| 1887 |
1878 void Intrinsifier::StringBaseCharAt(Assembler* assembler) { | 1888 void Intrinsifier::StringBaseCharAt(Assembler* assembler) { |
1879 Label fall_through, try_two_byte_string; | 1889 Label fall_through, try_two_byte_string; |
1880 | 1890 |
1881 __ ldr(R1, Address(SP, 0 * kWordSize)); // Index. | 1891 __ ldr(R1, Address(SP, 0 * kWordSize)); // Index. |
1882 __ ldr(R0, Address(SP, 1 * kWordSize)); // String. | 1892 __ ldr(R0, Address(SP, 1 * kWordSize)); // String. |
1883 __ tst(R1, Operand(kSmiTagMask)); | 1893 __ tst(R1, Operand(kSmiTagMask)); |
1884 __ b(&fall_through, NE); // Index is not a Smi. | 1894 __ b(&fall_through, NE); // Index is not a Smi. |
1885 // Range check. | 1895 // Range check. |
1886 __ ldr(R2, FieldAddress(R0, String::length_offset())); | 1896 __ ldr(R2, FieldAddress(R0, String::length_offset())); |
1887 __ cmp(R1, Operand(R2)); | 1897 __ cmp(R1, Operand(R2)); |
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2312 | 2322 |
2313 void Intrinsifier::SetAsyncThreadStackTrace(Assembler* assembler) { | 2323 void Intrinsifier::SetAsyncThreadStackTrace(Assembler* assembler) { |
2314 __ ldr(R0, Address(THR, Thread::async_stack_trace_offset())); | 2324 __ ldr(R0, Address(THR, Thread::async_stack_trace_offset())); |
2315 __ LoadObject(R0, Object::null_object()); | 2325 __ LoadObject(R0, Object::null_object()); |
2316 __ Ret(); | 2326 __ Ret(); |
2317 } | 2327 } |
2318 | 2328 |
2319 } // namespace dart | 2329 } // namespace dart |
2320 | 2330 |
2321 #endif // defined TARGET_ARCH_ARM | 2331 #endif // defined TARGET_ARCH_ARM |
OLD | NEW |