]> git.pld-linux.org Git - packages/crossavr-gcc.git/blob - 505-gcc-avrtc586.patch
- updated to 4.7.3 (4.7.2 and older fail to compile with ICE)
[packages/crossavr-gcc.git] / 505-gcc-avrtc586.patch
1 diff -Naurp libgcc/config/avr/lib1funcs.S libgcc/config/avr/lib1funcs.S
2 --- libgcc/config/avr/lib1funcs.S       2013-01-21 18:58:03.000000000 +0530
3 +++ libgcc/config/avr/lib1funcs.S       2013-01-21 19:12:51.000000000 +0530
4 @@ -2010,7 +2010,21 @@ ENDF __do_clear_bss
5  #ifdef L_ctors
6         .section .init6,"ax",@progbits
7  DEFUN __do_global_ctors
8 -#if defined(__AVR_HAVE_ELPM__)
9 +#if defined(__AVR_TINY__)
10 +        ldi     r18, hi8(__ctors_start)
11 +        ldi     r28, lo8(__ctors_end)
12 +        ldi     r29, hi8(__ctors_end)
13 +        rjmp    .L__do_global_ctors_start
14 +.L__do_global_ctors_loop:
15 +        wsubi   28, 2
16 +        mov_h   r31, r29
17 +        mov_l   r30, r28
18 +        XCALL   __tablejump__
19 +.L__do_global_ctors_start:
20 +        cpi     r28, lo8(__ctors_start)
21 +        cpc     r29, r18
22 +        brne    .L__do_global_ctors_loop
23 +#elif defined(__AVR_HAVE_ELPM__)
24         ldi     r17, hi8(__ctors_start)
25         ldi     r28, lo8(__ctors_end)
26         ldi     r29, hi8(__ctors_end)
27 @@ -2035,7 +2049,7 @@ DEFUN __do_global_ctors
28         ldi     r29, hi8(__ctors_end)
29         rjmp    .L__do_global_ctors_start
30  .L__do_global_ctors_loop:
31 -       wsubi   r28, 2
32 +       sbiw    r28, 2
33         mov_h   r31, r29
34         mov_l   r30, r28
35         XCALL   __tablejump__
36 @@ -2050,7 +2064,21 @@ ENDF __do_global_ctors
37  #ifdef L_dtors
38         .section .fini6,"ax",@progbits
39  DEFUN __do_global_dtors
40 -#if defined(__AVR_HAVE_ELPM__)
41 +#if defined(__AVR_TINY__)
42 +        ldi     r18, hi8(__dtors_end)
43 +        ldi     r28, lo8(__dtors_start)
44 +        ldi     r29, hi8(__dtors_start)
45 +        rjmp    .L__do_global_dtors_start
46 +.L__do_global_dtors_loop:
47 +        mov_h   r31, r29
48 +        mov_l   r30, r28
49 +        XCALL   __tablejump__
50 +        wsubi   28, -2
51 +.L__do_global_dtors_start:
52 +        cpi     r28, lo8(__dtors_end)
53 +        cpc     r29, r18
54 +        brne    .L__do_global_dtors_loop
55 +#elif defined(__AVR_HAVE_ELPM__)
56         ldi     r17, hi8(__dtors_end)
57         ldi     r28, lo8(__dtors_start)
58         ldi     r29, hi8(__dtors_start)
59 @@ -2079,7 +2107,7 @@ DEFUN __do_global_dtors
60         mov_l   r30, r28
61         XCALL   __tablejump__
62  #if defined (__AVR_TINY__)
63 -       wsubi   r28, -2
64 +       wsubi   28, -2
65  #else
66         adiw    r28, 2
67  #endif
This page took 0.046046 seconds and 3 git commands to generate.