OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 4392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4403 if (mask < (1 << kBitsPerByte)) { | 4403 if (mask < (1 << kBitsPerByte)) { |
4404 testb(Operand(scratch, MemoryChunk::kFlagsOffset), | 4404 testb(Operand(scratch, MemoryChunk::kFlagsOffset), |
4405 Immediate(static_cast<uint8_t>(mask))); | 4405 Immediate(static_cast<uint8_t>(mask))); |
4406 } else { | 4406 } else { |
4407 testl(Operand(scratch, MemoryChunk::kFlagsOffset), Immediate(mask)); | 4407 testl(Operand(scratch, MemoryChunk::kFlagsOffset), Immediate(mask)); |
4408 } | 4408 } |
4409 j(cc, condition_met, condition_met_distance); | 4409 j(cc, condition_met, condition_met_distance); |
4410 } | 4410 } |
4411 | 4411 |
4412 | 4412 |
| 4413 void MacroAssembler::CheckMapDeprecated(Handle<Map> map, |
| 4414 Register scratch, |
| 4415 Label* if_deprecated) { |
| 4416 if (map->CanBeDeprecated()) { |
| 4417 Move(scratch, map); |
| 4418 movq(scratch, FieldOperand(scratch, Map::kBitField3Offset)); |
| 4419 SmiToInteger32(scratch, scratch); |
| 4420 and_(scratch, Immediate(Map::Deprecated::kMask)); |
| 4421 j(not_zero, if_deprecated); |
| 4422 } |
| 4423 } |
| 4424 |
| 4425 |
4413 void MacroAssembler::JumpIfBlack(Register object, | 4426 void MacroAssembler::JumpIfBlack(Register object, |
4414 Register bitmap_scratch, | 4427 Register bitmap_scratch, |
4415 Register mask_scratch, | 4428 Register mask_scratch, |
4416 Label* on_black, | 4429 Label* on_black, |
4417 Label::Distance on_black_distance) { | 4430 Label::Distance on_black_distance) { |
4418 ASSERT(!AreAliased(object, bitmap_scratch, mask_scratch, rcx)); | 4431 ASSERT(!AreAliased(object, bitmap_scratch, mask_scratch, rcx)); |
4419 GetMarkBits(object, bitmap_scratch, mask_scratch); | 4432 GetMarkBits(object, bitmap_scratch, mask_scratch); |
4420 | 4433 |
4421 ASSERT(strcmp(Marking::kBlackBitPattern, "10") == 0); | 4434 ASSERT(strcmp(Marking::kBlackBitPattern, "10") == 0); |
4422 // The mask_scratch register contains a 1 at the position of the first bit | 4435 // The mask_scratch register contains a 1 at the position of the first bit |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4631 j(greater, &no_info_available); | 4644 j(greater, &no_info_available); |
4632 CompareRoot(MemOperand(scratch_reg, -AllocationSiteInfo::kSize), | 4645 CompareRoot(MemOperand(scratch_reg, -AllocationSiteInfo::kSize), |
4633 Heap::kAllocationSiteInfoMapRootIndex); | 4646 Heap::kAllocationSiteInfoMapRootIndex); |
4634 bind(&no_info_available); | 4647 bind(&no_info_available); |
4635 } | 4648 } |
4636 | 4649 |
4637 | 4650 |
4638 } } // namespace v8::internal | 4651 } } // namespace v8::internal |
4639 | 4652 |
4640 #endif // V8_TARGET_ARCH_X64 | 4653 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |