Fix register choices in GENERATE/REMOTE-LINKS.
authorTaylor R Campbell <campbell@mumble.net>
Tue, 22 Jan 2019 03:47:35 +0000 (03:47 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Wed, 21 Aug 2019 21:34:05 +0000 (21:34 +0000)
src/compiler/machines/aarch64/rules3.scm

index 9701f319603f7da31297b051433f33a2fae740bc..9e764240d07fc8f71dca628d0603a436baa75b1c 100644 (file)
@@ -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