This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: PA PIC cleanup

>   In message <>you write:
>   > While this is a possible solution to the DLT reload problem
>   > (indeed I proposed a somewhat similar patch a few weeks ago
>   > <>), 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.

J. David Anglin                        
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]