GAS LISTING /tmp/ccyebhoL.s 			page 1


   1               		.file	"take4.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	"take4.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/ccyebhoL.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               	.global	add
  62               		.type	add, @function
  63               	add:
  64               		.stabd	46,0,0
   1:take4.c       **** #include <stdint.h>
   2:take4.c       **** 
   3:take4.c       **** void add(uint8_t vector0[10], const uint8_t vector1[10])
   4:take4.c       **** {
  65               		.stabn	68,0,4,.LM0-.LFBB1
  66               	.LM0:
  67               	.LFBB1:
  68               	/* prologue: function */
  69               	/* frame size = 0 */
  70               		.stabn	68,0,4,.LM1-.LFBB1
  71               	.LM1:
  72 0000 FC01      		movw r30,r24
  73 0002 9B01      		movw r18,r22
  74 0004 DB01      		movw r26,r22
  75 0006 2AE0      		ldi r18,lo8(10)
  76               	.L4:
  77               	.LBB2:
   5:take4.c       **** 	uint8_t a, b, r1, r2, carry;
   6:take4.c       **** 	uint8_t *p = &vector0[0];
   7:take4.c       **** 	const uint8_t *q = &vector1[0];
   8:take4.c       **** 
   9:take4.c       **** 	for (uint8_t i = 10; i > 0; i--) {
  10:take4.c       **** 		a = *p;
  78               		.stabn	68,0,10,.LM2-.LFBB1
  79               	.LM2:
  80 0008 8081      		ld r24,Z
  11:take4.c       **** 		b = *q++;
  81               		.stabn	68,0,11,.LM3-.LFBB1
  82               	.LM3:
  83 000a 9D91      		ld r25,X+
  12:take4.c       **** 		r1 = a+b;
  84               		.stabn	68,0,12,.LM4-.LFBB1
  85               	.LM4:
  86 000c 980F      		add r25,r24
  13:take4.c       **** 		r2 = r1+carry;
  87               		.stabn	68,0,13,.LM5-.LFBB1
  88               	.LM5:
  89 000e 432F      		mov r20,r19
  90 0010 490F      		add r20,r25
  14:take4.c       **** 		carry = (r1 < a) | (r2 < r1);
  91               		.stabn	68,0,14,.LM6-.LFBB1
  92               	.LM6:
  93 0012 30E0      		ldi r19,lo8(0)
  94 0014 9817      		cp r25,r24
  95 0016 00F4      		brsh .L2
  96 0018 31E0      		ldi r19,lo8(1)
  97               	.L2:
  98 001a 80E0      		ldi r24,lo8(0)
  99 001c 4917      		cp r20,r25
 100 001e 00F4      		brsh .L3
GAS LISTING /tmp/ccyebhoL.s 			page 3


 101 0020 81E0      		ldi r24,lo8(1)
 102               	.L3:
 103 0022 382B      		or r19,r24
  15:take4.c       **** 		*p++ = r2;
 104               		.stabn	68,0,15,.LM7-.LFBB1
 105               	.LM7:
 106 0024 4193      		st Z+,r20
   9:take4.c       **** 	for (uint8_t i = 10; i > 0; i--) {
 107               		.stabn	68,0,9,.LM8-.LFBB1
 108               	.LM8:
 109 0026 2150      		subi r18,lo8(-(-1))
 110 0028 01F4      		brne .L4
 111               	/* epilogue start */
 112               	.LBE2:
  16:take4.c       **** 	}
  17:take4.c       **** }
 113               		.stabn	68,0,17,.LM9-.LFBB1
 114               	.LM9:
 115 002a 0895      		ret
 116               		.size	add, .-add
 117               		.stabs	"a:r(1,2)",64,0,5,24
 118               		.stabs	"r1:r(1,2)",64,0,5,25
 119               		.stabs	"r2:r(1,2)",64,0,5,20
 120               		.stabs	"carry:r(1,2)",64,0,5,19
 121               		.stabs	"p:r(0,16)=*(1,2)",64,0,6,30
 122               		.stabs	"q:r(0,17)=*(0,18)=k(1,2)",64,0,7,26
 123               		.stabn	192,0,0,.LFBB1-.LFBB1
 124               		.stabs	"i:r(1,2)",64,0,9,18
 125               		.stabn	192,0,0,.LBB2-.LFBB1
 126               		.stabn	224,0,0,.LBE2-.LFBB1
 127               		.stabn	224,0,0,.Lscope1-.LFBB1
 128               	.Lscope1:
 129               		.stabs	"",36,0,0,.Lscope1-.LFBB1
 130               		.stabd	78,0,0
 131               		.stabs	"",100,0,0,.Letext0
 132               	.Letext0:
GAS LISTING /tmp/ccyebhoL.s 			page 4


DEFINED SYMBOLS
                            *ABS*:00000000 take4.c
     /tmp/ccyebhoL.s:2      *ABS*:0000003f __SREG__
     /tmp/ccyebhoL.s:3      *ABS*:0000003e __SP_H__
     /tmp/ccyebhoL.s:4      *ABS*:0000003d __SP_L__
     /tmp/ccyebhoL.s:5      *ABS*:00000034 __CCP__
     /tmp/ccyebhoL.s:6      *ABS*:00000000 __tmp_reg__
     /tmp/ccyebhoL.s:7      *ABS*:00000001 __zero_reg__
     /tmp/ccyebhoL.s:63     .text:00000000 add

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
