This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c/20243] New: static initialization .data redundantly copied to ram prior to use.


Although functional, the limited read/write memory is needless used to redundantly store
static read-only initialization data/strings effectively eliminates this memory from having
any useful purpose.

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .data         00000062  00800100  00000afc  00000b90  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  1 .text         00000afc  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  2 .bss          0000000a  00800162  00800162  00000bf2  2**0
                  ALLOC
  3 .noinit       00000000  0080016c  0080016c  00000bf2  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  00000bf2  2**0
                  CONTENTS
  5 .stab         00001c80  00000000  00000000  00000bf4  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000daa  00000000  00000000  00002874  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 46 00 	jmp	0x8c <__ctors_end>
   4:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
   8:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
   c:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  10:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  14:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  18:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  1c:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  20:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  24:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  28:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  2c:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  30:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  34:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  38:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  3c:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  40:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  44:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  48:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  4c:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  50:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  54:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  58:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  5c:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  60:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  64:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  68:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  6c:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  70:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  74:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  78:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  7c:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  80:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  84:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>
  88:	0c 94 61 00 	jmp	0xc2 <__bad_interrupt>

0000008c <__ctors_end>:
  8c:	11 24       	eor	r1, r1
  8e:	1f be       	out	0x3f, r1	; 63
  90:	cf ef       	ldi	r28, 0xFF	; 255
  92:	d0 e1       	ldi	r29, 0x10	; 16
  94:	de bf       	out	0x3e, r29	; 62
  96:	cd bf       	out	0x3d, r28	; 61

00000098 <__do_copy_data>:
  98:	11 e0       	ldi	r17, 0x01	; 1
  9a:	a0 e0       	ldi	r26, 0x00	; 0
  9c:	b1 e0       	ldi	r27, 0x01	; 1
  9e:	ec ef       	ldi	r30, 0xFC	; 252
  a0:	fa e0       	ldi	r31, 0x0A	; 10
  a2:	02 c0       	rjmp	.+4      	; 0xa8 <.do_copy_data_start>

000000a4 <.do_copy_data_loop>:  [copies data in read-only-memory to ram needlessly]
  a4:	05 90       	lpm	r0, Z+
  a6:	0d 92       	st	X+, r0

000000a8 <.do_copy_data_start>:
  a8:	a2 36       	cpi	r26, 0x62	; 98
  aa:	b1 07       	cpc	r27, r17
  ac:	d9 f7       	brne	.-10     	; 0xa4 <.do_copy_data_loop>

000000ae <__do_clear_bss>:
  ae:	11 e0       	ldi	r17, 0x01	; 1
  b0:	a2 e6       	ldi	r26, 0x62	; 98
  b2:	b1 e0       	ldi	r27, 0x01	; 1
  b4:	01 c0       	rjmp	.+2      	; 0xb8 <.do_clear_bss_start>

000000b6 <.do_clear_bss_loop>:
  b6:	1d 92       	st	X+, r1

000000b8 <.do_clear_bss_start>:
  b8:	ac 36       	cpi	r26, 0x6C	; 108
  ba:	b1 07       	cpc	r27, r17
  bc:	e1 f7       	brne	.-8      	; 0xb6 <.do_clear_bss_loop>
  be:	0c 94 63 00 	jmp	0xc6 <main>

000000c2 <__bad_interrupt>:
  c2:	0c 94 00 00 	jmp	0x0 <__heap_end>

000000c6 <main>:

int main (void){
  c6:	cf ef       	ldi	r28, 0xFF	; 255
  c8:	d0 e1       	ldi	r29, 0x10	; 16
  ca:	de bf       	out	0x3e, r29	; 62
  cc:	cd bf       	out	0x3d, r28	; 61

   printf (" asjdfljaslkdjfkalsjdfklasdkf asldkjf;klasdjd aslkdjflkasjfklas alksjdflkjasf alsjdfklsadf");
  ce:	80 e0       	ldi	r24, 0x00	; 0
  d0:	91 e0       	ldi	r25, 0x01	; 1
  d2:	9f 93       	push	r25
  d4:	8f 93       	push	r24
  d6:	0e 94 73 00 	call	0xe6 <printf>
  da:	0f 90       	pop	r0
  dc:	0f 90       	pop	r0
   
}
  de:	80 e0       	ldi	r24, 0x00	; 0
  e0:	90 e0       	ldi	r25, 0x00	; 0
  e2:	0c 94 7d 05 	jmp	0xafa <_exit>

000000e6 <printf>:
#include <stdio.h>

