Commit ffafe7b9 authored by haitao.feng@intel.com's avatar haitao.feng@intel.com

Use PushReturnAddressFrom and PopReturnAddressTo to manipulate return address for X64

R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/102943003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18477 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent b2616f41
......@@ -475,7 +475,7 @@ static void GenerateFastApiCall(MacroAssembler* masm,
// Prepare arguments.
STATIC_ASSERT(kFastApiCallArguments == 7);
__ lea(rax, Operand(rsp, 1 * kPointerSize));
__ lea(rax, args.GetArgumentOperand(offset - FCA::kHolderIndex));
GenerateFastApiCallBody(masm, optimization, argc, false);
}
......@@ -495,8 +495,7 @@ static void GenerateFastApiCall(MacroAssembler* masm,
Register* values) {
ASSERT(optimization.is_simple_api_call());
// Copy return value.
__ pop(scratch1);
__ PopReturnAddressTo(scratch1);
// receiver
__ push(receiver);
......@@ -563,9 +562,7 @@ static void GenerateFastApiCall(MacroAssembler* masm,
ASSERT(!scratch1.is(rax));
// store receiver address for GenerateFastApiCallBody
__ movq(rax, rsp);
// return address
__ push(scratch1);
__ PushReturnAddressFrom(scratch1);
GenerateFastApiCallBody(masm, optimization, argc, true);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment