Index: src/x64/macro-assembler-x64.cc |
diff --git a/src/x64/macro-assembler-x64.cc b/src/x64/macro-assembler-x64.cc |
index 2219a5a0ee81821c9431103f7d67b4e6b6ffb62d..fa81c4ef9ca16f8a8261de12a67cbb732321c519 100644 |
--- a/src/x64/macro-assembler-x64.cc |
+++ b/src/x64/macro-assembler-x64.cc |
@@ -262,8 +262,7 @@ void MacroAssembler::Abort(const char* msg) { |
void MacroAssembler::CallStub(CodeStub* stub) { |
ASSERT(allow_stub_calls()); // calls are not allowed in some stubs |
- movq(kScratchRegister, stub->GetCode(), RelocInfo::CODE_TARGET); |
- call(kScratchRegister); |
+ Call(stub->GetCode(), RelocInfo::CODE_TARGET); |
} |
@@ -495,7 +494,6 @@ void MacroAssembler::Jump(Address destination, RelocInfo::Mode rmode) { |
void MacroAssembler::Jump(Handle<Code> code_object, RelocInfo::Mode rmode) { |
- WriteRecordedPositions(); |
William Hesse
2009/08/19 08:44:00
How can it be correct to remove this?
Lasse Reichstein
2009/08/19 10:12:32
It's correct in the sense that it matches what we
|
ASSERT(RelocInfo::IsCodeTarget(rmode)); |
movq(kScratchRegister, code_object, rmode); |
#ifdef DEBUG |
@@ -523,8 +521,8 @@ void MacroAssembler::Call(Address destination, RelocInfo::Mode rmode) { |
void MacroAssembler::Call(Handle<Code> code_object, RelocInfo::Mode rmode) { |
- WriteRecordedPositions(); |
ASSERT(RelocInfo::IsCodeTarget(rmode)); |
+ WriteRecordedPositions(); |
movq(kScratchRegister, code_object, rmode); |
#ifdef DEBUG |
// Patch target is kPointer size bytes *before* target label. |
@@ -859,12 +857,11 @@ void MacroAssembler::InvokePrologue(const ParameterCount& expected, |
movq(rdx, code_register); |
} |
- movq(kScratchRegister, adaptor, RelocInfo::CODE_TARGET); |
if (flag == CALL_FUNCTION) { |
- call(kScratchRegister); |
+ Call(adaptor, RelocInfo::CODE_TARGET); |
jmp(done); |
} else { |
- jmp(kScratchRegister); |
+ Jump(adaptor, RelocInfo::CODE_TARGET); |
} |
bind(&invoke); |
} |