Commit d0a3ad06 authored by zhengxing.li's avatar zhengxing.li Committed by Commit bot

X87: [turbofan] Fewer gap moves for tail calls.

  port 51e992f1 (r32410)

  original commit message:
  Restore frame pointer directly from stack rather than copying it and
  restoring. Also restore return address register directly on platforms that
  support it.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#32440}
parent 7a52e179
......@@ -341,9 +341,6 @@ void CodeGenerator::AssembleDeconstructActivationRecord(int stack_param_delta) {
if (sp_slot_delta > 0) {
__ add(esp, Immediate(sp_slot_delta * kPointerSize));
}
if (frame()->needs_frame()) {
__ pop(ebp);
}
frame_access_state()->SetFrameAccessToDefault();
}
......@@ -354,6 +351,9 @@ void CodeGenerator::AssemblePrepareTailCall(int stack_param_delta) {
__ sub(esp, Immediate(-sp_slot_delta * kPointerSize));
frame_access_state()->IncreaseSPDelta(-sp_slot_delta);
}
if (frame()->needs_frame()) {
__ mov(ebp, MemOperand(ebp, 0));
}
frame_access_state()->SetFrameAccessToSP();
}
......
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