This is the mail archive of the gcc@gcc.gnu.org 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]
Other format: [Raw text]

Re: splitting const_int's


On Tue, May 20, 2008 at 2:47 PM, Paul Brook <paul@codesourcery.com> wrote:
> Does this work reliably for straight mov patterns and during reload? Sounds
> like in the general case it would need secondary reloads, which is a whole
> lot of extra magic.

Hmm, right.  Maybe something like what rs6000 does:
; List r->r after r->"o<>", otherwise reload will try to reload a
; non-offsettable address by using r->r which won't make progress.
(define_insn "*movdi_internal32"
  [(set (match_operand:DI 0 "nonimmediate_operand" "=o<>,r,r,*f,*f,m,r")
        (match_operand:DI 1 "input_operand" "r,r,m,f,m,f,IJKnGHF"))]



And then in the split it does:
      /* Move register range backwards, if we might have destructive
         overlap.  */
in rs6000_split_multireg_move.

-- Pinski


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