int
printf(const char *fmt, ...)
{
  e6:	cf 93       	push	r28
  e8:	df 93       	push	r29
  ea:	cd b7       	in	r28, 0x3d	; 61
  ec:	de b7       	in	r29, 0x3e	; 62
  ee:	22 97       	sbiw	r28, 0x02	; 2
  f0:	0f b6       	in	r0, 0x3f	; 63
  f2:	f8 94       	cli
  f4:	de bf       	out	0x3e, r29	; 62
  f6:	0f be       	out	0x3f, r0	; 63
  f8:	cd bf       	out	0x3d, r28	; 61
  fa:	e7 e0       	ldi	r30, 0x07	; 7
  fc:	f0 e0       	ldi	r31, 0x00	; 0
  fe:	ec 0f       	add	r30, r28
 100:	fd 1f       	adc	r31, r29
 102:	61 91       	ld	r22, Z+
 104:	71 91       	ld	r23, Z+
	va_list ap;
	int i;

	va_start(ap, fmt);
 106:	e9 83       	std	Y+1, r30	; 0x01
 108:	fa 83       	std	Y+2, r31	; 0x02
	i = vfprintf(stdout, fmt, ap);
 10a:	af 01       	movw	r20, r30
 10c:	80 91 64 01 	lds	r24, 0x0164
 110:	90 91 65 01 	lds	r25, 0x0165
 114:	0e 94 95 00 	call	0x12a <vfprintf>
 118:	22 96       	adiw	r28, 0x02	; 2
 11a:	0f b6       	in	r0, 0x3f	; 63
 11c:	f8 94       	cli
 11e:	de bf       	out	0x3e, r29	; 62
 120:	0f be       	out	0x3f, r0	; 63
 122:	cd bf       	out	0x3d, r28	; 61
 124:	df 91       	pop	r29
 126:	cf 91       	pop	r28
 128:	08 95       	ret

0000012a <vfprintf>:
	va_end(ap);

	return i;
}
 12a:	2f 92       	push	r2
 12c:	3f 92       	push	r3
 12e:	4f 92       	push	r4
 130:	5f 92       	push	r5
 132:	6f 92       	push	r6
 134:	7f 92       	push	r7
 136:	8f 92       	push	r8
 138:	9f 92       	push	r9
 13a:	af 92       	push	r10
 13c:	bf 92       	push	r11
 13e:	cf 92       	push	r12
 140:	df 92       	push	r13
 142:	ef 92       	push	r14
 144:	ff 92       	push	r15
 146:	0f 93       	push	r16
 148:	1f 93       	push	r17
 14a:	cf 93       	push	r28
 14c:	df 93       	push	r29
 14e:	cd b7       	in	r28, 0x3d	; 61
 150:	de b7       	in	r29, 0x3e	; 62
 152:	62 97       	sbiw	r28, 0x12	; 18
 154:	0f b6       	in	r0, 0x3f	; 63
 156:	f8 94       	cli
 158:	de bf       	out	0x3e, r29	; 62
 15a:	0f be       	out	0x3f, r0	; 63
 15c:	cd bf       	out	0x3d, r28	; 61
 15e:	88 24       	eor	r8, r8
 160:	99 24       	eor	r9, r9
 162:	54 01       	movw	r10, r8
 164:	2c 01       	movw	r4, r24
 166:	69 8b       	std	Y+17, r22	; 0x11
 168:	7a 8b       	std	Y+18, r23	; 0x12
 16a:	3a 01       	movw	r6, r20
 16c:	fc 01       	movw	r30, r24
 16e:	16 82       	std	Z+6, r1	; 0x06
 170:	17 82       	std	Z+7, r1	; 0x07
 172:	83 81       	ldd	r24, Z+3	; 0x03
 174:	81 fd       	sbrc	r24, 1
 176:	6e c2       	rjmp	.+1244   	; 0x654 <vfprintf+0x52a>
 178:	8f ef       	ldi	r24, 0xFF	; 255
 17a:	9f ef       	ldi	r25, 0xFF	; 255
 17c:	91 c2       	rjmp	.+1314   	; 0x6a0 <vfprintf+0x576>
 17e:	29 89       	ldd	r18, Y+17	; 0x11
 180:	3a 89       	ldd	r19, Y+18	; 0x12
 182:	2f 5f       	subi	r18, 0xFF	; 255
 184:	3f 4f       	sbci	r19, 0xFF	; 255
 186:	29 8b       	std	Y+17, r18	; 0x11
 188:	3a 8b       	std	Y+18, r19	; 0x12
 18a:	c0 fe       	sbrs	r12, 0
 18c:	66 c2       	rjmp	.+1228   	; 0x65a <vfprintf+0x530>
 18e:	83 2d       	mov	r24, r3
 190:	80 53       	subi	r24, 0x30	; 48
 192:	8a 30       	cpi	r24, 0x0A	; 10
 194:	e0 f4       	brcc	.+56     	; 0x1ce <vfprintf+0xa4>
 196:	30 e3       	ldi	r19, 0x30	; 48
 198:	33 16       	cp	r3, r19
 19a:	41 f4       	brne	.+16     	; 0x1ac <vfprintf+0x82>
 19c:	8d 85       	ldd	r24, Y+13	; 0x0d
 19e:	88 23       	and	r24, r24
 1a0:	29 f4       	brne	.+10     	; 0x1ac <vfprintf+0x82>
 1a2:	c3 fc       	sbrc	r12, 3
 1a4:	03 c0       	rjmp	.+6      	; 0x1ac <vfprintf+0x82>
 1a6:	e0 e0       	ldi	r30, 0x00	; 0
 1a8:	f1 e0       	ldi	r31, 0x01	; 1
 1aa:	7b c0       	rjmp	.+246    	; 0x2a2 <vfprintf+0x178>
 1ac:	8a e0       	ldi	r24, 0x0A	; 10
 1ae:	fd 85       	ldd	r31, Y+13	; 0x0d
 1b0:	f8 02       	muls	r31, r24
 1b2:	c0 01       	movw	r24, r0
 1b4:	11 24       	eor	r1, r1
 1b6:	38 0e       	add	r3, r24
 1b8:	23 2d       	mov	r18, r3
 1ba:	20 53       	subi	r18, 0x30	; 48
 1bc:	2d 87       	std	Y+13, r18	; 0x0d
 1be:	27 ff       	sbrs	r18, 7
 1c0:	02 c0       	rjmp	.+4      	; 0x1c6 <vfprintf+0x9c>
 1c2:	3f e7       	ldi	r19, 0x7F	; 127
 1c4:	3d 87       	std	Y+13, r19	; 0x0d
 1c6:	c3 fc       	sbrc	r12, 3
 1c8:	5a c2       	rjmp	.+1204   	; 0x67e <vfprintf+0x554>
 1ca:	2d 84       	ldd	r2, Y+13	; 0x0d
 1cc:	58 c2       	rjmp	.+1200   	; 0x67e <vfprintf+0x554>
 1ce:	c6 01       	movw	r24, r12
 1d0:	b3 e0       	ldi	r27, 0x03	; 3
 1d2:	96 95       	lsr	r25
 1d4:	87 95       	ror	r24
 1d6:	ba 95       	dec	r27
 1d8:	e1 f7       	brne	.-8      	; 0x1d2 <vfprintf+0xa8>
 1da:	81 70       	andi	r24, 0x01	; 1
 1dc:	90 70       	andi	r25, 0x00	; 0
 1de:	28 2f       	mov	r18, r24
 1e0:	88 23       	and	r24, r24
 1e2:	29 f0       	breq	.+10     	; 0x1ee <vfprintf+0xc4>
 1e4:	8d 85       	ldd	r24, Y+13	; 0x0d
 1e6:	88 23       	and	r24, r24
 1e8:	11 f4       	brne	.+4      	; 0x1ee <vfprintf+0xc4>
 1ea:	91 e0       	ldi	r25, 0x01	; 1
 1ec:	9d 87       	std	Y+13, r25	; 0x0d
 1ee:	83 2d       	mov	r24, r3
 1f0:	99 27       	eor	r25, r25
 1f2:	87 fd       	sbrc	r24, 7
 1f4:	90 95       	com	r25
 1f6:	e7 e6       	ldi	r30, 0x67	; 103
 1f8:	e3 15       	cp	r30, r3
 1fa:	64 f1       	brlt	.+88     	; 0x254 <vfprintf+0x12a>
 1fc:	f5 e6       	ldi	r31, 0x65	; 101
 1fe:	3f 16       	cp	r3, r31
 200:	0c f0       	brlt	.+2      	; 0x204 <vfprintf+0xda>
 202:	65 c0       	rjmp	.+202    	; 0x2ce <vfprintf+0x1a4>
 204:	33 e5       	ldi	r19, 0x53	; 83
 206:	33 16       	cp	r3, r19
 208:	09 f4       	brne	.+2      	; 0x20c <vfprintf+0xe2>
 20a:	8f c0       	rjmp	.+286    	; 0x32a <vfprintf+0x200>
 20c:	33 15       	cp	r19, r3
 20e:	b4 f0       	brlt	.+44     	; 0x23c <vfprintf+0x112>
 210:	eb e2       	ldi	r30, 0x2B	; 43
 212:	3e 16       	cp	r3, r30
 214:	09 f4       	brne	.+2      	; 0x218 <vfprintf+0xee>
 216:	3f c0       	rjmp	.+126    	; 0x296 <vfprintf+0x16c>
 218:	e3 15       	cp	r30, r3
 21a:	44 f0       	brlt	.+16     	; 0x22c <vfprintf+0x102>
 21c:	f0 e2       	ldi	r31, 0x20	; 32
 21e:	3f 16       	cp	r3, r31
 220:	f1 f1       	breq	.+124    	; 0x29e <vfprintf+0x174>
 222:	23 e2       	ldi	r18, 0x23	; 35
 224:	32 16       	cp	r3, r18
 226:	09 f0       	breq	.+2      	; 0x22a <vfprintf+0x100>
 228:	12 c2       	rjmp	.+1060   	; 0x64e <vfprintf+0x524>
 22a:	41 c0       	rjmp	.+130    	; 0x2ae <vfprintf+0x184>
 22c:	3d e2       	ldi	r19, 0x2D	; 45
 22e:	33 16       	cp	r3, r19
 230:	d9 f1       	breq	.+118    	; 0x2a8 <vfprintf+0x17e>
 232:	ee e2       	ldi	r30, 0x2E	; 46
 234:	3e 16       	cp	r3, r30
 236:	09 f0       	breq	.+2      	; 0x23a <vfprintf+0x110>
 238:	0a c2       	rjmp	.+1044   	; 0x64e <vfprintf+0x524>
 23a:	3e c0       	rjmp	.+124    	; 0x2b8 <vfprintf+0x18e>
 23c:	f3 e6       	ldi	r31, 0x63	; 99
 23e:	3f 16       	cp	r3, r31
 240:	09 f4       	brne	.+2      	; 0x244 <vfprintf+0x11a>
 242:	4b c0       	rjmp	.+150    	; 0x2da <vfprintf+0x1b0>
 244:	f3 15       	cp	r31, r3
 246:	0c f4       	brge	.+2      	; 0x24a <vfprintf+0x120>
 248:	8a c0       	rjmp	.+276    	; 0x35e <vfprintf+0x234>
 24a:	28 e5       	ldi	r18, 0x58	; 88
 24c:	32 16       	cp	r3, r18
 24e:	09 f0       	breq	.+2      	; 0x252 <vfprintf+0x128>
 250:	fe c1       	rjmp	.+1020   	; 0x64e <vfprintf+0x524>
 252:	b5 c0       	rjmp	.+362    	; 0x3be <vfprintf+0x294>
 254:	30 e7       	ldi	r19, 0x70	; 112
 256:	33 16       	cp	r3, r19
 258:	09 f4       	brne	.+2      	; 0x25c <vfprintf+0x132>
 25a:	ab c0       	rjmp	.+342    	; 0x3b2 <vfprintf+0x288>
 25c:	33 15       	cp	r19, r3
 25e:	5c f0       	brlt	.+22     	; 0x276 <vfprintf+0x14c>
 260:	ec e6       	ldi	r30, 0x6C	; 108
 262:	3e 16       	cp	r3, r30
 264:	79 f1       	breq	.+94     	; 0x2c4 <vfprintf+0x19a>
 266:	ff e6       	ldi	r31, 0x6F	; 111
 268:	3f 16       	cp	r3, r31
 26a:	91 f0       	breq	.+36     	; 0x290 <vfprintf+0x166>
 26c:	29 e6       	ldi	r18, 0x69	; 105
 26e:	32 16       	cp	r3, r18
 270:	09 f0       	breq	.+2      	; 0x274 <vfprintf+0x14a>
 272:	ed c1       	rjmp	.+986    	; 0x64e <vfprintf+0x524>
 274:	74 c0       	rjmp	.+232    	; 0x35e <vfprintf+0x234>
 276:	35 e7       	ldi	r19, 0x75	; 117
 278:	33 16       	cp	r3, r19
 27a:	09 f4       	brne	.+2      	; 0x27e <vfprintf+0x154>
 27c:	a2 c0       	rjmp	.+324    	; 0x3c2 <vfprintf+0x298>
 27e:	e8 e7       	ldi	r30, 0x78	; 120
 280:	3e 16       	cp	r3, r30
 282:	09 f4       	brne	.+2      	; 0x286 <vfprintf+0x15c>
 284:	9c c0       	rjmp	.+312    	; 0x3be <vfprintf+0x294>
 286:	f3 e7       	ldi	r31, 0x73	; 115
 288:	3f 16       	cp	r3, r31
 28a:	09 f0       	breq	.+2      	; 0x28e <vfprintf+0x164>
 28c:	e0 c1       	rjmp	.+960    	; 0x64e <vfprintf+0x524>
 28e:	2d c0       	rjmp	.+90     	; 0x2ea <vfprintf+0x1c0>
 290:	28 e0       	ldi	r18, 0x08	; 8
 292:	28 8b       	std	Y+16, r18	; 0x10
 294:	96 c0       	rjmp	.+300    	; 0x3c2 <vfprintf+0x298>
 296:	80 e1       	ldi	r24, 0x10	; 16
 298:	90 e0       	ldi	r25, 0x00	; 0
 29a:	c8 2a       	or	r12, r24
 29c:	d9 2a       	or	r13, r25
 29e:	e0 e2       	ldi	r30, 0x20	; 32
 2a0:	f0 e0       	ldi	r31, 0x00	; 0
 2a2:	ce 2a       	or	r12, r30
 2a4:	df 2a       	or	r13, r31
 2a6:	eb c1       	rjmp	.+982    	; 0x67e <vfprintf+0x554>
 2a8:	20 e8       	ldi	r18, 0x80	; 128
 2aa:	30 e0       	ldi	r19, 0x00	; 0
 2ac:	0d c0       	rjmp	.+26     	; 0x2c8 <vfprintf+0x19e>
 2ae:	80 e4       	ldi	r24, 0x40	; 64
 2b0:	90 e0       	ldi	r25, 0x00	; 0
 2b2:	c8 2a       	or	r12, r24
 2b4:	d9 2a       	or	r13, r25
 2b6:	e3 c1       	rjmp	.+966    	; 0x67e <vfprintf+0x554>
 2b8:	e8 e0       	ldi	r30, 0x08	; 8
 2ba:	f0 e0       	ldi	r31, 0x00	; 0
 2bc:	ce 2a       	or	r12, r30
 2be:	df 2a       	or	r13, r31
 2c0:	1d 86       	std	Y+13, r1	; 0x0d
 2c2:	dd c1       	rjmp	.+954    	; 0x67e <vfprintf+0x554>
 2c4:	24 e0       	ldi	r18, 0x04	; 4
 2c6:	30 e0       	ldi	r19, 0x00	; 0
 2c8:	c2 2a       	or	r12, r18
 2ca:	d3 2a       	or	r13, r19
 2cc:	d8 c1       	rjmp	.+944    	; 0x67e <vfprintf+0x554>
 2ce:	af e3       	ldi	r26, 0x3F	; 63
 2d0:	8a 2e       	mov	r8, r26
 2d2:	2a 94       	dec	r2
 2d4:	f3 e6       	ldi	r31, 0x63	; 99
 2d6:	3f 2e       	mov	r3, r31
 2d8:	44 c1       	rjmp	.+648    	; 0x562 <vfprintf+0x438>
 2da:	f3 01       	movw	r30, r6
 2dc:	80 80       	ld	r8, Z
 2de:	2a 94       	dec	r2
 2e0:	22 e0       	ldi	r18, 0x02	; 2
 2e2:	30 e0       	ldi	r19, 0x00	; 0
 2e4:	62 0e       	add	r6, r18
 2e6:	73 1e       	adc	r7, r19
 2e8:	3c c1       	rjmp	.+632    	; 0x562 <vfprintf+0x438>
 2ea:	83 01       	movw	r16, r6
 2ec:	0e 5f       	subi	r16, 0xFE	; 254
 2ee:	1f 4f       	sbci	r17, 0xFF	; 255
 2f0:	f3 01       	movw	r30, r6
 2f2:	a0 81       	ld	r26, Z
 2f4:	b1 81       	ldd	r27, Z+1	; 0x01
 2f6:	4d 01       	movw	r8, r26
 2f8:	22 23       	and	r18, r18
 2fa:	51 f0       	breq	.+20     	; 0x310 <vfprintf+0x1e6>
 2fc:	fd 85       	ldd	r31, Y+13	; 0x0d
 2fe:	6f 2f       	mov	r22, r31
 300:	77 27       	eor	r23, r23
 302:	67 fd       	sbrc	r22, 7
 304:	70 95       	com	r23
 306:	cd 01       	movw	r24, r26
 308:	0e 94 f1 03 	call	0x7e2 <strnlen>
 30c:	88 8b       	std	Y+16, r24	; 0x10
 30e:	07 c0       	rjmp	.+14     	; 0x31e <vfprintf+0x1f4>
 310:	fd 01       	movw	r30, r26
 312:	01 90       	ld	r0, Z+
 314:	00 20       	and	r0, r0
 316:	e9 f7       	brne	.-6      	; 0x312 <vfprintf+0x1e8>
 318:	31 97       	sbiw	r30, 0x01	; 1
 31a:	ea 1b       	sub	r30, r26
 31c:	e8 8b       	std	Y+16, r30	; 0x10
 31e:	28 89       	ldd	r18, Y+16	; 0x10
 320:	22 1a       	sub	r2, r18
 322:	38 01       	movw	r6, r16
 324:	e3 e7       	ldi	r30, 0x73	; 115
 326:	3e 2e       	mov	r3, r30
 328:	1c c1       	rjmp	.+568    	; 0x562 <vfprintf+0x438>
 32a:	83 01       	movw	r16, r6
 32c:	0e 5f       	subi	r16, 0xFE	; 254
 32e:	1f 4f       	sbci	r17, 0xFF	; 255
 330:	f3 01       	movw	r30, r6
 332:	80 81       	ld	r24, Z
 334:	91 81       	ldd	r25, Z+1	; 0x01
 336:	4c 01       	movw	r8, r24
 338:	22 23       	and	r18, r18
 33a:	41 f0       	breq	.+16     	; 0x34c <vfprintf+0x222>
 33c:	fd 85       	ldd	r31, Y+13	; 0x0d
 33e:	6f 2f       	mov	r22, r31
 340:	77 27       	eor	r23, r23
 342:	67 fd       	sbrc	r22, 7
 344:	70 95       	com	r23
 346:	0e 94 fc 03 	call	0x7f8 <strnlen_P>
 34a:	02 c0       	rjmp	.+4      	; 0x350 <vfprintf+0x226>
 34c:	0e 94 e8 03 	call	0x7d0 <strlen_P>
 350:	88 8b       	std	Y+16, r24	; 0x10
 352:	28 89       	ldd	r18, Y+16	; 0x10
 354:	22 1a       	sub	r2, r18
 356:	38 01       	movw	r6, r16
 358:	73 e5       	ldi	r23, 0x53	; 83
 35a:	37 2e       	mov	r3, r23
 35c:	02 c1       	rjmp	.+516    	; 0x562 <vfprintf+0x438>
 35e:	c2 fe       	sbrs	r12, 2
 360:	08 c0       	rjmp	.+16     	; 0x372 <vfprintf+0x248>
 362:	f3 01       	movw	r30, r6
 364:	80 81       	ld	r24, Z
 366:	91 81       	ldd	r25, Z+1	; 0x01
 368:	a2 81       	ldd	r26, Z+2	; 0x02
 36a:	b3 81       	ldd	r27, Z+3	; 0x03
 36c:	24 e0       	ldi	r18, 0x04	; 4
 36e:	30 e0       	ldi	r19, 0x00	; 0
 370:	09 c0       	rjmp	.+18     	; 0x384 <vfprintf+0x25a>
 372:	f3 01       	movw	r30, r6
 374:	80 81       	ld	r24, Z
 376:	91 81       	ldd	r25, Z+1	; 0x01
 378:	aa 27       	eor	r26, r26
 37a:	97 fd       	sbrc	r25, 7
 37c:	a0 95       	com	r26
 37e:	ba 2f       	mov	r27, r26
 380:	22 e0       	ldi	r18, 0x02	; 2
 382:	30 e0       	ldi	r19, 0x00	; 0
 384:	62 0e       	add	r6, r18
 386:	73 1e       	adc	r7, r19
 388:	4c 01       	movw	r8, r24
 38a:	5d 01       	movw	r10, r26
 38c:	b7 ff       	sbrs	r27, 7
 38e:	0c c0       	rjmp	.+24     	; 0x3a8 <vfprintf+0x27e>
 390:	82 e0       	ldi	r24, 0x02	; 2
 392:	90 e0       	ldi	r25, 0x00	; 0
 394:	c8 2a       	or	r12, r24
 396:	d9 2a       	or	r13, r25
 398:	b0 94       	com	r11
 39a:	a0 94       	com	r10
 39c:	90 94       	com	r9
 39e:	80 94       	com	r8
 3a0:	81 1c       	adc	r8, r1
 3a2:	91 1c       	adc	r9, r1
 3a4:	a1 1c       	adc	r10, r1
 3a6:	b1 1c       	adc	r11, r1
 3a8:	ef eb       	ldi	r30, 0xBF	; 191
 3aa:	ff ef       	ldi	r31, 0xFF	; 255
 3ac:	ce 22       	and	r12, r30
 3ae:	df 22       	and	r13, r31
 3b0:	21 c0       	rjmp	.+66     	; 0x3f4 <vfprintf+0x2ca>
 3b2:	20 e4       	ldi	r18, 0x40	; 64
 3b4:	30 e0       	ldi	r19, 0x00	; 0
 3b6:	c2 2a       	or	r12, r18
 3b8:	d3 2a       	or	r13, r19
 3ba:	68 e7       	ldi	r22, 0x78	; 120
 3bc:	36 2e       	mov	r3, r22
 3be:	30 e1       	ldi	r19, 0x10	; 16
 3c0:	38 8b       	std	Y+16, r19	; 0x10
 3c2:	c2 fe       	sbrs	r12, 2
 3c4:	08 c0       	rjmp	.+16     	; 0x3d6 <vfprintf+0x2ac>
 3c6:	f3 01       	movw	r30, r6
 3c8:	80 81       	ld	r24, Z
 3ca:	91 81       	ldd	r25, Z+1	; 0x01
 3cc:	a2 81       	ldd	r26, Z+2	; 0x02
 3ce:	b3 81       	ldd	r27, Z+3	; 0x03
 3d0:	24 e0       	ldi	r18, 0x04	; 4
 3d2:	30 e0       	ldi	r19, 0x00	; 0
 3d4:	07 c0       	rjmp	.+14     	; 0x3e4 <vfprintf+0x2ba>
 3d6:	f3 01       	movw	r30, r6
 3d8:	80 81       	ld	r24, Z
 3da:	91 81       	ldd	r25, Z+1	; 0x01
 3dc:	aa 27       	eor	r26, r26
 3de:	bb 27       	eor	r27, r27
 3e0:	22 e0       	ldi	r18, 0x02	; 2
 3e2:	30 e0       	ldi	r19, 0x00	; 0
 3e4:	62 0e       	add	r6, r18
 3e6:	73 1e       	adc	r7, r19
 3e8:	4c 01       	movw	r8, r24
 3ea:	5d 01       	movw	r10, r26
 3ec:	8f ec       	ldi	r24, 0xCF	; 207
 3ee:	9f ef       	ldi	r25, 0xFF	; 255
 3f0:	c8 22       	and	r12, r24
 3f2:	d9 22       	and	r13, r25
 3f4:	85 01       	movw	r16, r10
 3f6:	74 01       	movw	r14, r8
 3f8:	fe 01       	movw	r30, r28
 3fa:	31 96       	adiw	r30, 0x01	; 1
 3fc:	ee 87       	std	Y+14, r30	; 0x0e
 3fe:	ff 87       	std	Y+15, r31	; 0x0f
 400:	f8 89       	ldd	r31, Y+16	; 0x10
 402:	8f 2e       	mov	r8, r31
 404:	99 24       	eor	r9, r9
 406:	aa 24       	eor	r10, r10
 408:	bb 24       	eor	r11, r11
 40a:	c8 01       	movw	r24, r16
 40c:	b7 01       	movw	r22, r14
 40e:	a5 01       	movw	r20, r10
 410:	94 01       	movw	r18, r8
 412:	0e 94 5b 05 	call	0xab6 <__udivmodsi4>
 416:	6a 30       	cpi	r22, 0x0A	; 10
 418:	1c f0       	brlt	.+6      	; 0x420 <vfprintf+0x2f6>
 41a:	63 0d       	add	r22, r3
 41c:	61 52       	subi	r22, 0x21	; 33
 41e:	01 c0       	rjmp	.+2      	; 0x422 <vfprintf+0x2f8>
 420:	60 5d       	subi	r22, 0xD0	; 208
 422:	ee 85       	ldd	r30, Y+14	; 0x0e
 424:	ff 85       	ldd	r31, Y+15	; 0x0f
 426:	61 93       	st	Z+, r22
 428:	ee 87       	std	Y+14, r30	; 0x0e
 42a:	ff 87       	std	Y+15, r31	; 0x0f
 42c:	c8 01       	movw	r24, r16
 42e:	b7 01       	movw	r22, r14
 430:	a5 01       	movw	r20, r10
 432:	94 01       	movw	r18, r8
 434:	0e 94 5b 05 	call	0xab6 <__udivmodsi4>
 438:	79 01       	movw	r14, r18
 43a:	8a 01       	movw	r16, r20
 43c:	21 15       	cp	r18, r1
 43e:	31 05       	cpc	r19, r1
 440:	41 05       	cpc	r20, r1
 442:	51 05       	cpc	r21, r1
 444:	11 f7       	brne	.-60     	; 0x40a <vfprintf+0x2e0>
 446:	88 24       	eor	r8, r8
 448:	99 24       	eor	r9, r9
 44a:	54 01       	movw	r10, r8
 44c:	ce 01       	movw	r24, r28
 44e:	01 96       	adiw	r24, 0x01	; 1
 450:	4e 85       	ldd	r20, Y+14	; 0x0e
 452:	48 1b       	sub	r20, r24
 454:	84 2e       	mov	r8, r20
 456:	c6 01       	movw	r24, r12
 458:	82 73       	andi	r24, 0x32	; 50
 45a:	90 70       	andi	r25, 0x00	; 0
 45c:	89 2b       	or	r24, r25
 45e:	09 f0       	breq	.+2      	; 0x462 <vfprintf+0x338>
 460:	2a 94       	dec	r2
 462:	c6 fe       	sbrs	r12, 6
 464:	07 c0       	rjmp	.+14     	; 0x474 <vfprintf+0x34a>
 466:	f8 89       	ldd	r31, Y+16	; 0x10
 468:	f0 31       	cpi	r31, 0x10	; 16
 46a:	11 f4       	brne	.+4      	; 0x470 <vfprintf+0x346>
 46c:	82 e0       	ldi	r24, 0x02	; 2
 46e:	01 c0       	rjmp	.+2      	; 0x472 <vfprintf+0x348>
 470:	81 e0       	ldi	r24, 0x01	; 1
 472:	28 1a       	sub	r2, r24
 474:	c3 fe       	sbrs	r12, 3
 476:	12 c0       	rjmp	.+36     	; 0x49c <vfprintf+0x372>
 478:	8d 85       	ldd	r24, Y+13	; 0x0d
 47a:	28 2f       	mov	r18, r24
 47c:	33 27       	eor	r19, r19
 47e:	27 fd       	sbrc	r18, 7
 480:	30 95       	com	r19
 482:	84 2f       	mov	r24, r20
 484:	99 27       	eor	r25, r25
 486:	82 17       	cp	r24, r18
 488:	93 07       	cpc	r25, r19
 48a:	2c f0       	brlt	.+10     	; 0x496 <vfprintf+0x36c>
 48c:	e7 ef       	ldi	r30, 0xF7	; 247
 48e:	ff ef       	ldi	r31, 0xFF	; 255
 490:	ce 22       	and	r12, r30
 492:	df 22       	and	r13, r31
 494:	03 c0       	rjmp	.+6      	; 0x49c <vfprintf+0x372>
 496:	fd 85       	ldd	r31, Y+13	; 0x0d
 498:	f4 1b       	sub	r31, r20
 49a:	fd 87       	std	Y+13, r31	; 0x0d
 49c:	c6 01       	movw	r24, r12
 49e:	53 e0       	ldi	r21, 0x03	; 3
 4a0:	96 95       	lsr	r25
 4a2:	87 95       	ror	r24
 4a4:	5a 95       	dec	r21
 4a6:	e1 f7       	brne	.-8      	; 0x4a0 <vfprintf+0x376>
 4a8:	81 70       	andi	r24, 0x01	; 1
 4aa:	90 70       	andi	r25, 0x00	; 0
 4ac:	08 2f       	mov	r16, r24
 4ae:	88 23       	and	r24, r24
 4b0:	19 f0       	breq	.+6      	; 0x4b8 <vfprintf+0x38e>
 4b2:	2d 85       	ldd	r18, Y+13	; 0x0d
 4b4:	22 1a       	sub	r2, r18
 4b6:	01 c0       	rjmp	.+2      	; 0x4ba <vfprintf+0x390>
 4b8:	24 1a       	sub	r2, r20
 4ba:	c6 01       	movw	r24, r12
 4bc:	80 78       	andi	r24, 0x80	; 128
 4be:	91 70       	andi	r25, 0x01	; 1
 4c0:	89 2b       	or	r24, r25
 4c2:	69 f4       	brne	.+26     	; 0x4de <vfprintf+0x3b4>
 4c4:	82 2d       	mov	r24, r2
 4c6:	06 c0       	rjmp	.+12     	; 0x4d4 <vfprintf+0x3aa>
 4c8:	b2 01       	movw	r22, r4
 4ca:	80 e2       	ldi	r24, 0x20	; 32
 4cc:	90 e0       	ldi	r25, 0x00	; 0
 4ce:	0e 94 b4 03 	call	0x768 <fputc>
 4d2:	81 2f       	mov	r24, r17
 4d4:	18 2f       	mov	r17, r24
 4d6:	11 50       	subi	r17, 0x01	; 1
 4d8:	18 16       	cp	r1, r24
 4da:	b4 f3       	brlt	.-20     	; 0x4c8 <vfprintf+0x39e>
 4dc:	21 2e       	mov	r2, r17
 4de:	c1 fe       	sbrs	r12, 1
 4e0:	04 c0       	rjmp	.+8      	; 0x4ea <vfprintf+0x3c0>
 4e2:	b2 01       	movw	r22, r4
 4e4:	8d e2       	ldi	r24, 0x2D	; 45
 4e6:	90 e0       	ldi	r25, 0x00	; 0
 4e8:	0b c0       	rjmp	.+22     	; 0x500 <vfprintf+0x3d6>
 4ea:	c4 fe       	sbrs	r12, 4
 4ec:	04 c0       	rjmp	.+8      	; 0x4f6 <vfprintf+0x3cc>
 4ee:	b2 01       	movw	r22, r4
 4f0:	8b e2       	ldi	r24, 0x2B	; 43
 4f2:	90 e0       	ldi	r25, 0x00	; 0
 4f4:	05 c0       	rjmp	.+10     	; 0x500 <vfprintf+0x3d6>
 4f6:	c5 fe       	sbrs	r12, 5
 4f8:	05 c0       	rjmp	.+10     	; 0x504 <vfprintf+0x3da>
 4fa:	b2 01       	movw	r22, r4
 4fc:	80 e2       	ldi	r24, 0x20	; 32
 4fe:	90 e0       	ldi	r25, 0x00	; 0
 500:	0e 94 b4 03 	call	0x768 <fputc>
 504:	c6 fe       	sbrs	r12, 6
 506:	0f c0       	rjmp	.+30     	; 0x526 <vfprintf+0x3fc>
 508:	b2 01       	movw	r22, r4
 50a:	80 e3       	ldi	r24, 0x30	; 48
 50c:	90 e0       	ldi	r25, 0x00	; 0
 50e:	0e 94 b4 03 	call	0x768 <fputc>
 512:	38 89       	ldd	r19, Y+16	; 0x10
 514:	30 31       	cpi	r19, 0x10	; 16
 516:	39 f4       	brne	.+14     	; 0x526 <vfprintf+0x3fc>
 518:	b2 01       	movw	r22, r4
 51a:	83 2d       	mov	r24, r3
 51c:	99 27       	eor	r25, r25
 51e:	87 fd       	sbrc	r24, 7
 520:	90 95       	com	r25
 522:	0e 94 b4 03 	call	0x768 <fputc>
 526:	d0 fe       	sbrs	r13, 0
 528:	0d c0       	rjmp	.+26     	; 0x544 <vfprintf+0x41a>
 52a:	82 2d       	mov	r24, r2
 52c:	06 c0       	rjmp	.+12     	; 0x53a <vfprintf+0x410>
 52e:	b2 01       	movw	r22, r4
 530:	80 e3       	ldi	r24, 0x30	; 48
 532:	90 e0       	ldi	r25, 0x00	; 0
 534:	0e 94 b4 03 	call	0x768 <fputc>
 538:	81 2f       	mov	r24, r17
 53a:	18 2f       	mov	r17, r24
 53c:	11 50       	subi	r17, 0x01	; 1
 53e:	18 16       	cp	r1, r24
 540:	b4 f3       	brlt	.-20     	; 0x52e <vfprintf+0x404>
 542:	21 2e       	mov	r2, r17
 544:	00 23       	and	r16, r16
 546:	69 f0       	breq	.+26     	; 0x562 <vfprintf+0x438>
 548:	2d 85       	ldd	r18, Y+13	; 0x0d
 54a:	06 c0       	rjmp	.+12     	; 0x558 <vfprintf+0x42e>
 54c:	b2 01       	movw	r22, r4
 54e:	80 e3       	ldi	r24, 0x30	; 48
 550:	90 e0       	ldi	r25, 0x00	; 0
 552:	0e 94 b4 03 	call	0x768 <fputc>
 556:	21 2f       	mov	r18, r17
 558:	12 2f       	mov	r17, r18
 55a:	11 50       	subi	r17, 0x01	; 1
 55c:	12 16       	cp	r1, r18
 55e:	b4 f3       	brlt	.-20     	; 0x54c <vfprintf+0x422>
 560:	1d 87       	std	Y+13, r17	; 0x0d
 562:	c6 01       	movw	r24, r12
 564:	88 0f       	add	r24, r24
 566:	89 2f       	mov	r24, r25
 568:	88 1f       	adc	r24, r24
 56a:	99 0b       	sbc	r25, r25
 56c:	91 95       	neg	r25
 56e:	21 e0       	ldi	r18, 0x01	; 1
 570:	c2 2e       	mov	r12, r18
 572:	d1 2c       	mov	r13, r1
 574:	c8 22       	and	r12, r24
 576:	d9 22       	and	r13, r25
 578:	80 fd       	sbrc	r24, 0
 57a:	0d c0       	rjmp	.+26     	; 0x596 <vfprintf+0x46c>
 57c:	82 2d       	mov	r24, r2
 57e:	06 c0       	rjmp	.+12     	; 0x58c <vfprintf+0x462>
 580:	b2 01       	movw	r22, r4
 582:	80 e2       	ldi	r24, 0x20	; 32
 584:	90 e0       	ldi	r25, 0x00	; 0
 586:	0e 94 b4 03 	call	0x768 <fputc>
 58a:	81 2f       	mov	r24, r17
 58c:	18 2f       	mov	r17, r24
 58e:	11 50       	subi	r17, 0x01	; 1
 590:	18 16       	cp	r1, r24
 592:	b4 f3       	brlt	.-20     	; 0x580 <vfprintf+0x456>
 594:	21 2e       	mov	r2, r17
 596:	83 e6       	ldi	r24, 0x63	; 99
 598:	38 16       	cp	r3, r24
 59a:	41 f4       	brne	.+16     	; 0x5ac <vfprintf+0x482>
 59c:	b2 01       	movw	r22, r4
 59e:	88 2d       	mov	r24, r8
 5a0:	99 27       	eor	r25, r25
 5a2:	87 fd       	sbrc	r24, 7
 5a4:	90 95       	com	r25
 5a6:	0e 94 b4 03 	call	0x768 <fputc>
 5aa:	41 c0       	rjmp	.+130    	; 0x62e <vfprintf+0x504>
 5ac:	93 e7       	ldi	r25, 0x73	; 115
 5ae:	39 16       	cp	r3, r25
 5b0:	91 f4       	brne	.+36     	; 0x5d6 <vfprintf+0x4ac>
 5b2:	84 01       	movw	r16, r8
 5b4:	ff 24       	eor	r15, r15
 5b6:	0a c0       	rjmp	.+20     	; 0x5cc <vfprintf+0x4a2>
 5b8:	f8 01       	movw	r30, r16
 5ba:	81 91       	ld	r24, Z+
 5bc:	8f 01       	movw	r16, r30
 5be:	b2 01       	movw	r22, r4
 5c0:	99 27       	eor	r25, r25
 5c2:	87 fd       	sbrc	r24, 7
 5c4:	90 95       	com	r25
 5c6:	0e 94 b4 03 	call	0x768 <fputc>
 5ca:	fa 94       	dec	r15
 5cc:	88 89       	ldd	r24, Y+16	; 0x10
 5ce:	81 95       	neg	r24
 5d0:	f8 16       	cp	r15, r24
 5d2:	91 f7       	brne	.-28     	; 0x5b8 <vfprintf+0x48e>
 5d4:	16 c0       	rjmp	.+44     	; 0x602 <vfprintf+0x4d8>
 5d6:	23 e5       	ldi	r18, 0x53	; 83
 5d8:	32 16       	cp	r3, r18
 5da:	19 f0       	breq	.+6      	; 0x5e2 <vfprintf+0x4b8>
 5dc:	0e 85       	ldd	r16, Y+14	; 0x0e
 5de:	1f 85       	ldd	r17, Y+15	; 0x0f
 5e0:	1f c0       	rjmp	.+62     	; 0x620 <vfprintf+0x4f6>
 5e2:	84 01       	movw	r16, r8
 5e4:	ff 24       	eor	r15, r15
 5e6:	09 c0       	rjmp	.+18     	; 0x5fa <vfprintf+0x4d0>
 5e8:	f8 01       	movw	r30, r16
 5ea:	84 91       	lpm	r24, Z
 5ec:	b2 01       	movw	r22, r4
 5ee:	99 27       	eor	r25, r25
 5f0:	0e 94 b4 03 	call	0x768 <fputc>
 5f4:	0f 5f       	subi	r16, 0xFF	; 255
 5f6:	1f 4f       	sbci	r17, 0xFF	; 255
 5f8:	fa 94       	dec	r15
 5fa:	88 89       	ldd	r24, Y+16	; 0x10
 5fc:	81 95       	neg	r24
 5fe:	f8 16       	cp	r15, r24
 600:	99 f7       	brne	.-26     	; 0x5e8 <vfprintf+0x4be>
 602:	f8 89       	ldd	r31, Y+16	; 0x10
 604:	ff 0d       	add	r31, r15
 606:	f1 50       	subi	r31, 0x01	; 1
 608:	f8 8b       	std	Y+16, r31	; 0x10
 60a:	48 01       	movw	r8, r16
 60c:	10 c0       	rjmp	.+32     	; 0x62e <vfprintf+0x504>
 60e:	f8 01       	movw	r30, r16
 610:	82 91       	ld	r24, -Z
 612:	8f 01       	movw	r16, r30
 614:	b2 01       	movw	r22, r4
 616:	99 27       	eor	r25, r25
 618:	87 fd       	sbrc	r24, 7
 61a:	90 95       	com	r25
 61c:	0e 94 b4 03 	call	0x768 <fputc>
 620:	ce 01       	movw	r24, r28
 622:	01 96       	adiw	r24, 0x01	; 1
 624:	08 17       	cp	r16, r24
 626:	19 07       	cpc	r17, r25
 628:	91 f7       	brne	.-28     	; 0x60e <vfprintf+0x4e4>
 62a:	0e 87       	std	Y+14, r16	; 0x0e
 62c:	1f 87       	std	Y+15, r17	; 0x0f
 62e:	cd 28       	or	r12, r13
 630:	89 f0       	breq	.+34     	; 0x654 <vfprintf+0x52a>
 632:	82 2d       	mov	r24, r2
 634:	06 c0       	rjmp	.+12     	; 0x642 <vfprintf+0x518>
 636:	b2 01       	movw	r22, r4
 638:	80 e2       	ldi	r24, 0x20	; 32
 63a:	90 e0       	ldi	r25, 0x00	; 0
 63c:	0e 94 b4 03 	call	0x768 <fputc>
 640:	81 2f       	mov	r24, r17
 642:	18 2f       	mov	r17, r24
 644:	11 50       	subi	r17, 0x01	; 1
 646:	18 16       	cp	r1, r24
 648:	b4 f3       	brlt	.-20     	; 0x636 <vfprintf+0x50c>
 64a:	21 2e       	mov	r2, r17
 64c:	03 c0       	rjmp	.+6      	; 0x654 <vfprintf+0x52a>
 64e:	b2 01       	movw	r22, r4
 650:	0e 94 b4 03 	call	0x768 <fputc>
 654:	cc 24       	eor	r12, r12
 656:	dd 24       	eor	r13, r13
 658:	12 c0       	rjmp	.+36     	; 0x67e <vfprintf+0x554>
 65a:	f5 e2       	ldi	r31, 0x25	; 37
 65c:	3f 16       	cp	r3, r31
 65e:	41 f4       	brne	.+16     	; 0x670 <vfprintf+0x546>
 660:	81 e0       	ldi	r24, 0x01	; 1
 662:	c8 2e       	mov	r12, r24
 664:	d1 2c       	mov	r13, r1
 666:	1d 86       	std	Y+13, r1	; 0x0d
 668:	22 24       	eor	r2, r2
 66a:	2a e0       	ldi	r18, 0x0A	; 10
 66c:	28 8b       	std	Y+16, r18	; 0x10
 66e:	07 c0       	rjmp	.+14     	; 0x67e <vfprintf+0x554>
 670:	b2 01       	movw	r22, r4
 672:	83 2d       	mov	r24, r3
 674:	99 27       	eor	r25, r25
 676:	87 fd       	sbrc	r24, 7
 678:	90 95       	com	r25
 67a:	0e 94 b4 03 	call	0x768 <fputc>
 67e:	f2 01       	movw	r30, r4
 680:	83 81       	ldd	r24, Z+3	; 0x03
 682:	83 ff       	sbrs	r24, 3
 684:	04 c0       	rjmp	.+8      	; 0x68e <vfprintf+0x564>
 686:	e9 89       	ldd	r30, Y+17	; 0x11
 688:	fa 89       	ldd	r31, Y+18	; 0x12
 68a:	34 90       	lpm	r3, Z
 68c:	03 c0       	rjmp	.+6      	; 0x694 <vfprintf+0x56a>
 68e:	e9 89       	ldd	r30, Y+17	; 0x11
 690:	fa 89       	ldd	r31, Y+18	; 0x12
 692:	30 80       	ld	r3, Z
 694:	33 20       	and	r3, r3
 696:	09 f0       	breq	.+2      	; 0x69a <vfprintf+0x570>
 698:	72 cd       	rjmp	.-1308   	; 0x17e <vfprintf+0x54>
 69a:	f2 01       	movw	r30, r4
 69c:	86 81       	ldd	r24, Z+6	; 0x06
 69e:	97 81       	ldd	r25, Z+7	; 0x07
 6a0:	62 96       	adiw	r28, 0x12	; 18
 6a2:	0f b6       	in	r0, 0x3f	; 63
 6a4:	f8 94       	cli
 6a6:	de bf       	out	0x3e, r29	; 62
 6a8:	0f be       	out	0x3f, r0	; 63
 6aa:	cd bf       	out	0x3d, r28	; 61
 6ac:	df 91       	pop	r29
 6ae:	cf 91       	pop	r28
 6b0:	1f 91       	pop	r17
 6b2:	0f 91       	pop	r16
 6b4:	ff 90       	pop	r15
 6b6:	ef 90       	pop	r14
 6b8:	df 90       	pop	r13
 6ba:	cf 90       	pop	r12
 6bc:	bf 90       	pop	r11
 6be:	af 90       	pop	r10
 6c0:	9f 90       	pop	r9
 6c2:	8f 90       	pop	r8
 6c4:	7f 90       	pop	r7
 6c6:	6f 90       	pop	r6
 6c8:	5f 90       	pop	r5
 6ca:	4f 90       	pop	r4
 6cc:	3f 90       	pop	r3
 6ce:	2f 90       	pop	r2
 6d0:	08 95       	ret

