From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1474 invoked by alias); 18 Sep 2009 16:08:33 -0000 Received: (qmail 1464 invoked by uid 22791); 18 Sep 2009 16:08:32 -0000 X-SWARE-Spam-Status: No, hits=-1.6 required=5.0 tests=AWL,BAYES_00,MSGID_FROM_MTA_HEADER,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mtagate6.de.ibm.com (HELO mtagate6.de.ibm.com) (195.212.17.166) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 18 Sep 2009 16:08:24 +0000 Received: from d12nrmr1607.megacenter.de.ibm.com (d12nrmr1607.megacenter.de.ibm.com [9.149.167.49]) by mtagate6.de.ibm.com (8.13.1/8.13.1) with ESMTP id n8IG8LEb027815 for ; Fri, 18 Sep 2009 16:08:21 GMT Received: from d12av02.megacenter.de.ibm.com (d12av02.megacenter.de.ibm.com [9.149.165.228]) by d12nrmr1607.megacenter.de.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id n8IG8FRC3436794 for ; Fri, 18 Sep 2009 18:08:21 +0200 Received: from d12av02.megacenter.de.ibm.com (loopback [127.0.0.1]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id n8IG8EIb000808 for ; Fri, 18 Sep 2009 18:08:14 +0200 Received: from tuxmaker.boeblingen.de.ibm.com (tuxmaker.boeblingen.de.ibm.com [9.152.85.9]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.12.11) with SMTP id n8IG8Dqi000786; Fri, 18 Sep 2009 18:08:13 +0200 Message-Id: <200909181608.n8IG8Dqi000786@d12av02.megacenter.de.ibm.com> Received: by tuxmaker.boeblingen.de.ibm.com (sSMTP sendmail emulation); Fri, 18 Sep 2009 18:08:13 +0200 Subject: Re: i370 port To: mutazilah@gmail.com (Paul Edwards) Date: Fri, 18 Sep 2009 16:08:00 -0000 From: "Ulrich Weigand" Cc: gcc@gcc.gnu.org In-Reply-To: <189DB7AD89504F0FB022373BDCB207A7@Paullaptop> from "Paul Edwards" at Sep 18, 2009 11:41:31 PM MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org X-SW-Source: 2009-09/txt/msg00324.txt.bz2 Paul Edwards wrote: > C:\devel\gccnew\gcc>gccmvs -DUSE_MEMMGR -Os -S -ansi -pedantic-errors -DHAVE_CON > FIG_H -DIN_GCC -DPUREISO -I ../../pdos/pdpclib -I . -I config/i370 -I > ../include > varasm.c > (insn 117 429 118 7 (parallel [ > (set (reg:SI 64) > (compare:SI (mem/s:BLK (plus:SI (reg/f:SI 21 > virtual-stack-vars) > > (const_int 456 [0x1c8])) [232 value+0 S196 A64]) > (mem:BLK (plus:SI (reg/v/f:SI 61 [ desc ]) > (const_int 8 [0x8])) [0 A8]))) > (use (const_int 196 [0xc4])) > ]) -1 (nil) > (nil)) > varasm.c: In function `force_const_mem': > varasm.c:3021: internal compiler error: in instantiate_virtual_regs_lossage, > at function.c:3767 OK, so what goes on here is that GCC attempts to replace the "virtual" register 21 (virtual-stack-vars) with some real register, that is frame pointer + STARTING_FRAME_OFFSET. It seems for the i370 port, this should resolve to register 13 + STACK_POINTER_OFFSET + current_function_outgoing_args_size Overall, the middle-end would therefore replace "reg 21 + 456" with "reg 13 + X", where X is constant computed from 456 + STACK_POINTER_OFFSET + current_function_outgoing_args_size. It will then re-process the insn pattern constraints to verify that the resulting insn is still valid. At this stage, it appears we're running into the above error. I'm not quite sure why this would be case, this will require some further debugging why the insn was not recognized ... Bye, Ulrich -- Dr. Ulrich Weigand GNU Toolchain for Linux on System z and Cell BE Ulrich.Weigand@de.ibm.com