Initial revision
[fw/sdcc] / device / lib / small / printfl.asm
1 ;--------------------------------------------------------
2 ; File Created by SDCC : FreeWare ANSI-C Compiler
3 ; Version 2.1.9Ga Sun Jan 16 17:31:19 2000
4
5 ;--------------------------------------------------------
6         .module printfl
7 ;--------------------------------------------------------
8 ; publics variables in this module
9 ;--------------------------------------------------------
10         .globl _printf_small
11 ;--------------------------------------------------------
12 ; special function registers
13 ;--------------------------------------------------------
14 G$P0$0$0 == 0x0080
15 _P0     =       0x0080
16 G$P1$0$0 == 0x0090
17 _P1     =       0x0090
18 G$P2$0$0 == 0x00a0
19 _P2     =       0x00a0
20 G$P3$0$0 == 0x00b0
21 _P3     =       0x00b0
22 G$PSW$0$0 == 0x00d0
23 _PSW    =       0x00d0
24 G$ACC$0$0 == 0x00e0
25 _ACC    =       0x00e0
26 G$B$0$0 == 0x00f0
27 _B      =       0x00f0
28 G$SP$0$0 == 0x0081
29 _SP     =       0x0081
30 G$DPL$0$0 == 0x0082
31 _DPL    =       0x0082
32 G$DPH$0$0 == 0x0083
33 _DPH    =       0x0083
34 G$PCON$0$0 == 0x0087
35 _PCON   =       0x0087
36 G$TCON$0$0 == 0x0088
37 _TCON   =       0x0088
38 G$TMOD$0$0 == 0x0089
39 _TMOD   =       0x0089
40 G$TL0$0$0 == 0x008a
41 _TL0    =       0x008a
42 G$TL1$0$0 == 0x008b
43 _TL1    =       0x008b
44 G$TH0$0$0 == 0x008c
45 _TH0    =       0x008c
46 G$TH1$0$0 == 0x008d
47 _TH1    =       0x008d
48 G$AUXR$0$0 == 0x008e
49 _AUXR   =       0x008e
50 G$IE$0$0 == 0x00a8
51 _IE     =       0x00a8
52 G$IP$0$0 == 0x00b8
53 _IP     =       0x00b8
54 G$SCON$0$0 == 0x0098
55 _SCON   =       0x0098
56 G$SBUF$0$0 == 0x0099
57 _SBUF   =       0x0099
58 G$T2CON$0$0 == 0x00c8
59 _T2CON  =       0x00c8
60 G$RCAP2H$0$0 == 0x00cb
61 _RCAP2H =       0x00cb
62 G$RCAP2L$0$0 == 0x00ca
63 _RCAP2L =       0x00ca
64 ;--------------------------------------------------------
65 ; special function bits 
66 ;--------------------------------------------------------
67 G$CY$0$0 == 0x00d7
68 _CY     =       0x00d7
69 G$AC$0$0 == 0x00d6
70 _AC     =       0x00d6
71 G$F0$0$0 == 0x00d5
72 _F0     =       0x00d5
73 G$RS1$0$0 == 0x00d4
74 _RS1    =       0x00d4
75 G$RS0$0$0 == 0x00d3
76 _RS0    =       0x00d3
77 G$OV$0$0 == 0x00d2
78 _OV     =       0x00d2
79 G$P$0$0 == 0x00d0
80 _P      =       0x00d0
81 G$TF1$0$0 == 0x008f
82 _TF1    =       0x008f
83 G$TR1$0$0 == 0x008e
84 _TR1    =       0x008e
85 G$TF0$0$0 == 0x008d
86 _TF0    =       0x008d
87 G$TR0$0$0 == 0x008c
88 _TR0    =       0x008c
89 G$IE1$0$0 == 0x008b
90 _IE1    =       0x008b
91 G$IT1$0$0 == 0x008a
92 _IT1    =       0x008a
93 G$IE0$0$0 == 0x0089
94 _IE0    =       0x0089
95 G$IT0$0$0 == 0x0088
96 _IT0    =       0x0088
97 G$EA$0$0 == 0x00af
98 _EA     =       0x00af
99 G$ES$0$0 == 0x00ac
100 _ES     =       0x00ac
101 G$ET1$0$0 == 0x00ab
102 _ET1    =       0x00ab
103 G$EX1$0$0 == 0x00aa
104 _EX1    =       0x00aa
105 G$ET0$0$0 == 0x00a9
106 _ET0    =       0x00a9
107 G$EX0$0$0 == 0x00a8
108 _EX0    =       0x00a8
109 G$PS$0$0 == 0x00bc
110 _PS     =       0x00bc
111 G$PT1$0$0 == 0x00bb
112 _PT1    =       0x00bb
113 G$PX1$0$0 == 0x00ba
114 _PX1    =       0x00ba
115 G$PT0$0$0 == 0x00b9
116 _PT0    =       0x00b9
117 G$PX0$0$0 == 0x00b8
118 _PX0    =       0x00b8
119 G$RD$0$0 == 0x00b7
120 _RD     =       0x00b7
121 G$WR$0$0 == 0x00b6
122 _WR     =       0x00b6
123 G$T1$0$0 == 0x00b5
124 _T1     =       0x00b5
125 G$T0$0$0 == 0x00b4
126 _T0     =       0x00b4
127 G$INT1$0$0 == 0x00b3
128 _INT1   =       0x00b3
129 G$INT0$0$0 == 0x00b2
130 _INT0   =       0x00b2
131 G$TXD$0$0 == 0x00b1
132 _TXD    =       0x00b1
133 G$RXD$0$0 == 0x00b0
134 _RXD    =       0x00b0
135 G$P1_0$0$0 == 0x0090
136 _P1_0   =       0x0090
137 G$P1_1$0$0 == 0x0091
138 _P1_1   =       0x0091
139 G$P1_2$0$0 == 0x0092
140 _P1_2   =       0x0092
141 G$P1_3$0$0 == 0x0093
142 _P1_3   =       0x0093
143 G$P1_4$0$0 == 0x0094
144 _P1_4   =       0x0094
145 G$P1_5$0$0 == 0x0095
146 _P1_5   =       0x0095
147 G$P1_6$0$0 == 0x0096
148 _P1_6   =       0x0096
149 G$P1_7$0$0 == 0x0097
150 _P1_7   =       0x0097
151 G$SM0$0$0 == 0x009f
152 _SM0    =       0x009f
153 G$SM1$0$0 == 0x009e
154 _SM1    =       0x009e
155 G$SM2$0$0 == 0x009d
156 _SM2    =       0x009d
157 G$REN$0$0 == 0x009c
158 _REN    =       0x009c
159 G$TB8$0$0 == 0x009b
160 _TB8    =       0x009b
161 G$RB8$0$0 == 0x009a
162 _RB8    =       0x009a
163 G$TI$0$0 == 0x0099
164 _TI     =       0x0099
165 G$RI$0$0 == 0x0098
166 _RI     =       0x0098
167 G$T2CON_0$0$0 == 0x00c8
168 _T2CON_0        =       0x00c8
169 G$T2CON_1$0$0 == 0x00c9
170 _T2CON_1        =       0x00c9
171 G$T2CON_2$0$0 == 0x00ca
172 _T2CON_2        =       0x00ca
173 G$T2CON_3$0$0 == 0x00cb
174 _T2CON_3        =       0x00cb
175 G$T2CON_4$0$0 == 0x00cc
176 _T2CON_4        =       0x00cc
177 G$T2CON_5$0$0 == 0x00cd
178 _T2CON_5        =       0x00cd
179 G$T2CON_6$0$0 == 0x00ce
180 _T2CON_6        =       0x00ce
181 G$T2CON_7$0$0 == 0x00cf
182 _T2CON_7        =       0x00cf
183 ;--------------------------------------------------------
184 ; internal ram data
185 ;--------------------------------------------------------
186         .area   DSEG    (DATA)
187 Fprintfl$ch$0$0==.
188 _ch:
189         .ds     0x0001
190 Fprintfl$radix$0$0==.
191 _radix:
192         .ds     0x0001
193 Fprintfl$str$0$0==.
194 _str:
195         .ds     0x0003
196 Fprintfl$val$0$0==.
197 _val:
198         .ds     0x0004
199 _pvalhex_val_1_1:
200         .ds     0x0004
201 _pvalhex_sp_1_1:
202         .ds     0x0001
203 _pvaloct_val_1_1:
204         .ds     0x0004
205 _pvaloct_sp_1_1:
206         .ds     0x0001
207 _pvaldec_val_1_1:
208         .ds     0x0004
209 _pvaldec_sp_1_1:
210         .ds     0x0001
211 _printf_small_sloc0_1_0:
212         .ds     0x0001
213 _printf_small_sloc1_1_0:
214         .ds     0x0003
215 ;--------------------------------------------------------
216 ; overlayable items in internal ram 
217 ;--------------------------------------------------------
218         .area   OSEG    (OVR,DATA)
219 ;--------------------------------------------------------
220 ; indirectly addressable internal ram data
221 ;--------------------------------------------------------
222         .area   ISEG    (DATA)
223 ;--------------------------------------------------------
224 ; bit data
225 ;--------------------------------------------------------
226         .area   BSEG    (BIT)
227 Fprintfl$long_flag$0$0==.
228 _long_flag:
229         .ds     0x0001
230 Fprintfl$string_flag$0$0==.
231 _string_flag:
232         .ds     0x0001
233 Fprintfl$short_flag$0$0==.
234 _short_flag:
235         .ds     0x0001
236 Fprintfl$sign$0$0==.
237 _sign:
238         .ds     0x0001
239 ;--------------------------------------------------------
240 ; external ram data
241 ;--------------------------------------------------------
242         .area   XSEG    (XDATA)
243 ;--------------------------------------------------------
244 ; global & static initialisations
245 ;--------------------------------------------------------
246         .area GSINIT (CODE)
247         G$printf_small$0$0 ==.
248 ;       printfl.c 215
249         clr     _long_flag
250         G$printf_small$0$0 ==.
251 ;       printfl.c 215
252         clr     _string_flag
253         G$printf_small$0$0 ==.
254 ;       printfl.c 215
255         clr     _short_flag
256 ;--------------------------------------------------------
257 ; code
258 ;--------------------------------------------------------
259         .area CSEG (CODE)
260         Fprintfl$pvalhex$0$0 ==.
261 ;       printfl.c 53
262 ;       -----------------------------------------
263 ;        function pvalhex
264 ;       -----------------------------------------
265 _pvalhex:
266         ar2 = 0x02
267         ar3 = 0x03
268         ar4 = 0x04
269         ar5 = 0x05
270         ar6 = 0x06
271         ar7 = 0x07
272         ar0 = 0x00
273         ar1 = 0x01
274 ;       printfl.c 0
275         mov     r2,dpl
276         mov     r3,dph
277         mov     r4,b
278         mov     r5,a
279 ;       printfl.c 55
280         mov     _pvalhex_sp_1_1,_SP
281 ;       printfl.c 56
282         mov     ar6,r2
283         mov     ar7,r3
284         mov     ar0,r4
285         mov     ar1,r5
286 ;       printfl.c 58
287 ; Peephole 112   removed ljmp by inverse jump logic
288         jb   _long_flag,00102$
289 00119$:
290 ;       printfl.c 59
291         mov     ar6,r2
292         mov     ar7,r3
293         mov     r0,#0x00
294         mov     r1,#0x00
295 00102$:
296 ;       printfl.c 61
297 ; Peephole 111   removed ljmp by inverse jump logic
298         jnb  _short_flag,00116$
299 00120$:
300 ;       printfl.c 62
301         mov     ar2,r6
302         mov     ar6,r2
303         mov     r7,#0x00
304         mov     r0,#0x00
305         mov     r1,#0x00
306 ;       printfl.c 64
307 00116$:
308 00105$:
309         mov     a,r6
310         orl     a,r7
311         orl     a,r0
312         orl     a,r1
313 ; Peephole 110   removed ljmp by inverse jump logic
314         jz  00108$
315 00121$:
316 ;       printfl.c 65
317         mov     ar2,r6
318         anl     ar2,#0x0f
319         mov     a,r2
320 ; Peephole 180   changed mov to clr
321 ; Peephole 186   optimized movc sequence
322         mov  dptr,#__str_0
323         movc a,@a+dptr
324         mov     _ch,a
325 ;       printfl.c 66
326          push _ch 
327 ;       printfl.c 67
328         mov     a,r7
329         swap    a
330         xch     a,r6
331         swap    a
332         anl     a,#0x0f
333         xrl     a,r6
334         xch     a,r6
335         anl     a,#0x0f
336         xch     a,r6
337         xrl     a,r6
338         xch     a,r6
339         mov     r7,a
340         mov     a,r0
341         swap    a
342         anl     a,#0xf0
343         orl     a,r7
344         mov     r7,a
345         mov     a,r1
346         swap    a
347         xch     a,r0
348         swap    a
349         anl     a,#0x0f
350         xrl     a,r0
351         xch     a,r0
352         anl     a,#0x0f
353         xch     a,r0
354         xrl     a,r0
355         xch     a,r0
356         mov     r1,a
357         ljmp    00105$
358 ;       printfl.c 70
359 00108$:
360         mov     r2,_pvalhex_sp_1_1
361         mov     a,r2
362         cjne    a,_SP,00122$
363 ; Peephole 132   changed ljmp to sjmp
364         sjmp 00111$
365 00122$:
366 ;       printfl.c 71
367          pop _ch 
368 ;       printfl.c 72
369         mov     dpl,_ch
370         lcall   _putchar
371 ; Peephole 132   changed ljmp to sjmp
372         sjmp 00108$
373 00111$:
374         C$printfl.c$75$1$1 ==.
375         XFprintfl$pvalhex$0$0 ==.
376         ret
377         Fprintfl$pvaloct$0$0 ==.
378 ;       printfl.c 77
379 ;       -----------------------------------------
380 ;        function pvaloct
381 ;       -----------------------------------------
382 _pvaloct:
383 ;       printfl.c 0
384         mov     r2,dpl
385         mov     r3,dph
386         mov     r4,b
387         mov     r5,a
388 ;       printfl.c 81
389         mov     _pvaloct_sp_1_1,_SP
390 ;       printfl.c 82
391         mov     a,r5
392 ; Peephole 111   removed ljmp by inverse jump logic
393         jnb  acc.7,00102$
394 00126$:
395 ;       printfl.c 83
396         clr     c
397         clr     a
398         subb    a,r2
399         mov     r7,a
400         clr     a
401         subb    a,r3
402         mov     r0,a
403         clr     a
404         subb    a,r4
405         mov     r1,a
406         clr     a
407         subb    a,r5
408         mov     r6,a
409 ;       printfl.c 84
410         setb    _sign
411 ; Peephole 132   changed ljmp to sjmp
412         sjmp 00103$
413 00102$:
414 ;       printfl.c 86
415         mov     ar7,r2
416         mov     ar0,r3
417         mov     ar1,r4
418         mov     ar6,r5
419 ;       printfl.c 87
420         clr     _sign
421 00103$:
422 ;       printfl.c 90
423 ; Peephole 112   removed ljmp by inverse jump logic
424         jb   _long_flag,00105$
425 00127$:
426 ;       printfl.c 91
427         mov     r1,#0x00
428         mov     r6,#0x00
429 00105$:
430 ;       printfl.c 92
431 ; Peephole 111   removed ljmp by inverse jump logic
432         jnb  _short_flag,00108$
433 00128$:
434 ;       printfl.c 93
435         mov     ar2,r7
436         mov     ar7,r2
437         mov     r0,#0x00
438         mov     r1,#0x00
439         mov     r6,#0x00
440 ;       printfl.c 95
441 00108$:
442         mov     a,r7
443         orl     a,r0
444         orl     a,r1
445         orl     a,r6
446         jnz     00129$
447         ljmp    00110$
448 00129$:
449 ;       printfl.c 96
450         clr     a
451         mov     (__modulong_PARM_2 + 3),a
452         mov     (__modulong_PARM_2 + 2),a
453         mov     (__modulong_PARM_2 + 1),a
454         mov     __modulong_PARM_2,#0x08
455         push    ar6
456         push    ar7
457         push    ar0
458         push    ar1
459         mov     dpl,r7
460         mov     dph,r0
461         mov     b,r1
462         mov     a,r6
463         lcall   __modulong
464         mov     r2,dpl
465         mov     r3,dph
466         mov     r4,b
467         mov     r5,a
468         pop     ar1
469         pop     ar0
470         pop     ar7
471         pop     ar6
472         mov     a,#0x30
473         add     a,r2
474         mov     r2,a
475 ; Peephole 180   changed mov to clr
476         clr  a
477         addc    a,r3
478         mov     r3,a
479 ; Peephole 180   changed mov to clr
480         clr  a
481         addc    a,r4
482         mov     r4,a
483 ; Peephole 180   changed mov to clr
484         clr  a
485         addc    a,r5
486         mov     r5,a
487         mov     _ch,r2
488 ;       printfl.c 97
489          push _ch 
490 ;       printfl.c 98
491         mov     a,r0
492         swap    a
493         rl      a
494         xch     a,r7
495         swap    a
496         rl      a
497         anl     a,#0x1f
498         xrl     a,r7
499         xch     a,r7
500         anl     a,#0x1f
501         xch     a,r7
502         xrl     a,r7
503         xch     a,r7
504         mov     r0,a
505         mov     a,r1
506         swap    a
507         rl      a
508         anl     a,#0xe0
509         orl     a,r0
510         mov     r0,a
511         mov     a,r6
512         swap    a
513         rl      a
514         xch     a,r1
515         swap    a
516         rl      a
517         anl     a,#0x1f
518         xrl     a,r1
519         xch     a,r1
520         anl     a,#0x1f
521         xch     a,r1
522         xrl     a,r1
523         xch     a,r1
524         mov     r6,a
525         ljmp    00108$
526 00110$:
527 ;       printfl.c 101
528 ; Peephole 111   removed ljmp by inverse jump logic
529         jnb  _sign,00113$
530 00130$:
531 ;       printfl.c 102
532         mov     _ch,#0x2d
533 ;       printfl.c 103
534          push _ch 
535 ;       printfl.c 107
536 00113$:
537         mov     r2,_pvaloct_sp_1_1
538         mov     a,r2
539         cjne    a,_SP,00131$
540 ; Peephole 132   changed ljmp to sjmp
541         sjmp 00116$
542 00131$:
543 ;       printfl.c 108
544          pop _ch 
545 ;       printfl.c 109
546         mov     dpl,_ch
547         lcall   _putchar
548 ; Peephole 132   changed ljmp to sjmp
549         sjmp 00113$
550 00116$:
551         C$printfl.c$111$1$1 ==.
552         XFprintfl$pvaloct$0$0 ==.
553         ret
554         Fprintfl$pvaldec$0$0 ==.
555 ;       printfl.c 113
556 ;       -----------------------------------------
557 ;        function pvaldec
558 ;       -----------------------------------------
559 _pvaldec:
560 ;       printfl.c 0
561         mov     r2,dpl
562         mov     r3,dph
563         mov     r4,b
564         mov     r5,a
565 ;       printfl.c 117
566         mov     _pvaldec_sp_1_1,_SP
567 ;       printfl.c 118
568         mov     a,r5
569 ; Peephole 111   removed ljmp by inverse jump logic
570         jnb  acc.7,00102$
571 00120$:
572 ;       printfl.c 119
573         clr     c
574         clr     a
575         subb    a,r2
576         mov     r7,a
577         clr     a
578         subb    a,r3
579         mov     r0,a
580         clr     a
581         subb    a,r4
582         mov     r1,a
583         clr     a
584         subb    a,r5
585         mov     r6,a
586 ;       printfl.c 120
587         setb    _sign
588 ; Peephole 132   changed ljmp to sjmp
589         sjmp 00104$
590 00102$:
591 ;       printfl.c 122
592         mov     ar7,r2
593         mov     ar0,r3
594         mov     ar1,r4
595         mov     ar6,r5
596 ;       printfl.c 123
597         clr     _sign
598 ;       printfl.c 126
599 00104$:
600         mov     a,r7
601         orl     a,r0
602         orl     a,r1
603         orl     a,r6
604         jnz     00121$
605         ljmp    00106$
606 00121$:
607 ;       printfl.c 127
608         clr     a
609         mov     (__modulong_PARM_2 + 3),a
610         mov     (__modulong_PARM_2 + 2),a
611         mov     (__modulong_PARM_2 + 1),a
612         mov     __modulong_PARM_2,#0x0a
613         push    ar6
614         push    ar7
615         push    ar0
616         push    ar1
617         mov     dpl,r7
618         mov     dph,r0
619         mov     b,r1
620         mov     a,r6
621         lcall   __modulong
622         mov     r2,dpl
623         mov     r3,dph
624         mov     r4,b
625         mov     r5,a
626         pop     ar1
627         pop     ar0
628         pop     ar7
629         pop     ar6
630         mov     a,#0x30
631         add     a,r2
632         mov     r2,a
633 ; Peephole 180   changed mov to clr
634         clr  a
635         addc    a,r3
636         mov     r3,a
637 ; Peephole 180   changed mov to clr
638         clr  a
639         addc    a,r4
640         mov     r4,a
641 ; Peephole 180   changed mov to clr
642         clr  a
643         addc    a,r5
644         mov     r5,a
645         mov     _ch,r2
646 ;       printfl.c 128
647          push _ch 
648 ;       printfl.c 129
649         clr     a
650         mov     (__divulong_PARM_2 + 3),a
651         mov     (__divulong_PARM_2 + 2),a
652         mov     (__divulong_PARM_2 + 1),a
653         mov     __divulong_PARM_2,#0x0a
654         mov     dpl,r7
655         mov     dph,r0
656         mov     b,r1
657         mov     a,r6
658         lcall   __divulong
659         mov     r7,dpl
660         mov     r0,dph
661         mov     r1,b
662         mov     r6,a
663         ljmp    00104$
664 00106$:
665 ;       printfl.c 132
666 ; Peephole 111   removed ljmp by inverse jump logic
667         jnb  _sign,00109$
668 00122$:
669 ;       printfl.c 133
670         mov     _ch,#0x2d
671 ;       printfl.c 134
672          push _ch 
673 ;       printfl.c 138
674 00109$:
675         mov     r2,_pvaldec_sp_1_1
676         mov     a,r2
677         cjne    a,_SP,00123$
678 ; Peephole 132   changed ljmp to sjmp
679         sjmp 00112$
680 00123$:
681 ;       printfl.c 139
682          pop _ch 
683 ;       printfl.c 140
684         mov     dpl,_ch
685         lcall   _putchar
686 ; Peephole 132   changed ljmp to sjmp
687         sjmp 00109$
688 00112$:
689         C$printfl.c$142$1$1 ==.
690         XFprintfl$pvaldec$0$0 ==.
691         ret
692         G$printf_small$0$0 ==.
693 ;       printfl.c 144
694 ;       -----------------------------------------
695 ;        function printf_small
696 ;       -----------------------------------------
697 _printf_small:
698         push    _bp
699         mov     _bp,sp
700         inc     sp
701 ;       printfl.c 148
702         mov     a,_bp
703         add     a,#0xfb
704         mov     r2,a
705 ; Peephole 3.c   changed mov to clr
706         clr  a
707         mov  r3,a
708         mov  r4,a
709 ; Peephole 212  reduced add sequence to inc
710         mov  r0,_bp
711         inc  r0
712         mov     @r0,ar2
713 00129$:
714 ;       printfl.c 150
715         mov     a,_bp
716         add     a,#0xfb
717         mov     r0,a
718         mov     ar3,@r0
719         inc     r0
720         mov     ar4,@r0
721         inc     r0
722         mov     ar5,@r0
723         mov     dpl,r3
724         mov     dph,r4
725         mov     b,r5
726         lcall   __gptrget
727 ; Peephole 105   removed redundant mov
728         mov  r6,a
729         jnz     00154$
730         ljmp    00133$
731 00154$:
732 ;       printfl.c 151
733         cjne    r6,#0x25,00155$
734         sjmp    00156$
735 00155$:
736         ljmp    00127$
737 00156$:
738 ;       printfl.c 152
739         clr     _short_flag
740         clr     _string_flag
741         clr     _long_flag
742 ;       printfl.c 153
743         inc     r3
744         cjne    r3,#0x00,00157$
745         inc     r4
746 00157$:
747         mov     a,_bp
748         add     a,#0xfb
749         mov     r0,a
750         mov     @r0,ar3
751         inc     r0
752         mov     @r0,ar4
753         inc     r0
754         mov     @r0,ar5
755 ;       printfl.c 154
756         mov     dpl,r3
757         mov     dph,r4
758         mov     b,r5
759         lcall   __gptrget
760         mov     r7,a
761         cjne    r7,#0x68,00158$
762 ; Peephole 132   changed ljmp to sjmp
763         sjmp 00102$
764 00158$:
765 ; Peephole 132   changed ljmp to sjmp
766 ; Peephole 199   optimized misc jump sequence
767         cjne r7,#0x6c,00103$
768 ; Peephole 201   removed redundant sjmp
769 00159$:
770 00160$:
771 ;       printfl.c 156
772         setb    _long_flag
773 ;       printfl.c 157
774         mov     a,_bp
775         add     a,#0xfb
776         mov     r0,a
777         mov     a,#0x01
778         add     a,r3
779         mov     @r0,a
780 ; Peephole 180   changed mov to clr
781         clr  a
782         addc    a,r4
783         inc     r0
784         mov     @r0,a
785         inc     r0
786         mov     @r0,ar5
787 ;       printfl.c 158
788 ;       printfl.c 160
789 ; Peephole 132   changed ljmp to sjmp
790         sjmp 00103$
791 00102$:
792         setb    _short_flag
793 ;       printfl.c 161
794         mov     a,_bp
795         add     a,#0xfb
796         mov     r0,a
797         mov     a,#0x01
798         add     a,r3
799         mov     @r0,a
800 ; Peephole 180   changed mov to clr
801         clr  a
802         addc    a,r4
803         inc     r0
804         mov     @r0,a
805         inc     r0
806         mov     @r0,ar5
807 ;       printfl.c 162
808 00103$:
809 ;       printfl.c 164
810         mov     a,_bp
811         add     a,#0xfb
812         mov     r0,a
813         mov     ar3,@r0
814         inc     r0
815         mov     ar4,@r0
816         inc     r0
817         mov     ar5,@r0
818         mov     dpl,r3
819         mov     dph,r4
820         mov     b,r5
821         lcall   __gptrget
822         mov     r3,a
823         cjne    r3,#0x63,00161$
824 ; Peephole 132   changed ljmp to sjmp
825         sjmp 00107$
826 00161$:
827         cjne    r3,#0x64,00162$
828 ; Peephole 132   changed ljmp to sjmp
829         sjmp 00105$
830 00162$:
831         cjne    r3,#0x6f,00163$
832 ; Peephole 132   changed ljmp to sjmp
833         sjmp 00108$
834 00163$:
835         cjne    r3,#0x73,00164$
836 ; Peephole 132   changed ljmp to sjmp
837         sjmp 00104$
838 00164$:
839 ; Peephole 132   changed ljmp to sjmp
840 ;       printfl.c 166
841 ; Peephole 132   changed ljmp to sjmp
842 ; Peephole 199   optimized misc jump sequence
843         cjne r3,#0x78,00109$
844         sjmp 00106$
845 00165$:
846 00104$:
847         setb    _string_flag
848 ;       printfl.c 167
849 ;       printfl.c 169
850 ; Peephole 132   changed ljmp to sjmp
851         sjmp 00109$
852 00105$:
853         mov     _radix,#0x0a
854 ;       printfl.c 170
855 ;       printfl.c 172
856 ; Peephole 132   changed ljmp to sjmp
857         sjmp 00109$
858 00106$:
859         mov     _radix,#0x10
860 ;       printfl.c 173
861 ;       printfl.c 175
862 ; Peephole 132   changed ljmp to sjmp
863         sjmp 00109$
864 00107$:
865         mov     _radix,#0x00
866 ;       printfl.c 176
867 ;       printfl.c 178
868 ; Peephole 132   changed ljmp to sjmp
869         sjmp 00109$
870 00108$:
871         mov     _radix,#0x08
872 ;       printfl.c 180
873 00109$:
874 ;       printfl.c 182
875         jb      _string_flag,00166$
876         ljmp    00114$
877 00166$:
878 ;       printfl.c 183
879 ; Peephole 212  reduced add sequence to inc
880         mov  r1,_bp
881         inc  r1
882         mov     a,@r1
883         add     a,#0xfd
884         mov     r0,a
885 ; Peephole 212  reduced add sequence to inc
886         mov  r1,_bp
887         inc  r1
888         mov     @r1,ar0
889         mov     _str,@r0
890         inc     r0
891         mov     (_str + 1),@r0
892         inc     r0
893         mov     (_str + 2),@r0
894         dec     r0
895         dec     r0
896 ;       printfl.c 184
897 00110$:
898         mov     _printf_small_sloc1_1_0,_str
899         mov     (_printf_small_sloc1_1_0 + 1),(_str + 1)
900         mov     (_printf_small_sloc1_1_0 + 2),(_str + 2)
901         mov     dpl,_printf_small_sloc1_1_0
902         mov     dph,(_printf_small_sloc1_1_0 + 1)
903         mov     b,(_printf_small_sloc1_1_0 + 2)
904         lcall   __gptrget
905 ; Peephole 105   removed redundant mov
906         mov  _printf_small_sloc0_1_0,a
907         jnz     00167$
908         ljmp    00131$
909 00167$:
910         mov     dpl,_str
911         mov     dph,(_str + 1)
912         mov     b,(_str + 2)
913         mov     a,#0x01
914         add     a,_str
915         mov     r2,a
916 ; Peephole 180   changed mov to clr
917         clr  a
918         addc    a,(_str + 1)
919         mov     r7,a
920         mov     r3,(_str + 2)
921         mov     _str,r2
922         mov     (_str + 1),r7
923         mov     (_str + 2),r3
924         lcall   __gptrget
925         mov     r4,a
926         push    ar2
927         push    ar3
928         push    ar4
929         push    ar6
930         push    ar7
931         mov     dpl,r4
932         lcall   _putchar
933         pop     ar7
934         pop     ar6
935         pop     ar4
936         pop     ar3
937         pop     ar2
938 ;       printfl.c 185
939 ; Peephole 132   changed ljmp to sjmp
940         sjmp 00110$
941 00114$:
942 ;       printfl.c 188
943 ; Peephole 111   removed ljmp by inverse jump logic
944         jnb  _long_flag,00119$
945 00168$:
946 ;       printfl.c 189
947 ; Peephole 212  reduced add sequence to inc
948         mov  r1,_bp
949         inc  r1
950         mov     a,@r1
951         add     a,#0xfc
952         mov     r0,a
953 ; Peephole 212  reduced add sequence to inc
954         mov  r1,_bp
955         inc  r1
956         mov     @r1,ar0
957         mov     _val,@r0
958         inc     r0
959         mov     (_val + 1),@r0
960         inc     r0
961         mov     (_val + 2),@r0
962         inc     r0
963         mov     (_val + 3),@r0
964         dec     r0
965         dec     r0
966         dec     r0
967 ; Peephole 132   changed ljmp to sjmp
968         sjmp 00120$
969 00119$:
970 ;       printfl.c 191
971 ; Peephole 111   removed ljmp by inverse jump logic
972         jnb  _short_flag,00116$
973 00169$:
974 ;       printfl.c 192
975 ; Peephole 212  reduced add sequence to inc
976         mov  r1,_bp
977         inc  r1
978         mov     a,@r1
979         add     a,#0xff
980         mov     r0,a
981 ; Peephole 212  reduced add sequence to inc
982         mov  r1,_bp
983         inc  r1
984         mov     @r1,ar0
985         mov     ar2,@r0
986         mov     _val,r2
987         mov     a,r2
988         rlc     a
989         subb    a,acc
990         mov     (_val + 1),a
991         mov     (_val + 2),a
992         mov     (_val + 3),a
993 ; Peephole 132   changed ljmp to sjmp
994         sjmp 00120$
995 00116$:
996 ;       printfl.c 194
997 ; Peephole 212  reduced add sequence to inc
998         mov  r1,_bp
999         inc  r1
1000         mov     a,@r1
1001         add     a,#0xfe
1002         mov     r0,a
1003 ; Peephole 212  reduced add sequence to inc
1004         mov  r1,_bp
1005         inc  r1
1006         mov     @r1,ar0
1007         mov     ar2,@r0
1008         inc     r0
1009         mov     ar3,@r0
1010         dec     r0
1011         mov     _val,r2
1012         mov     (_val + 1),r3
1013         mov     a,r3
1014         rlc     a
1015         subb    a,acc
1016         mov     (_val + 2),a
1017         mov     (_val + 3),a
1018 00120$:
1019 ;       printfl.c 196
1020         mov     a,_radix
1021 ; Peephole 110   removed ljmp by inverse jump logic
1022         jz  00123$
1023 00170$:
1024         mov     a,_radix
1025         cjne    a,#0x08,00171$
1026 ; Peephole 132   changed ljmp to sjmp
1027         sjmp 00124$
1028 00171$:
1029         mov     a,_radix
1030         cjne    a,#0x0a,00172$
1031 ; Peephole 132   changed ljmp to sjmp
1032         sjmp 00121$
1033 00172$:
1034         mov     a,_radix
1035 ; Peephole 132   changed ljmp to sjmp
1036 ;       printfl.c 198
1037 ; Peephole 132   changed ljmp to sjmp
1038 ; Peephole 199   optimized misc jump sequence
1039         cjne a,#0x10,00131$
1040         sjmp 00122$
1041 00173$:
1042 00121$:
1043         push    ar6
1044         mov     dpl,_val
1045         mov     dph,(_val + 1)
1046         mov     b,(_val + 2)
1047         mov     a,(_val + 3)
1048         lcall   _pvaldec
1049         pop     ar6
1050 ;       printfl.c 199
1051 ;       printfl.c 201
1052 ; Peephole 132   changed ljmp to sjmp
1053         sjmp 00131$
1054 00122$:
1055         push    ar6
1056         mov     dpl,_val
1057         mov     dph,(_val + 1)
1058         mov     b,(_val + 2)
1059         mov     a,(_val + 3)
1060         lcall   _pvalhex
1061         pop     ar6
1062 ;       printfl.c 202
1063 ;       printfl.c 204
1064 ; Peephole 132   changed ljmp to sjmp
1065         sjmp 00131$
1066 00123$:
1067         mov     dpl,_val
1068         push    ar6
1069         lcall   _putchar
1070         pop     ar6
1071 ;       printfl.c 205
1072 ;       printfl.c 207
1073 ; Peephole 132   changed ljmp to sjmp
1074         sjmp 00131$
1075 00124$:
1076         push    ar6
1077         mov     dpl,_val
1078         mov     dph,(_val + 1)
1079         mov     b,(_val + 2)
1080         mov     a,(_val + 3)
1081         lcall   _pvaloct
1082         pop     ar6
1083 ;       printfl.c 209
1084 ; Peephole 132   changed ljmp to sjmp
1085         sjmp 00131$
1086 00127$:
1087 ;       printfl.c 212
1088         mov     dpl,r6
1089         lcall   _putchar
1090 00131$:
1091 ;       printfl.c 150
1092         mov     a,_bp
1093         add     a,#0xfb
1094         mov     r0,a
1095         inc     @r0
1096         cjne    @r0,#0x00,00174$
1097         inc     r0
1098         inc     @r0
1099 00174$:
1100         ljmp    00129$
1101 00133$:
1102         mov     sp,_bp
1103         pop     _bp
1104         C$printfl.c$214$1$1 ==.
1105         XG$printf_small$0$0 ==.
1106         ret
1107         .area   CSEG    (CODE)
1108 Fprintfl$_str_0$0$0 == .
1109 __str_0:
1110         .ascii /0123456789ABCDEF/
1111         .byte   0