000006d2 <fdevopen>:
 6d2:	0f 93       	push	r16
 6d4:	1f 93       	push	r17
 6d6:	cf 93       	push	r28
 6d8:	df 93       	push	r29
 6da:	8c 01       	movw	r16, r24
 6dc:	eb 01       	movw	r28, r22
 6de:	89 2b       	or	r24, r25
 6e0:	21 f1       	breq	.+72     	; 0x72a <fdevopen+0x58>
 6e2:	6c e0       	ldi	r22, 0x0C	; 12
 6e4:	70 e0       	ldi	r23, 0x00	; 0
 6e6:	81 e0       	ldi	r24, 0x01	; 1
 6e8:	90 e0       	ldi	r25, 0x00	; 0
 6ea:	0e 94 07 04 	call	0x80e <calloc>
 6ee:	fc 01       	movw	r30, r24
 6f0:	89 2b       	or	r24, r25
 6f2:	e9 f0       	breq	.+58     	; 0x72e <fdevopen+0x5c>
 6f4:	20 97       	sbiw	r28, 0x00	; 0
 6f6:	51 f0       	breq	.+20     	; 0x70c <fdevopen+0x3a>
 6f8:	c2 87       	std	Z+10, r28	; 0x0a
 6fa:	d3 87       	std	Z+11, r29	; 0x0b
 6fc:	81 e0       	ldi	r24, 0x01	; 1
 6fe:	83 83       	std	Z+3, r24	; 0x03
 700:	80 91 62 01 	lds	r24, 0x0162
 704:	90 91 63 01 	lds	r25, 0x0163
 708:	89 2b       	or	r24, r25
 70a:	19 f1       	breq	.+70     	; 0x752 <fdevopen+0x80>
 70c:	01 15       	cp	r16, r1
 70e:	11 05       	cpc	r17, r1
 710:	29 f1       	breq	.+74     	; 0x75c <fdevopen+0x8a>
 712:	00 87       	std	Z+8, r16	; 0x08
 714:	11 87       	std	Z+9, r17	; 0x09
 716:	83 81       	ldd	r24, Z+3	; 0x03
 718:	82 60       	ori	r24, 0x02	; 2
 71a:	83 83       	std	Z+3, r24	; 0x03
 71c:	80 91 64 01 	lds	r24, 0x0164
 720:	90 91 65 01 	lds	r25, 0x0165
 724:	89 2b       	or	r24, r25
 726:	d1 f4       	brne	.+52     	; 0x75c <fdevopen+0x8a>
 728:	05 c0       	rjmp	.+10     	; 0x734 <fdevopen+0x62>
 72a:	67 2b       	or	r22, r23
 72c:	d1 f6       	brne	.-76     	; 0x6e2 <fdevopen+0x10>
 72e:	e0 e0       	ldi	r30, 0x00	; 0
 730:	f0 e0       	ldi	r31, 0x00	; 0
 732:	14 c0       	rjmp	.+40     	; 0x75c <fdevopen+0x8a>
 734:	f0 93 65 01 	sts	0x0165, r31
 738:	e0 93 64 01 	sts	0x0164, r30
 73c:	80 91 66 01 	lds	r24, 0x0166
 740:	90 91 67 01 	lds	r25, 0x0167
 744:	89 2b       	or	r24, r25
 746:	51 f4       	brne	.+20     	; 0x75c <fdevopen+0x8a>
 748:	f0 93 67 01 	sts	0x0167, r31
 74c:	e0 93 66 01 	sts	0x0166, r30
 750:	05 c0       	rjmp	.+10     	; 0x75c <fdevopen+0x8a>
 752:	f0 93 63 01 	sts	0x0163, r31
 756:	e0 93 62 01 	sts	0x0162, r30
 75a:	d8 cf       	rjmp	.-80     	; 0x70c <fdevopen+0x3a>
 75c:	cf 01       	movw	r24, r30
 75e:	df 91       	pop	r29
 760:	cf 91       	pop	r28
 762:	1f 91       	pop	r17
 764:	0f 91       	pop	r16
 766:	08 95       	ret

