Index: src/x64/assembler-x64.cc |
=================================================================== |
--- src/x64/assembler-x64.cc (revision 13870) |
+++ src/x64/assembler-x64.cc (working copy) |
@@ -841,6 +841,16 @@ |
} |
+void Assembler::call(Address entry, RelocInfo::Mode rmode) { |
+ ASSERT(RelocInfo::IsRuntimeEntry(rmode)); |
+ positions_recorder()->WriteRecordedPositions(); |
+ EnsureSpace ensure_space(this); |
+ // 1110 1000 #32-bit disp. |
+ emit(0xE8); |
+ emit_runtime_entry(entry, rmode); |
+} |
+ |
+ |
void Assembler::call(Handle<Code> target, |
RelocInfo::Mode rmode, |
TypeFeedbackId ast_id) { |
@@ -1247,6 +1257,16 @@ |
} |
+void Assembler::j(Condition cc, Address entry, RelocInfo::Mode rmode) { |
+ ASSERT(RelocInfo::IsRuntimeEntry(rmode)); |
+ EnsureSpace ensure_space(this); |
+ ASSERT(is_uint4(cc)); |
+ emit(0x0F); |
+ emit(0x80 | cc); |
+ emit_runtime_entry(entry, rmode); |
+} |
+ |
+ |
void Assembler::j(Condition cc, |
Handle<Code> target, |
RelocInfo::Mode rmode) { |
@@ -1309,6 +1329,15 @@ |
} |
+void Assembler::jmp(Address entry, RelocInfo::Mode rmode) { |
+ ASSERT(RelocInfo::IsRuntimeEntry(rmode)); |
+ EnsureSpace ensure_space(this); |
+ ASSERT(RelocInfo::IsRuntimeEntry(rmode)); |
+ emit(0xE9); |
+ emit_runtime_entry(entry, rmode); |
+} |
+ |
+ |
void Assembler::jmp(Register target) { |
EnsureSpace ensure_space(this); |
// Opcode FF/4 r64. |
@@ -3049,6 +3078,7 @@ |
const int RelocInfo::kApplyMask = RelocInfo::kCodeTargetMask | |
+ 1 << RelocInfo::RUNTIME_ENTRY | |
1 << RelocInfo::INTERNAL_REFERENCE | |
1 << RelocInfo::CODE_AGE_SEQUENCE; |