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" | 5 #include "vm/globals.h" |
6 #if defined(TARGET_ARCH_ARM) | 6 #if defined(TARGET_ARCH_ARM) |
7 | 7 |
8 #include "vm/assembler.h" | 8 #include "vm/assembler.h" |
9 #include "vm/compiler.h" | 9 #include "vm/compiler.h" |
10 #include "vm/cpu.h" | 10 #include "vm/cpu.h" |
(...skipping 2135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2146 __ ldr(R1, FieldAddress(R0, Function::entry_point_offset())); | 2146 __ ldr(R1, FieldAddress(R0, Function::entry_point_offset())); |
2147 __ ldr(CODE_REG, FieldAddress(R0, Function::code_offset())); | 2147 __ ldr(CODE_REG, FieldAddress(R0, Function::code_offset())); |
2148 __ bx(R1); | 2148 __ bx(R1); |
2149 | 2149 |
2150 // Probe failed, check if it is a miss. | 2150 // Probe failed, check if it is a miss. |
2151 __ Bind(&probe_failed); | 2151 __ Bind(&probe_failed); |
2152 ASSERT(kIllegalCid == 0); | 2152 ASSERT(kIllegalCid == 0); |
2153 __ tst(R6, Operand(R6)); | 2153 __ tst(R6, Operand(R6)); |
2154 __ b(&load_target, EQ); // branch if miss. | 2154 __ b(&load_target, EQ); // branch if miss. |
2155 | 2155 |
2156 // Try next extry in the table. | 2156 // Try next entry in the table. |
2157 __ AddImmediate(R3, Smi::RawValue(1)); | 2157 __ AddImmediate(R3, Smi::RawValue(1)); |
2158 __ b(&loop); | 2158 __ b(&loop); |
2159 } | 2159 } |
2160 | 2160 |
2161 | 2161 |
2162 // Called from switchable IC calls. | 2162 // Called from switchable IC calls. |
2163 // R0: receiver | 2163 // R0: receiver |
2164 // R9: ICData (preserved) | 2164 // R9: ICData (preserved) |
2165 // Passed to target: | 2165 // Passed to target: |
2166 // CODE_REG: target Code object | 2166 // CODE_REG: target Code object |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2327 } | 2327 } |
2328 | 2328 |
2329 | 2329 |
2330 void StubCode::GenerateAsynchronousGapMarkerStub(Assembler* assembler) { | 2330 void StubCode::GenerateAsynchronousGapMarkerStub(Assembler* assembler) { |
2331 __ bkpt(0); | 2331 __ bkpt(0); |
2332 } | 2332 } |
2333 | 2333 |
2334 } // namespace dart | 2334 } // namespace dart |
2335 | 2335 |
2336 #endif // defined TARGET_ARCH_ARM | 2336 #endif // defined TARGET_ARCH_ARM |
OLD | NEW |