]> gcc.gnu.org Git - gcc.git/commitdiff
(legitimize_address, print_operand): Make -fPIC work
authorStan Cox <coxs@gnu.org>
Tue, 1 Mar 1994 17:08:21 +0000 (17:08 +0000)
committerStan Cox <coxs@gnu.org>
Tue, 1 Mar 1994 17:08:21 +0000 (17:08 +0000)
From-SVN: r6681

gcc/config/m88k/m88k.c

index 766dfcad87209188d4ce112c6f97822230b5305d..c2484d3983fb2c3e122787b2af047b5a4cc3e0fd 100644 (file)
@@ -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
This page took 0.065298 seconds and 5 git commands to generate.