| 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/code_generator.h" | 9 #include "vm/code_generator.h" |
| 10 #include "vm/compiler.h" | 10 #include "vm/compiler.h" |
| (...skipping 1578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1589 void StubCode::GenerateClosureCallInlineCacheStub(Assembler* assembler) { | 1589 void StubCode::GenerateClosureCallInlineCacheStub(Assembler* assembler) { |
| 1590 GenerateNArgsCheckInlineCacheStub(assembler, 1); | 1590 GenerateNArgsCheckInlineCacheStub(assembler, 1); |
| 1591 } | 1591 } |
| 1592 | 1592 |
| 1593 | 1593 |
| 1594 void StubCode::GenerateMegamorphicCallStub(Assembler* assembler) { | 1594 void StubCode::GenerateMegamorphicCallStub(Assembler* assembler) { |
| 1595 GenerateNArgsCheckInlineCacheStub(assembler, 1); | 1595 GenerateNArgsCheckInlineCacheStub(assembler, 1); |
| 1596 } | 1596 } |
| 1597 | 1597 |
| 1598 | 1598 |
| 1599 void StubCode::GenerateBreakpointEqNullStub(Assembler* assembler) { | 1599 void StubCode::GenerateBreakpointRuntimeStub(Assembler* assembler) { |
| 1600 // TODO(hausner): implement this stub. | 1600 __ Unimplemented("BreakpointRuntime stub"); |
| 1601 __ Branch(&StubCode::EqualityWithNullArgLabel()); | |
| 1602 } | |
| 1603 | |
| 1604 | |
| 1605 void StubCode::GenerateBreakpointClosureStub(Assembler* assembler) { | |
| 1606 // TODO(hausner): implement this stub. | |
| 1607 __ Branch(&StubCode::CallClosureFunctionLabel()); | |
| 1608 } | 1601 } |
| 1609 | 1602 |
| 1610 | 1603 |
| 1611 // LR: return address (Dart code). | 1604 // LR: return address (Dart code). |
| 1612 // R4: arguments descriptor array. | 1605 // R4: arguments descriptor array. |
| 1613 void StubCode::GenerateBreakpointStaticStub(Assembler* assembler) { | 1606 void StubCode::GenerateBreakpointStaticStub(Assembler* assembler) { |
| 1614 // Create a stub frame as we are pushing some objects on the stack before | 1607 // Create a stub frame as we are pushing some objects on the stack before |
| 1615 // calling into the runtime. | 1608 // calling into the runtime. |
| 1616 __ EnterStubFrame(); | 1609 __ EnterStubFrame(); |
| 1617 __ LoadImmediate(R0, reinterpret_cast<intptr_t>(Object::null())); | 1610 __ LoadImmediate(R0, reinterpret_cast<intptr_t>(Object::null())); |
| (...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1991 __ Bind(&reference_compare); | 1984 __ Bind(&reference_compare); |
| 1992 __ cmp(left, ShifterOperand(right)); | 1985 __ cmp(left, ShifterOperand(right)); |
| 1993 __ Bind(&done); | 1986 __ Bind(&done); |
| 1994 __ PopList((1 << R0) | (1 << R1) | (1 << R2)); | 1987 __ PopList((1 << R0) | (1 << R1) | (1 << R2)); |
| 1995 __ Ret(); | 1988 __ Ret(); |
| 1996 } | 1989 } |
| 1997 | 1990 |
| 1998 } // namespace dart | 1991 } // namespace dart |
| 1999 | 1992 |
| 2000 #endif // defined TARGET_ARCH_ARM | 1993 #endif // defined TARGET_ARCH_ARM |
| OLD | NEW |