[Top][All Lists]
[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
>
Re: [avr-gcc-list] gcc 4.3.0, Dmitry K., 2008/04/13