00000768 <fputc>:
#include "stdio_private.h"

int
fputc(int c, FILE *stream)
{
 768:	0f 93       	push	r16
 76a:	1f 93       	push	r17
 76c:	cf 93       	push	r28
 76e:	df 93       	push	r29
 770:	8c 01       	movw	r16, r24
 772:	eb 01       	movw	r28, r22

	if ((stream->flags & __SWR) == 0)
 774:	8b 81       	ldd	r24, Y+3	; 0x03
 776:	99 27       	eor	r25, r25
 778:	81 ff       	sbrs	r24, 1
 77a:	16 c0       	rjmp	.+44     	; 0x7a8 <fputc+0x40>
		return EOF;

	if (stream->flags & __SSTR) {
 77c:	82 ff       	sbrs	r24, 2
 77e:	17 c0       	rjmp	.+46     	; 0x7ae <fputc+0x46>
		if (stream->len < stream->size)
 780:	2e 81       	ldd	r18, Y+6	; 0x06
 782:	3f 81       	ldd	r19, Y+7	; 0x07
 784:	8c 81       	ldd	r24, Y+4	; 0x04
 786:	9d 81       	ldd	r25, Y+5	; 0x05
 788:	28 17       	cp	r18, r24
 78a:	39 07       	cpc	r19, r25
 78c:	2c f0       	brlt	.+10     	; 0x798 <fputc+0x30>
			*stream->buf++ = c;
		stream->len++;
 78e:	2f 5f       	subi	r18, 0xFF	; 255
 790:	3f 4f       	sbci	r19, 0xFF	; 255
 792:	2e 83       	std	Y+6, r18	; 0x06
 794:	3f 83       	std	Y+7, r19	; 0x07
 796:	16 c0       	rjmp	.+44     	; 0x7c4 <fputc+0x5c>
 798:	e8 81       	ld	r30, Y
 79a:	f9 81       	ldd	r31, Y+1	; 0x01
 79c:	01 93       	st	Z+, r16
 79e:	e8 83       	st	Y, r30
 7a0:	f9 83       	std	Y+1, r31	; 0x01
 7a2:	2e 81       	ldd	r18, Y+6	; 0x06
 7a4:	3f 81       	ldd	r19, Y+7	; 0x07
 7a6:	f3 cf       	rjmp	.-26     	; 0x78e <fputc+0x26>
		return c;
	} else {
		if (stream->put(c) == 0) {
			stream->len++;
			return c;
 7a8:	0f ef       	ldi	r16, 0xFF	; 255
 7aa:	1f ef       	ldi	r17, 0xFF	; 255
 7ac:	0b c0       	rjmp	.+22     	; 0x7c4 <fputc+0x5c>
 7ae:	e8 85       	ldd	r30, Y+8	; 0x08
 7b0:	f9 85       	ldd	r31, Y+9	; 0x09
 7b2:	80 2f       	mov	r24, r16
 7b4:	09 95       	icall
 7b6:	89 2b       	or	r24, r25
 7b8:	b9 f7       	brne	.-18     	; 0x7a8 <fputc+0x40>
 7ba:	8e 81       	ldd	r24, Y+6	; 0x06
 7bc:	9f 81       	ldd	r25, Y+7	; 0x07
 7be:	01 96       	adiw	r24, 0x01	; 1
 7c0:	8e 83       	std	Y+6, r24	; 0x06
 7c2:	9f 83       	std	Y+7, r25	; 0x07
		} else
			return EOF;
	}
}
 7c4:	c8 01       	movw	r24, r16
 7c6:	df 91       	pop	r29
 7c8:	cf 91       	pop	r28
 7ca:	1f 91       	pop	r17
 7cc:	0f 91       	pop	r16
 7ce:	08 95       	ret

