From 18a3415e239132c0273e306421147d79a7d3ae28 Mon Sep 17 00:00:00 2001 From: Georg-Johann Lay Date: Wed, 22 Oct 2014 10:40:30 +0000 Subject: [PATCH] lib1funcs.S (__do_global_dtors): Fix wrong code introduced with 2014-10-21 trunk r216525. * config/avr/lib1funcs.S (__do_global_dtors): Fix wrong code introduced with 2014-10-21 trunk r216525. From-SVN: r216550 --- libgcc/ChangeLog | 11 ++++++++--- libgcc/config/avr/lib1funcs.S | 8 ++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index a87aa3354cf..b5ddae631af 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,8 @@ +2014-10-22 Georg-Johann Lay + + * config/avr/lib1funcs.S (__do_global_dtors): Fix wrong code + introduced with 2014-10-21 trunk r216525. + 2014-10-21 Joern Rennecke Vidya Praveen Praveen Kumar Kaushik @@ -18,7 +23,7 @@ (__mulpsi3): Likewise. (__muldi3, __udivmodsi4, __divmodsi4, __negsi2, __umoddi3, __udivmod64, __moddi3, __adddi3, __adddi3_s8, __subdi3, __cmpdi2, __cmpdi2_s8, - __negdi2, __prologue_saves__, __epilogue_restores__): Excluded for + __negdi2, __prologue_saves__, __epilogue_restores__): Excluded for AVRTINY. (__tablejump2__): Added lpm equivalent instructions for AVRTINY. (__do_copy_data): Added new definition for AVRTINY. @@ -28,10 +33,10 @@ * config/avr/lib1funcs-fixed.S: Replaced occurrences of r0/r1 with tmp/zero reg macros. Replaced occurrences of sbiw/adiw with wsubi/wadi macors. - * config/avr/t-avr (LIB1ASMFUNCS): Remove unsupported functions for + * config/avr/t-avr (LIB1ASMFUNCS): Remove unsupported functions for AVRTINY. - Fix broken long multiplication on tiny arch. + Fix broken long multiplication on tiny arch. 2014-10-09 Joseph Myers diff --git a/libgcc/config/avr/lib1funcs.S b/libgcc/config/avr/lib1funcs.S index 0205d833ecb..51cdbf18868 100644 --- a/libgcc/config/avr/lib1funcs.S +++ b/libgcc/config/avr/lib1funcs.S @@ -2502,14 +2502,16 @@ DEFUN __do_global_dtors #endif /* HAVE_EIJMP */ rjmp .L__do_global_dtors_start .L__do_global_dtors_loop: - waddi 28, 1 #ifdef __AVR_HAVE_EIJMP_EICALL__ - adc r16, __zero_reg__ mov r24, r16 #endif /* HAVE_EIJMP */ mov_h r31, r29 mov_l r30, r28 XCALL __tablejump2__ + waddi 28, 1 +#ifdef __AVR_HAVE_EIJMP_EICALL__ + adc r16, __zero_reg__ +#endif /* HAVE_EIJMP */ .L__do_global_dtors_start: cpi r28, pm_lo8(__dtors_end) cpc r29, cdtors_tst_reg @@ -2521,6 +2523,8 @@ DEFUN __do_global_dtors ENDF __do_global_dtors #endif /* L_dtors */ +#undef cdtors_tst_reg + .section .text.libgcc, "ax", @progbits #if !defined (__AVR_TINY__) -- 2.30.2