From 0c87f9d50194a468b5861114433c194cf9f26c17 Mon Sep 17 00:00:00 2001 From: Taylor R Campbell Date: Tue, 22 Jan 2019 03:47:35 +0000 Subject: [PATCH] Fix register choices in GENERATE/REMOTE-LINKS. --- src/compiler/machines/aarch64/rules3.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/compiler/machines/aarch64/rules3.scm b/src/compiler/machines/aarch64/rules3.scm index 9701f3196..9e764240d 100644 --- a/src/compiler/machines/aarch64/rules3.scm +++ b/src/compiler/machines/aarch64/rules3.scm @@ -749,13 +749,17 @@ USA. (end-label (generate-label 'END)) (continuation-label (generate-label 'LINKED)) (counter r24) ;unallocated, callee-saves - (temp1 r1) ;unallocated - (temp2 r2) ;unallocated + (temp1 r5) ;unallocated + (temp2 r6) ;unallocated ;; arg1 will be return address. (arg2 regnum:utility-arg2) (arg3 regnum:utility-arg3) (arg4 regnum:utility-arg4)) (assert (not (= counter regnum:scratch-0))) + (assert (not (= counter regnum:utility-arg1))) + (assert + (null? (eqv-set-intersection (list counter temp1 temp2) + (list arg2 arg3 arg3)))) (LAP ,@(load-unsigned-immediate counter n-blocks) (LABEL ,loop-label) ,@(load-pc-relative arg2 vector-label) ;arg2 := vector -- 2.25.1