From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18243 invoked by alias); 22 Jul 2014 14:49:01 -0000 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 Received: (qmail 18224 invoked by uid 89); 22 Jul 2014 14:49:00 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: service87.mimecast.com Received: from service87.mimecast.com (HELO service87.mimecast.com) (91.220.42.44) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 22 Jul 2014 14:48:59 +0000 Received: from cam-owa1.Emea.Arm.com (fw-tnat.cambridge.arm.com [217.140.96.21]) by service87.mimecast.com; Tue, 22 Jul 2014 15:48:55 +0100 Received: from [10.1.205.157] ([10.1.255.212]) by cam-owa1.Emea.Arm.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 22 Jul 2014 15:48:54 +0100 Message-ID: <53CE79D5.8080705@arm.com> Date: Tue, 22 Jul 2014 14:49:00 -0000 From: Jiong Wang User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.1 MIME-Version: 1.0 To: gcc-patches@gcc.gnu.org Subject: [AArch64/GCC][0/N] Refactor prologue/epilogue code and optimize insns generated X-MC-Unique: 114072215485507301 Content-Type: text/plain; charset=WINDOWS-1252; format=flowed Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes X-SW-Source: 2014-07/txt/msg01445.txt.bz2 currently, the implementation of AArch64 prologue/epilogue expand hooks are a bit unclean. the major issues are: * when pushing callee-saved registers, register offset are calculated by ad-hoc code instead of referencing offset table initialized in aarch64_layout_frame. * FP/LR push/restore are done by ad-hoc code, should be unified with other registers. * various duplicated code for pushing/restoring core and vectore registers. * sub-optimal instruction sequences generated for some scenarios. the following patch set trying to address above issues in an incremental way, that the review could be easier. no regression on aarch64-none-elf little/big endian bare-metal full test. bootstrap OK on aarch64. ok to install? thanks. -- Jiong