ruby-changes:73364
From: Takashi <ko1@a...>
Date: Fri, 2 Sep 2022 05:39:00 +0900 (JST)
Subject: [ruby-changes:73364] 064944c902 (master): Stop using a callee-saved register for scratch0 on aarch64 (#6312)
https://git.ruby-lang.org/ruby.git/commit/?id=064944c902 From 064944c9029fae0552f120ea586f4f83ce206ec6 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun <takashikkbn@g...> Date: Thu, 1 Sep 2022 13:38:38 -0700 Subject: Stop using a callee-saved register for scratch0 on aarch64 (#6312) [Bug #18985] * Callee-save x22 for aarch64 * Just use a caller-saved register * Update yjit/src/backend/arm64/mod.rs Co-authored-by: Alan Wu <alansi.xingwu@s...> Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@g...> --- yjit/src/backend/arm64/mod.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/yjit/src/backend/arm64/mod.rs b/yjit/src/backend/arm64/mod.rs index 4f07bf8062..3e926c9387 100644 --- a/yjit/src/backend/arm64/mod.rs +++ b/yjit/src/backend/arm64/mod.rs @@ -69,7 +69,8 @@ impl From<&Opnd> for A64Opnd { https://github.com/ruby/ruby/blob/trunk/yjit/src/backend/arm64/mod.rs#L69 impl Assembler { // A special scratch register for intermediate processing. - const SCRATCH0: A64Opnd = A64Opnd::Reg(X22_REG); + // This register is caller-saved (so we don't have to save it before using it) + const SCRATCH0: A64Opnd = A64Opnd::Reg(X15_REG); /// Get the list of registers from which we will allocate on this platform /// These are caller-saved registers -- cgit v1.2.1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/