avr-gcc-list
[Top][All Lists]
Advanced

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

Re: [avr-gcc-list] gcc 4.3.0


From: Ruud Vlaming
Subject: Re: [avr-gcc-list] gcc 4.3.0
Date: Sat, 12 Apr 2008 20:55:58 +0200
User-agent: KMail/1.9.1

Also, I get an average increase of the codesize (everything identical
but the gcc version) of 5% moving from 4.2.3 to 4.3.0 (averiged 
over 12 projects, varying from 1% to 9%). I did not yet did research 
on the cause. 

Ruud.

On Friday 11 April 2008 16:01, Klaus Rudolph wrote:
> I have installed gcc 4.3.0 and becomes a bit confused :-)
> 
> main ends now with a "ret" and returns to undefined address from stack?
> 
> Bug or feature?
> 
> By the way:
> 
> What I want to test with my code was the new feature of gdb to have 
> multiple breakpoints from inlined functions which works well for i386 
> plattform but not for avr. With i368 I got 3 breaks while inlining the 
> ctors but only one from avr. Any ideas?
> 
> Thanks
>   Klaus
> 
> 
> 
> 
> My test code :
> volatile int i;
> 
> 
> class A {
>      public:
>          A () { i=9;}
> };
> 
> 
> int main() {
>      A a;
>      A b;
>      A c;
> }
> 
> 
> ----
> Result:
> 00000000 <__vectors>:
>     0:   0c c0           rjmp    .+24            ; 0x1a <__ctors_end>
>     2:   26 c0           rjmp    .+76            ; 0x50 <__bad_interrupt>
>     4:   25 c0           rjmp    .+74            ; 0x50 <__bad_interrupt>
>     6:   24 c0           rjmp    .+72            ; 0x50 <__bad_interrupt>
>     8:   23 c0           rjmp    .+70            ; 0x50 <__bad_interrupt>
>     a:   22 c0           rjmp    .+68            ; 0x50 <__bad_interrupt>
>     c:   21 c0           rjmp    .+66            ; 0x50 <__bad_interrupt>
>     e:   20 c0           rjmp    .+64            ; 0x50 <__bad_interrupt>
>    10:   1f c0           rjmp    .+62            ; 0x50 <__bad_interrupt>
>    12:   1e c0           rjmp    .+60            ; 0x50 <__bad_interrupt>
>    14:   1d c0           rjmp    .+58            ; 0x50 <__bad_interrupt>
>    16:   1c c0           rjmp    .+56            ; 0x50 <__bad_interrupt>
>    18:   1b c0           rjmp    .+54            ; 0x50 <__bad_interrupt>
> 
> 0000001a <__ctors_end>:
>    1a:   11 24           eor     r1, r1
>    1c:   1f be           out     0x3f, r1        ; 63
>    1e:   cf e5           ldi     r28, 0x5F       ; 95
>    20:   d2 e0           ldi     r29, 0x02       ; 2
>    22:   de bf           out     0x3e, r29       ; 62
>    24:   cd bf           out     0x3d, r28       ; 61
> 
> 00000026 <__do_copy_data>:
>    26:   10 e0           ldi     r17, 0x00       ; 0
>    28:   a0 e6           ldi     r26, 0x60       ; 96
>    2a:   b0 e0           ldi     r27, 0x00       ; 0
>    2c:   e4 e7           ldi     r30, 0x74       ; 116
>    2e:   f0 e0           ldi     r31, 0x00       ; 0
>    30:   03 c0           rjmp    .+6             ; 0x38 
> <.do_copy_data_start>
> 
> 00000032 <.do_copy_data_loop>:
>    32:   c8 95           lpm
>    34:   31 96           adiw    r30, 0x01       ; 1
>    36:   0d 92           st      X+, r0
> 
> 00000038 <.do_copy_data_start>:
>    38:   a0 36           cpi     r26, 0x60       ; 96
>    3a:   b1 07           cpc     r27, r17
>    3c:   d1 f7           brne    .-12            ; 0x32 <.do_copy_data_loop>
> 
> 0000003e <__do_clear_bss>:
>    3e:   10 e0           ldi     r17, 0x00       ; 0
>    40:   a0 e6           ldi     r26, 0x60       ; 96
>    42:   b0 e0           ldi     r27, 0x00       ; 0
>    44:   01 c0           rjmp    .+2             ; 0x48 
> <.do_clear_bss_start>
> 
> 00000046 <.do_clear_bss_loop>:
>    46:   1d 92           st      X+, r1
> 
> 00000048 <.do_clear_bss_start>:
>    48:   a2 36           cpi     r26, 0x62       ; 98
>    4a:   b1 07           cpc     r27, r17
>    4c:   e1 f7           brne    .-8             ; 0x46 <.do_clear_bss_loop>
>    4e:   01 c0           rjmp    .+2             ; 0x52 <main>
> 
> 00000050 <__bad_interrupt>:
>    50:   d7 cf           rjmp    .-82            ; 0x0 <__heap_end>
> 
> 00000052 <main>:
>    52:   89 e0           ldi     r24, 0x09       ; 9
>    54:   90 e0           ldi     r25, 0x00       ; 0
>    56:   90 93 61 00     sts     0x0061, r25
>    5a:   80 93 60 00     sts     0x0060, r24
>    5e:   90 93 61 00     sts     0x0061, r25
>    62:   80 93 60 00     sts     0x0060, r24
>    66:   90 93 61 00     sts     0x0061, r25
>    6a:   80 93 60 00     sts     0x0060, r24
>    6e:   80 e0           ldi     r24, 0x00       ; 0
>    70:   90 e0           ldi     r25, 0x00       ; 0
>    72:   08 95           ret
> 
> 
> _______________________________________________
> AVR-GCC-list mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
> 




reply via email to

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