From patchwork Tue Mar 6 22:45:59 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "H.J. Lu" X-Patchwork-Id: 145045 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id C5782B6FA4 for ; Wed, 7 Mar 2012 09:46:24 +1100 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1331678785; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Received: Received:Date:From:To:Subject:Message-ID:Reply-To:MIME-Version: Content-Type:Content-Disposition:User-Agent:Mailing-List: Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:Sender:Delivered-To; bh=rdQnOjtE7qCTWOvDcxh/J6l8dU0=; b=Cb6nkgpM3oFgEQNknrurRONPAwkApJcdipspSP3ifTR0ijEJOHK3OH+xNWLyUu 0CxSlSYanmvxdFrqnc8z7oGyeqBxqj+ZNKak0HXIFsxdIa5mGcEnt5PzEXXBj5a8 f5hwC5MDY/gBG5Pa5EII+g1WD6o11vJBmT0SWV2L1QHp4= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:X-ExtLoop1:Received:Received:Date:From:To:Subject:Message-ID:Reply-To:MIME-Version:Content-Type:Content-Disposition:User-Agent:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=hniUUtrFbwhwGyeQaGigyzcUSu2fokvdx2oAEmmk+DMjnKyran4zpHft0GSHmN v32vnexlawvHm1V5lQpDUcFrRQSG7TdHLQNa+/tDqZcRH1+Y4ix9b+ke6MsvlAHD Zl8zlVrZXGOv9UlDNO3Tg/TYAsw4RuXFStIB7R6UBnCFw=; Received: (qmail 30285 invoked by alias); 6 Mar 2012 22:46:20 -0000 Received: (qmail 30273 invoked by uid 22791); 6 Mar 2012 22:46:19 -0000 X-SWARE-Spam-Status: No, hits=-4.1 required=5.0 tests=AWL, BAYES_00, NO_DNS_FOR_FROM, RCVD_IN_DNSWL_HI, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mga09.intel.com (HELO mga09.intel.com) (134.134.136.24) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 06 Mar 2012 22:46:06 +0000 Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP; 06 Mar 2012 14:46:00 -0800 X-ExtLoop1: 1 Received: from gnu-6.sc.intel.com ([10.3.194.135]) by orsmga002.jf.intel.com with ESMTP; 06 Mar 2012 14:45:59 -0800 Received: by gnu-6.sc.intel.com (Postfix, from userid 500) id D4D09C1881; Tue, 6 Mar 2012 14:45:59 -0800 (PST) Date: Tue, 6 Mar 2012 14:45:59 -0800 From: "H.J. Lu" To: gcc-patches@gcc.gnu.org, Uros Bizjak , Richard Henderson Subject: PATCH: Pass and return pointers in word_mode Message-ID: <20120306224559.GA21616@intel.com> Reply-To: "H.J. Lu" MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Pmode may not be word_mode for TARGET_64BIT. This patch changes to word_mode instead of Pmode. OK for trunk? Thanks. H.J. 2012-03-02 H.J. Lu * config/i386/i386.c (function_value_64): Return pointers in word_mode instead of Pmode. (ix86_promote_function_mode): Likewise. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 65c4c42..ac9c714 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -7240,8 +7240,8 @@ function_value_64 (enum machine_mode orig_mode, enum machine_mode mode, } else if (POINTER_TYPE_P (valtype)) { - /* Pointers are always returned in Pmode. */ - mode = Pmode; + /* Pointers are always returned in word_mode. */ + mode = word_mode; } ret = construct_container (mode, orig_mode, valtype, 1, @@ -7312,7 +7312,8 @@ ix86_function_value (const_tree valtype, const_tree fntype_or_decl, return ix86_function_value_1 (valtype, fntype_or_decl, orig_mode, mode); } -/* Pointer function arguments and return values are promoted to Pmode. */ +/* Pointer function arguments and return values are promoted to + word_mode. */ static enum machine_mode ix86_promote_function_mode (const_tree type, enum machine_mode mode, @@ -7322,7 +7323,7 @@ ix86_promote_function_mode (const_tree type, enum machine_mode mode, if (type != NULL_TREE && POINTER_TYPE_P (type)) { *punsignedp = POINTERS_EXTEND_UNSIGNED; - return Pmode; + return word_mode; } return default_promote_function_mode (type, mode, punsignedp, fntype, for_return);