Index: src/x64/assembler-x64.cc |
diff --git a/src/x64/assembler-x64.cc b/src/x64/assembler-x64.cc |
index 2607ecc99e014bd06c3498307acf146b56d9b498..a02557e96a0501a7d551c037c55d275396ef3a1f 100644 |
--- a/src/x64/assembler-x64.cc |
+++ b/src/x64/assembler-x64.cc |
@@ -178,6 +178,13 @@ void RelocInfo::PatchCodeWithCall(Address target, int guard_bytes) { |
} |
+void RelocInfo::PatchCode(byte* instructions, int instruction_count) { |
+ // Patch the code at the current address with the supplied instructions. |
+ for (int i = 0; i < instruction_count; i++) { |
+ *(pc_ + i) = *(instructions + i); |
+ } |
+} |
+ |
// ----------------------------------------------------------------------------- |
// Implementation of Operand |
@@ -1071,6 +1078,16 @@ void Assembler::jmp(Register target) { |
} |
+void Assembler::jmp(const Operand& src) { |
+ EnsureSpace ensure_space(this); |
+ last_pc_ = pc_; |
+ // Opcode FF/4 m64 |
+ emit_optional_rex_32(src); |
+ emit(0xFF); |
+ emit_operand(0x4, src); |
+} |
+ |
+ |
void Assembler::lea(Register dst, const Operand& src) { |
EnsureSpace ensure_space(this); |
last_pc_ = pc_; |