OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_ARM64 | 7 #if V8_TARGET_ARCH_ARM64 |
8 | 8 |
9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
10 #include "src/base/division-by-constant.h" | 10 #include "src/base/division-by-constant.h" |
(...skipping 3657 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3668 | 3668 |
3669 | 3669 |
3670 void MacroAssembler::CmpWeakValue(Register value, Handle<WeakCell> cell, | 3670 void MacroAssembler::CmpWeakValue(Register value, Handle<WeakCell> cell, |
3671 Register scratch) { | 3671 Register scratch) { |
3672 Mov(scratch, Operand(cell)); | 3672 Mov(scratch, Operand(cell)); |
3673 Ldr(scratch, FieldMemOperand(scratch, WeakCell::kValueOffset)); | 3673 Ldr(scratch, FieldMemOperand(scratch, WeakCell::kValueOffset)); |
3674 Cmp(value, scratch); | 3674 Cmp(value, scratch); |
3675 } | 3675 } |
3676 | 3676 |
3677 | 3677 |
| 3678 void MacroAssembler::GetWeakValue(Register value, Handle<WeakCell> cell) { |
| 3679 Mov(value, Operand(cell)); |
| 3680 Ldr(value, FieldMemOperand(value, WeakCell::kValueOffset)); |
| 3681 } |
| 3682 |
| 3683 |
3678 void MacroAssembler::LoadWeakValue(Register value, Handle<WeakCell> cell, | 3684 void MacroAssembler::LoadWeakValue(Register value, Handle<WeakCell> cell, |
3679 Label* miss) { | 3685 Label* miss) { |
3680 Mov(value, Operand(cell)); | 3686 GetWeakValue(value, cell); |
3681 Ldr(value, FieldMemOperand(value, WeakCell::kValueOffset)); | |
3682 JumpIfSmi(value, miss); | 3687 JumpIfSmi(value, miss); |
3683 } | 3688 } |
3684 | 3689 |
3685 | 3690 |
3686 void MacroAssembler::TestMapBitfield(Register object, uint64_t mask) { | 3691 void MacroAssembler::TestMapBitfield(Register object, uint64_t mask) { |
3687 UseScratchRegisterScope temps(this); | 3692 UseScratchRegisterScope temps(this); |
3688 Register temp = temps.AcquireX(); | 3693 Register temp = temps.AcquireX(); |
3689 Ldr(temp, FieldMemOperand(object, HeapObject::kMapOffset)); | 3694 Ldr(temp, FieldMemOperand(object, HeapObject::kMapOffset)); |
3690 Ldrb(temp, FieldMemOperand(temp, Map::kBitFieldOffset)); | 3695 Ldrb(temp, FieldMemOperand(temp, Map::kBitFieldOffset)); |
3691 Tst(temp, mask); | 3696 Tst(temp, mask); |
(...skipping 1564 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5256 } | 5261 } |
5257 } | 5262 } |
5258 | 5263 |
5259 | 5264 |
5260 #undef __ | 5265 #undef __ |
5261 | 5266 |
5262 | 5267 |
5263 } } // namespace v8::internal | 5268 } } // namespace v8::internal |
5264 | 5269 |
5265 #endif // V8_TARGET_ARCH_ARM64 | 5270 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |