aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/pa/pa.c
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1994-11-10 23:11:14 -0700
committerJeff Law <law@gcc.gnu.org>1994-11-10 23:11:14 -0700
commita205e34b227a13e890ab1071f956799906cfe689 (patch)
tree46dcb01ad5a837cd944e0ef39ec1baf041f8b87f /gcc/config/pa/pa.c
parent279c9bde625781e47709a2a5900c3c56966e67e7 (diff)
downloadgcc-a205e34b227a13e890ab1071f956799906cfe689.zip
gcc-a205e34b227a13e890ab1071f956799906cfe689.tar.gz
gcc-a205e34b227a13e890ab1071f956799906cfe689.tar.bz2
Jeff for Tege:
* pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow (lo_sum (reg) (unspec (symref))). * pa.md (pic2_lo_sum): New pattern matching when -fPIC using UNSPEC. * pa.c (legitimize_pic_address): Generate an insn matching pic2_lo_sum when -fPIC. * pa.md (pic_highpart): Add missing mode for PLUS. (add_high_const): Likewise. * pa.md (matcher for plain lo_sum): Call abort if this happens when generating pic or PIC. From-SVN: r8423
Diffstat (limited to 'gcc/config/pa/pa.c')
-rw-r--r--gcc/config/pa/pa.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 21d207f..a458203 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -491,8 +491,10 @@ legitimize_pic_address (orig, mode, reg)
if (flag_pic == 2)
{
- emit_insn (gen_pic_highpart (reg, pic_offset_table_rtx, orig));
- pic_ref = (gen_rtx (MEM, Pmode, gen_rtx (LO_SUM, Pmode, reg, orig)));
+ emit_insn (gen_pic2_highpart (reg, pic_offset_table_rtx, orig));
+ pic_ref = gen_rtx (MEM, Pmode,
+ gen_rtx (LO_SUM, Pmode, reg,
+ gen_rtx (UNSPEC, SImode, gen_rtvec (1, orig), 0)));
}
else
pic_ref = gen_rtx (MEM, Pmode,