[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[avr-gcc-list] gcc 4.3.0
From: |
Klaus Rudolph |
Subject: |
[avr-gcc-list] gcc 4.3.0 |
Date: |
Fri, 11 Apr 2008 16:01:46 +0200 |
User-agent: |
Thunderbird 2.0.0.12 (Windows/20080213) |
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] gcc 4.3.0,
Klaus Rudolph <=
Re: [avr-gcc-list] gcc 4.3.0, Dmitry K., 2008/04/13