Index: src/x64/assembler-x64-inl.h |
diff --git a/src/x64/assembler-x64-inl.h b/src/x64/assembler-x64-inl.h |
index 9541a58bfb58ed83d396e4efa889089378403def..8db54f07527eab86f204986a688fe6f1d28b7089 100644 |
--- a/src/x64/assembler-x64-inl.h |
+++ b/src/x64/assembler-x64-inl.h |
@@ -61,9 +61,15 @@ void Assembler::emitw(uint16_t x) { |
} |
-void Assembler::emit_code_target(Handle<Code> target, RelocInfo::Mode rmode) { |
+void Assembler::emit_code_target(Handle<Code> target, |
+ RelocInfo::Mode rmode, |
+ unsigned ast_id) { |
ASSERT(RelocInfo::IsCodeTarget(rmode)); |
- RecordRelocInfo(rmode); |
+ if (rmode == RelocInfo::CODE_TARGET && ast_id != kNoASTId) { |
+ RecordRelocInfo(RelocInfo::CODE_TARGET_WITH_ID, ast_id); |
+ } else { |
+ RecordRelocInfo(rmode); |
+ } |
int current = code_targets_.length(); |
if (current > 0 && code_targets_.last().is_identical_to(target)) { |
// Optimization if we keep jumping to the same code target. |