From 9fdd8bdb82f818f424632421f42ea58eec901687 Mon Sep 17 00:00:00 2001 From: Stan Cox Date: Tue, 1 Mar 1994 17:08:21 +0000 Subject: [PATCH] (legitimize_address, print_operand): Make -fPIC work From-SVN: r6681 --- gcc/config/m88k/m88k.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/gcc/config/m88k/m88k.c b/gcc/config/m88k/m88k.c index 766dfcad872..c2484d3983f 100644 --- a/gcc/config/m88k/m88k.c +++ b/gcc/config/m88k/m88k.c @@ -313,10 +313,16 @@ legitimize_address (pic, orig, reg, scratch) temp = ((reload_in_progress || reload_completed) ? reg : gen_reg_rtx (Pmode)); - emit_insn (gen_rtx (SET, VOIDmode, - temp, gen_rtx (HIGH, SImode, addr))); - emit_insn (gen_rtx (SET, VOIDmode, - temp, gen_rtx (LO_SUM, SImode, temp, addr))); + emit_insn (gen_rtx (SET, VOIDmode, temp, + gen_rtx (HIGH, SImode, + gen_rtx (UNSPEC, SImode, + gen_rtvec (1, addr), + 0)))); + emit_insn (gen_rtx (SET, VOIDmode, temp, + gen_rtx (LO_SUM, SImode, temp, + gen_rtx (UNSPEC, SImode, + gen_rtvec (1, addr), + 0)))); addr = temp; } new = gen_rtx (MEM, Pmode, @@ -2938,6 +2944,11 @@ print_operand (file, x, code) output_address (x); else if (xc == MEM) output_address (XEXP (x, 0)); + else if (flag_pic && xc == UNSPEC) + { + output_addr_const (file, XVECEXP (x, 0, 0)); + fputs ("#got_rel", file); + } else if (xc == CONST_DOUBLE) output_operand_lossage ("operand is const_double"); else -- 2.30.2