Commit 1001662d authored by Ryan Everett's avatar Ryan Everett Committed by V8 LUCI CQ

[baseline][arm64] Generate Sbfx instead of (Asr; Sxtw) when Untagging Smi values.

Very small change to the arm64 macro assembler.
This improves Preact by 0.8% on a Neoverse-N1 machine.

Change-Id: I867e73eb9b999e6f74fd54d72c6bf3f139d3b62f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3833819
Commit-Queue: Martyn Capewell <martyn.capewell@arm.com>
Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#82522}
parent e50472d6
...@@ -1065,8 +1065,7 @@ void TurboAssembler::SmiUntag(Register dst, Register src) { ...@@ -1065,8 +1065,7 @@ void TurboAssembler::SmiUntag(Register dst, Register src) {
} }
DCHECK(SmiValuesAre32Bits() || SmiValuesAre31Bits()); DCHECK(SmiValuesAre32Bits() || SmiValuesAre31Bits());
if (COMPRESS_POINTERS_BOOL) { if (COMPRESS_POINTERS_BOOL) {
Asr(dst.W(), src.W(), kSmiShift); Sbfx(dst, src.W(), kSmiShift, kSmiValueSize);
Sxtw(dst, dst);
} else { } else {
Asr(dst, src, kSmiShift); Asr(dst, src, kSmiShift);
} }
......
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