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]

Re: passing information to back-end from source code?


> > > and then write to a C variable given that register number.  However,
> > > the regmove pass is moving the constant 0 or 1 into another register
> > > and then trying to assign to R33 from that register (and so it loses
> > > the information I wanted to pass).  I cannot see why it does that (or
> > > even which macros tell GCC that the sequence of loads/moves it
> > > generates while not generating the obvious "move R33, 0") -- in
> > > particular, R33 is in its own register class.

> (define_insn "movqi"
>   [(set (match_operand:QI 0 "nonimmediate_operand" "=r,r,m")
>         (match_operand:QI 1 "general_operand" "ri,m,r"))]

Hmm, there is no matching constraint here, so I'm baffled what's going on
there.  Could you start cc1 under gdb control, set a breakpoint at
make_insn_raw, and a condition cfun->emit->x_cur_insn_uid ==
whatever the insn number of the new insn to move the constant to the
new register is?

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