000007d0 <strlen_P>:
 7d0:	fc 01       	movw	r30, r24

000007d2 <.strlen_P_loop>:
 7d2:	05 90       	lpm	r0, Z+
 7d4:	00 20       	and	r0, r0
 7d6:	e9 f7       	brne	.-6      	; 0x7d2 <.strlen_P_loop>
 7d8:	80 95       	com	r24
 7da:	90 95       	com	r25
 7dc:	8e 0f       	add	r24, r30
 7de:	9f 1f       	adc	r25, r31
 7e0:	08 95       	ret

000007e2 <strnlen>:
 7e2:	fc 01       	movw	r30, r24

000007e4 <.strnlen_loop>:
 7e4:	61 50       	subi	r22, 0x01	; 1
 7e6:	70 40       	sbci	r23, 0x00	; 0
 7e8:	01 90       	ld	r0, Z+
 7ea:	01 10       	cpse	r0, r1
 7ec:	d8 f7       	brcc	.-10     	; 0x7e4 <.strnlen_loop>
 7ee:	80 95       	com	r24
 7f0:	90 95       	com	r25
 7f2:	8e 0f       	add	r24, r30
 7f4:	9f 1f       	adc	r25, r31
 7f6:	08 95       	ret

000007f8 <strnlen_P>:
 7f8:	fc 01       	movw	r30, r24
 7fa:	61 50       	subi	r22, 0x01	; 1
 7fc:	70 40       	sbci	r23, 0x00	; 0
 7fe:	05 90       	lpm	r0, Z+
 800:	01 10       	cpse	r0, r1
 802:	d8 f7       	brcc	.-10     	; 0x7fa <strnlen_P+0x2>
 804:	80 95       	com	r24
 806:	90 95       	com	r25
 808:	8e 0f       	add	r24, r30
 80a:	9f 1f       	adc	r25, r31
 80c:	08 95       	ret

