| Index: src/ia32/assembler-ia32-inl.h
|
| diff --git a/src/ia32/assembler-ia32-inl.h b/src/ia32/assembler-ia32-inl.h
|
| index 5a35b207f72db72a94bb20a2a8a8b5ef5b1f9127..05cc23a71d952cb4e4727d2237c2780c06faa0d5 100644
|
| --- a/src/ia32/assembler-ia32-inl.h
|
| +++ b/src/ia32/assembler-ia32-inl.h
|
| @@ -47,6 +47,7 @@ namespace internal {
|
|
|
|
|
| static const byte kCallOpcode = 0xE8;
|
| +static const int kNoCodeAgeSequenceLength = 5;
|
|
|
|
|
| // The modes possibly affected by apply must be in kApplyMask.
|
| @@ -190,6 +191,13 @@ void RelocInfo::set_target_cell(Cell* cell, WriteBarrierMode mode) {
|
| }
|
|
|
|
|
| +Handle<Object> RelocInfo::code_age_stub_handle(Assembler* origin) {
|
| + ASSERT(rmode_ == RelocInfo::CODE_AGE_SEQUENCE);
|
| + ASSERT(*pc_ == kCallOpcode);
|
| + return Memory::Object_Handle_at(pc_ + 1);
|
| +}
|
| +
|
| +
|
| Code* RelocInfo::code_age_stub() {
|
| ASSERT(rmode_ == RelocInfo::CODE_AGE_SEQUENCE);
|
| ASSERT(*pc_ == kCallOpcode);
|
| @@ -379,7 +387,8 @@ void Assembler::emit(Handle<Object> handle) {
|
| void Assembler::emit(uint32_t x, RelocInfo::Mode rmode, TypeFeedbackId id) {
|
| if (rmode == RelocInfo::CODE_TARGET && !id.IsNone()) {
|
| RecordRelocInfo(RelocInfo::CODE_TARGET_WITH_ID, id.ToInt());
|
| - } else if (!RelocInfo::IsNone(rmode)) {
|
| + } else if (!RelocInfo::IsNone(rmode)
|
| + && rmode != RelocInfo::CODE_AGE_SEQUENCE) {
|
| RecordRelocInfo(rmode);
|
| }
|
| emit(x);
|
|
|