From patchwork Wed Feb 13 10:17:40 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Georg-Johann Lay X-Patchwork-Id: 220108 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 A9BF42C0297 for ; Wed, 13 Feb 2013 21:18:02 +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=1361355485; h=Comment: DomainKey-Signature:Received:Received:Received:Received: Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject: References:In-Reply-To:Content-Type:Mailing-List:Precedence: List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender: Delivered-To; bh=aE3NyxoBQnvK3pP9jfYH9CfkYJ4=; b=ydp3Rtw/cjcx8EX Qqg00Au5S+GV3qxsiNcXcF0g1mIVXJLk6USFOwNpn7nNvaWusyZLbce28+nwxIE2 tuCv2QpBcustjl/5buVngpBDtSp8B9FMCVNxKb4qR2WsU4hnOcTZx5JiSK68A6R+ 5gRggGJwalHyWVWYa+cluu4XG4kQ= 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:X-RZG-AUTH:X-RZG-CLASS-ID:Received:Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject:References:In-Reply-To:Content-Type:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=nyuhHVXpFa/sHmWm2PKMHwChB7+48Jp5qB7toxKBmojgqvxtE0lXfaVJaBpUVq QMASXiypMwhgMkciLxxVOFMSVdMJcpCmuDOG0QhUx7z+BsGWruk5iCgd7PU6XsIX XX8lPi8HU+xB8gSkABngYMJTaiBWw2/qsTfjehEkj4Ldk=; Received: (qmail 30156 invoked by alias); 13 Feb 2013 10:17:57 -0000 Received: (qmail 30148 invoked by uid 22791); 13 Feb 2013 10:17:56 -0000 X-SWARE-Spam-Status: No, hits=-0.6 required=5.0 tests=AWL, BAYES_50, KHOP_THREADED, RCVD_IN_DNSWL_NONE, SPF_NEUTRAL X-Spam-Check-By: sourceware.org Received: from mo-p05-ob.rzone.de (HELO mo-p05-ob.rzone.de) (81.169.146.181) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 13 Feb 2013 10:17:45 +0000 X-RZG-AUTH: :LXoWVUeid/7A29J/hMvvT2k715jHQaJercGObUOFkj18odoYNahU4Q== X-RZG-CLASS-ID: mo05 Received: from [192.168.0.22] (business-188-111-022-002.static.arcor-ip.net [188.111.22.2]) by smtp.strato.de (josoe mo50) (RZmta 31.14 AUTH) with ESMTPA id z024bap1D9oibJ ; Wed, 13 Feb 2013 11:17:40 +0100 (CET) Message-ID: <511B6844.900@gcc.gnu.org> Date: Wed, 13 Feb 2013 11:17:40 +0100 From: Georg-Johann Lay User-Agent: Thunderbird 2.0.0.24 (X11/20100302) MIME-Version: 1.0 To: gcc-patches@gcc.gnu.org CC: Denis Chertykov , Eric Weddington Subject: Re: [Patch,avr]: Add more devices take #2: 2/2 References: <511A60AA.7080400@gjlay.de> In-Reply-To: <511A60AA.7080400@gjlay.de> 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 And here 2/2 with the device -> arch mapping for gas. Ok for trunk? Johann * config/avr/avr.h (device_to_arch): Rename to device_to_ld. (avr_device_to_arch): Rename to avr_device_to_ld. (avr_device_to_as): New prototype. (EXTRA_SPEC_FUNCTIONS): Add device_to_as. (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=. * config/avr/driver-avr.c (avr_device_to_as): New. (avr_device_to_arch): Rename to avr_device_to_ld. Index: config/avr/avr.h =================================================================== --- config/avr/avr.h (revision 195877) +++ config/avr/avr.h (working copy) @@ -486,14 +486,16 @@ typedef struct avr_args #define ADJUST_INSN_LENGTH(INSN, LENGTH) \ (LENGTH = avr_adjust_insn_length (INSN, LENGTH)) -extern const char *avr_device_to_arch (int argc, const char **argv); +extern const char *avr_device_to_as (int argc, const char **argv); +extern const char *avr_device_to_ld (int argc, const char **argv); extern const char *avr_device_to_data_start (int argc, const char **argv); extern const char *avr_device_to_startfiles (int argc, const char **argv); extern const char *avr_device_to_devicelib (int argc, const char **argv); extern const char *avr_device_to_sp8 (int argc, const char **argv); #define EXTRA_SPEC_FUNCTIONS \ - { "device_to_arch", avr_device_to_arch }, \ + { "device_to_as", avr_device_to_as }, \ + { "device_to_ld", avr_device_to_ld }, \ { "device_to_data_start", avr_device_to_data_start }, \ { "device_to_startfile", avr_device_to_startfiles }, \ { "device_to_devicelib", avr_device_to_devicelib }, \ @@ -507,14 +509,9 @@ extern const char *avr_device_to_sp8 (in #define CC1PLUS_SPEC "%{!frtti:-fno-rtti} \ %{!fenforce-eh-specs:-fno-enforce-eh-specs} \ %{!fexceptions:-fno-exceptions}" -/* A C string constant that tells the GCC driver program options to - pass to `cc1plus'. */ - -#define ASM_SPEC "%{mmcu=avr25:-mmcu=avr2;mmcu=avr35:-mmcu=avr3;mmcu=avr31:-mmcu=avr3;mmcu=avr51:-mmcu=avr5;\ -mmcu=*:-mmcu=%*} \ -%{mmcu=*:%{!mmcu=avr2:%{!mmcu=at90s8515:%{!mmcu=avr31:%{!mmcu=atmega103:\ --mno-skip-bug}}}}}" +#define ASM_SPEC "%:device_to_as(%{mmcu=*:%*}) " + #define LINK_SPEC "\ %{mrelax:--relax\ %{mpmem-wrap-around:%{mmcu=at90usb8*:--pmem-wrap-around=8k}\ @@ -524,7 +521,7 @@ mmcu=*:-mmcu=%*} \ %{mmcu=atmega64*|\ mmcu=at90can64*|\ mmcu=at90usb64*:--pmem-wrap-around=64k}}}\ -%:device_to_arch(%{mmcu=*:%*})\ +%:device_to_ld(%{mmcu=*:%*})\ %:device_to_data_start(%{mmcu=*:%*})" #define LIB_SPEC \ Index: config/avr/driver-avr.c =================================================================== --- config/avr/driver-avr.c (revision 195877) +++ config/avr/driver-avr.c (working copy) @@ -48,10 +48,25 @@ avr_set_current_device (const char *name avr_current_arch = &avr_arch_types[avr_current_device->arch]; } -/* Returns command line parameters that describe the device architecture. */ +/* Returns command line parameters to pass to as. */ -const char * -avr_device_to_arch (int argc, const char **argv) +const char* +avr_device_to_as (int argc, const char **argv) +{ + if (0 == argc) + return NULL; + + avr_set_current_device (argv[0]); + + return concat ("-mmcu=", avr_current_arch->arch_name, + avr_current_device->errata_skip ? "" : " -mno-skip-bug", + NULL); +} + +/* Returns command line parameters to pass to ld. */ + +const char* +avr_device_to_ld (int argc, const char **argv) { if (0 == argc) return NULL;