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); |