This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: passing information to back-end from source code?
- To: Michael Poole <poole at troilus dot org>
- Subject: Re: passing information to back-end from source code?
- From: Joern Rennecke <amylaar at cygnus dot co dot uk>
- Date: Tue, 15 Aug 2000 18:28:13 +0100 (BST)
- CC: Joern Rennecke <amylaar at pasanda dot cygnus dot co dot uk>, gcc at gcc dot gnu dot org
> > > 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?