From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9865 invoked by alias); 21 Oct 2008 14:54:30 -0000 Received: (qmail 9580 invoked by uid 48); 21 Oct 2008 14:53:08 -0000 Date: Tue, 21 Oct 2008 14:54:00 -0000 Message-ID: <20081021145308.9579.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/37878] [4.4 regression] PPC64 ldu command generated with invalid offset In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "dje at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-10/txt/msg01332.txt.bz2 ------- Comment #5 from dje at gcc dot gnu dot org 2008-10-21 14:53 ------- The test in rs6000_legitimate_offset_address_p is for something completely different. This should be tested in rs6000_legitimate_address: if (GET_CODE (x) == PRE_MODIFY && mode != TImode && mode != TFmode && mode != TDmode && ((TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_DOUBLE_FLOAT) || TARGET_POWERPC64 || ((mode != DFmode && mode != DDmode) || TARGET_E500_DOUBLE)) && (TARGET_POWERPC64 || mode != DImode) && !ALTIVEC_VECTOR_MODE (mode) && !SPE_VECTOR_MODE (mode) /* Restrict addressing for DI because of our SUBREG hackery. */ && !(TARGET_E500_DOUBLE && (mode == DFmode || mode == DDmode || mode == DImode)) && TARGET_UPDATE && legitimate_indirect_address_p (XEXP (x, 0), reg_ok_strict) && (rs6000_legitimate_offset_address_p (mode, XEXP (x, 1), reg_ok_strict) || legitimate_indexed_address_p (XEXP (x, 1), reg_ok_strict)) && rtx_equal_p (XEXP (XEXP (x, 1), 0), XEXP (x, 0))) return 1; -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37878