0000080e <calloc>:
 80e:	0f 93       	push	r16
 810:	1f 93       	push	r17
 812:	cf 93       	push	r28
 814:	df 93       	push	r29
 816:	86 9f       	mul	r24, r22
 818:	80 01       	movw	r16, r0
 81a:	87 9f       	mul	r24, r23
 81c:	10 0d       	add	r17, r0
 81e:	96 9f       	mul	r25, r22
 820:	10 0d       	add	r17, r0
 822:	11 24       	eor	r1, r1
 824:	c8 01       	movw	r24, r16
 826:	0e 94 23 04 	call	0x846 <malloc>
 82a:	ec 01       	movw	r28, r24
 82c:	00 97       	sbiw	r24, 0x00	; 0
 82e:	29 f0       	breq	.+10     	; 0x83a <calloc+0x2c>
 830:	a8 01       	movw	r20, r16
 832:	60 e0       	ldi	r22, 0x00	; 0
 834:	70 e0       	ldi	r23, 0x00	; 0
 836:	0e 94 54 05 	call	0xaa8 <memset>
 83a:	ce 01       	movw	r24, r28
 83c:	df 91       	pop	r29
 83e:	cf 91       	pop	r28
 840:	1f 91       	pop	r17
 842:	0f 91       	pop	r16
 844:	08 95       	ret

