]> gcc.gnu.org Git - gcc.git/commitdiff
pa.md (high for symbolic operands): TARGET_KERNEL version is now default.
authorJeff Law <law@gcc.gnu.org>
Wed, 18 Aug 1993 06:45:51 +0000 (00:45 -0600)
committerJeff Law <law@gcc.gnu.org>
Wed, 18 Aug 1993 06:45:51 +0000 (00:45 -0600)
        * pa.md (high for symbolic operands): TARGET_KERNEL version is
        now default.  Delete ! TARGET_KERNEL version.

From-SVN: r5179

gcc/config/pa/pa.md

index 4b085f27eb7122804922532125286146346c8dcd..c78b9c35f7153d17c4ba42a4d14ecdf8545ca89c 100644 (file)
   [(set_attr "type" "multi")
    (set_attr "length" "12")])
 
-;; For kernel code always use addil; else we can lose due to a linker
-;; bug involving absolute symbols and "ldil;add" style relocations
+;; Always use addil rather than ldil;add sequences.  This allows the
+;; HP linker to eliminate the dp relocation if the symbolic operand
+;; lives in the TEXT space.
 (define_insn ""
   [(set (match_operand:SI 0 "register_operand" "=a")
        (high:SI (match_operand 1 "" "")))]
-  "TARGET_KERNEL && symbolic_operand(operands[1], Pmode)
+  "symbolic_operand(operands[1], Pmode)
    && ! function_label_operand (operands[1])
    && ! read_only_operand (operands[1])"
   "@
   [(set_attr "type" "binary")
    (set_attr "length" "4")])
 
-;; For all symbolic operands *except* function addresses and read-only
-;; operands (which live in TEXT space and do not require relocation).  
-;;
-;; The constraints are a little strange.  
-;; The basic idea is to prefer %r1 as much as possible for register 
-;; allocation (hence we do not allow regclass to know about the general
-;; register case (via *r).
-;; We also want to avoid spilling %r1 as that will cause every use
-;; of %r1 to be reloaded, so we make the %r1 case very expensive
-;; as far as reload is concerned (via !a).
-;;
-;; The real solution is to not spill all pseudos allocated to %r1
-;; when %r1 is needed as a spill register, but that is considerably
-;; more difficult than coercing decent behavior via constraints.
-(define_insn ""
-  [(set (match_operand:SI 0 "register_operand" "=!a,*r")
-       (high:SI (match_operand 1 "" "")))]
-  "! TARGET_KERNEL && symbolic_operand(operands[1], Pmode)
-   && ! function_label_operand (operands[1])
-   && ! read_only_operand (operands[1])"
-  "@
-   addil L'%G1,%%r27
-   ldil L'%G1,%0\;add %0,%%r27,%0"
-  [(set_attr "type" "binary,binary")
-   (set_attr "length" "4,8")])
-
 ;; This is for use in the prologue/epilogue code.  We need it 
 ;; to add large constants to a stack pointer or frame pointer.
 ;; Because of the additional %r1 pressure, we probably do not
This page took 0.07293 seconds and 5 git commands to generate.