[patch] Fix push on h8300.

Graham Stott grahams@redhat.com
Tue Jul 31 07:54:00 GMT 2001


Roman

Roman Zippel wrote:
> 
> Hi,
> 
> On Tue, 31 Jul 2001, Graham Stott wrote:
> 
> > > BTW it also breaks m68k.
> > >
> > OK what's the m68k host triple and where does it break?
> 
> linux-m68k. It breaks during libstdc++ build, but this also shows the
> problem:
> 
OK I used m68k-elf target and get the abort compiling libstdc++.

> struct s {};
> 
> void f1(s);
> 
> void f2(void)
> {
>         f1(s());
> }
> 
> BTW you will probably need this patch:
> 
> Index: config/m68k/m68k.md
> ===================================================================
> RCS file: /cvs/gcc/egcs/gcc/config/m68k/m68k.md,v
> retrieving revision 1.44
> diff -u -r1.44 m68k.md
> --- m68k.md     2001/07/31 03:45:08     1.44
> +++ m68k.md     2001/07/31 13:11:21
> @@ -1425,6 +1432,15 @@
>         (match_operand:SI 1 "address_operand" "p"))]
>    ""
>    "pea %a1")
> +
> +(define_expand "pushqi1"
> +  [(set (reg:SI 15)
> +       (plus:SI (reg:SI 15) (const_int -2)))
> +   (set (mem:QI (plus:SI (reg:SI 15)
> +                     (const_int 1)))
> +       (match_operand:QI 0 "general_operand" ""))]
> +  ""
> +  "")
> 
>  ;; truncation instructions
>  (define_insn "truncsiqi2"

I was wondering about that because I got an unrecognised insn
abort when I disabled my function.c patch.

Graham



More information about the Gcc-patches mailing list