This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: The current egcs is broken on x86
- To: mark at markmitchell dot com
- Subject: Re: The current egcs is broken on x86
- From: hjl at lucon dot org (H.J. Lu)
- Date: Sat, 13 Jun 1998 10:02:45 -0700 (PDT)
- Cc: wilson at cygnus dot com, egcs at cygnus dot com, meissner at cygnus dot com
>
> >>>>> "Jim" == Jim Wilson <wilson@cygnus.com> writes:
>
> Jim> My patched rebuild failed in stage2 while running the stage2
> Jim> compiler to build the SYSCALLS.c file. I suspect another bug
> Jim> in the recent regmove changes.
>
> I can confirm this on x86. I was able to bootstrap only by completely
> removing the regmove change, not simply by applying your patch.
>
regmove.c itself may have bugs. In my test case, there is
(insn 50 48 52 (set (reg:SI 30)
(minus:SI (reg/v:SI 22)
(reg:SI 29))) 154 {subsi3+1} (insn_list 48 (nil))
(nil))
which is turned into
(insn 50 48 52 (set (reg:SI 30)
(minus:SI (reg:SI 30)
(reg:SI 29))) 154 {subsi3+1} (insn_list 48 (nil))
(nil))
It is completely wrong. It seems that regmove.c only handles PLUS, not
MINUS. Is that the case?
H.J.