From patchwork Tue Apr 21 13:24:12 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: tbsaunde+gcc@tbsaunde.org X-Patchwork-Id: 463130 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.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id DCAC21401AD for ; Tue, 21 Apr 2015 23:26:45 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass reason="1024-bit key; unprotected key" header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b=xJvISIaz; dkim-adsp=none (unprotected policy); dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id:in-reply-to:references; q=dns; s= default; b=cOmxdJGZuYS/lJIBAI2XvE58b9zAdMPiwRC3UfC60xOf8x3Zyh2M9 n9L9AdbcreSGIRawOJQlfTuFW9GRUKSQq5K3J6bKkVodYxuJKOzodA7ficcxze5k JW9ZHrYvVFnYDzPoVxKSb1mx2SzLdmYDrfJcaD/w7Hi/l1BwlrlJG0= 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:from :to:cc:subject:date:message-id:in-reply-to:references; s= default; bh=NVJ0iCZIzeS9MpDxySiBxZ+nD3s=; b=xJvISIaz4tuayNNsTVVu 9f227Lrlbm93vZaruPVz7UPIQUOSkxvpFjWKBTL0CHrsT9xCxv/rOqa7gEjyNoIR v26uy6/0Pyi7XON12pfl9AFalBSkJ68gPdoCIEKBXau5vzPyR7AsXtZtVhGXrrYC 8Na24aV4gbo3D843hJVxXts= Received: (qmail 58758 invoked by alias); 21 Apr 2015 13:25:18 -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 58708 invoked by uid 89); 21 Apr 2015 13:25:18 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.4 required=5.0 tests=AWL, BAYES_00, KAM_LAZY_DOMAIN_SECURITY, T_RP_MATCHES_RCVD autolearn=no version=3.3.2 X-HELO: paperclip.tbsaunde.org Received: from tbsaunde.org (HELO paperclip.tbsaunde.org) (66.228.47.254) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 21 Apr 2015 13:25:15 +0000 Received: from iceball.corp.tor1.mozilla.com (unknown [23.233.68.71]) by paperclip.tbsaunde.org (Postfix) with ESMTPSA id BC7D3C0B0; Tue, 21 Apr 2015 13:25:13 +0000 (UTC) From: tbsaunde+gcc@tbsaunde.org To: gcc-patches@gcc.gnu.org Cc: Trevor Saunders Subject: [PATCH 06/12] provide default for RETURN_ADDR_OFFSET Date: Tue, 21 Apr 2015 09:24:12 -0400 Message-Id: <1429622658-9034-7-git-send-email-tbsaunde+gcc@tbsaunde.org> In-Reply-To: <1429622658-9034-1-git-send-email-tbsaunde+gcc@tbsaunde.org> References: <1429622658-9034-1-git-send-email-tbsaunde+gcc@tbsaunde.org> X-IsSubscribed: yes From: Trevor Saunders gcc/ChangeLog: 2015-04-21 Trevor Saunders * defaults.h (RETURN_ADDR_OFFSET): New definition. * except.c (expand_builtin_extract_return_addr): Remove ifdef RETURN_ADDR_OFFSET. (expand_builtin_frob_return_addr): Likewise. --- gcc/defaults.h | 5 +++++ gcc/except.c | 14 +++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/gcc/defaults.h b/gcc/defaults.h index 911c2f8..767901a 100644 --- a/gcc/defaults.h +++ b/gcc/defaults.h @@ -383,6 +383,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #define EH_RETURN_DATA_REGNO(N) INVALID_REGNUM #endif +/* Offset between the eh handler address and entry in eh tables. */ +#ifndef RETURN_ADDR_OFFSET +#define RETURN_ADDR_OFFSET 0 +#endif + /* If we have named section and we support weak symbols, then use the .jcr section for recording java classes which need to be registered at program start-up time. */ diff --git a/gcc/except.c b/gcc/except.c index 7573c88..c98163d 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -2189,9 +2189,8 @@ expand_builtin_extract_return_addr (tree addr_tree) #endif /* Then adjust to find the real return address. */ -#if defined (RETURN_ADDR_OFFSET) - addr = plus_constant (Pmode, addr, RETURN_ADDR_OFFSET); -#endif + if (RETURN_ADDR_OFFSET) + addr = plus_constant (Pmode, addr, RETURN_ADDR_OFFSET); return addr; } @@ -2207,10 +2206,11 @@ expand_builtin_frob_return_addr (tree addr_tree) addr = convert_memory_address (Pmode, addr); -#ifdef RETURN_ADDR_OFFSET - addr = force_reg (Pmode, addr); - addr = plus_constant (Pmode, addr, -RETURN_ADDR_OFFSET); -#endif + if (RETURN_ADDR_OFFSET) + { + addr = force_reg (Pmode, addr); + addr = plus_constant (Pmode, addr, -RETURN_ADDR_OFFSET); + } return addr; }