From patchwork Fri Apr 1 18:20:13 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Georg-Johann Lay X-Patchwork-Id: 89318 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 70715B6F75 for ; Sat, 2 Apr 2011 05:20:41 +1100 (EST) Received: (qmail 6717 invoked by alias); 1 Apr 2011 18:20:39 -0000 Received: (qmail 6709 invoked by uid 22791); 1 Apr 2011 18:20:38 -0000 X-SWARE-Spam-Status: No, hits=-1.6 required=5.0 tests=AWL, BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_NONE X-Spam-Check-By: sourceware.org Received: from mo-p00-ob.rzone.de (HELO mo-p00-ob.rzone.de) (81.169.146.162) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 01 Apr 2011 18:20:31 +0000 X-RZG-AUTH: :LXoWVUeid/7A29J/hMvvT2k715jHQaJercGObUOFkj18odoYNahU4Q== X-RZG-CLASS-ID: mo00 Received: from [192.168.0.22] (business-188-111-022-002.static.arcor-ip.net [188.111.22.2]) by post.strato.de (klopstock mo64) (RZmta 25.8) with ESMTPA id t05ad6n31G9uib ; Fri, 1 Apr 2011 20:20:13 +0200 (MEST) Message-ID: <4D96175D.8080203@gjlay.de> Date: Fri, 01 Apr 2011 20:20:13 +0200 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 , Anatoly Sokolov , Eric Weddington Subject: [Patch,AVR]: Fix PR45263 X-IsSubscribed: yes 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 This is straight forward fix for PR45263 (R20 clobbered by constructor/destructor). Using call-saved register like R15 is undesired because upcoming ATtiny10 architecture. 2011-04-01 Georg-Johann Lay PR target/45263 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Save R20 around calls of __tablejump_elpm__ Index: config/avr/libgcc.S =================================================================== --- config/avr/libgcc.S (Revision 171824) +++ config/avr/libgcc.S (Arbeitskopie) @@ -802,7 +802,9 @@ __do_global_ctors: mov_h r31, r29 mov_l r30, r28 out __RAMPZ__, r20 + push r20 XCALL __tablejump_elpm__ + pop r20 .L__do_global_ctors_start: cpi r28, lo8(__ctors_start) cpc r29, r17 @@ -843,7 +845,9 @@ __do_global_dtors: mov_h r31, r29 mov_l r30, r28 out __RAMPZ__, r20 + push r20 XCALL __tablejump_elpm__ + pop r20 .L__do_global_dtors_start: cpi r28, lo8(__dtors_end) cpc r29, r17