www.pudn.com > iccavr_lib.rar > x5.s, change:2003-11-13,size:10636b


	.area text(rom, con, rel) 
; V0 buf: Stack(2) ticks 0->1280 Uses (D1|1) 
; V1 base: R12 ticks 0->1248 Uses (D30|3) 
; V2 rem: R10 ticks 240->1232 Uses (D40|4) 
; V3 s: R14 ticks 112->1248 Uses (D43|7) 
;            rev -> y+0 
;              s -> R14,R15 
;            rem -> R10,R11 
;           base -> R12,R13 
;              i -> y+38 
;            buf -> y+36 
	.even 
; loop: 0 block 0 
_ltoa:: 
	rcall push_arg4 
	rcall push_gset5 
	sbiw R28,26 
	ldd R12,y+42 
	ldd R13,y+43 
  ; (014) [allocating Register] replacing x0 with R20 
  ; ticks 0 end ticks 64 
	ldi R20,0 
	ldi R21,0 
	ldi R22,0 
	ldi R23,0 
  ; (015) [allocating Register] replacing P0 with R30 
  ; ticks 16 end ticks 48 
	mov R30,R28 
	mov R31,R29 
  ; (016) [using Register] replacing P0 with R30 
  ; Killed - offset propagation 
  ; ticks 32 
  ; 	aprm R30,4 
  ; (017) [using Register] replacing P0 with R30 
  ; freeing R30 
  ; (018) [allocating Register] replacing l0 with R2 
  ; ticks 48 end ticks 64 
	ldd R2,z+38 
	ldd R3,z+39 
	ldd R4,z+40 
	ldd R5,z+41 
  ; (019) [using Register] replacing l0 with R2 
  ; (020) [using Register] replacing x0 with R20 
  ; freeing R2 
  ; freeing R20 
  ; ticks 64 
	cp R2,R20 
	cpc R3,R21 
	cpc R4,R22 
	cpc R5,R23 
  ; ticks 80 
	brne L2 
  ; (021) [allocating Register] replacing w0 with R24 
  ; ticks 96 end ticks 112 
	ldi R24,<L4 
	ldi R25,>L4 
  ; (000) [using Register] replacing V3 with R14 
  ; (022) [using Register] replacing w0 with R24 
  ; freeing R24 
  ; ticks 112 end ticks 1248 
	mov R14,R24 
	mov R15,R25 
  ; ticks 128 
	rjmp L3 
; loop: 0 block 1 
L2: 
  ; (023) [allocating Register] replacing B0 with R2 
  ; ticks 144 end ticks 160 
	clr R2 
  ; (024) [using Register] replacing B0 with R2 
  ; freeing R2 
  ; ticks 160 
	std y+25,R2 
  ; (025) [allocating Register] replacing w0 with R24 
  ; ticks 176 end ticks 208 
	mov R24,R28 
	mov R25,R29 
  ; (026) [using Register] replacing w0 with R24 
  ; ticks 192 
	adiw R24,25 
  ; (001) [using Register] replacing V3 with R14 
  ; (027) [using Register] replacing w0 with R24 
  ; freeing R24 
  ; ticks 208 end ticks 528 
	mov R14,R24 
	mov R15,R25 
  ; ticks 224 
	rjmp L8 
