From 064944c9029fae0552f120ea586f4f83ce206ec6 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun 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 Co-authored-by: Maxime Chevalier-Boisvert --- yjit/src/backend/arm64/mod.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'yjit') 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 { 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.3