00000846 <malloc>:
 846:	0f 93       	push	r16
 848:	1f 93       	push	r17
 84a:	cf 93       	push	r28
 84c:	df 93       	push	r29
 84e:	ac 01       	movw	r20, r24
 850:	02 97       	sbiw	r24, 0x02	; 2
 852:	08 f4       	brcc	.+2      	; 0x856 <malloc+0x10>
 854:	82 c0       	rjmp	.+260    	; 0x95a <malloc+0x114>
 856:	00 91 6a 01 	lds	r16, 0x016A
 85a:	10 91 6b 01 	lds	r17, 0x016B
 85e:	01 15       	cp	r16, r1
 860:	11 05       	cpc	r17, r1
 862:	09 f4       	brne	.+2      	; 0x866 <malloc+0x20>
 864:	63 c0       	rjmp	.+198    	; 0x92c <malloc+0xe6>
 866:	f8 01       	movw	r30, r16
 868:	60 81       	ld	r22, Z
 86a:	71 81       	ldd	r23, Z+1	; 0x01
 86c:	46 17       	cp	r20, r22
 86e:	57 07       	cpc	r21, r23
 870:	09 f4       	brne	.+2      	; 0x874 <malloc+0x2e>
 872:	53 c0       	rjmp	.+166    	; 0x91a <malloc+0xd4>
 874:	d8 01       	movw	r26, r16
 876:	cb 01       	movw	r24, r22
 878:	20 e0       	ldi	r18, 0x00	; 0
 87a:	30 e0       	ldi	r19, 0x00	; 0
 87c:	48 17       	cp	r20, r24
 87e:	59 07       	cpc	r21, r25
 880:	30 f4       	brcc	.+12     	; 0x88e <malloc+0x48>
 882:	21 15       	cp	r18, r1
 884:	31 05       	cpc	r19, r1
 886:	79 f0       	breq	.+30     	; 0x8a6 <malloc+0x60>
 888:	82 17       	cp	r24, r18
 88a:	93 07       	cpc	r25, r19
 88c:	60 f0       	brcs	.+24     	; 0x8a6 <malloc+0x60>
 88e:	ed 01       	movw	r28, r26
 890:	ea 81       	ldd	r30, Y+2	; 0x02
 892:	fb 81       	ldd	r31, Y+3	; 0x03
 894:	30 97       	sbiw	r30, 0x00	; 0
 896:	69 f0       	breq	.+26     	; 0x8b2 <malloc+0x6c>
 898:	80 81       	ld	r24, Z
 89a:	91 81       	ldd	r25, Z+1	; 0x01
 89c:	48 17       	cp	r20, r24
 89e:	59 07       	cpc	r21, r25
 8a0:	a1 f1       	breq	.+104    	; 0x90a <malloc+0xc4>
 8a2:	df 01       	movw	r26, r30
 8a4:	eb cf       	rjmp	.-42     	; 0x87c <malloc+0x36>
 8a6:	9c 01       	movw	r18, r24
 8a8:	ed 01       	movw	r28, r26
 8aa:	ea 81       	ldd	r30, Y+2	; 0x02
 8ac:	fb 81       	ldd	r31, Y+3	; 0x03
 8ae:	30 97       	sbiw	r30, 0x00	; 0
 8b0:	99 f7       	brne	.-26     	; 0x898 <malloc+0x52>
 8b2:	21 15       	cp	r18, r1
 8b4:	31 05       	cpc	r19, r1
 8b6:	d1 f1       	breq	.+116    	; 0x92c <malloc+0xe6>
 8b8:	c9 01       	movw	r24, r18
 8ba:	84 1b       	sub	r24, r20
 8bc:	95 0b       	sbc	r25, r21
 8be:	04 97       	sbiw	r24, 0x04	; 4
 8c0:	08 f4       	brcc	.+2      	; 0x8c4 <malloc+0x7e>
 8c2:	a9 01       	movw	r20, r18
 8c4:	62 17       	cp	r22, r18
 8c6:	73 07       	cpc	r23, r19
 8c8:	11 f4       	brne	.+4      	; 0x8ce <malloc+0x88>
 8ca:	4a c0       	rjmp	.+148    	; 0x960 <malloc+0x11a>
 8cc:	8f 01       	movw	r16, r30
 8ce:	e8 01       	movw	r28, r16
 8d0:	ea 81       	ldd	r30, Y+2	; 0x02
 8d2:	fb 81       	ldd	r31, Y+3	; 0x03
 8d4:	30 97       	sbiw	r30, 0x00	; 0
 8d6:	51 f1       	breq	.+84     	; 0x92c <malloc+0xe6>
 8d8:	80 81       	ld	r24, Z
 8da:	91 81       	ldd	r25, Z+1	; 0x01
 8dc:	28 17       	cp	r18, r24
 8de:	39 07       	cpc	r19, r25
 8e0:	a9 f7       	brne	.-22     	; 0x8cc <malloc+0x86>
 8e2:	d8 01       	movw	r26, r16
 8e4:	8f 01       	movw	r16, r30
 8e6:	42 17       	cp	r20, r18
 8e8:	53 07       	cpc	r21, r19
 8ea:	09 f4       	brne	.+2      	; 0x8ee <malloc+0xa8>
 8ec:	5f c0       	rjmp	.+190    	; 0x9ac <malloc+0x166>
 8ee:	c9 01       	movw	r24, r18
 8f0:	84 1b       	sub	r24, r20
 8f2:	95 0b       	sbc	r25, r21
 8f4:	f8 01       	movw	r30, r16
 8f6:	e8 0f       	add	r30, r24
 8f8:	f9 1f       	adc	r31, r25
 8fa:	41 93       	st	Z+, r20
 8fc:	51 93       	st	Z+, r21
 8fe:	02 97       	sbiw	r24, 0x02	; 2
 900:	d8 01       	movw	r26, r16
 902:	8d 93       	st	X+, r24
 904:	9c 93       	st	X, r25
 906:	cf 01       	movw	r24, r30
 908:	65 c0       	rjmp	.+202    	; 0x9d4 <malloc+0x18e>
 90a:	82 81       	ldd	r24, Z+2	; 0x02
 90c:	93 81       	ldd	r25, Z+3	; 0x03
 90e:	ed 01       	movw	r28, r26
 910:	8a 83       	std	Y+2, r24	; 0x02
 912:	9b 83       	std	Y+3, r25	; 0x03
 914:	cf 01       	movw	r24, r30
 916:	02 96       	adiw	r24, 0x02	; 2
 918:	5d c0       	rjmp	.+186    	; 0x9d4 <malloc+0x18e>
 91a:	e8 01       	movw	r28, r16
 91c:	8a 81       	ldd	r24, Y+2	; 0x02
 91e:	9b 81       	ldd	r25, Y+3	; 0x03
 920:	90 93 6b 01 	sts	0x016B, r25
 924:	80 93 6a 01 	sts	0x016A, r24
 928:	f8 01       	movw	r30, r16
 92a:	f4 cf       	rjmp	.-24     	; 0x914 <malloc+0xce>
 92c:	60 91 68 01 	lds	r22, 0x0168
 930:	70 91 69 01 	lds	r23, 0x0169
 934:	61 15       	cp	r22, r1
 936:	71 05       	cpc	r23, r1
 938:	f9 f0       	breq	.+62     	; 0x978 <malloc+0x132>
 93a:	20 91 5b 01 	lds	r18, 0x015B
 93e:	30 91 5c 01 	lds	r19, 0x015C
 942:	21 15       	cp	r18, r1
 944:	31 05       	cpc	r19, r1
 946:	79 f0       	breq	.+30     	; 0x966 <malloc+0x120>
 948:	fb 01       	movw	r30, r22
 94a:	26 1b       	sub	r18, r22
 94c:	37 0b       	sbc	r19, r23
 94e:	24 17       	cp	r18, r20
 950:	35 07       	cpc	r19, r21
 952:	d8 f4       	brcc	.+54     	; 0x98a <malloc+0x144>
 954:	80 e0       	ldi	r24, 0x00	; 0
 956:	90 e0       	ldi	r25, 0x00	; 0
 958:	3d c0       	rjmp	.+122    	; 0x9d4 <malloc+0x18e>
 95a:	42 e0       	ldi	r20, 0x02	; 2
 95c:	50 e0       	ldi	r21, 0x00	; 0
 95e:	7b cf       	rjmp	.-266    	; 0x856 <malloc+0x10>
 960:	a0 e0       	ldi	r26, 0x00	; 0
 962:	b0 e0       	ldi	r27, 0x00	; 0
 964:	c0 cf       	rjmp	.-128    	; 0x8e6 <malloc+0xa0>
 966:	2d b7       	in	r18, 0x3d	; 61
 968:	3e b7       	in	r19, 0x3e	; 62
 96a:	80 91 5f 01 	lds	r24, 0x015F
 96e:	90 91 60 01 	lds	r25, 0x0160
 972:	28 1b       	sub	r18, r24
 974:	39 0b       	sbc	r19, r25
 976:	e8 cf       	rjmp	.-48     	; 0x948 <malloc+0x102>
 978:	60 91 5d 01 	lds	r22, 0x015D
 97c:	70 91 5e 01 	lds	r23, 0x015E
 980:	70 93 69 01 	sts	0x0169, r23
 984:	60 93 68 01 	sts	0x0168, r22
 988:	d8 cf       	rjmp	.-80     	; 0x93a <malloc+0xf4>
 98a:	ca 01       	movw	r24, r20
 98c:	02 96       	adiw	r24, 0x02	; 2
 98e:	28 17       	cp	r18, r24
 990:	39 07       	cpc	r19, r25
 992:	00 f3       	brcs	.-64     	; 0x954 <malloc+0x10e>
 994:	64 0f       	add	r22, r20
 996:	75 1f       	adc	r23, r21
 998:	6e 5f       	subi	r22, 0xFE	; 254
 99a:	7f 4f       	sbci	r23, 0xFF	; 255
 99c:	70 93 69 01 	sts	0x0169, r23
 9a0:	60 93 68 01 	sts	0x0168, r22
 9a4:	41 93       	st	Z+, r20
 9a6:	51 93       	st	Z+, r21
 9a8:	cf 01       	movw	r24, r30
 9aa:	14 c0       	rjmp	.+40     	; 0x9d4 <malloc+0x18e>
 9ac:	10 97       	sbiw	r26, 0x00	; 0
 9ae:	49 f0       	breq	.+18     	; 0x9c2 <malloc+0x17c>
 9b0:	f8 01       	movw	r30, r16
 9b2:	82 81       	ldd	r24, Z+2	; 0x02
 9b4:	93 81       	ldd	r25, Z+3	; 0x03
 9b6:	ed 01       	movw	r28, r26
 9b8:	8a 83       	std	Y+2, r24	; 0x02
 9ba:	9b 83       	std	Y+3, r25	; 0x03
 9bc:	c8 01       	movw	r24, r16
 9be:	02 96       	adiw	r24, 0x02	; 2
 9c0:	09 c0       	rjmp	.+18     	; 0x9d4 <malloc+0x18e>
 9c2:	f8 01       	movw	r30, r16
 9c4:	82 81       	ldd	r24, Z+2	; 0x02
 9c6:	93 81       	ldd	r25, Z+3	; 0x03
 9c8:	90 93 6b 01 	sts	0x016B, r25
 9cc:	80 93 6a 01 	sts	0x016A, r24
 9d0:	c8 01       	movw	r24, r16
 9d2:	02 96       	adiw	r24, 0x02	; 2
 9d4:	df 91       	pop	r29
 9d6:	cf 91       	pop	r28
 9d8:	1f 91       	pop	r17
 9da:	0f 91       	pop	r16
 9dc:	08 95       	ret

