This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Re: VOIDmode in ZERO_EXTEND crashed
2009/10/12 Jon Beniston <jon@beniston.com>:
>> PS: Does gcc have a function which could dump the specified rtx?
>> I wanna dump the rtx when the crash happening.
>
> debug_rtx(x);
>
> You can also call this from within GDB, by typing:
>
> call debug_rtx(x)
>
> Cheers,
> Jon
>
Thanks.
I dump the context. Here it is:
(mult:SI (zero_extend:SI (mem/c/i:HI (plus:SI (reg/f:SI 14 R14)
(const_int 46 [0x2e])) [8 mm+0 S2 A16]))
(zero_extend:SI (const_int 60 [0x3c])))
(zero_extend:SI (const_int 60 [0x3c])) makes the gcc crash. It is
exactly the rtx mentioned in first email:
(insn 228 227 229 21
../../../../../newlib-1.16.0/newlib/libc/time/tzset_r.c:78 (set
(reg:HI 182 [ mm ])
(mem/c/i:HI (plus:SI (reg/f:SI 14 R14)
(const_int 46 [0x2e])) [8 mm+0 S2 A16])) 10 {load_hi} (nil))
(insn 229 228 230 21
../../../../../newlib-1.16.0/newlib/libc/time/tzset_r.c:78 (set
(reg:SI 181)
(mult:SI (zero_extend:SI (reg:HI 182 [ mm ]))
(zero_extend:SI (const_int 60 [0x3c])))) 63
{rice_umulhisi3} (expr_list:REG_DEAD (reg:HI 182 [ mm ])
(nil)))
You can see gcc just merged the two insn.
But problem is HOW I could avoid this error.
Thanks.
daniel