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