]> git.pld-linux.org Git - packages/crossavr-gcc.git/blob - 506-gcc-avrtc541.patch
- synchronized patches with official AVR toolchain 3.4.1.830
[packages/crossavr-gcc.git] / 506-gcc-avrtc541.patch
1 diff -Naurp gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
2 --- gcc/config/avr/libgcc.S     2012-06-12 12:43:40.000000000 +0530
3 +++ gcc/config/avr/libgcc.S     2012-06-12 12:44:08.000000000 +0530
4 @@ -862,6 +862,12 @@ __do_copy_data:
5         cpc     r27, r17
6         brne    .L__do_copy_data_loop
7  #endif /* !defined(__AVR_HAVE_ELPMX__) && !defined(__AVR_HAVE_ELPM__) */
8 +
9 +;Clear RAMPZ in case it was set during copy_data
10 +#if defined(__AVR_HAVE_ELPMX__ ) || defined(__AVR_HAVE_ELPM__)
11 +    out __RAMPZ__, __zero_reg__
12 +#endif
13 +
14  #endif /* L_copy_data */
15  #endif
16  
17 @@ -941,6 +947,12 @@ __do_global_ctors:
18         cpc     r29, r17
19         brne    .L__do_global_ctors_loop
20  #endif /* defined(__AVR_HAVE_RAMPZ__) */
21 +
22 +;Clear RAMPZ in case it was set
23 +#if defined(__AVR_HAVE_RAMPZ__)
24 +    out __RAMPZ__, __zero_reg__
25 +#endif
26 +
27  #endif /* L_ctors */
28  
29  #ifdef L_dtors
30 @@ -992,6 +1004,12 @@ __do_global_dtors:
31         cpc     r29, r17
32         brne    .L__do_global_dtors_loop
33  #endif /* defined(__AVR_HAVE_RAMPZ__) */
34 +
35 +;Clear RAMPZ in case it was set
36 +#if defined(__AVR_HAVE_RAMPZ__)
37 +    out __RAMPZ__, __zero_reg__
38 +#endif
39 +
40  #endif /* L_dtors */
41  
42  #if !defined (__AVR_TINY__)
This page took 0.022845 seconds and 3 git commands to generate.