; loop: 1 block 2 loop top 
L7: 
  ; (002) [using Register] replacing V1 with R12 
  ; (030) [allocating Register] replacing l0 with R2 
  ; ticks 240 end ticks 352 
	mov R2,R12 
	mov R3,R13 
  ; (031) [using Register] replacing l0 with R2 
  ; ticks 256 
	clr R4 
	sbrc R3,7 
	com R4 
	clr R5 
	sbrc R4,7 
	com R5 
  ; (032) [allocating Register] replacing P0 with R30 
  ; ticks 272 end ticks 304 
	mov R30,R28 
	mov R31,R29 
  ; (033) [using Register] replacing P0 with R30 
  ; Killed - offset propagation 
  ; ticks 288 
  ; 	aprm R30,4 
  ; (034) [using Register] replacing P0 with R30 
  ; freeing R30 
  ; (035) [allocating Register] replacing l1 with R6 
  ; ticks 304 end ticks 368 
	ldd R6,z+38 
	ldd R7,z+39 
	ldd R8,z+40 
	ldd R9,z+41 
  ; ticks 320 
  ; 	PUSH R16 
  ; ticks 336 
  ; 	PUSH R18 
  ; (036) [using Register] replacing l0 with R2 
  ; freeing R2 
  ; ticks 352 
	st -y,R5 
	st -y,R4 
	st -y,R3 
	st -y,R2 
  ; (037) [using Register] replacing l1 with R6 
  ; freeing R6 
  ; ticks 368 end ticks 384 
  ; ticks 368 
	mov R16,R6 
	mov R17,R7 
  ; ticks 369 
	mov R18,R8 
	mov R19,R9 
  ; ticks 384 
	rcall mod32u 
  ; Killed - forward scan propagate physical TN 
  ; ticks 400 end ticks 448 
  ; 	movl l1,R16 
  ; ticks 416 
  ; 	PULL R18 
  ; ticks 432 
  ; 	PULL R16 
  ; (028) [backward scan def] replacing W0 with R10 
  ; (029) [forward scan use] replacing l1 with R16 
  ; ticks 448 end ticks 816 
	mov R10,R16 
	mov R11,R17 
  ; (003) [using Register] replacing V2 with R10 
  ; Killed - Backward scan TN 
  ; ticks 464 end ticks 816 
  ; 	movw R10,W0 
  ; (004) [using Register] replacing V2 with R10 
  ; (038) [allocating Register] replacing w0 with R24 
  ; Killed - no use for temp var 
  ; ticks 480 end ticks 576 
  ; 	movw R24,R10 
  ; (039) [using Register] replacing w0 with R24 
  ; freeing R24 
  ; usereg 0: was 24  ; ticks 496 
	cpi R16,10 
	ldi R30,0 
	cpc R17,R30 
  ; ticks 512 
	brge L10 
  ; (005) [using Register] replacing V3 with R14 
  ; (040) [allocating Register] replacing w0 with R24 
  ; ticks 528 end ticks 576 
	mov R24,R14 
	mov R25,R15 
  ; (041) [using Register] replacing w0 with R24 
  ; ticks 544 
	sbiw R24,1 
  ; (042) [using Register] replacing w0 with R24 
  ; freeing R24 
  ; (043) [allocating Register] replacing T0 with R2 
  ; ticks 560 end ticks 640 
	mov R2,R24 
	mov R3,R25 
  ; (006) [using Register] replacing V3 with R14 
  ; (044) [using Register] replacing T0 with R2 
  ; RH tempreg: was 2  ; ticks 576 end ticks 736 
	mov R14,R24 
	mov R15,R25 
  ; (007) [using Register] replacing V2 with R10 
  ; (045) [allocating Register] replacing w0 with R24 
  ; ticks 592 end ticks 656 
	mov R24,R10 
	mov R25,R11 
  ; (046) [using Register] replacing w0 with R24 
  ; ticks 608 
	adiw R24,48 
  ; (047) [using Register] replacing w0 with R24 
  ; freeing R24 
  ; (048) [allocating Register] replacing B0 with R24 
  ; Killed - local register allocation 
  ; ticks 624 end ticks 656 
  ; 	mov R24,R24 
  ; (049) [using Register] replacing T0 with R2 
  ; freeing R2 
  ; (050) [allocating Register] replacing P0 with R30 
  ; ticks 640 end ticks 656 
	mov R30,R2 
	mov R31,R3 
  ; (051) [using Register] replacing P0 with R30 
  ; (052) [using Register] replacing B0 with R24 
  ; freeing R30 
  ; freeing R24 
  ; ticks 656 
	std z+0,R24 
  ; ticks 672 
	rjmp L11 
; loop: 1 block 3 
L10: 
  ; (008) [using Register] replacing V1 with R12 
  ; (053) [allocating Register] replacing w0 with R24 
  ; ticks 688 end ticks 784 
	mov R24,R12 
	mov R25,R13 
  ; (054) [using Register] replacing w0 with R24 
  ; freeing R24 
  ; ticks 704 
	cpi R24,16 
	ldi R30,0 
	cpc R25,R30 
  ; ticks 720 
	brne L12 
  ; (009) [using Register] replacing V3 with R14 
  ; (055) [allocating Register] replacing w0 with R24 
  ; ticks 736 end ticks 784 
	mov R24,R14 
	mov R25,R15 
  ; (056) [using Register] replacing w0 with R24 
  ; ticks 752 
	sbiw R24,1 
  ; (057) [using Register] replacing w0 with R24 
  ; freeing R24 
  ; (058) [allocating Register] replacing T1 with R2 
  ; ticks 768 end ticks 864 
	mov R2,R24 
	mov R3,R25 
  ; (010) [using Register] replacing V3 with R14 
  ; (059) [using Register] replacing T1 with R2 
  ; RH tempreg: was 2  ; ticks 784 end ticks 1248 
	mov R14,R24 
	mov R15,R25 
  ; (060) [allocating Register] replacing w0 with R24 
  ; ticks 800 end ticks 832 
	ldi R24,<L14-10 
	ldi R25,>L14-10 
  ; (011) [using Register] replacing V2 with R10 
  ; (061) [allocating Register] replacing P0 with R30 
  ; ticks 816 end ticks 848 
	mov R30,R10 
	mov R31,R11 
  ; (062) [using Register] replacing P0 with R30 
  ; (063) [using Register] replacing w0 with R24 
  ; freeing R24 
  ; ticks 832 
	add R30,R24 
	adc R31,R25 
  ; (064) [using Register] replacing P0 with R30 
  ; freeing R30 
  ; (065) [allocating Register] replacing B0 with R4 
  ; ticks 848 end ticks 880 
	ldd R4,z+0 
  ; (066) [using Register] replacing T1 with R2 
  ; freeing R2 
  ; (067) [allocating Register] replacing P0 with R30 
  ; ticks 864 end ticks 880 
	mov R30,R2 
	mov R31,R3 
  ; (068) [using Register] replacing P0 with R30 
  ; (069) [using Register] replacing B0 with R4 
  ; freeing R30 
  ; freeing R4 
  ; ticks 880 
	std z+0,R4 
