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: 3.1 regrename.c doesn't handle which_alternative==-1


Hi,

On Tue, 30 Apr 2002, Brad Lucier wrote:

> > Can you do a "p debug_rtx(insn)" in gdb at that line, after the
> > SEGV?
>
> (gdb) p debug_rtx(insn)
> (insn 25568 25566 25570 (set (reg:SF 72 %f40 [127])
>         (mem:SF (plus:SI (reg/v:SI 16 %l0 [116])
>                 (const_int 19 [0x13])) [0 S4 A64])) 85 {*movsf_insn_novis} (nil)
>     (nil))

Hmm, this looks sane, and should match alternative 6 (from 0).  Operand 0
is a floatreg (matching 'f'), operand 1 a mem, whose address seems valid
to me (a general reg + a small constant) (matching the 'm').  No idea why
it doesn't.  Try to step through constrain_operands(), why the operands do
not match their constraint in the way constrain_operands() is checking
them (i.e. wait in the outer do()  loop for which_alternative being 6, and
check how it procedes through the operands and their constraints).


Ciao,
Michael.


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