Commit 13b400cb authored by Joey Gouly's avatar Joey Gouly Committed by Commit Bot

[codegen][arm64] Use ldp instead of 2 ldrs before a TailCall

A port of https://chromium-review.googlesource.com/c/v8/v8/+/2011103
for arm64. Saves 2784 bytes (0.2%) in the arm64.release embedded.S

Change-Id: Ifae6b3f220356ab286b49750c7ae422e4b6d4306
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2013107Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
Commit-Queue: Joey Gouly <joey.gouly@arm.com>
Cr-Commit-Position: refs/heads/master@{#65911}
parent 3fe6f95c
......@@ -503,8 +503,11 @@ void CodeGenerator::AssembleDeconstructFrame() {
void CodeGenerator::AssemblePrepareTailCall() {
if (frame_access_state()->has_frame()) {
__ Ldr(lr, MemOperand(fp, StandardFrameConstants::kCallerPCOffset));
__ Ldr(fp, MemOperand(fp, StandardFrameConstants::kCallerFPOffset));
static_assert(
StandardFrameConstants::kCallerFPOffset + kSystemPointerSize ==
StandardFrameConstants::kCallerPCOffset,
"Offsets must be consecutive for ldp!");
__ Ldp(fp, lr, MemOperand(fp, StandardFrameConstants::kCallerFPOffset));
}
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