Index: src/ia32/assembler-ia32-inl.h |
diff --git a/src/ia32/assembler-ia32-inl.h b/src/ia32/assembler-ia32-inl.h |
index fbe2f242d6f787c757f87ceddcb6d78bea8139c7..6a8dc9f5f00398d86171c32ec093afb97ff5fbff 100644 |
--- a/src/ia32/assembler-ia32-inl.h |
+++ b/src/ia32/assembler-ia32-inl.h |
@@ -330,6 +330,7 @@ Immediate::Immediate(Label* internal_offset) { |
Immediate::Immediate(Handle<Object> handle) { |
+ ALLOW_HANDLE_DEREF("using and embedding raw address, heap object check"); |
// Verify all Objects referred by code are NOT in new space. |
Object* obj = *handle; |
ASSERT(!HEAP->InNewSpace(obj)); |
@@ -363,6 +364,7 @@ void Assembler::emit(uint32_t x) { |
void Assembler::emit(Handle<Object> handle) { |
+ ALLOW_HANDLE_DEREF("heap object check"); |
// Verify all Objects referred by code are NOT in new space. |
Object* obj = *handle; |
ASSERT(!isolate()->heap()->InNewSpace(obj)); |
@@ -386,6 +388,14 @@ void Assembler::emit(uint32_t x, RelocInfo::Mode rmode, TypeFeedbackId id) { |
} |
+void Assembler::emit(Handle<Code> code, |
+ RelocInfo::Mode rmode, |
+ TypeFeedbackId id) { |
+ ALLOW_HANDLE_DEREF("embedding raw address"); |
+ emit(reinterpret_cast<intptr_t>(code.location()), rmode, id); |
+} |
+ |
+ |
void Assembler::emit(const Immediate& x) { |
if (x.rmode_ == RelocInfo::INTERNAL_REFERENCE) { |
Label* label = reinterpret_cast<Label*>(x.x_); |