; loop: 1 block 4 
L12: 
; loop: 1 block 5 
L11: 
  ; (012) [using Register] replacing V1 with R12 
  ; (071) [allocating Register] replacing l0 with R2 
  ; ticks 896 end ticks 1008 
	mov R2,R12 
	mov R3,R13 
  ; (072) [using Register] replacing l0 with R2 
  ; ticks 912 
	clr R4 
	sbrc R3,7 
	com R4 
	clr R5 
	sbrc R4,7 
	com R5 
  ; (073) [allocating Register] replacing P0 with R30 
  ; ticks 928 end ticks 960 
	mov R30,R28 
	mov R31,R29 
  ; (074) [using Register] replacing P0 with R30 
  ; Killed - offset propagation 
  ; ticks 944 
  ; 	aprm R30,4 
  ; (075) [using Register] replacing P0 with R30 
  ; freeing R30 
  ; (076) [allocating Register] replacing l1 with R6 
  ; ticks 960 end ticks 1024 
	ldd R6,z+38 
	ldd R7,z+39 
	ldd R8,z+40 
	ldd R9,z+41 
  ; ticks 976 
  ; 	PUSH R16 
  ; ticks 992 
  ; 	PUSH R18 
  ; (077) [using Register] replacing l0 with R2 
  ; freeing R2 
  ; ticks 1008 
	st -y,R5 
	st -y,R4 
	st -y,R3 
	st -y,R2 
  ; (078) [using Register] replacing l1 with R6 
  ; freeing R6 
  ; ticks 1024 end ticks 1040 
  ; ticks 1024 
	mov R16,R6 
	mov R17,R7 
  ; ticks 1025 
	mov R18,R8 
	mov R19,R9 
  ; ticks 1040 
	rcall div32u 
  ; Killed - forward scan propagate physical TN 
  ; ticks 1056 end ticks 1136 
  ; 	movl l1,R16 
  ; ticks 1072 
  ; 	PULL R18 
  ; ticks 1088 
  ; 	PULL R16 
  ; (079) [allocating Register] replacing P0 with R30 
  ; ticks 1104 end ticks 1136 
	mov R30,R28 
	mov R31,R29 
  ; (080) [using Register] replacing P0 with R30 
  ; Killed - offset propagation 
  ; ticks 1120 
  ; 	aprm R30,4 
  ; (070) [forward scan use] replacing l1 with R16 
  ; (081) [using Register] replacing P0 with R30 
  ; freeing R30 
  ; ticks 1136 
	std z+38,R16 
	std z+39,R17 
	std z+40,R18 
	std z+41,R19 
; loop: 1 block 6 loop bot 
L8: 
  ; (082) [allocating Register] replacing x0 with R20 
  ; ticks 1152 end ticks 1216 
	ldi R20,0 
	ldi R21,0 
	ldi R22,0 
	ldi R23,0 
  ; (083) [allocating Register] replacing P0 with R30 
  ; ticks 1168 end ticks 1200 
	mov R30,R28 
	mov R31,R29 
  ; (084) [using Register] replacing P0 with R30 
  ; Killed - offset propagation 
  ; ticks 1184 
  ; 	aprm R30,4 
  ; (085) [using Register] replacing P0 with R30 
  ; freeing R30 
  ; (086) [allocating Register] replacing l0 with R2 
  ; ticks 1200 end ticks 1216 
	ldd R2,z+38 
	ldd R3,z+39 
	ldd R4,z+40 
	ldd R5,z+41 
  ; (087) [using Register] replacing l0 with R2 
  ; (088) [using Register] replacing x0 with R20 
  ; freeing R2 
  ; freeing R20 
  ; ticks 1216 
	cp R2,R20 
	cpc R3,R21 
	cpc R4,R22 
	cpc R5,R23 
  ; ticks 1232 
	breq X0 
	rjmp L7 
X0: 
; loop: 0 block 7 
L3: 
  ; (013) [using Register] replacing V3 with R14 
  ; ticks 1248 end ticks 1312 
	mov R18,R14 
	mov R19,R15 
  ; ticks 1264 
  ; 	ARG1 
  ; Killed - spill use 
  ; ticks 1280 end ticks 1312 
  ; 	movw R16,V0 
  ; ticks 1280 end ticks 1312 
	ldd R16,y+36 
	ldd R17,y+37 
  ; ticks 1296 
  ; 	ARG0 
  ; ticks 1312 
	rcall _strcpy 
  ; ticks 1328 
  ; 	ARGx 
; loop: 0 block 8 
L1: 
  ; ticks 1344 
	adiw R28,26 
	rcall pop_gset5 
	adiw R28,4 
	ret 
	.area data(ram, con, rel) 
L14: 
	.blkb 7 
	.area idata 
	.byte 'a,'b,'c,'d,'e,'f,0 
	.area data(ram, con, rel) 
L4: 
	.blkb 2 
	.area idata 
	.byte 48,0 
	.area data(ram, con, rel)