From patchwork Tue Jun 25 16:06:05 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yufeng Zhang X-Patchwork-Id: 254220 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]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "localhost", Issuer "www.qmailtoaster.com" (not verified)) by ozlabs.org (Postfix) with ESMTPS id C9F5A2C0095 for ; Wed, 26 Jun 2013 02:06:15 +1000 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :message-id:date:from:mime-version:to:cc:subject:content-type; q=dns; s=default; b=boRGJvCYbIedYCyRyTzPMQ6A4Xg8xcc80kz93j+TJU0 i3KDLCptLZqYCY+2CYT+3fgrbMQs8OzALiH3NPkVggn/q5j+O/tHK1YyMHdbCqaP 1vQuwBomrLIG8chr80hqi4ETWOow+4GCgFvbX9dm+0UPI3Xz0gA3J9OJ5q8KRF2Q = DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :message-id:date:from:mime-version:to:cc:subject:content-type; s=default; bh=CvAdUjCD9QUioi37C3RmvGQze4s=; b=LYp8wlmadO/FzsI7h EdyodQPEGgr9qzOUyxjM9H0uGDWSxMZvJGXXUFK8+SSFcsWSLobqhpFeCOJwyrVP qbSbpw+HuJvi070Qc1pIwrb4CaQAFdyMXuMJVYiVFeEk5Z8CzoHGT6rcT5zNlxlK BFV7F7r6oV5oQeX+PVpVqndeUE= Received: (qmail 31199 invoked by alias); 25 Jun 2013 16:06:09 -0000 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 Received: (qmail 31190 invoked by uid 89); 25 Jun 2013 16:06:09 -0000 X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.1 Received: from service87.mimecast.com (HELO service87.mimecast.com) (91.220.42.44) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Tue, 25 Jun 2013 16:06:09 +0000 Received: from cam-owa1.Emea.Arm.com (fw-tnat.cambridge.arm.com [217.140.96.21]) by service87.mimecast.com; Tue, 25 Jun 2013 17:06:06 +0100 Received: from [10.1.201.52] ([10.1.255.212]) by cam-owa1.Emea.Arm.com with Microsoft SMTPSVC(6.0.3790.0); Tue, 25 Jun 2013 17:06:06 +0100 Message-ID: <51C9BFED.2000409@arm.com> Date: Tue, 25 Jun 2013 17:06:05 +0100 From: Yufeng Zhang User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:8.0) Gecko/20111105 Thunderbird/8.0 MIME-Version: 1.0 To: "gcc-patches@gcc.gnu.org" CC: Marcus Shawcroft Subject: [PATCH, AArch64] Minor refactoring of aarch64_force_temporary X-MC-Unique: 113062517060601701 X-Virus-Found: No This patch adds a new parameter 'mode' of type 'enum machine_mode mode' to aarch64_force_temporary, and updates the calls to it. OK for the trunk? Thanks, Yufeng gcc/ * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra parameter 'mode' of type 'enum machine_mode mode'; change to pass 'mode' to force_reg. (aarch64_add_offset): Update calls to aarch64_force_temporary. (aarch64_expand_mov_immediate): Likewise. diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 81c6fd9..77591c1 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -789,10 +789,10 @@ aarch64_split_simd_move (rtx dst, rtx src) } static rtx -aarch64_force_temporary (rtx x, rtx value) +aarch64_force_temporary (enum machine_mode mode, rtx x, rtx value) { if (can_create_pseudo_p ()) - return force_reg (Pmode, value); + return force_reg (mode, value); else { x = aarch64_emit_move (x, value); @@ -811,8 +811,9 @@ aarch64_add_offset (enum machine_mode mode, rtx temp, rtx reg, HOST_WIDE_INT off might be improvable in the future. */ high = GEN_INT (offset); offset = 0; - high = aarch64_force_temporary (temp, high); - reg = aarch64_force_temporary (temp, gen_rtx_PLUS (mode, high, reg)); + high = aarch64_force_temporary (mode, temp, high); + reg = aarch64_force_temporary (mode, temp, + gen_rtx_PLUS (mode, high, reg)); } return plus_constant (mode, reg, offset); } @@ -851,7 +852,7 @@ aarch64_expand_mov_immediate (rtx dest, rtx imm) && targetm.cannot_force_const_mem (mode, imm)) { gcc_assert(can_create_pseudo_p ()); - base = aarch64_force_temporary (dest, base); + base = aarch64_force_temporary (mode, dest, base); base = aarch64_add_offset (mode, NULL, base, INTVAL (offset)); aarch64_emit_move (dest, base); return; @@ -868,7 +869,7 @@ aarch64_expand_mov_immediate (rtx dest, rtx imm) if (offset != const0_rtx) { gcc_assert(can_create_pseudo_p ()); - base = aarch64_force_temporary (dest, base); + base = aarch64_force_temporary (mode, dest, base); base = aarch64_add_offset (mode, NULL, base, INTVAL (offset)); aarch64_emit_move (dest, base); return;