000009de <free>:
 9de:	cf 93       	push	r28
 9e0:	df 93       	push	r29
 9e2:	00 97       	sbiw	r24, 0x00	; 0
 9e4:	09 f4       	brne	.+2      	; 0x9e8 <free+0xa>
 9e6:	5d c0       	rjmp	.+186    	; 0xaa2 <free+0xc4>
 9e8:	ec 01       	movw	r28, r24
 9ea:	22 97       	sbiw	r28, 0x02	; 2
 9ec:	1a 82       	std	Y+2, r1	; 0x02
 9ee:	1b 82       	std	Y+3, r1	; 0x03
 9f0:	e0 91 6a 01 	lds	r30, 0x016A
 9f4:	f0 91 6b 01 	lds	r31, 0x016B
 9f8:	30 97       	sbiw	r30, 0x00	; 0
 9fa:	d9 f1       	breq	.+118    	; 0xa72 <free+0x94>
 9fc:	ec 17       	cp	r30, r28
 9fe:	fd 07       	cpc	r31, r29
 a00:	40 f1       	brcs	.+80     	; 0xa52 <free+0x74>
 a02:	df 01       	movw	r26, r30
 a04:	40 e0       	ldi	r20, 0x00	; 0
 a06:	50 e0       	ldi	r21, 0x00	; 0
 a08:	aa 83       	std	Y+2, r26	; 0x02
 a0a:	bb 83       	std	Y+3, r27	; 0x03
 a0c:	fe 01       	movw	r30, r28
 a0e:	21 91       	ld	r18, Z+
 a10:	31 91       	ld	r19, Z+
 a12:	e2 0f       	add	r30, r18
 a14:	f3 1f       	adc	r31, r19
 a16:	ae 17       	cp	r26, r30
 a18:	bf 07       	cpc	r27, r31
 a1a:	91 f1       	breq	.+100    	; 0xa80 <free+0xa2>
 a1c:	41 15       	cp	r20, r1
 a1e:	51 05       	cpc	r21, r1
 a20:	41 f1       	breq	.+80     	; 0xa72 <free+0x94>
 a22:	fa 01       	movw	r30, r20
 a24:	c2 83       	std	Z+2, r28	; 0x02
 a26:	d3 83       	std	Z+3, r29	; 0x03
 a28:	21 91       	ld	r18, Z+
 a2a:	31 91       	ld	r19, Z+
 a2c:	e2 0f       	add	r30, r18
 a2e:	f3 1f       	adc	r31, r19
 a30:	ce 17       	cp	r28, r30
 a32:	df 07       	cpc	r29, r31
 a34:	b1 f5       	brne	.+108    	; 0xaa2 <free+0xc4>
 a36:	88 81       	ld	r24, Y
 a38:	99 81       	ldd	r25, Y+1	; 0x01
 a3a:	28 0f       	add	r18, r24
 a3c:	39 1f       	adc	r19, r25
 a3e:	2e 5f       	subi	r18, 0xFE	; 254
 a40:	3f 4f       	sbci	r19, 0xFF	; 255
 a42:	fa 01       	movw	r30, r20
 a44:	20 83       	st	Z, r18
 a46:	31 83       	std	Z+1, r19	; 0x01
 a48:	8a 81       	ldd	r24, Y+2	; 0x02
 a4a:	9b 81       	ldd	r25, Y+3	; 0x03
 a4c:	82 83       	std	Z+2, r24	; 0x02
 a4e:	93 83       	std	Z+3, r25	; 0x03
 a50:	28 c0       	rjmp	.+80     	; 0xaa2 <free+0xc4>
 a52:	a2 81       	ldd	r26, Z+2	; 0x02
 a54:	b3 81       	ldd	r27, Z+3	; 0x03
 a56:	10 97       	sbiw	r26, 0x00	; 0
 a58:	11 f4       	brne	.+4      	; 0xa5e <free+0x80>
 a5a:	21 c0       	rjmp	.+66     	; 0xa9e <free+0xc0>
 a5c:	dc 01       	movw	r26, r24
 a5e:	ac 17       	cp	r26, r28
 a60:	bd 07       	cpc	r27, r29
 a62:	60 f4       	brcc	.+24     	; 0xa7c <free+0x9e>
 a64:	fd 01       	movw	r30, r26
 a66:	82 81       	ldd	r24, Z+2	; 0x02
 a68:	93 81       	ldd	r25, Z+3	; 0x03
 a6a:	00 97       	sbiw	r24, 0x00	; 0
 a6c:	b9 f7       	brne	.-18     	; 0xa5c <free+0x7e>
 a6e:	ad 01       	movw	r20, r26
 a70:	d8 cf       	rjmp	.-80     	; 0xa22 <free+0x44>
 a72:	d0 93 6b 01 	sts	0x016B, r29
 a76:	c0 93 6a 01 	sts	0x016A, r28
 a7a:	13 c0       	rjmp	.+38     	; 0xaa2 <free+0xc4>
 a7c:	af 01       	movw	r20, r30
 a7e:	c4 cf       	rjmp	.-120    	; 0xa08 <free+0x2a>
 a80:	8d 91       	ld	r24, X+
 a82:	9c 91       	ld	r25, X
 a84:	11 97       	sbiw	r26, 0x01	; 1
 a86:	28 0f       	add	r18, r24
 a88:	39 1f       	adc	r19, r25
 a8a:	2e 5f       	subi	r18, 0xFE	; 254
 a8c:	3f 4f       	sbci	r19, 0xFF	; 255
 a8e:	28 83       	st	Y, r18
 a90:	39 83       	std	Y+1, r19	; 0x01
 a92:	fd 01       	movw	r30, r26
 a94:	82 81       	ldd	r24, Z+2	; 0x02
 a96:	93 81       	ldd	r25, Z+3	; 0x03
 a98:	8a 83       	std	Y+2, r24	; 0x02
 a9a:	9b 83       	std	Y+3, r25	; 0x03
 a9c:	bf cf       	rjmp	.-130    	; 0xa1c <free+0x3e>
 a9e:	af 01       	movw	r20, r30
 aa0:	c0 cf       	rjmp	.-128    	; 0xa22 <free+0x44>
 aa2:	df 91       	pop	r29
 aa4:	cf 91       	pop	r28
 aa6:	08 95       	ret

00000aa8 <memset>:
 aa8:	dc 01       	movw	r26, r24
 aaa:	01 c0       	rjmp	.+2      	; 0xaae <.memset_start>

00000aac <.memset_loop>:
 aac:	6d 93       	st	X+, r22

00000aae <.memset_start>:
 aae:	41 50       	subi	r20, 0x01	; 1
 ab0:	50 40       	sbci	r21, 0x00	; 0
 ab2:	e0 f7       	brcc	.-8      	; 0xaac <.memset_loop>
 ab4:	08 95       	ret

00000ab6 <__udivmodsi4>:
 ab6:	a1 e2       	ldi	r26, 0x21	; 33
 ab8:	1a 2e       	mov	r1, r26
 aba:	aa 1b       	sub	r26, r26
 abc:	bb 1b       	sub	r27, r27
 abe:	fd 01       	movw	r30, r26
 ac0:	0d c0       	rjmp	.+26     	; 0xadc <__udivmodsi4_ep>

00000ac2 <__udivmodsi4_loop>:
 ac2:	aa 1f       	adc	r26, r26
 ac4:	bb 1f       	adc	r27, r27
 ac6:	ee 1f       	adc	r30, r30
 ac8:	ff 1f       	adc	r31, r31
 aca:	a2 17       	cp	r26, r18
 acc:	b3 07       	cpc	r27, r19
 ace:	e4 07       	cpc	r30, r20
 ad0:	f5 07       	cpc	r31, r21
 ad2:	20 f0       	brcs	.+8      	; 0xadc <__udivmodsi4_ep>
 ad4:	a2 1b       	sub	r26, r18
 ad6:	b3 0b       	sbc	r27, r19
 ad8:	e4 0b       	sbc	r30, r20
 ada:	f5 0b       	sbc	r31, r21

00000adc <__udivmodsi4_ep>:
 adc:	66 1f       	adc	r22, r22
 ade:	77 1f       	adc	r23, r23
 ae0:	88 1f       	adc	r24, r24
 ae2:	99 1f       	adc	r25, r25
 ae4:	1a 94       	dec	r1
 ae6:	69 f7       	brne	.-38     	; 0xac2 <__udivmodsi4_loop>
 ae8:	60 95       	com	r22
 aea:	70 95       	com	r23
 aec:	80 95       	com	r24
 aee:	90 95       	com	r25
 af0:	9b 01       	movw	r18, r22
 af2:	ac 01       	movw	r20, r24
 af4:	bd 01       	movw	r22, r26
 af6:	cf 01       	movw	r24, r30
 af8:	08 95       	ret

00000afa <_exit>:
 afa:	ff cf       	rjmp	.-2      	; 0xafa <_exit>

-- 
           Summary: static initialization .data redundantly copied to ram
                    prior to use.
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: schlie at comcast dot net
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: ppc-apple-darwin7.8
  GCC host triplet: ppc-apple-darwin7.8
GCC target triplet: avr-unknown-none


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20243


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]