From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27370 invoked by alias); 19 Apr 2004 15:08:55 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 27351 invoked from network); 19 Apr 2004 15:08:53 -0000 Received: from unknown (HELO cam-admin0.cambridge.arm.com) (193.131.176.58) by sources.redhat.com with SMTP; 19 Apr 2004 15:08:53 -0000 Received: from cam-mail2.cambridge.arm.com (cam-mail2.cambridge.arm.com [10.1.127.39]) by cam-admin0.cambridge.arm.com (8.12.10/8.12.10) with ESMTP id i3JF8Rk1026630; Mon, 19 Apr 2004 16:08:27 +0100 (BST) Received: from ZIPPY.Emea.Arm.com (george.emea.arm.com [10.1.255.81]) by cam-mail2.cambridge.arm.com (8.9.3/8.9.3) with ESMTP id QAA05702; Mon, 19 Apr 2004 16:08:25 +0100 (BST) Received: zippy.emea.arm.com 10.1.255.80 from 10.1.205.4 10.1.205.4 via HTTP with MS-WebStorage 6.5.6944 Received: from pc960.cambridge.arm.com by zippy.emea.arm.com; 19 Apr 2004 16:08:27 +0100 Subject: Re: Patch ping From: Richard Earnshaw To: Paul Brook Cc: gcc-patches@gcc.gnu.org, Andreas Schwab , Paolo Bonzini In-Reply-To: <200404191416.33465.paul@codesourcery.com> References: <200404191416.33465.paul@codesourcery.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit Message-Id: <1082387306.20174.44.camel@pc960.cambridge.arm.com> Mime-Version: 1.0 Date: Mon, 19 Apr 2004 15:08:00 -0000 X-SW-Source: 2004-04/txt/msg01171.txt.bz2 On Mon, 2004-04-19 at 14:16, Paul Brook wrote: > On Monday 19 April 2004 13:57, Andreas Schwab wrote: > > "Paolo Bonzini" writes: > > >> Paolo, > > >> > > >> on which platform did you bootstrap this? > > > > > > i686-pc-linux-gnu, all languages except Ada/treelang. > > > > > >> It causes build errors on > > >> both Linux/x86-64 and Linux/ia64 as reported by Andreas Schwab and > > >> myself on the main GCC list yesterday. > > >> > > >> Please fix the regressions that your patch has caused. > > > > > > As I wrote on gcc, I don't think I can be blamed on this. The bugs are > > > not in the code I touched, but only in the code I enabled. All I can do > > > is disabling -frename-registers on the affected archs, as per the > > > attached patch disable-ada-rename-regs.patch. > > > > This has nothing to do with Ada, the same error happens with libstdc++ as > > well, see . It seems like > > -frename-registers is generally broken, or triggers generally broken code. > > It also breaks libstdc++ on arm/thumb. > > Paul If you are seeing this bug: /work/rearnsha/gnu/egcs/gcc/xgcc -shared-libgcc -B/work/rearnsha/gnu/egcs/gcc/ - nostdinc++ -L/work/rearnsha/gnu/egcs/arm-elf/libstdc++-v3/src -L/work/rearnsha/g nu/egcs/arm-elf/libstdc++-v3/src/.libs -nostdinc -B/work/rearnsha/gnu/egcs/arm-e lf/newlib/ -isystem /work/rearnsha/gnu/egcs/arm-elf/newlib/targ-include -isystem /home/rearnsha/gnusrc/egcs-cross/newlib/libc/include -B/work/rearnsha/gnu/testi nstall/arm-elf/bin/ -B/work/rearnsha/gnu/testinstall/arm-elf/lib/ -isystem /work /rearnsha/gnu/testinstall/arm-elf/include -isystem /work/rearnsha/gnu/testinstal l/arm-elf/sys-include -L/work/rearnsha/gnu/egcs/ld -I/work/rearnsha/gnu/egcs/arm -elf/libstdc++-v3/include/arm-elf -I/work/rearnsha/gnu/egcs/arm-elf/libstdc++-v3 /include -I/home/rearnsha/gnusrc/egcs-cross/libstdc++-v3/libsupc++ -O2 -g -O2 -g -O2 -fno-implicit-templates -Wall -W -Wwrite-strings -Wcast-qual -fdiagnostics- show-location=once -c /home/rearnsha/gnusrc/egcs-cross/libstdc++-v3/src/complex_ io.cc -o complex_io.o /work/rearnsha/gnu/egcs/arm-elf/libstdc++-v3/include/complex: In function `std:: basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Trai ts>&, conststd::complex<_Tp>&) [with _Tp = float, _CharT = char, _Traits = std:: char_traits]': /work/rearnsha/gnu/egcs/arm-elf/libstdc++-v3/include/complex:1455: error: insn d oes not satisfy its constraints: (insn:HI 2559 6401 6402 47 /work/rearnsha/gnu/egcs/arm-elf/libstdc++-v3/include/ streambuf:187 (set (mem/s:SI (post_modify:SI (reg:SI 12 ip) (plus:SI (reg:SI 12 ip) (const_int 28 [0x1c]))) [9 ._vptr.basic_streambuf+ 0 S4 A32]) (reg/f:SI 3 r3 [314])) 140 {*arm_movsi_insn} (insn_list 2558 (nil)) (expr_list:REG_DEAD (reg/f:SI 3 r3 [314]) (expr_list:REG_INC (reg:SI 12 ip) (nil)))) Then I think this is because arm_legitimate_address_p is doing something wrong. Probably this test: else if ((GET_CODE (x) == POST_MODIFY || GET_CODE (x) == PRE_MODIFY) && GET_MODE_SIZE (mode) <= 4 && arm_address_register_rtx_p (XEXP (x, 0), strict_p) && GET_CODE (XEXP (x, 1)) == PLUS && XEXP (XEXP (x, 1), 0) == XEXP (x, 0)) That final equivalence should probably be using rtx_equal_p(), but I haven't tested that yet. R.