[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gcc
Subject:    Re: 3.1 regrename.c doesn't handle which_alternative==-1
From:       Michael Matz <matzmich () cs ! tu-berlin ! de>
Date:       2002-04-30 16:37:20
[Download RAW message or body]

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.

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic