[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]