lib1funcs.S (__do_global_dtors): Fix wrong code introduced with 2014-10-21 trunk...
authorGeorg-Johann Lay <gjl@gcc.gnu.org>
Wed, 22 Oct 2014 10:40:30 +0000 (10:40 +0000)
committerGeorg-Johann Lay <gjl@gcc.gnu.org>
Wed, 22 Oct 2014 10:40:30 +0000 (10:40 +0000)
* config/avr/lib1funcs.S (__do_global_dtors): Fix wrong code
introduced with 2014-10-21 trunk r216525.

From-SVN: r216550

libgcc/ChangeLog
libgcc/config/avr/lib1funcs.S

index a87aa3354cf881c4d91a5216f3f79309c93e263e..b5ddae631af18b78af95c0617dde2433213d98dd 100644 (file)
@@ -1,3 +1,8 @@
+2014-10-22  Georg-Johann Lay  <avr@gjlay.de>
+
+       * config/avr/lib1funcs.S (__do_global_dtors): Fix wrong code
+       introduced with 2014-10-21 trunk r216525.
+
 2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
            Vidya Praveen <vidya.praveen@atmel.com>
            Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
@@ -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.
        * 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  <joseph@codesourcery.com>
 
index 0205d833ecb36972196aa7533e5517ae849ef607..51cdbf188687d2c7f9d8cf52666ed23f23546f2d 100644 (file)
@@ -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__)