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 "v8.h" | 5 #include "v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_ARM64 | 7 #if V8_TARGET_ARCH_ARM64 |
8 | 8 |
9 #include "bootstrapper.h" | 9 #include "bootstrapper.h" |
10 #include "codegen.h" | 10 #include "codegen.h" |
(...skipping 1307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1318 | 1318 |
1319 | 1319 |
1320 void MacroAssembler::NumberOfOwnDescriptors(Register dst, Register map) { | 1320 void MacroAssembler::NumberOfOwnDescriptors(Register dst, Register map) { |
1321 Ldr(dst, FieldMemOperand(map, Map::kBitField3Offset)); | 1321 Ldr(dst, FieldMemOperand(map, Map::kBitField3Offset)); |
1322 DecodeField<Map::NumberOfOwnDescriptorsBits>(dst); | 1322 DecodeField<Map::NumberOfOwnDescriptorsBits>(dst); |
1323 } | 1323 } |
1324 | 1324 |
1325 | 1325 |
1326 void MacroAssembler::EnumLengthUntagged(Register dst, Register map) { | 1326 void MacroAssembler::EnumLengthUntagged(Register dst, Register map) { |
1327 STATIC_ASSERT(Map::EnumLengthBits::kShift == 0); | 1327 STATIC_ASSERT(Map::EnumLengthBits::kShift == 0); |
1328 Ldrsw(dst, FieldMemOperand(map, Map::kBitField3Offset)); | 1328 Ldrsw(dst, UntagSmiFieldMemOperand(map, Map::kBitField3Offset)); |
1329 And(dst, dst, Map::EnumLengthBits::kMask); | 1329 And(dst, dst, Map::EnumLengthBits::kMask); |
1330 } | 1330 } |
1331 | 1331 |
1332 | 1332 |
1333 void MacroAssembler::EnumLengthSmi(Register dst, Register map) { | 1333 void MacroAssembler::EnumLengthSmi(Register dst, Register map) { |
1334 EnumLengthUntagged(dst, map); | 1334 STATIC_ASSERT(Map::EnumLengthBits::kShift == 0); |
1335 SmiTag(dst, dst); | 1335 Ldr(dst, FieldMemOperand(map, Map::kBitField3Offset)); |
| 1336 And(dst, dst, Smi::FromInt(Map::EnumLengthBits::kMask)); |
1336 } | 1337 } |
1337 | 1338 |
1338 | 1339 |
1339 void MacroAssembler::CheckEnumCache(Register object, | 1340 void MacroAssembler::CheckEnumCache(Register object, |
1340 Register null_value, | 1341 Register null_value, |
1341 Register scratch0, | 1342 Register scratch0, |
1342 Register scratch1, | 1343 Register scratch1, |
1343 Register scratch2, | 1344 Register scratch2, |
1344 Register scratch3, | 1345 Register scratch3, |
1345 Label* call_runtime) { | 1346 Label* call_runtime) { |
(...skipping 3161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4507 | 4508 |
4508 // Fall through if it does not have the right color. | 4509 // Fall through if it does not have the right color. |
4509 } | 4510 } |
4510 | 4511 |
4511 | 4512 |
4512 void MacroAssembler::CheckMapDeprecated(Handle<Map> map, | 4513 void MacroAssembler::CheckMapDeprecated(Handle<Map> map, |
4513 Register scratch, | 4514 Register scratch, |
4514 Label* if_deprecated) { | 4515 Label* if_deprecated) { |
4515 if (map->CanBeDeprecated()) { | 4516 if (map->CanBeDeprecated()) { |
4516 Mov(scratch, Operand(map)); | 4517 Mov(scratch, Operand(map)); |
4517 Ldrsw(scratch, FieldMemOperand(scratch, Map::kBitField3Offset)); | 4518 Ldrsw(scratch, UntagSmiFieldMemOperand(scratch, Map::kBitField3Offset)); |
4518 TestAndBranchIfAnySet(scratch, Map::Deprecated::kMask, if_deprecated); | 4519 TestAndBranchIfAnySet(scratch, Map::Deprecated::kMask, if_deprecated); |
4519 } | 4520 } |
4520 } | 4521 } |
4521 | 4522 |
4522 | 4523 |
4523 void MacroAssembler::JumpIfBlack(Register object, | 4524 void MacroAssembler::JumpIfBlack(Register object, |
4524 Register scratch0, | 4525 Register scratch0, |
4525 Register scratch1, | 4526 Register scratch1, |
4526 Label* on_black) { | 4527 Label* on_black) { |
4527 ASSERT(strcmp(Marking::kBlackBitPattern, "10") == 0); | 4528 ASSERT(strcmp(Marking::kBlackBitPattern, "10") == 0); |
(...skipping 702 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5230 } | 5231 } |
5231 } | 5232 } |
5232 | 5233 |
5233 | 5234 |
5234 #undef __ | 5235 #undef __ |
5235 | 5236 |
5236 | 5237 |
5237 } } // namespace v8::internal | 5238 } } // namespace v8::internal |
5238 | 5239 |
5239 #endif // V8_TARGET_ARCH_ARM64 | 5240 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |