From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5594 invoked by alias); 30 Jun 2011 18:05:35 -0000 Received: (qmail 5582 invoked by uid 22791); 30 Jun 2011 18:05:34 -0000 X-SWARE-Spam-Status: No, hits=-2.3 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW X-Spam-Check-By: sourceware.org Received: from mail-qy0-f182.google.com (HELO mail-qy0-f182.google.com) (209.85.216.182) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 30 Jun 2011 18:05:19 +0000 Received: by qyk38 with SMTP id 38so1509611qyk.20 for ; Thu, 30 Jun 2011 11:05:19 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.79.196 with SMTP id q4mr1821010qck.132.1309457118882; Thu, 30 Jun 2011 11:05:18 -0700 (PDT) Received: by 10.229.214.83 with HTTP; Thu, 30 Jun 2011 11:05:18 -0700 (PDT) In-Reply-To: References: <20110611160548.GA20036@intel.com> Date: Thu, 30 Jun 2011 18:10:00 -0000 Message-ID: Subject: Re: PATCH [5/n]: Prepare x32: PR middle-end/48016: Inconsistency in non-local goto save area From: "H.J. Lu" To: Michael Matz Cc: Richard Guenther , gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary=001636426b416b6a5d04a6f1be89 X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2011-06/txt/msg02391.txt.bz2 --001636426b416b6a5d04a6f1be89 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1550 On Wed, Jun 29, 2011 at 9:16 AM, Michael Matz wrote: > Hi, > > On Wed, 29 Jun 2011, H.J. Lu wrote: > >> > diff --git a/gcc/function.c b/gcc/function.c >> > index 81c4d39..131bc09 100644 >> > --- a/gcc/function.c >> > +++ b/gcc/function.c >> > @@ -4780,7 +4780,7 @@ expand_function_start (tree subr) >> > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 cfun->nonlocal_goto_save_a= rea, >> > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 integer_zero_node, NULL_TR= EE, NULL_TREE); >> > =A0 =A0 =A0 r_save =3D expand_expr (t_save, NULL_RTX, VOIDmode, EXPAND= _WRITE); >> > - =A0 =A0 =A0r_save =3D convert_memory_address (Pmode, r_save); >> > + =A0 =A0 =A0r_save =3D adjust_address (r_save, Pmode, 0); > > This is actually the same problem as in explow.c. =A0t_save is built with > ptr_type_node, where it should have been using > =A0TREE_TYPE (TREE_TYPE (cfun->nonlocal_goto_save_area)) > > Then r_save should have the correct mode already, possibly this could be > asserted. =A0You are right that r_save needs to correspond to the > nonlocal_goto_save_area[0] array-ref, hence pseudos aren't okay, therefore > convert_memory_address isn't. =A0Actually I think we might even want to > assert that indeed the expanded r_save is of Pmode already. > > This patch works for me. OK for trunk if there are no regressions? Thanks. --=20 H.J. --- 2011-06-30 H.J. Lu PR middle-end/48016 * explow.c (update_nonlocal_goto_save_area): Use proper mode for stack save area. * function.c (expand_function_start): Likewise. --001636426b416b6a5d04a6f1be89 Content-Type: text/plain; charset=US-ASCII; name="gcc-x32-pr48016-3.patch" Content-Disposition: attachment; filename="gcc-x32-pr48016-3.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gpk0wzrk0 Content-length: 2237 MjAxMS0wNi0zMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoK CVBSIG1pZGRsZS1lbmQvNDgwMTYKCSogZXhwbG93LmMgKHVwZGF0ZV9ub25s b2NhbF9nb3RvX3NhdmVfYXJlYSk6IFVzZSBwcm9wZXIgbW9kZQoJZm9yIHN0 YWNrIHNhdmUgYXJlYS4KCSogZnVuY3Rpb24uYyAoZXhwYW5kX2Z1bmN0aW9u X3N0YXJ0KTogTGlrZXdpc2UuCgpkaWZmIC0tZ2l0IGEvZ2NjL2V4cGxvdy5j IGIvZ2NjL2V4cGxvdy5jCmluZGV4IGM3ZDgxODMuLmVmZTZjN2UgMTAwNjQ0 Ci0tLSBhL2djYy9leHBsb3cuYworKysgYi9nY2MvZXhwbG93LmMKQEAgLTEx MDIsNyArMTA5Nyw5IEBAIHVwZGF0ZV9ub25sb2NhbF9nb3RvX3NhdmVfYXJl YSAodm9pZCkKICAgICAgZmlyc3Qgb25lIGlzIHVzZWQgZm9yIHRoZSBmcmFt ZSBwb2ludGVyIHNhdmU7IHRoZSByZXN0IGFyZSBzaXplZCBieQogICAgICBT VEFDS19TQVZFQVJFQV9NT0RFLiAgQ3JlYXRlIGEgcmVmZXJlbmNlIHRvIGFy cmF5IGluZGV4IDEsIHRoZSBmaXJzdAogICAgICBvZiB0aGUgc3RhY2sgc2F2 ZSBhcmVhIHNsb3RzLiAgKi8KLSAgdF9zYXZlID0gYnVpbGQ0IChBUlJBWV9S RUYsIHB0cl90eXBlX25vZGUsIGNmdW4tPm5vbmxvY2FsX2dvdG9fc2F2ZV9h cmVhLAorICB0X3NhdmUgPSBidWlsZDQgKEFSUkFZX1JFRiwKKwkJICAgVFJF RV9UWVBFIChUUkVFX1RZUEUgKGNmdW4tPm5vbmxvY2FsX2dvdG9fc2F2ZV9h cmVhKSksCisJCSAgIGNmdW4tPm5vbmxvY2FsX2dvdG9fc2F2ZV9hcmVhLAog CQkgICBpbnRlZ2VyX29uZV9ub2RlLCBOVUxMX1RSRUUsIE5VTExfVFJFRSk7 CiAgIHJfc2F2ZSA9IGV4cGFuZF9leHByICh0X3NhdmUsIE5VTExfUlRYLCBW T0lEbW9kZSwgRVhQQU5EX1dSSVRFKTsKIApkaWZmIC0tZ2l0IGEvZ2NjL2Z1 bmN0aW9uLmMgYi9nY2MvZnVuY3Rpb24uYwppbmRleCA1YmUwMThhLi4wYjJm NWFhIDEwMDY0NAotLS0gYS9nY2MvZnVuY3Rpb24uYworKysgYi9nY2MvZnVu Y3Rpb24uYwpAQCAtNDc4MiwxMSArNDc4MiwxMiBAQCBleHBhbmRfZnVuY3Rp b25fc3RhcnQgKHRyZWUgc3VicikKICAgICAgIGlmICghREVDTF9SVExfU0VU X1AgKHZhcikpCiAJZXhwYW5kX2RlY2wgKHZhcik7CiAKLSAgICAgIHRfc2F2 ZSA9IGJ1aWxkNCAoQVJSQVlfUkVGLCBwdHJfdHlwZV9ub2RlLAorICAgICAg dF9zYXZlID0gYnVpbGQ0IChBUlJBWV9SRUYsCisJCSAgICAgICBUUkVFX1RZ UEUgKFRSRUVfVFlQRSAoY2Z1bi0+bm9ubG9jYWxfZ290b19zYXZlX2FyZWEp KSwKIAkJICAgICAgIGNmdW4tPm5vbmxvY2FsX2dvdG9fc2F2ZV9hcmVhLAog CQkgICAgICAgaW50ZWdlcl96ZXJvX25vZGUsIE5VTExfVFJFRSwgTlVMTF9U UkVFKTsKICAgICAgIHJfc2F2ZSA9IGV4cGFuZF9leHByICh0X3NhdmUsIE5V TExfUlRYLCBWT0lEbW9kZSwgRVhQQU5EX1dSSVRFKTsKLSAgICAgIHJfc2F2 ZSA9IGNvbnZlcnRfbWVtb3J5X2FkZHJlc3MgKFBtb2RlLCByX3NhdmUpOwor ICAgICAgZ2NjX2Fzc2VydCAoR0VUX01PREUgKHJfc2F2ZSkgPT0gUG1vZGUp OwogCiAgICAgICBlbWl0X21vdmVfaW5zbiAocl9zYXZlLCB0YXJnZXRtLmJ1 aWx0aW5fc2V0am1wX2ZyYW1lX3ZhbHVlICgpKTsKICAgICAgIHVwZGF0ZV9u b25sb2NhbF9nb3RvX3NhdmVfYXJlYSAoKTsKCg== --001636426b416b6a5d04a6f1be89--