| OLD | NEW |
| 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" | 5 #include "vm/globals.h" |
| 6 #if defined(TARGET_ARCH_ARM64) | 6 #if defined(TARGET_ARCH_ARM64) |
| 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 706 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 717 const Object& value) { | 717 const Object& value) { |
| 718 ASSERT(value.IsSmi() || value.InVMHeap() || | 718 ASSERT(value.IsSmi() || value.InVMHeap() || |
| 719 (value.IsOld() && value.IsNotTemporaryScopedHandle())); | 719 (value.IsOld() && value.IsNotTemporaryScopedHandle())); |
| 720 // No store buffer update. | 720 // No store buffer update. |
| 721 LoadObject(TMP, value, PP); | 721 LoadObject(TMP, value, PP); |
| 722 str(TMP, dest); | 722 str(TMP, dest); |
| 723 } | 723 } |
| 724 | 724 |
| 725 | 725 |
| 726 void Assembler::LoadClassId(Register result, Register object) { | 726 void Assembler::LoadClassId(Register result, Register object) { |
| 727 ASSERT(RawObject::kClassIdTagBit == 16); | 727 ASSERT(RawObject::kClassIdTagPos == 16); |
| 728 ASSERT(RawObject::kClassIdTagSize == 16); | 728 ASSERT(RawObject::kClassIdTagSize == 16); |
| 729 const intptr_t class_id_offset = Object::tags_offset() + | 729 const intptr_t class_id_offset = Object::tags_offset() + |
| 730 RawObject::kClassIdTagBit / kBitsPerByte; | 730 RawObject::kClassIdTagPos / kBitsPerByte; |
| 731 LoadFromOffset(result, object, class_id_offset - kHeapObjectTag, | 731 LoadFromOffset(result, object, class_id_offset - kHeapObjectTag, |
| 732 kUnsignedHalfword); | 732 kUnsignedHalfword); |
| 733 } | 733 } |
| 734 | 734 |
| 735 | 735 |
| 736 void Assembler::LoadClassById(Register result, Register class_id) { | 736 void Assembler::LoadClassById(Register result, Register class_id) { |
| 737 ASSERT(result != class_id); | 737 ASSERT(result != class_id); |
| 738 LoadFieldFromOffset(result, CTX, Context::isolate_offset()); | 738 LoadFieldFromOffset(result, CTX, Context::isolate_offset()); |
| 739 const intptr_t table_offset_in_isolate = | 739 const intptr_t table_offset_in_isolate = |
| 740 Isolate::class_table_offset() + ClassTable::table_offset(); | 740 Isolate::class_table_offset() + ClassTable::table_offset(); |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1004 str(TMP, Address(temp_reg, count_field_offset)); | 1004 str(TMP, Address(temp_reg, count_field_offset)); |
| 1005 ldr(TMP, Address(temp_reg, size_field_offset)); | 1005 ldr(TMP, Address(temp_reg, size_field_offset)); |
| 1006 add(TMP, TMP, Operand(size_reg)); | 1006 add(TMP, TMP, Operand(size_reg)); |
| 1007 str(TMP, Address(temp_reg, size_field_offset)); | 1007 str(TMP, Address(temp_reg, size_field_offset)); |
| 1008 } | 1008 } |
| 1009 } | 1009 } |
| 1010 | 1010 |
| 1011 } // namespace dart | 1011 } // namespace dart |
| 1012 | 1012 |
| 1013 #endif // defined TARGET_ARCH_ARM64 | 1013 #endif // defined TARGET_ARCH_ARM64 |
| OLD | NEW |