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