Commit 9fdd8bdb by Stan Cox

(legitimize_address, print_operand): Make -fPIC work

From-SVN: r6681
parent 8cf85c4b
...@@ -313,10 +313,16 @@ legitimize_address (pic, orig, reg, scratch) ...@@ -313,10 +313,16 @@ legitimize_address (pic, orig, reg, scratch)
temp = ((reload_in_progress || reload_completed) temp = ((reload_in_progress || reload_completed)
? reg : gen_reg_rtx (Pmode)); ? reg : gen_reg_rtx (Pmode));
emit_insn (gen_rtx (SET, VOIDmode, emit_insn (gen_rtx (SET, VOIDmode, temp,
temp, gen_rtx (HIGH, SImode, addr))); gen_rtx (HIGH, SImode,
emit_insn (gen_rtx (SET, VOIDmode, gen_rtx (UNSPEC, SImode,
temp, gen_rtx (LO_SUM, SImode, temp, addr))); 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; addr = temp;
} }
new = gen_rtx (MEM, Pmode, new = gen_rtx (MEM, Pmode,
...@@ -2938,6 +2944,11 @@ print_operand (file, x, code) ...@@ -2938,6 +2944,11 @@ print_operand (file, x, code)
output_address (x); output_address (x);
else if (xc == MEM) else if (xc == MEM)
output_address (XEXP (x, 0)); 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) else if (xc == CONST_DOUBLE)
output_operand_lossage ("operand is const_double"); output_operand_lossage ("operand is const_double");
else else
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment