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" // NOLINT | 5 #include "vm/globals.h" // NOLINT |
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/cpu.h" | 9 #include "vm/cpu.h" |
10 #include "vm/longjump.h" | 10 #include "vm/longjump.h" |
(...skipping 1601 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1612 void Assembler::LoadExternalLabel(Register rd, | 1612 void Assembler::LoadExternalLabel(Register rd, |
1613 const ExternalLabel* label, | 1613 const ExternalLabel* label, |
1614 Patchability patchable, | 1614 Patchability patchable, |
1615 Condition cond) { | 1615 Condition cond) { |
1616 const int32_t offset = ObjectPool::element_offset( | 1616 const int32_t offset = ObjectPool::element_offset( |
1617 object_pool_wrapper_.FindExternalLabel(label, patchable)); | 1617 object_pool_wrapper_.FindExternalLabel(label, patchable)); |
1618 LoadWordFromPoolOffset(rd, offset - kHeapObjectTag, cond); | 1618 LoadWordFromPoolOffset(rd, offset - kHeapObjectTag, cond); |
1619 } | 1619 } |
1620 | 1620 |
1621 | 1621 |
| 1622 void Assembler::LoadNativeEntry(Register rd, |
| 1623 const ExternalLabel* label, |
| 1624 Patchability patchable, |
| 1625 Condition cond) { |
| 1626 const int32_t offset = ObjectPool::element_offset( |
| 1627 object_pool_wrapper_.FindNativeEntry(label, patchable)); |
| 1628 LoadWordFromPoolOffset(rd, offset - kHeapObjectTag, cond); |
| 1629 } |
| 1630 |
| 1631 |
1622 void Assembler::PushObject(const Object& object) { | 1632 void Assembler::PushObject(const Object& object) { |
1623 LoadObject(IP, object); | 1633 LoadObject(IP, object); |
1624 Push(IP); | 1634 Push(IP); |
1625 } | 1635 } |
1626 | 1636 |
1627 | 1637 |
1628 void Assembler::CompareObject(Register rn, const Object& object) { | 1638 void Assembler::CompareObject(Register rn, const Object& object) { |
1629 ASSERT(rn != IP); | 1639 ASSERT(rn != IP); |
1630 if (object.IsSmi()) { | 1640 if (object.IsSmi()) { |
1631 CompareImmediate(rn, reinterpret_cast<int32_t>(object.raw())); | 1641 CompareImmediate(rn, reinterpret_cast<int32_t>(object.raw())); |
(...skipping 2021 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3653 | 3663 |
3654 | 3664 |
3655 const char* Assembler::FpuRegisterName(FpuRegister reg) { | 3665 const char* Assembler::FpuRegisterName(FpuRegister reg) { |
3656 ASSERT((0 <= reg) && (reg < kNumberOfFpuRegisters)); | 3666 ASSERT((0 <= reg) && (reg < kNumberOfFpuRegisters)); |
3657 return fpu_reg_names[reg]; | 3667 return fpu_reg_names[reg]; |
3658 } | 3668 } |
3659 | 3669 |
3660 } // namespace dart | 3670 } // namespace dart |
3661 | 3671 |
3662 #endif // defined TARGET_ARCH_ARM | 3672 #endif // defined TARGET_ARCH_ARM |
OLD | NEW |