avr-libc-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avr-libc-commit] [2421] bug #40206: write to SPL and then SPH for xmega


From: Pitchumani
Subject: [avr-libc-commit] [2421] bug #40206: write to SPL and then SPH for xmega SP initialization ( consistent with what compiler does for function prologues)
Date: Tue, 29 Apr 2014 06:21:43 +0000

Revision: 2421
          http://svn.sv.gnu.org/viewvc/?view=rev&root=avr-libc&revision=2421
Author:   pitchumani
Date:     2014-04-29 06:21:42 +0000 (Tue, 29 Apr 2014)
Log Message:
-----------
bug #40206: write to SPL and then SPH for xmega SP initialization (consistent 
with what compiler does for function prologues)

Ticket Links:
------------
    http://savannah.gnu.org/bugs/?40206

Modified Paths:
--------------
    trunk/avr-libc/ChangeLog
    trunk/avr-libc/NEWS
    trunk/avr-libc/crt1/gcrt1.S

Modified: trunk/avr-libc/ChangeLog
===================================================================
--- trunk/avr-libc/ChangeLog    2014-04-28 14:05:10 UTC (rev 2420)
+++ trunk/avr-libc/ChangeLog    2014-04-29 06:21:42 UTC (rev 2421)
@@ -1,3 +1,8 @@
+2014-04-29  Senthil Kumar Selvaraj <address@hidden>
+
+       Fix for bug #40206: incorrect SP init in startup code for xmegas
+       * crt1/gcrt1.S: write to SPL and then SPH for xmega SP initialization
+
 2014-04-28  Pitchumani Sivanupandi <address@hidden>
 
        Fix for bug #42024: build break regarding avrtiny10

Modified: trunk/avr-libc/NEWS
===================================================================
--- trunk/avr-libc/NEWS 2014-04-28 14:05:10 UTC (rev 2420)
+++ trunk/avr-libc/NEWS 2014-04-29 06:21:42 UTC (rev 2421)
@@ -18,6 +18,7 @@
   [#38516] Missing TWI and UCSR1D definitions for ATmega16/32 U4
   [#39783] CRC missing definitions and incorrect power macros for xmega D3
   [#40003] Integer type promotion leads to inefficent code in wdt.h
+  [#40206] incorrect SP init in startup code for xmegas
   [#40567] Invalid names in iotn13a.h (EEPE/EEMPE/BODS/BODSE)
   [#40595] iotn2313a.h: wrong fuses definitions for High Fuse Byte
   [#41519] wrong SPM_PAGESIZE definition in iotn[48]8.h

Modified: trunk/avr-libc/crt1/gcrt1.S
===================================================================
--- trunk/avr-libc/crt1/gcrt1.S 2014-04-28 14:05:10 UTC (rev 2420)
+++ trunk/avr-libc/crt1/gcrt1.S 2014-04-29 06:21:42 UTC (rev 2421)
@@ -218,11 +218,19 @@
        clr     __zero_reg__
        out     AVR_STATUS_ADDR, __zero_reg__
        ldi     r28,lo8(__stack)
+#ifdef __AVR_XMEGA__
+       out     AVR_STACK_POINTER_LO_ADDR, r28
 #ifdef _HAVE_AVR_STACK_POINTER_HI
        ldi     r29,hi8(__stack)
        out     AVR_STACK_POINTER_HI_ADDR, r29
 #endif /* _HAVE_AVR_STACK_POINTER_HI */
+#else
+#ifdef _HAVE_AVR_STACK_POINTER_HI
+       ldi     r29,hi8(__stack)
+       out     AVR_STACK_POINTER_HI_ADDR, r29
+#endif /* _HAVE_AVR_STACK_POINTER_HI */
        out     AVR_STACK_POINTER_LO_ADDR, r28
+#endif  /* __AVR_XMEGA__ */
 
 #ifdef __AVR_3_BYTE_PC__
        ldi     r16, hh8(pm(__vectors))




reply via email to

[Prev in Thread] Current Thread [Next in Thread]