pa.md (lo_sum of a function address): Use short form as we have no intention of suppo...
authorJeff Law <law@gcc.gnu.org>
Tue, 14 Dec 1993 05:20:15 +0000 (22:20 -0700)
committerJeff Law <law@gcc.gnu.org>
Tue, 14 Dec 1993 05:20:15 +0000 (22:20 -0700)
* pa.md (lo_sum of a function address): Use short form as we have
no intention of supporting MPE external calls.

From-SVN: r6229

gcc/config/pa/pa.md

index 2ea844dd9d206be14c638eebc8b272b96bc18867..f15a36d63989f52d949c12e2ef50ede3ba1444fc 100644 (file)
    (set_attr "length" "4")])
 
 ;; lo_sum of a function address.
+;;
+;; Note since we are not supporting MPE style external calls we can
+;; use the short ldil;ldo sequence.  If one wanted to support
+;; MPE external calls you would want to generate something like
+;; ldil;ldo;extru;ldw;add.  See the HP compiler's output for details.
 (define_insn ""
   [(set (match_operand:SI 0 "register_operand" "=r")
        (lo_sum:SI (match_operand:SI 1 "register_operand" "r")
-                  (match_operand:SI 2 "function_label_operand" "")))
-   (clobber (match_operand:SI 3 "register_operand" "=r"))]
+                  (match_operand:SI 2 "function_label_operand" "")))]
   ""
-  "ldo RP'%G2(%1),%0\;extru,= %0,31,1,%3\;ldw -4(0,%%r27),%3\;add %0,%3,%0"
-  [(set_attr "type" "multi")
-   (set_attr "length" "16")])
+  "ldo RP'%G2(%1),%0"
+  [(set_attr "length" "4")])
 
 (define_insn ""
   [(set (match_operand:SI 0 "register_operand" "=r")