diff options
author | Jeff Law <law@gcc.gnu.org> | 1994-11-10 23:11:14 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1994-11-10 23:11:14 -0700 |
commit | a205e34b227a13e890ab1071f956799906cfe689 (patch) | |
tree | 46dcb01ad5a837cd944e0ef39ec1baf041f8b87f /gcc/config/pa/pa.c | |
parent | 279c9bde625781e47709a2a5900c3c56966e67e7 (diff) | |
download | gcc-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.c | 6 |
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, |