GAS LISTING /tmp/ccdWAqCb.s page 1 1 .file "take1.c" 2 __SREG__ = 0x3f 3 __SP_H__ = 0x3e 4 __SP_L__ = 0x3d 5 __CCP__ = 0x34 6 __tmp_reg__ = 0 7 __zero_reg__ = 1 8 .global __do_copy_data 9 .global __do_clear_bss 10 .stabs "/home/sunshine/elektronik/avr-tests/mpadd/",100,0,2,.Ltext0 11 .stabs "take1.c",100,0,2,.Ltext0 12 .text 13 .Ltext0: 14 .stabs "gcc2_compiled.",60,0,0,0 15 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,1,0 16 .stabs "char:t(0,2)=r(0,2);0;127;",128,0,1,0 17 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,1,0 18 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,1,0 19 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,1,0 20 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,1, 21 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,1,0 22 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,1,0 23 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,1,0 24 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,1,0 25 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,1,0 26 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,1,0 27 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,1,0 28 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,1,0 29 .stabs "void:t(0,15)=(0,15)",128,0,1,0 30 .stabs "/usr/lib/gcc/avr/4.3.4/../../../avr/include/stdint.h",130,0,0,0 31 .stabs "int8_t:t(1,1)=(0,10)",128,0,121,0 32 .stabs "uint8_t:t(1,2)=(0,11)",128,0,122,0 33 .stabs "int16_t:t(1,3)=(0,1)",128,0,123,0 34 .stabs "uint16_t:t(1,4)=(0,4)",128,0,124,0 35 .stabs "int32_t:t(1,5)=(0,3)",128,0,125,0 36 .stabs "uint32_t:t(1,6)=(0,5)",128,0,126,0 37 .stabs "int64_t:t(1,7)=(0,6)",128,0,128,0 38 .stabs "uint64_t:t(1,8)=(0,7)",128,0,129,0 39 .stabs "intptr_t:t(1,9)=(1,3)",128,0,142,0 40 .stabs "uintptr_t:t(1,10)=(1,4)",128,0,147,0 41 .stabs "int_least8_t:t(1,11)=(1,1)",128,0,159,0 42 .stabs "uint_least8_t:t(1,12)=(1,2)",128,0,164,0 43 .stabs "int_least16_t:t(1,13)=(1,3)",128,0,169,0 44 .stabs "uint_least16_t:t(1,14)=(1,4)",128,0,174,0 45 .stabs "int_least32_t:t(1,15)=(1,5)",128,0,179,0 46 .stabs "uint_least32_t:t(1,16)=(1,6)",128,0,184,0 47 .stabs "int_least64_t:t(1,17)=(1,7)",128,0,192,0 48 .stabs "uint_least64_t:t(1,18)=(1,8)",128,0,199,0 49 .stabs "int_fast8_t:t(1,19)=(1,1)",128,0,213,0 50 .stabs "uint_fast8_t:t(1,20)=(1,2)",128,0,218,0 51 .stabs "int_fast16_t:t(1,21)=(1,3)",128,0,223,0 52 .stabs "uint_fast16_t:t(1,22)=(1,4)",128,0,228,0 53 .stabs "int_fast32_t:t(1,23)=(1,5)",128,0,233,0 54 .stabs "uint_fast32_t:t(1,24)=(1,6)",128,0,238,0 55 .stabs "int_fast64_t:t(1,25)=(1,7)",128,0,246,0 56 .stabs "uint_fast64_t:t(1,26)=(1,8)",128,0,253,0 57 .stabs "intmax_t:t(1,27)=(1,7)",128,0,273,0 GAS LISTING /tmp/ccdWAqCb.s page 2 58 .stabs "uintmax_t:t(1,28)=(1,8)",128,0,278,0 59 .stabn 162,0,0,0 60 .stabs "add:F(0,15)",36,0,4,add 61 .stabs "vector1:P(0,16)=*(0,17)=k(1,2)",64,0,3,28 62 .global add 63 .type add, @function 64 add: 65 .stabd 46,0,0 1:take1.c **** #include 2:take1.c **** 3:take1.c **** void add(uint8_t vector0[10], const uint8_t vector1[10]) 4:take1.c **** { 66 .stabn 68,0,4,.LM0-.LFBB1 67 .LM0: 68 .LFBB1: 69 0000 CF93 push r28 70 0002 DF93 push r29 71 /* prologue: function */ 72 /* frame size = 0 */ 73 0004 EB01 movw r28,r22 74 .stabn 68,0,4,.LM1-.LFBB1 75 .LM1: 76 0006 DC01 movw r26,r24 77 0008 60E0 ldi r22,lo8(0) 78 000a 70E0 ldi r23,hi8(0) 79 000c 40E0 ldi r20,lo8(0) 80 000e 50E0 ldi r21,hi8(0) 81 .L2: 82 .LBB2: 5:take1.c **** uint_fast16_t ergebnis = 0; 6:take1.c **** 7:take1.c **** for (uint8_t i = 0; i < 10; i++) { 8:take1.c **** ergebnis += vector0[i]+vector1[i]; 83 .stabn 68,0,8,.LM2-.LFBB1 84 .LM2: 85 0010 FE01 movw r30,r28 86 0012 E40F add r30,r20 87 0014 F51F adc r31,r21 88 0016 2081 ld r18,Z 89 0018 8C91 ld r24,X 90 001a 90E0 ldi r25,lo8(0) 91 001c 820F add r24,r18 92 001e 911D adc r25,__zero_reg__ 93 0020 860F add r24,r22 94 0022 971F adc r25,r23 9:take1.c **** vector0[i] = ergebnis; 95 .stabn 68,0,9,.LM3-.LFBB1 96 .LM3: 97 0024 8D93 st X+,r24 10:take1.c **** ergebnis >>= 8; 98 .stabn 68,0,10,.LM4-.LFBB1 99 .LM4: 100 0026 692F mov r22,r25 101 0028 7727 clr r23 102 002a 4F5F subi r20,lo8(-(1)) 103 002c 5F4F sbci r21,hi8(-(1)) 7:take1.c **** for (uint8_t i = 0; i < 10; i++) { GAS LISTING /tmp/ccdWAqCb.s page 3 104 .stabn 68,0,7,.LM5-.LFBB1 105 .LM5: 106 002e 4A30 cpi r20,10 107 0030 5105 cpc r21,__zero_reg__ 108 0032 01F4 brne .L2 109 /* epilogue start */ 110 .LBE2: 11:take1.c **** } 12:take1.c **** } 111 .stabn 68,0,12,.LM6-.LFBB1 112 .LM6: 113 0034 DF91 pop r29 114 0036 CF91 pop r28 115 0038 0895 ret 116 .size add, .-add 117 .stabs "ergebnis:r(1,22)",64,0,5,24 118 .stabn 192,0,0,.LFBB1-.LFBB1 119 .stabn 224,0,0,.Lscope1-.LFBB1 120 .Lscope1: 121 .stabs "",36,0,0,.Lscope1-.LFBB1 122 .stabd 78,0,0 123 .stabs "",100,0,0,.Letext0 124 .Letext0: GAS LISTING /tmp/ccdWAqCb.s page 4 DEFINED SYMBOLS *ABS*:00000000 take1.c /tmp/ccdWAqCb.s:2 *ABS*:0000003f __SREG__ /tmp/ccdWAqCb.s:3 *ABS*:0000003e __SP_H__ /tmp/ccdWAqCb.s:4 *ABS*:0000003d __SP_L__ /tmp/ccdWAqCb.s:5 *ABS*:00000034 __CCP__ /tmp/ccdWAqCb.s:6 *ABS*:00000000 __tmp_reg__ /tmp/ccdWAqCb.s:7 *ABS*:00000001 __zero_reg__ /tmp/ccdWAqCb.s:64 .text:00000000 add UNDEFINED SYMBOLS __do_copy_data __do_clear_bss