On Tue, Dec 13, 2005 at 07:44:39PM +0100, Laurent GUERBY wrote:
> 2005-12-13  Jakub Jelinek  <[EMAIL PROTECTED]>
> 
>         PR debug/25023
>         PR target/25293
>         * expr.c (emit_move_resolve_push): Handle PRE_MODIFY
>         and POST_MODIFY with CONST_INT adjustment equal to PUSH_ROUNDING.
>         Fix POST_INC/POST_DEC handling if PUSH_ROUNDING is not identity.
>         * config/i386/i386.md (pushhi2, pushqi2): Use pushl instead of pushw.
>         Set mode to SI, adjust constraints.
>         (pushhi2_rex64, pushqi2_rex64): Set mode to DI.
>         * config/i386/i386.h (PUSH_ROUNDING): Round up to 4 instead of 2 for
>         32-bit code.
> 
> Jakub, any idea?
> > /scratch/gcc/libmudflap/mf-runtime.c:1032: error: unrecognizable insn:
> > (insn 1385 1384 1386 31 /scratch/gcc/libmudflap/mf-runtime.c:1457 (set 
> > (mem:HI (pre_dec:SI (reg/f:SI 7 sp)) [0 S2 A8])
> >          (reg:HI 0 ax [orig:182 __mf_lc_shift ] [182])) -1 (nil)
> >      (nil))
> > /scratch/gcc/libmudflap/mf-runtime.c:1032: internal compiler error: in 
> > extract_insn, at recog.c:2084

I can't reproduce it (otherwise I wouldn't have committed it), it
bootstrapped/regtested just fine for me.

Can one of those who can reproduce it give me preprocessed mf-runtime.i
and exact gcc options that triggered it?

It is correct that the above is rejected, but nothing should be generating
it, unless it disregards PUSH_ROUNDING.

        Jakub

Reply via email to