Comment out bogus ADRP-ADD pseudo-instruction definition.
authorTaylor R Campbell <campbell@mumble.net>
Fri, 1 Feb 2019 05:29:29 +0000 (05:29 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Wed, 21 Aug 2019 21:34:06 +0000 (21:34 +0000)
This will cause the compiler to fail noisily if it tries to assemble
code with sufficiently distant PC-relative addresses, which is better
than silently assembling garbage.

Need to find a proper fix.

src/compiler/machines/aarch64/instr1.scm

index f55a1ad5e6f76b5cad0fe900e580902e93992093..995d86cdecf2ad82a8e11c94ffae6d543eb766b6 100644 (file)
@@ -1305,7 +1305,12 @@ USA.
 ;; page-aligned), or we need to generate extra code to find and add PC
 ;; mod 2^12, which looks like it'll require another temporary register.
 ;; Ugh!
+;;
+;; The way that assemblers usually get around this is either by always
+;; relying on relocations or by always aligning code on page boundaries
+;; so that we know PC mod 2^12 anyway.
 
+#;
 (define-instruction ADRP-ADD
   ((X (? Rd) (@PCO (? offset signed-33)))
    (MACRO 32 (ADRP X ,Rd (@PCO (LSL ,(shift-right offset 12) 12)))) ;(*)