1 1 ;--------------------------------------------------------
2 2 ; File Created by SDCC : FreeWare ANSI-C Compiler
3 3 ; Version 2.1.9Ga Sun Jan 16 17:31:39 2000
5 5 ;--------------------------------------------------------
7 7 ;--------------------------------------------------------
8 8 ; publics variables in this module
9 9 ;--------------------------------------------------------
10 10 .globl _vprintf_PARM_2
11 11 .globl _vsprintf_PARM_3
12 12 .globl _vsprintf_PARM_2
17 17 .globl _output_to_string
21 21 ;--------------------------------------------------------
22 22 ; special function registers
23 23 ;--------------------------------------------------------
24 24 ;--------------------------------------------------------
25 25 ; special function bits
26 26 ;--------------------------------------------------------
27 27 ;--------------------------------------------------------
28 28 ; internal ram data
29 29 ;--------------------------------------------------------
31 0000 31 G$value$0$0==.
34 0005 34 _vsprintf_sloc0_1_0:
36 0006 36 _vsprintf_sloc1_1_0:
38 0007 38 _vsprintf_sloc2_1_0:
40 000A 40 _vsprintf_sloc3_1_0:
42 000B 42 _vsprintf_sloc4_1_0:
44 000C 44 _vsprintf_sloc5_1_0:
46 000D 46 _vsprintf_sloc6_1_0:
48 000E 48 _vsprintf_sloc7_1_0:
50 000F 50 _vsprintf_sloc8_1_0:
52 0010 52 _vsprintf_sloc9_1_0:
54 0011 54 _vsprintf_sloc10_1_0:
56 0012 56 _vsprintf_sloc11_1_0:
58 0013 58 _vsprintf_sloc12_1_0:
60 0014 60 _vsprintf_sloc13_1_0:
62 62 ;--------------------------------------------------------
63 63 ; overlayable items in internal ram
64 64 ;--------------------------------------------------------
65 65 .area OSEG (OVR,DATA)
66 66 ;--------------------------------------------------------
67 67 ; indirectly addressable internal ram data
68 68 ;--------------------------------------------------------
70 70 ;--------------------------------------------------------
72 72 ;--------------------------------------------------------
74 0000 74 G$output_to_string$0$0==.
75 0000 75 _output_to_string:
77 0001 77 G$lower_case$0$0==.
83 0003 83 _vsprintf_left_justify_1_1:
85 0004 85 _vsprintf_zero_padding_1_1:
87 0005 87 _vsprintf_prefix_sign_1_1:
89 0006 89 _vsprintf_prefix_space_1_1:
91 0007 91 _vsprintf_signed_argument_1_1:
93 0008 93 _vsprintf_char_argument_1_1:
95 0009 95 _vsprintf_long_argument_1_1:
97 97 ;--------------------------------------------------------
98 98 ; external ram data
99 99 ;--------------------------------------------------------
100 100 .area XSEG (XDATA)
101 0000 101 G$output_ptr$0$0==.
102 0000 102 _output_ptr:
104 0003 104 G$radix$0$0==.
107 0004 107 _vsprintf_PARM_2:
109 0007 109 _vsprintf_PARM_3:
111 0008 111 _vsprintf_buf_1_1:
113 000B 113 _vsprintf_width_1_1:
115 000C 115 _vsprintf_length_1_1:
117 000D 117 _vsprintf_c_1_1:
119 000E 119 _vprintf_PARM_2:
121 000F 121 _vprintf_format_1_1:
123 123 ;--------------------------------------------------------
124 124 ; global & static initialisations
125 125 ;--------------------------------------------------------
126 126 .area GSINIT (CODE)
127 127 ;--------------------------------------------------------
129 129 ;--------------------------------------------------------
130 130 .area CSEG (CODE)
131 0000 131 Fvprintf$output_char$0$0 ==.
133 133 ; -----------------------------------------
134 134 ; function output_char
135 135 ; -----------------------------------------
136 0000 136 _output_char:
145 0000 C0*00 145 push _bp
146 0002 85 81*00 146 mov _bp,sp
148 0005 AA 82 148 mov r2,dpl
150 150 ; Peephole 111 removed ljmp by inverse jump logic
151 0007 30*00 25 151 jnb _output_to_string,00102$
154 000A 90s00r00 154 mov dptr,#_output_ptr
155 000D E0 155 movx a,@dptr
158 0010 E0 158 movx a,@dptr
161 0013 E0 161 movx a,@dptr
163 0015 90s00r00 163 mov dptr,#_output_ptr
164 0018 74 01 164 mov a,#0x01
166 001B F0 166 movx @dptr,a
167 167 ; Peephole 180 changed mov to clr
169 001D 3C 169 addc a,r4
171 001F F0 171 movx @dptr,a
174 0022 F0 174 movx @dptr,a
175 0023 8B 82 175 mov dpl,r3
176 0025 8C 83 176 mov dph,r4
177 0027 8D F0 177 mov b,r5
179 002A 12s00r00 179 lcall __gptrput
180 180 ; Peephole 132 changed ljmp to sjmp
181 002D 80 05 181 sjmp 00104$
184 002F 8A 82 184 mov dpl,r2
185 0031 12s00r00 185 lcall _putchar
187 0034 85*00 81 187 mov sp,_bp
188 0037 D0*00 188 pop _bp
189 0039 189 C$vprintf.c$73$1$1 ==.
190 0039 190 XFvprintf$output_char$0$0 ==.
192 003A 192 Fvprintf$output_digit$0$0 ==.
194 194 ; -----------------------------------------
195 195 ; function output_digit
196 196 ; -----------------------------------------
197 003A 197 _output_digit:
198 003A C0*00 198 push _bp
199 003C 85 81*00 199 mov _bp,sp
201 003F AA 82 201 mov r2,dpl
203 0042 74 09 203 mov a,#0x09
204 0044 9A 204 subb a,r2
207 207 ; Peephole 105 removed redundant mov
209 0048 B4 01 00 209 cjne a,#0x01,00109$
213 213 ; Peephole 105 removed redundant mov
215 215 ; Peephole 110 removed ljmp by inverse jump logic
216 004E 60 06 216 jz 00103$
218 0050 74 30 218 mov a,#0x30
221 221 ; Peephole 132 changed ljmp to sjmp
222 0054 80 0F 222 sjmp 00104$
224 224 ; Peephole 111 removed ljmp by inverse jump logic
225 0056 30*01 06 225 jnb _lower_case,00105$
227 0059 74 57 227 mov a,#0x57
230 230 ; Peephole 132 changed ljmp to sjmp
231 005D 80 04 231 sjmp 00106$
233 005F 74 37 233 mov a,#0x37
237 0063 8C 03 237 mov ar3,r4
239 0065 8B 82 239 mov dpl,r3
240 0067 12s00r00 240 lcall _output_char
242 006A 85*00 81 242 mov sp,_bp
243 006D D0*00 243 pop _bp
244 006F 244 C$vprintf.c$80$1$1 ==.
245 006F 245 XFvprintf$output_digit$0$0 ==.
247 0070 247 Fvprintf$output_2digits$0$0 ==.
249 249 ; -----------------------------------------
250 250 ; function output_2digits
251 251 ; -----------------------------------------
252 0070 252 _output_2digits:
253 0070 C0*00 253 push _bp
254 0072 85 81*00 254 mov _bp,sp
256 0075 AA 82 256 mov r2,dpl
260 0079 54 0F 260 anl a,#0x0f
262 007C C0 02 262 push ar2
263 007E 8B 82 263 mov dpl,r3
264 0080 12s00r3A 264 lcall _output_digit
265 0083 D0 02 265 pop ar2
267 0085 53 02 0F 267 anl ar2,#0x0f
268 0088 8A 82 268 mov dpl,r2
269 008A 12s00r3A 269 lcall _output_digit
271 008D 85*00 81 271 mov sp,_bp
272 0090 D0*00 272 pop _bp
273 0092 273 C$vprintf.c$88$1$1 ==.
274 0092 274 XFvprintf$output_2digits$0$0 ==.
276 0093 276 Fvprintf$calculate_digit$0$0 ==.
278 278 ; -----------------------------------------
279 279 ; function calculate_digit
280 280 ; -----------------------------------------
281 0093 281 _calculate_digit:
283 0093 7A 20 283 mov r2,#0x20
285 0095 BA 00 02 285 cjne r2,#0x00,00112$
286 286 ; Peephole 132 changed ljmp to sjmp
287 0098 80 34 287 sjmp 00107$
291 009B E5*00 291 mov a,_value+0
293 009E F5*00 293 mov _value+0,a
294 00A0 E5*01 294 mov a,_value+1
296 00A3 F5*01 296 mov _value+1,a
297 00A5 E5*02 297 mov a,_value+2
299 00A8 F5*02 299 mov _value+2,a
300 00AA E5*03 300 mov a,_value+3
302 00AD F5*03 302 mov _value+3,a
303 00AF E5*04 303 mov a,_value+4
305 00B2 F5*04 305 mov _value+4,a
307 00B4 90s00r03 307 mov dptr,#_radix
308 00B7 E0 308 movx a,@dptr
311 00BA E5*04 311 mov a,0x0004 + _value
312 00BC 9B 312 subb a,r3
313 313 ; Peephole 132 changed ljmp to sjmp
314 314 ; Peephole 160 removed sjmp by inverse jump logic
315 00BD 40 0C 315 jc 00105$
319 00C0 E5*04 319 mov a,0x0004 + _value
320 00C2 9B 320 subb a,r3
321 00C3 F5*04 321 mov 0x0004 + _value,a
323 00C5 74 01 323 mov a,#0x01
324 00C7 25*00 324 add a,_value
325 00C9 F5*00 325 mov _value,a
329 329 ; Peephole 132 changed ljmp to sjmp
330 00CC 80 C7 330 sjmp 00103$
332 00CE 332 C$vprintf.c$123$1$1 ==.
333 00CE 333 XFvprintf$calculate_digit$0$0 ==.
335 00CF 335 G$vsprintf$0$0 ==.
337 337 ; -----------------------------------------
338 338 ; function vsprintf
339 339 ; -----------------------------------------
342 00CF C0 F0 342 push b
343 00D1 C0 83 343 push dph
344 00D3 C0 82 344 push dpl
345 00D5 90s00r08 345 mov dptr,#_vsprintf_buf_1_1
346 00D8 D0 E0 346 pop acc
347 00DA F0 347 movx @dptr,a
348 00DB D0 E0 348 pop acc
350 00DE F0 350 movx @dptr,a
351 00DF D0 E0 351 pop acc
353 00E2 F0 353 movx @dptr,a
355 00E3 90s00r08 355 mov dptr,#_vsprintf_buf_1_1
356 00E6 E0 356 movx a,@dptr
359 00E9 E0 359 movx a,@dptr
362 00EC E0 362 movx a,@dptr
364 00EE 90s00r00 364 mov dptr,#_output_ptr
366 00F2 F0 366 movx @dptr,a
369 00F5 F0 369 movx @dptr,a
372 00F8 F0 372 movx @dptr,a
377 377 ; Peephole 109 removed ljmp by inverse jump logic
378 00FC 70 04 378 jnz 00102$
381 00FE C2*00 381 clr _output_to_string
382 382 ; Peephole 132 changed ljmp to sjmp
383 0100 80 02 383 sjmp 00237$
386 0102 D2*00 386 setb _output_to_string
390 0104 90s00r04 390 mov dptr,#_vsprintf_PARM_2
391 0107 E0 391 movx a,@dptr
394 010A E0 394 movx a,@dptr
397 010D E0 397 movx a,@dptr
399 010F 74 01 399 mov a,#0x01
402 402 ; Peephole 180 changed mov to clr
404 0114 3B 404 addc a,r3
406 0116 8C 07 406 mov ar7,r4
407 0118 90s00r04 407 mov dptr,#_vsprintf_PARM_2
409 011C F0 409 movx @dptr,a
412 011F F0 412 movx @dptr,a
415 0122 F0 415 movx @dptr,a
416 0123 8A 82 416 mov dpl,r2
417 0125 8B 83 417 mov dph,r3
418 0127 8C F0 418 mov b,r4
419 0129 12s00r00 419 lcall __gptrget
420 420 ; Peephole 105 removed redundant mov
421 012C F5*05 421 mov _vsprintf_sloc0_1_0,a
422 012E 70 03 422 jnz 00263$
423 0130 02s06r23 423 ljmp 00195$
426 0133 E5*05 426 mov a,_vsprintf_sloc0_1_0
427 0135 B4 25 02 427 cjne a,#0x25,00264$
428 0138 80 03 428 sjmp 00265$
430 013A 02s06r1A 430 ljmp 00191$
433 013D C2*03 433 clr _vsprintf_left_justify_1_1
435 013F C2*04 435 clr _vsprintf_zero_padding_1_1
437 0141 C2*05 437 clr _vsprintf_prefix_sign_1_1
439 0143 C2*06 439 clr _vsprintf_prefix_space_1_1
441 0145 C2*07 441 clr _vsprintf_signed_argument_1_1
443 0147 90s00r03 443 mov dptr,#_radix
444 444 ; Peephole 180 changed mov to clr
446 014B F0 446 movx @dptr,a
448 014C C2*08 448 clr _vsprintf_char_argument_1_1
450 014E C2*09 450 clr _vsprintf_long_argument_1_1
452 0150 90s00r0B 452 mov dptr,#_vsprintf_width_1_1
453 453 ; Peephole 180 changed mov to clr
455 0154 F0 455 movx @dptr,a
458 0155 8D*07 458 mov _vsprintf_sloc2_1_0,r5
459 0157 8E*08 459 mov (_vsprintf_sloc2_1_0 + 1),r6
460 0159 8F*09 460 mov (_vsprintf_sloc2_1_0 + 2),r7
462 015C BD 00 01 462 cjne r5,#0x00,00266$
465 0160 90s00r04 465 mov dptr,#_vsprintf_PARM_2
467 0164 F0 467 movx @dptr,a
470 0167 F0 470 movx @dptr,a
473 016A F0 473 movx @dptr,a
474 016B 85*07 82 474 mov dpl,_vsprintf_sloc2_1_0
475 016E 85*08 83 475 mov dph,(_vsprintf_sloc2_1_0 + 1)
476 0171 85*09 F0 476 mov b,(_vsprintf_sloc2_1_0 + 2)
477 0174 12s00r00 477 lcall __gptrget
478 478 ; Peephole 100 removed redundant mov
480 0178 90s00r0D 480 mov dptr,#_vsprintf_c_1_1
481 017B F0 481 movx @dptr,a
483 017C C0 05 483 push ar5
484 017E C0 06 484 push ar6
485 0180 C0 07 485 push ar7
486 0182 C0 01 486 push ar1
487 0184 89 82 487 mov dpl,r1
488 0186 12s00r00 488 lcall _isdigit
489 0189 85 82*06 489 mov _vsprintf_sloc1_1_0,dpl
490 018C D0 01 490 pop ar1
491 018E D0 07 491 pop ar7
492 0190 D0 06 492 pop ar6
493 0192 D0 05 493 pop ar5
494 0194 E5*06 494 mov a,_vsprintf_sloc1_1_0
495 495 ; Peephole 110 removed ljmp by inverse jump logic
496 0196 60 2C 496 jz 00108$
499 0198 90s00r0B 499 mov dptr,#_vsprintf_width_1_1
500 019B E0 500 movx a,@dptr
502 019D 75 F0 0A 502 mov b,#0x0a
505 01A2 F5*0C 505 mov _vsprintf_sloc5_1_0,a
507 01A5 24 D0 507 add a,#0xd0
508 508 ; Peephole 105 removed redundant mov
509 01A7 F5*0A 509 mov _vsprintf_sloc3_1_0,a
510 01A9 25*0C 510 add a,_vsprintf_sloc5_1_0
511 511 ; Peephole 100 removed redundant mov
513 01AC 90s00r0B 513 mov dptr,#_vsprintf_width_1_1
514 01AF F0 514 movx @dptr,a
516 01B0 B8 00 04 516 cjne r0,#0x00,00268$
517 01B3 74 01 517 mov a,#0x01
518 01B5 80 01 518 sjmp 00269$
522 522 ; Peephole 105 removed redundant mov
523 01B8 F5*0B 523 mov _vsprintf_sloc4_1_0,a
524 01BA 70 03 524 jnz 00270$
525 01BC 02s01r55 525 ljmp 00104$
528 01BF D2*04 528 setb _vsprintf_zero_padding_1_1
530 01C1 02s01r55 530 ljmp 00104$
533 01C4 C0 02 533 push ar2
534 01C6 C0 05 534 push ar5
535 01C8 C0 06 535 push ar6
536 01CA C0 07 536 push ar7
537 01CC C0 00 537 push ar0
538 01CE C0 01 538 push ar1
539 01D0 89 82 539 mov dpl,r1
540 01D2 12s00r00 540 lcall _islower
541 01D5 85 82*0D 541 mov _vsprintf_sloc6_1_0,dpl
542 01D8 D0 01 542 pop ar1
543 01DA D0 00 543 pop ar0
544 01DC D0 07 544 pop ar7
545 01DE D0 06 545 pop ar6
546 01E0 D0 05 546 pop ar5
547 01E2 D0 02 547 pop ar2
548 01E4 E5*0D 548 mov a,_vsprintf_sloc6_1_0
549 01E6 B4 01 00 549 cjne a,#0x01,00271$
552 01EA 92*01 552 mov _lower_case,c
554 554 ; Peephole 111 removed ljmp by inverse jump logic
555 01EC 30*01 07 555 jnb _lower_case,00110$
558 01EF 74 DF 558 mov a,#0xdf
560 01F2 90s00r0D 560 mov dptr,#_vsprintf_c_1_1
561 01F5 F0 561 movx @dptr,a
564 01F6 90s00r0D 564 mov dptr,#_vsprintf_c_1_1
565 01F9 E0 565 movx a,@dptr
567 01FB BB 20 04 567 cjne r3,#0x20,00273$
568 01FE 74 01 568 mov a,#0x01
569 0200 80 01 569 sjmp 00274$
573 573 ; Peephole 105 removed redundant mov
574 0203 F5*0E 574 mov _vsprintf_sloc7_1_0,a
575 0205 60 03 575 jz 00275$
576 0207 02s02r90 576 ljmp 00113$
578 020A BB 2B 04 578 cjne r3,#0x2b,00276$
579 020D 74 01 579 mov a,#0x01
580 020F 80 01 580 sjmp 00277$
584 584 ; Peephole 105 removed redundant mov
585 0212 F5*0F 585 mov _vsprintf_sloc8_1_0,a
586 0214 60 03 586 jz 00278$
587 0216 02s02r8B 587 ljmp 00112$
589 0219 BB 2D 04 589 cjne r3,#0x2d,00279$
590 021C 74 01 590 mov a,#0x01
591 021E 80 01 591 sjmp 00280$
595 595 ; Peephole 105 removed redundant mov
596 0221 F5*10 596 mov _vsprintf_sloc9_1_0,a
597 597 ; Peephole 132 changed ljmp to sjmp
598 598 ; Peephole 163 removed sjmp by inverse jump logic
599 0223 70 61 599 jnz 00111$
601 0225 BB 42 04 601 cjne r3,#0x42,00282$
602 0228 74 01 602 mov a,#0x01
603 022A 80 01 603 sjmp 00283$
607 607 ; Peephole 105 removed redundant mov
608 022D F5*11 608 mov _vsprintf_sloc10_1_0,a
609 609 ; Peephole 132 changed ljmp to sjmp
610 610 ; Peephole 163 removed sjmp by inverse jump logic
611 022F 70 64 611 jnz 00114$
613 0231 BB 43 04 613 cjne r3,#0x43,00285$
614 0234 74 01 614 mov a,#0x01
615 0236 80 01 615 sjmp 00286$
619 619 ; Peephole 105 removed redundant mov
620 0239 F5*12 620 mov _vsprintf_sloc11_1_0,a
621 621 ; Peephole 109 removed ljmp by inverse jump logic
622 023B 70 62 622 jnz 00116$
624 023D BB 44 04 624 cjne r3,#0x44,00288$
625 0240 74 01 625 mov a,#0x01
626 0242 80 01 626 sjmp 00289$
630 630 ; Peephole 105 removed redundant mov
631 0245 F5*13 631 mov _vsprintf_sloc12_1_0,a
632 0247 60 03 632 jz 00290$
633 0249 02s04r23 633 ljmp 00137$
635 024C BB 49 04 635 cjne r3,#0x49,00291$
636 024F 74 01 636 mov a,#0x01
637 0251 80 01 637 sjmp 00292$
641 641 ; Peephole 105 removed redundant mov
642 0254 F5*14 642 mov _vsprintf_sloc13_1_0,a
643 0256 60 03 643 jz 00293$
644 0258 02s04r23 644 ljmp 00137$
646 025B BB 4C 04 646 cjne r3,#0x4c,00294$
647 025E 74 01 647 mov a,#0x01
648 0260 80 01 648 sjmp 00295$
652 652 ; Peephole 105 removed redundant mov
654 654 ; Peephole 109 removed ljmp by inverse jump logic
655 0264 70 34 655 jnz 00115$
657 0266 BB 4F 03 657 cjne r3,#0x4f,00297$
658 0269 02s04r2D 658 ljmp 00139$
660 026C BB 50 03 660 cjne r3,#0x50,00298$
661 026F 02s03rC0 661 ljmp 00133$
663 0272 BB 53 02 663 cjne r3,#0x53,00299$
664 664 ; Peephole 132 changed ljmp to sjmp
665 0275 80 42 665 sjmp 00117$
667 0277 BB 55 03 667 cjne r3,#0x55,00300$
668 027A 02s04r35 668 ljmp 00140$
670 027D BB 58 03 670 cjne r3,#0x58,00301$
671 0280 02s04r3D 671 ljmp 00141$
673 0283 02s04r45 673 ljmp 00142$
676 0286 D2*03 676 setb _vsprintf_left_justify_1_1
678 0288 02s01r55 678 ljmp 00104$
681 028B D2*05 681 setb _vsprintf_prefix_sign_1_1
683 028D 02s01r55 683 ljmp 00104$
686 0290 D2*06 686 setb _vsprintf_prefix_space_1_1
688 0292 02s01r55 688 ljmp 00104$
691 0295 D2*08 691 setb _vsprintf_char_argument_1_1
693 0297 02s01r55 693 ljmp 00104$
696 029A D2*09 696 setb _vsprintf_long_argument_1_1
698 029C 02s01r55 698 ljmp 00104$
701 029F 90s00r07 701 mov dptr,#_vsprintf_PARM_3
702 02A2 E0 702 movx a,@dptr
703 703 ; Peephole 105 removed redundant mov
705 02A4 24 FF 705 add a,#0xff
706 706 ; Peephole 100 removed redundant mov
708 02A7 90s00r07 708 mov dptr,#_vsprintf_PARM_3
709 02AA F0 709 movx @dptr,a
710 02AB 86 02 710 mov ar2,@r0
711 02AD C0 03 711 push ar3
712 02AF 8A 82 712 mov dpl,r2
713 02B1 12s00r00 713 lcall _output_char
714 02B4 D0 03 714 pop ar3
716 02B6 02s04r4A 716 ljmp 00143$
719 02B9 90s00r07 719 mov dptr,#_vsprintf_PARM_3
720 02BC E0 720 movx a,@dptr
721 721 ; Peephole 105 removed redundant mov
723 02BE 24 FD 723 add a,#0xfd
724 724 ; Peephole 100 removed redundant mov
726 02C1 90s00r07 726 mov dptr,#_vsprintf_PARM_3
727 02C4 F0 727 movx @dptr,a
728 02C5 86 02 728 mov ar2,@r0
730 02C8 86 04 730 mov ar4,@r0
732 02CB 86 05 732 mov ar5,@r0
735 02CF 8A*00 735 mov _value,r2
736 02D1 8C*01 736 mov (_value + 1),r4
737 02D3 8D*02 737 mov (_value + 2),r5
739 02D5 C0 03 739 push ar3
740 02D7 8A 82 740 mov dpl,r2
741 02D9 8C 83 741 mov dph,r4
742 02DB 8D F0 742 mov b,r5
743 02DD 12s00r00 743 lcall _strlen
744 02E0 AA 82 744 mov r2,dpl
745 02E2 AC 83 745 mov r4,dph
746 02E4 D0 03 746 pop ar3
747 02E6 8A*14 747 mov _vsprintf_sloc13_1_0,r2
749 749 ; Peephole 112 removed ljmp by inverse jump logic
750 02E8 20*03 3B 750 jb _vsprintf_left_justify_1_1,00124$
752 02EB 90s00r0B 752 mov dptr,#_vsprintf_width_1_1
753 02EE E0 753 movx a,@dptr
756 02F1 E5*14 756 mov a,_vsprintf_sloc13_1_0
757 02F3 9C 757 subb a,r4
758 758 ; Peephole 108 removed ljmp by inverse jump logic
759 02F4 50 30 759 jnc 00124$
764 02F8 95*14 764 subb a,_vsprintf_sloc13_1_0
768 02FB 8C 05 768 mov ar5,r4
770 02FE 90s00r0B 770 mov dptr,#_vsprintf_width_1_1
772 0302 F0 772 movx @dptr,a
773 0303 BD 00 04 773 cjne r5,#0x00,00304$
774 0306 74 01 774 mov a,#0x01
775 0308 80 01 775 sjmp 00305$
779 779 ; Peephole 105 removed redundant mov
781 781 ; Peephole 109 removed ljmp by inverse jump logic
782 030C 70 18 782 jnz 00124$
785 030E C0 03 785 push ar3
786 0310 C0 04 786 push ar4
787 0312 C0 05 787 push ar5
788 0314 C0 06 788 push ar6
789 0316 75 82 20 789 mov dpl,#0x20
790 0319 12s00r00 790 lcall _output_char
791 031C D0 06 791 pop ar6
792 031E D0 05 792 pop ar5
793 0320 D0 04 793 pop ar4
794 0322 D0 03 794 pop ar3
796 796 ; Peephole 132 changed ljmp to sjmp
797 0324 80 D5 797 sjmp 00118$
799 0326 AC*00 799 mov r4,_value
800 0328 AD*01 800 mov r5,(_value + 1)
801 032A AE*02 801 mov r6,(_value + 2)
802 032C 8C 82 802 mov dpl,r4
803 032E 8D 83 803 mov dph,r5
804 0330 8E F0 804 mov b,r6
805 0332 12s00r00 805 lcall __gptrget
806 806 ; Peephole 105 removed redundant mov
807 0335 F5*13 807 mov _vsprintf_sloc12_1_0,a
808 808 ; Peephole 110 removed ljmp by inverse jump logic
809 0337 60 40 809 jz 00126$
812 0339 74 01 812 mov a,#0x01
815 815 ; Peephole 180 changed mov to clr
817 033E 3D 817 addc a,r5
819 0340 8E 02 819 mov ar2,r6
820 0342 88*00 820 mov _value,r0
821 0344 89*01 821 mov (_value + 1),r1
822 0346 8A*02 822 mov (_value + 2),r2
823 0348 8C 82 823 mov dpl,r4
824 034A 8D 83 824 mov dph,r5
825 034C 8E F0 825 mov b,r6
826 034E 12s00r00 826 lcall __gptrget
828 0352 C0 02 828 push ar2
829 0354 C0 03 829 push ar3
830 0356 C0 04 830 push ar4
831 0358 C0 05 831 push ar5
832 035A C0 06 832 push ar6
833 035C C0 07 833 push ar7
834 035E C0 00 834 push ar0
835 0360 C0 01 835 push ar1
836 0362 8F 82 836 mov dpl,r7
837 0364 12s00r00 837 lcall _output_char
838 0367 D0 01 838 pop ar1
839 0369 D0 00 839 pop ar0
840 036B D0 07 840 pop ar7
841 036D D0 06 841 pop ar6
842 036F D0 05 842 pop ar5
843 0371 D0 04 843 pop ar4
844 0373 D0 03 844 pop ar3
845 0375 D0 02 845 pop ar2
846 846 ; Peephole 132 changed ljmp to sjmp
847 0377 80 AD 847 sjmp 00124$
850 0379 20*03 03 850 jb _vsprintf_left_justify_1_1,00308$
851 037C 02s04r4A 851 ljmp 00143$
853 037F 90s00r0B 853 mov dptr,#_vsprintf_width_1_1
854 0382 E0 854 movx a,@dptr
857 0385 E5*14 857 mov a,_vsprintf_sloc13_1_0
858 0387 9A 858 subb a,r2
859 0388 40 03 859 jc 00309$
860 038A 02s04r4A 860 ljmp 00143$
865 038F 95*14 865 subb a,_vsprintf_sloc13_1_0
869 0392 8A 04 869 mov ar4,r2
871 0395 90s00r0B 871 mov dptr,#_vsprintf_width_1_1
873 0399 F0 873 movx @dptr,a
874 039A BC 00 04 874 cjne r4,#0x00,00310$
875 039D 74 01 875 mov a,#0x01
876 039F 80 01 876 sjmp 00311$
880 880 ; Peephole 105 removed redundant mov
882 03A3 60 03 882 jz 00312$
883 03A5 02s04r4A 883 ljmp 00143$
886 03A8 C0 02 886 push ar2
887 03AA C0 03 887 push ar3
888 03AC C0 04 888 push ar4
889 03AE C0 05 889 push ar5
890 03B0 75 82 20 890 mov dpl,#0x20
891 03B3 12s00r00 891 lcall _output_char
892 03B6 D0 05 892 pop ar5
893 03B8 D0 04 893 pop ar4
894 03BA D0 03 894 pop ar3
895 03BC D0 02 895 pop ar2
897 897 ; Peephole 132 changed ljmp to sjmp
898 03BE 80 D2 898 sjmp 00127$
900 03C0 90s00r07 900 mov dptr,#_vsprintf_PARM_3
901 03C3 E0 901 movx a,@dptr
902 902 ; Peephole 105 removed redundant mov
904 03C5 24 FD 904 add a,#0xfd
905 905 ; Peephole 100 removed redundant mov
907 03C8 90s00r07 907 mov dptr,#_vsprintf_PARM_3
908 03CB F0 908 movx @dptr,a
909 03CC 86 02 909 mov ar2,@r0
911 03CF 86 04 911 mov ar4,@r0
913 03D2 86 05 913 mov ar5,@r0
916 03D6 8A*00 916 mov _value,r2
917 03D8 8C*01 917 mov (_value + 1),r4
918 03DA 8D*02 918 mov (_value + 2),r5
921 03DD 74 03 921 mov a,#0x03
922 03DF 95*02 922 subb a,0x0002 + _value
923 923 ; Peephole 108 removed ljmp by inverse jump logic
924 03E1 50 04 924 jnc 00200$
926 03E3 7A 04 926 mov r2,#0x04
927 927 ; Peephole 132 changed ljmp to sjmp
928 03E5 80 02 928 sjmp 00201$
930 03E7 AA*02 930 mov r2,0x0002 + _value
933 933 ; Peephole 180 changed mov to clr
934 934 ; Peephole 186 optimized movc sequence
935 03EA 90s06r6B 935 mov dptr,#_memory_id
936 03ED 93 936 movc a,@a+dptr
938 03EF C0 03 938 push ar3
939 03F1 8A 82 939 mov dpl,r2
940 03F3 12s00r00 940 lcall _output_char
941 03F6 D0 03 941 pop ar3
943 03F8 C0 03 943 push ar3
944 03FA 75 82 3A 944 mov dpl,#0x3a
945 03FD 12s00r00 945 lcall _output_char
946 0400 D0 03 946 pop ar3
948 0402 E5*02 948 mov a,0x0002 + _value
949 949 ; Peephole 110 removed ljmp by inverse jump logic
950 0404 60 11 950 jz 00135$
952 0406 E5*02 952 mov a,0x0002 + _value
953 0408 B4 03 02 953 cjne a,#0x03,00315$
954 954 ; Peephole 132 changed ljmp to sjmp
955 040B 80 0A 955 sjmp 00135$
958 040D C0 03 958 push ar3
959 040F 85*01 82 959 mov dpl,0x0001 + _value
960 0412 12s00r70 960 lcall _output_2digits
961 0415 D0 03 961 pop ar3
964 0417 C0 03 964 push ar3
965 0419 85*00 82 965 mov dpl,_value
966 041C 12s00r70 966 lcall _output_2digits
967 041F D0 03 967 pop ar3
970 970 ; Peephole 132 changed ljmp to sjmp
971 0421 80 27 971 sjmp 00143$
973 0423 D2*07 973 setb _vsprintf_signed_argument_1_1
975 0425 90s00r03 975 mov dptr,#_radix
976 0428 74 0A 976 mov a,#0x0a
977 042A F0 977 movx @dptr,a
980 980 ; Peephole 132 changed ljmp to sjmp
981 042B 80 1D 981 sjmp 00143$
983 042D 90s00r03 983 mov dptr,#_radix
984 0430 74 08 984 mov a,#0x08
985 0432 F0 985 movx @dptr,a
988 988 ; Peephole 132 changed ljmp to sjmp
989 0433 80 15 989 sjmp 00143$
991 0435 90s00r03 991 mov dptr,#_radix
992 0438 74 0A 992 mov a,#0x0a
993 043A F0 993 movx @dptr,a
996 996 ; Peephole 132 changed ljmp to sjmp
997 043B 80 0D 997 sjmp 00143$
999 043D 90s00r03 999 mov dptr,#_radix
1000 0440 74 10 1000 mov a,#0x10
1001 0442 F0 1001 movx @dptr,a
1002 1002 ; vprintf.c 261
1003 1003 ; vprintf.c 265
1004 1004 ; Peephole 132 changed ljmp to sjmp
1005 0443 80 05 1005 sjmp 00143$
1007 0445 8B 82 1007 mov dpl,r3
1008 0447 12s00r00 1008 lcall _output_char
1009 1009 ; vprintf.c 267
1011 1011 ; vprintf.c 269
1012 044A 90s00r03 1012 mov dptr,#_radix
1013 044D E0 1013 movx a,@dptr
1014 044E FA 1014 mov r2,a
1015 044F BA 00 03 1015 cjne r2,#0x00,00316$
1016 0452 02s01r04 1016 ljmp 00193$
1018 1018 ; vprintf.c 275
1019 1019 ; Peephole 111 removed ljmp by inverse jump logic
1020 0455 30*08 2F 1020 jnb _vsprintf_char_argument_1_1,00152$
1022 1022 ; vprintf.c 277
1023 0458 90s00r07 1023 mov dptr,#_vsprintf_PARM_3
1024 045B E0 1024 movx a,@dptr
1025 1025 ; Peephole 105 removed redundant mov
1026 045C FA 1026 mov r2,a
1027 045D 24 FF 1027 add a,#0xff
1028 1028 ; Peephole 100 removed redundant mov
1029 045F F8 1029 mov r0,a
1030 0460 90s00r07 1030 mov dptr,#_vsprintf_PARM_3
1031 0463 F0 1031 movx @dptr,a
1032 0464 86 02 1032 mov ar2,@r0
1033 0466 EA 1033 mov a,r2
1035 0468 95 E0 1035 subb a,acc
1036 046A FB 1036 mov r3,a
1037 046B FC 1037 mov r4,a
1038 046C FD 1038 mov r5,a
1039 046D 8A*00 1039 mov _value,r2
1040 046F 8B*01 1040 mov (_value + 1),r3
1041 0471 8C*02 1041 mov (_value + 2),r4
1042 0473 8D*03 1042 mov (_value + 3),r5
1043 1043 ; vprintf.c 278
1044 0475 30*07 03 1044 jnb _vsprintf_signed_argument_1_1,00318$
1045 0478 02s04rD7 1045 ljmp 00153$
1047 1047 ; vprintf.c 280
1048 047B 75*01 00 1048 mov 0x0001 + _value,#0x00
1049 1049 ; vprintf.c 281
1050 047E 75*02 00 1050 mov 0x0002 + _value,#0x00
1051 1051 ; vprintf.c 282
1052 0481 75*03 00 1052 mov 0x0003 + _value,#0x00
1053 0484 02s04rD7 1053 ljmp 00153$
1055 1055 ; vprintf.c 285
1056 1056 ; Peephole 111 removed ljmp by inverse jump logic
1057 0487 30*09 24 1057 jnb _vsprintf_long_argument_1_1,00149$
1059 1059 ; vprintf.c 287
1060 048A 90s00r07 1060 mov dptr,#_vsprintf_PARM_3
1061 048D E0 1061 movx a,@dptr
1062 1062 ; Peephole 105 removed redundant mov
1063 048E FA 1063 mov r2,a
1064 048F 24 FC 1064 add a,#0xfc
1065 1065 ; Peephole 100 removed redundant mov
1066 0491 F8 1066 mov r0,a
1067 0492 90s00r07 1067 mov dptr,#_vsprintf_PARM_3
1068 0495 F0 1068 movx @dptr,a
1069 0496 86 02 1069 mov ar2,@r0
1071 0499 86 03 1071 mov ar3,@r0
1073 049C 86 04 1073 mov ar4,@r0
1075 049F 86 05 1075 mov ar5,@r0
1079 04A4 8A*00 1079 mov _value,r2
1080 04A6 8B*01 1080 mov (_value + 1),r3
1081 04A8 8C*02 1081 mov (_value + 2),r4
1082 04AA 8D*03 1082 mov (_value + 3),r5
1083 1083 ; Peephole 132 changed ljmp to sjmp
1084 04AC 80 29 1084 sjmp 00153$
1086 1086 ; vprintf.c 291
1087 04AE 90s00r07 1087 mov dptr,#_vsprintf_PARM_3
1088 04B1 E0 1088 movx a,@dptr
1089 1089 ; Peephole 105 removed redundant mov
1090 04B2 FA 1090 mov r2,a
1091 04B3 24 FE 1091 add a,#0xfe
1092 1092 ; Peephole 100 removed redundant mov
1093 04B5 F8 1093 mov r0,a
1094 04B6 90s00r07 1094 mov dptr,#_vsprintf_PARM_3
1095 04B9 F0 1095 movx @dptr,a
1096 04BA 86 02 1096 mov ar2,@r0
1098 04BD 86 03 1098 mov ar3,@r0
1100 04C0 EB 1100 mov a,r3
1102 04C2 95 E0 1102 subb a,acc
1103 04C4 FC 1103 mov r4,a
1104 04C5 FD 1104 mov r5,a
1105 04C6 8A*00 1105 mov _value,r2
1106 04C8 8B*01 1106 mov (_value + 1),r3
1107 04CA 8C*02 1107 mov (_value + 2),r4
1108 04CC 8D*03 1108 mov (_value + 3),r5
1109 1109 ; vprintf.c 292
1110 1110 ; Peephole 112 removed ljmp by inverse jump logic
1111 04CE 20*07 06 1111 jb _vsprintf_signed_argument_1_1,00153$
1113 1113 ; vprintf.c 294
1114 04D1 75*02 00 1114 mov 0x0002 + _value,#0x00
1115 1115 ; vprintf.c 295
1116 04D4 75*03 00 1116 mov 0x0003 + _value,#0x00
1118 1118 ; vprintf.c 299
1119 1119 ; Peephole 111 removed ljmp by inverse jump logic
1120 04D7 30*07 22 1120 jnb _vsprintf_signed_argument_1_1,00158$
1122 1122 ; vprintf.c 301
1123 04DA E5*03 1123 mov a,(_value + 3)
1124 1124 ; Peephole 111 removed ljmp by inverse jump logic
1125 04DC 30 E7 1B 1125 jnb acc.7,00155$
1127 1127 ; vprintf.c 302
1130 04E1 95*00 1130 subb a,_value
1131 04E3 FA 1131 mov r2,a
1133 04E5 95*01 1133 subb a,(_value + 1)
1134 04E7 FB 1134 mov r3,a
1136 04E9 95*02 1136 subb a,(_value + 2)
1137 04EB FC 1137 mov r4,a
1139 04ED 95*03 1139 subb a,(_value + 3)
1140 04EF FD 1140 mov r5,a
1141 04F0 8A*00 1141 mov _value,r2
1142 04F2 8B*01 1142 mov (_value + 1),r3
1143 04F4 8C*02 1143 mov (_value + 2),r4
1144 04F6 8D*03 1144 mov (_value + 3),r5
1145 1145 ; Peephole 132 changed ljmp to sjmp
1146 04F8 80 02 1146 sjmp 00158$
1148 1148 ; vprintf.c 304
1149 04FA C2*07 1149 clr _vsprintf_signed_argument_1_1
1151 1151 ; vprintf.c 307
1152 04FC 90s00r0C 1152 mov dptr,#_vsprintf_length_1_1
1153 1153 ; Peephole 180 changed mov to clr
1155 0500 F0 1155 movx @dptr,a
1156 1156 ; vprintf.c 308
1157 0501 D2*02 1157 setb _lsd
1158 1158 ; vprintf.c 309
1159 0503 7A 00 1159 mov r2,#0x00
1161 0505 E5*00 1161 mov a,_value
1162 1162 ; Peephole 162 removed sjmp by inverse jump logic
1163 0507 60 02 1163 jz 00324$
1165 1165 ; Peephole 132 changed ljmp to sjmp
1166 0509 80 1E 1166 sjmp 00163$
1168 050B E5*01 1168 mov a,0x0001 + _value
1169 1169 ; Peephole 162 removed sjmp by inverse jump logic
1170 050D 60 02 1170 jz 00326$
1172 1172 ; Peephole 132 changed ljmp to sjmp
1173 050F 80 18 1173 sjmp 00163$
1175 1175 ; vprintf.c 310
1176 0511 E5*02 1176 mov a,0x0002 + _value
1177 1177 ; Peephole 162 removed sjmp by inverse jump logic
1178 0513 60 02 1178 jz 00328$
1180 1180 ; Peephole 132 changed ljmp to sjmp
1181 0515 80 12 1181 sjmp 00163$
1183 0517 E5*03 1183 mov a,0x0003 + _value
1184 0519 70 04 1184 jnz 00329$
1185 051B 74 01 1185 mov a,#0x01
1186 051D 80 01 1186 sjmp 00330$
1190 0520 FB 1190 mov r3,a
1191 0521 90s00r0C 1191 mov dptr,#_vsprintf_length_1_1
1192 0524 EA 1192 mov a,r2
1193 0525 F0 1193 movx @dptr,a
1194 0526 EB 1194 mov a,r3
1195 1195 ; Peephole 109 removed ljmp by inverse jump logic
1196 0527 70 21 1196 jnz 00164$
1199 1199 ; vprintf.c 312
1200 0529 75*04 00 1200 mov 0x0004 + _value,#0x00
1201 1201 ; vprintf.c 313
1202 052C C0 02 1202 push ar2
1203 052E 12s00r93 1203 lcall _calculate_digit
1204 0531 D0 02 1204 pop ar2
1205 1205 ; vprintf.c 327
1206 0533 20*02 0B 1206 jb _lsd,1$
1207 0536 D0 F0 1207 pop b ; b = <lsd>
1208 0538 E5*04 1208 mov a,_value+4 ; a = <msd>
1210 053B 42 F0 1210 orl b,a ; b = <msd><lsd>
1211 053D C0 F0 1211 push b
1212 053F 80 04 1212 sjmp 2$
1214 0541 E5*04 1214 mov a,_value+4 ; a = <lsd>
1215 0543 C0 E0 1215 push acc
1217 1217 ; vprintf.c 329
1219 1219 ; vprintf.c 330
1220 1220 ; Peephole 167 removed redundant bit moves (c not set to _lsd)
1221 0546 B2*02 1221 cpl _lsd
1222 1222 ; Peephole 132 changed ljmp to sjmp
1223 0548 80 BB 1223 sjmp 00162$
1225 1225 ; vprintf.c 333
1226 054A 90s00r0B 1226 mov dptr,#_vsprintf_width_1_1
1227 054D E0 1227 movx a,@dptr
1228 054E FB 1228 mov r3,a
1229 1229 ; Peephole 132 changed ljmp to sjmp
1230 1230 ; Peephole 199 optimized misc jump sequence
1231 054F BB 00 06 1231 cjne r3,#0x00,00166$
1232 1232 ; Peephole 201 removed redundant sjmp
1235 1235 ; vprintf.c 338
1236 0552 90s00r0B 1236 mov dptr,#_vsprintf_width_1_1
1237 0555 74 01 1237 mov a,#0x01
1238 0557 F0 1238 movx @dptr,a
1240 1240 ; vprintf.c 342
1241 1241 ; Peephole 112 removed ljmp by inverse jump logic
1242 0558 20*04 21 1242 jb _vsprintf_zero_padding_1_1,00171$
1244 1244 ; vprintf.c 344
1246 055C 90s00r0B 1246 mov dptr,#_vsprintf_width_1_1
1247 055F E0 1247 movx a,@dptr
1248 0560 FB 1248 mov r3,a
1251 0562 EA 1251 mov a,r2
1252 0563 9B 1252 subb a,r3
1255 0566 FA 1255 mov r2,a
1256 0567 90s00r0B 1256 mov dptr,#_vsprintf_width_1_1
1257 056A EB 1257 mov a,r3
1258 056B F0 1258 movx @dptr,a
1259 056C EA 1259 mov a,r2
1260 1260 ; Peephole 110 removed ljmp by inverse jump logic
1261 056D 60 0D 1261 jz 00171$
1263 1263 ; vprintf.c 346
1264 056F C0 03 1264 push ar3
1265 0571 75 82 20 1265 mov dpl,#0x20
1266 0574 12s00r00 1266 lcall _output_char
1267 0577 D0 03 1267 pop ar3
1268 1268 ; vprintf.c 347
1270 1270 ; Peephole 132 changed ljmp to sjmp
1271 057A 80 E5 1271 sjmp 00167$
1273 1273 ; vprintf.c 351
1274 1274 ; Peephole 111 removed ljmp by inverse jump logic
1275 057C 30*07 13 1275 jnb _vsprintf_signed_argument_1_1,00180$
1277 1277 ; vprintf.c 353
1278 057F 75 82 2D 1278 mov dpl,#0x2d
1279 0582 12s00r00 1279 lcall _output_char
1280 1280 ; vprintf.c 355
1281 0585 90s00r0B 1281 mov dptr,#_vsprintf_width_1_1
1282 0588 E0 1282 movx a,@dptr
1283 1283 ; Peephole 105 removed redundant mov
1284 0589 FA 1284 mov r2,a
1285 058A 24 FF 1285 add a,#0xff
1286 058C 90s00r0B 1286 mov dptr,#_vsprintf_width_1_1
1287 058F F0 1287 movx @dptr,a
1288 1288 ; Peephole 132 changed ljmp to sjmp
1289 0590 80 34 1289 sjmp 00258$
1291 1291 ; vprintf.c 357
1292 0592 90s00r0C 1292 mov dptr,#_vsprintf_length_1_1
1293 0595 E0 1293 movx a,@dptr
1294 0596 FA 1294 mov r2,a
1295 0597 BA 00 02 1295 cjne r2,#0x00,00337$
1296 1296 ; Peephole 132 changed ljmp to sjmp
1297 059A 80 2A 1297 sjmp 00258$
1299 1299 ; vprintf.c 360
1300 1300 ; Peephole 111 removed ljmp by inverse jump logic
1301 059C 30*05 13 1301 jnb _vsprintf_prefix_sign_1_1,00175$
1303 1303 ; vprintf.c 362
1304 059F 75 82 2B 1304 mov dpl,#0x2b
1305 05A2 12s00r00 1305 lcall _output_char
1306 1306 ; vprintf.c 364
1307 05A5 90s00r0B 1307 mov dptr,#_vsprintf_width_1_1
1308 05A8 E0 1308 movx a,@dptr
1309 1309 ; Peephole 105 removed redundant mov
1310 05A9 FA 1310 mov r2,a
1311 05AA 24 FF 1311 add a,#0xff
1312 05AC 90s00r0B 1312 mov dptr,#_vsprintf_width_1_1
1313 05AF F0 1313 movx @dptr,a
1314 1314 ; Peephole 132 changed ljmp to sjmp
1315 05B0 80 14 1315 sjmp 00258$
1317 1317 ; vprintf.c 366
1318 1318 ; Peephole 111 removed ljmp by inverse jump logic
1319 05B2 30*06 11 1319 jnb _vsprintf_prefix_space_1_1,00258$
1321 1321 ; vprintf.c 368
1322 05B5 75 82 20 1322 mov dpl,#0x20
1323 05B8 12s00r00 1323 lcall _output_char
1324 1324 ; vprintf.c 370
1325 05BB 90s00r0B 1325 mov dptr,#_vsprintf_width_1_1
1326 05BE E0 1326 movx a,@dptr
1327 1327 ; Peephole 105 removed redundant mov
1328 05BF FA 1328 mov r2,a
1329 05C0 24 FF 1329 add a,#0xff
1330 05C2 90s00r0B 1330 mov dptr,#_vsprintf_width_1_1
1331 05C5 F0 1331 movx @dptr,a
1332 1332 ; vprintf.c 375
1334 05C6 90s00r0C 1334 mov dptr,#_vsprintf_length_1_1
1335 05C9 E0 1335 movx a,@dptr
1336 05CA FA 1336 mov r2,a
1337 05CB 90s00r0B 1337 mov dptr,#_vsprintf_width_1_1
1338 05CE E0 1338 movx a,@dptr
1339 05CF FB 1339 mov r3,a
1341 05D0 8B 04 1341 mov ar4,r3
1344 05D4 EA 1344 mov a,r2
1345 05D5 9C 1345 subb a,r4
1346 1346 ; Peephole 108 removed ljmp by inverse jump logic
1347 05D6 50 18 1347 jnc 00260$
1349 1349 ; vprintf.c 377
1350 1350 ; Peephole 111 removed ljmp by inverse jump logic
1351 05D8 30*04 04 1351 jnb _vsprintf_zero_padding_1_1,00202$
1353 05DB 7C 30 1353 mov r4,#0x30
1354 1354 ; Peephole 132 changed ljmp to sjmp
1355 05DD 80 02 1355 sjmp 00203$
1357 05DF 7C 20 1357 mov r4,#0x20
1359 05E1 C0 02 1359 push ar2
1360 05E3 C0 03 1360 push ar3
1361 05E5 8C 82 1361 mov dpl,r4
1362 05E7 12s00r00 1362 lcall _output_char
1363 05EA D0 03 1363 pop ar3
1364 05EC D0 02 1364 pop ar2
1365 1365 ; vprintf.c 381
1366 1366 ; Peephole 132 changed ljmp to sjmp
1367 05EE 80 E0 1367 sjmp 00182$
1370 05F0 8A 03 1370 mov ar3,r2
1372 05F3 EB 1372 mov a,r3
1373 05F4 70 03 1373 jnz 00342$
1374 05F6 02s01r04 1374 ljmp 00193$
1376 1376 ; vprintf.c 383
1377 1377 ; Peephole 167 removed redundant bit moves (c not set to _lsd)
1378 05F9 B2*02 1378 cpl _lsd
1379 1379 ; vprintf.c 398
1380 05FB 20*02 0A 1380 jb _lsd,3$
1381 05FE D0 E0 1381 pop acc ; a = <msd><lsd>
1382 0600 00 1382 nop ; to disable the "optimizer"
1383 0601 C0 E0 1383 push acc
1385 0604 54 0F 1385 anl a,#0x0F ; a = <msd>
1386 0606 80 04 1386 sjmp 4$
1388 0608 D0 E0 1388 pop acc
1389 060A 54 0F 1389 anl a,#0x0F ; a = <lsd>
1391 060C F5*04 1391 mov _value+4,a
1392 1392 ; vprintf.c 400
1393 060E C0 02 1393 push ar2
1394 0610 85*04 82 1394 mov dpl,0x0004 + _value
1395 0613 12s00r3A 1395 lcall _output_digit
1396 0616 D0 02 1396 pop ar2
1397 1397 ; Peephole 132 changed ljmp to sjmp
1398 0618 80 D6 1398 sjmp 00185$
1400 1400 ; vprintf.c 407
1401 061A 85*05 82 1401 mov dpl,_vsprintf_sloc0_1_0
1402 061D 12s00r00 1402 lcall _output_char
1403 0620 02s01r04 1403 ljmp 00193$
1405 1405 ; vprintf.c 413
1406 1406 ; Peephole 111 removed ljmp by inverse jump logic
1407 0623 30*00 06 1407 jnb _output_to_string,00198$
1409 0626 75 82 00 1409 mov dpl,#0x00
1410 0629 12s00r00 1410 lcall _output_char
1412 062C 1412 C$vprintf.c$414$1$1 ==.
1413 062C 1413 XG$vsprintf$0$0 ==.
1415 062D 1415 G$vprintf$0$0 ==.
1416 1416 ; vprintf.c 418
1417 1417 ; -----------------------------------------
1418 1418 ; function vprintf
1419 1419 ; -----------------------------------------
1421 1421 ; vprintf.c 420
1422 062D C0 F0 1422 push b
1423 062F C0 83 1423 push dph
1424 0631 C0 82 1424 push dpl
1425 0633 90s00r0F 1425 mov dptr,#_vprintf_format_1_1
1426 0636 D0 E0 1426 pop acc
1427 0638 F0 1427 movx @dptr,a
1428 0639 D0 E0 1428 pop acc
1429 063B A3 1429 inc dptr
1430 063C F0 1430 movx @dptr,a
1431 063D D0 E0 1431 pop acc
1432 063F A3 1432 inc dptr
1433 0640 F0 1433 movx @dptr,a
1434 0641 90s00r0F 1434 mov dptr,#_vprintf_format_1_1
1435 0644 E0 1435 movx a,@dptr
1436 0645 FA 1436 mov r2,a
1437 0646 A3 1437 inc dptr
1438 0647 E0 1438 movx a,@dptr
1439 0648 FB 1439 mov r3,a
1440 0649 A3 1440 inc dptr
1441 064A E0 1441 movx a,@dptr
1442 064B FC 1442 mov r4,a
1443 064C 90s00r0E 1443 mov dptr,#_vprintf_PARM_2
1444 064F E0 1444 movx a,@dptr
1445 0650 FD 1445 mov r5,a
1446 0651 90s00r04 1446 mov dptr,#_vsprintf_PARM_2
1447 0654 EA 1447 mov a,r2
1448 0655 F0 1448 movx @dptr,a
1449 0656 A3 1449 inc dptr
1450 0657 EB 1450 mov a,r3
1451 0658 F0 1451 movx @dptr,a
1452 0659 A3 1452 inc dptr
1453 065A EC 1453 mov a,r4
1454 065B F0 1454 movx @dptr,a
1455 065C 90s00r07 1455 mov dptr,#_vsprintf_PARM_3
1456 065F ED 1456 mov a,r5
1457 0660 F0 1457 movx @dptr,a
1458 1458 ; Peephole 181 used 16 bit load of dptr
1459 0661 90 00 00 1459 mov dptr,#0x0000
1460 0664 75 F0 00 1460 mov b,#0x00
1461 0667 12s00rCF 1461 lcall _vsprintf
1462 066A 1462 C$vprintf.c$421$1$1 ==.
1463 066A 1463 XG$vprintf$0$0 ==.
1464 1464 ; Peephole 151 removed misc moves via dph, dpl before return
1467 1467 .area CSEG (CODE)
1468 066B 1468 Fvprintf$memory_id$0$0 == .
1469 066B 1469 _memory_id:
1470 066B 49 58 43 50 2D 1470 .ascii /IXCP-/
1471 0670 00 1471 .byte 0