Commit 5668c909 authored by Dan Elphick's avatar Dan Elphick Committed by Commit Bot

[codegen] Use ldm instead of 2 ldrs before a TailCall

Combines 2 ldrs into a single ldm (without writeback since the
instruction uses fp as base and as a target). Shrinks the builtin
instruction size on ARM by 2932 bytes.

Change-Id: Id74e1e158a9d5db49caa2927e88df2a350adafab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2011103Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65882}
parent ad583fcd
...@@ -509,8 +509,7 @@ void CodeGenerator::AssembleDeconstructFrame() { ...@@ -509,8 +509,7 @@ void CodeGenerator::AssembleDeconstructFrame() {
void CodeGenerator::AssemblePrepareTailCall() { void CodeGenerator::AssemblePrepareTailCall() {
if (frame_access_state()->has_frame()) { if (frame_access_state()->has_frame()) {
__ ldr(lr, MemOperand(fp, StandardFrameConstants::kCallerPCOffset)); __ ldm(ia, fp, lr.bit() | fp.bit());
__ ldr(fp, MemOperand(fp, StandardFrameConstants::kCallerFPOffset));
} }
frame_access_state()->SetFrameAccessToSP(); 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