This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PA PIC cleanup
- To: law at redhat dot com
- Subject: Re: PA PIC cleanup
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- Date: Wed, 21 Feb 2001 11:36:04 -0500 (EST)
- Cc: gcc-patches at gcc dot gnu dot org
> In message <200102200538.AAA14531@hiauly1.hia.nrc.ca>you write:
> > While this is a possible solution to the DLT reload problem
> > (indeed I proposed a somewhat similar patch a few weeks ago
> > <http://gcc.gnu.org/ml/gcc-bugs/2001-01/msg00743.html>), I didn't
> > push this approach because I feel this still leaves the reload
> > issue with respect to the standard movsi/movdi patterns. For
> > example, it seems possible that short DLT references could still
> > be incorrectly substituted.
> The short DLT memory references are already correctly handled by the standard
> movxx patterns.
Why do we still have this insn?
define_insn ""
[(set (match_operand:SI 0 "register_operand" "=r")
(mem:SI (plus:SI (match_operand:SI 1 "register_operand" "r")
(match_operand:SI 2 "symbolic_operand" ""))))]
"flag_pic && operands[1] == pic_offset_table_rtx"
"ldw T'%2(%1),%0"
[(set_attr "type" "load")
(set_attr "length" "4")])
I don't see how print_operand can handle the T fixup if reload substitutes
the MEM from this insn? Am I missing something here? It would seem this
also has to be merged if your comment below is correct.
> > I also think that it shouldn't be necessary to lump everything
> > but the kitchen sink into one universal move insn. That's why
> > I proposed trying to fix the constraints so that DLT references
> > don't get substituted in the standard movsi/movdi patterns.
> But you're wrong here because you're missing the fact that reload does
> not consistently rerecognize insns.
If that's the case, it seems like a reload bug but possibly one that's
difficult to fix.
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)