diff options
author | Jeff Law <law@gcc.gnu.org> | 1993-12-13 22:20:15 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1993-12-13 22:20:15 -0700 |
commit | 5eaf490bc30cbf6668ec2f17c1faddaedf7dd610 (patch) | |
tree | 0e9231b07222a5ecc159dd6ccffd6f825e3830ae | |
parent | b0ce651a545eb6184a413991f1fb849187066d86 (diff) | |
download | gcc-5eaf490bc30cbf6668ec2f17c1faddaedf7dd610.zip gcc-5eaf490bc30cbf6668ec2f17c1faddaedf7dd610.tar.gz gcc-5eaf490bc30cbf6668ec2f17c1faddaedf7dd610.tar.bz2 |
pa.md (lo_sum of a function address): Use short form as we have no intention of supporting MPE external calls.
* pa.md (lo_sum of a function address): Use short form as we have
no intention of supporting MPE external calls.
From-SVN: r6229
-rw-r--r-- | gcc/config/pa/pa.md | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index 2ea844dd..f15a36d 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -1138,15 +1138,18 @@ (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") |