1 ;-------------------------------------------------------- 2 ; File Created by SDCC : FreeWare ANSI-C Compiler 3 ; Version 2.4.0 Wed Mar 31 00:18:31 2004 4 5 ;-------------------------------------------------------- 6 .module usb_irq 7 .optsdcc -mmcs51 --model-small 8 9 ;-------------------------------------------------------- 10 ; Public variables in this module 11 ;-------------------------------------------------------- 12 .globl __vtable 13 .globl __vtol 14 .globl __firm_regulate 15 .globl __volt 16 .globl __adc 17 .globl __power_fail 18 .globl __resistor 19 .globl __buf 20 .globl _USBPAIR 21 .globl _ISOCTL 22 .globl _AUTODATA 23 .globl _AUTOPTRL 24 .globl _AUTOPTRH 25 .globl _OUT07VAL 26 .globl _IN07VAL 27 .globl _I2DAT 28 .globl _I2CS 29 .globl _SETUPDAT 30 .globl _SUDPTRL 31 .globl _SUDPTRH 32 .globl _TOGCTL 33 .globl _USBCS 34 .globl _USBBAV 35 .globl _USBIEN 36 .globl _USBIRQ 37 .globl _OUT07IEN 38 .globl _IN07IEN 39 .globl _OUT07IRQ 40 .globl _IN07IRQ 41 .globl _PORTCCFG 42 .globl _PORTBCFG 43 .globl _PORTACFG 44 .globl _PINSC 45 .globl _OUTC 46 .globl _OEC 47 .globl _OUTB 48 .globl _OEB 49 .globl _OUTA 50 .globl _OEA 51 .globl _OUT6CS 52 .globl _OUT6BC 53 .globl _OUT6BUF 54 .globl _IN6CS 55 .globl _IN6BC 56 .globl _IN6BUF 57 .globl _OUT5CS 58 .globl _OUT5BC 59 .globl _OUT5BUF 60 .globl _IN5CS 61 .globl _IN5BC 62 .globl _IN5BUF 63 .globl _OUT4CS 64 .globl _OUT4BC 65 .globl _OUT4BUF 66 .globl _IN4CS 67 .globl _IN4BC 68 .globl _IN4BUF 69 .globl _OUT3BUF 70 .globl _OUT3CS 71 .globl _OUT3BC 72 .globl _IN3CS 73 .globl _IN3BC 74 .globl _IN3BUF 75 .globl _OUT2BUF 76 .globl _OUT2CS 77 .globl _OUT2BC 78 .globl _IN2CS 79 .globl _IN2BC 80 .globl _IN2BUF 81 .globl _OUT1BC 82 .globl _OUT1CS 83 .globl _OUT1BUF 84 .globl _IN1BC 85 .globl _IN1BUF 86 .globl _IN1CS 87 .globl _OUT0BC 88 .globl _OUT0BUF 89 .globl _IN0BC 90 .globl _IN0BUF 91 .globl _EP0CS 92 .globl _usb_isr 93 ;-------------------------------------------------------- 94 ; special function registers 95 ;-------------------------------------------------------- 0091 96 _EXIF = 0x0091 00E8 97 _EIE = 0x00e8 0098 98 _SCON0 = 0x0098 00C0 99 _SCON1 = 0x00c0 0099 100 _SBUF0 = 0x0099 00C1 101 _SBUF1 = 0x00c1 008E 102 _CKCON = 0x008e 00C8 103 _T2CON = 0x00c8 00CA 104 _RCAP2L = 0x00ca 00CB 105 _RCAP2H = 0x00cb 00CC 106 _TL2 = 0x00cc 00CD 107 _TH2 = 0x00cd 108 ;-------------------------------------------------------- 109 ; special function bits 110 ;-------------------------------------------------------- 00E8 111 _EUSB = 0x00e8 00AC 112 _ES0 = 0x00ac 00AE 113 _ES1 = 0x00ae 0098 114 _RI_0 = 0x0098 0099 115 _TI_0 = 0x0099 00C0 116 _RI_1 = 0x00c0 00C1 117 _TI_1 = 0x00c1 00CA 118 _TR2 = 0x00ca 00CF 119 _TF2 = 0x00cf 00AD 120 _ET2 = 0x00ad 121 ;-------------------------------------------------------- 122 ; overlayable register banks 123 ;-------------------------------------------------------- 124 .area REG_BANK_0 (REL,OVR,DATA) 0000 125 .ds 8 126 .area REG_BANK_1 (REL,OVR,DATA) 0000 127 .ds 8 128 ;-------------------------------------------------------- 129 ; internal ram data 130 ;-------------------------------------------------------- 131 .area DSEG (DATA) 0000 132 _string_index: 0000 133 .ds 12 000C 134 _sdat: 000C 135 .ds 2 000E 136 _usb_isr_i_1_1:: 000E 137 .ds 1 000F 138 _usb_isr_len_2_25:: 000F 139 .ds 1 140 ;-------------------------------------------------------- 141 ; overlayable items in internal ram 142 ;-------------------------------------------------------- 143 .area OSEG (OVR,DATA) 144 ;-------------------------------------------------------- 145 ; indirectly addressable internal ram data 146 ;-------------------------------------------------------- 147 .area ISEG (DATA) 148 ;-------------------------------------------------------- 149 ; bit data 150 ;-------------------------------------------------------- 151 .area BSEG (BIT) 152 ;-------------------------------------------------------- 153 ; external ram data 154 ;-------------------------------------------------------- 155 .area XSEG (XDATA) 7FB4 156 _EP0CS = 0x7fb4 7F00 157 _IN0BUF = 0x7f00 7FB5 158 _IN0BC = 0x7fb5 7EC0 159 _OUT0BUF = 0x7ec0 7FC5 160 _OUT0BC = 0x7fc5 7FB6 161 _IN1CS = 0x7fb6 7E80 162 _IN1BUF = 0x7e80 7FB7 163 _IN1BC = 0x7fb7 7E40 164 _OUT1BUF = 0x7e40 7FC6 165 _OUT1CS = 0x7fc6 7FC7 166 _OUT1BC = 0x7fc7 7E00 167 _IN2BUF = 0x7e00 7FB9 168 _IN2BC = 0x7fb9 7FB8 169 _IN2CS = 0x7fb8 7FC9 170 _OUT2BC = 0x7fc9 7FC8 171 _OUT2CS = 0x7fc8 7DC0 172 _OUT2BUF = 0x7dc0 7D80 173 _IN3BUF = 0x7d80 7FBB 174 _IN3BC = 0x7fbb 7FBA 175 _IN3CS = 0x7fba 7FCB 176 _OUT3BC = 0x7fcb 7FCA 177 _OUT3CS = 0x7fca 7D40 178 _OUT3BUF = 0x7d40 7D00 179 _IN4BUF = 0x7d00 7FBD 180 _IN4BC = 0x7fbd 7FBC 181 _IN4CS = 0x7fbc 7CC0 182 _OUT4BUF = 0x7cc0 7FCD 183 _OUT4BC = 0x7fcd 7FCC 184 _OUT4CS = 0x7fcc 7C80 185 _IN5BUF = 0x7c80 7FBF 186 _IN5BC = 0x7fbf 7FBE 187 _IN5CS = 0x7fbe 7C40 188 _OUT5BUF = 0x7c40 7FCF 189 _OUT5BC = 0x7fcf 7FCE 190 _OUT5CS = 0x7fce 7C00 191 _IN6BUF = 0x7c00 7FC1 192 _IN6BC = 0x7fc1 7FC0 193 _IN6CS = 0x7fc0 7BC0 194 _OUT6BUF = 0x7bc0 7FD1 195 _OUT6BC = 0x7fd1 7FD0 196 _OUT6CS = 0x7fd0 7F9C 197 _OEA = 0x7f9c 7F96 198 _OUTA = 0x7f96 7F9D 199 _OEB = 0x7f9d 7F97 200 _OUTB = 0x7f97 7F9E 201 _OEC = 0x7f9e 7F98 202 _OUTC = 0x7f98 7F9B 203 _PINSC = 0x7f9b 7F93 204 _PORTACFG = 0x7f93 7F94 205 _PORTBCFG = 0x7f94 7F95 206 _PORTCCFG = 0x7f95 7FA9 207 _IN07IRQ = 0x7fa9 7FAA 208 _OUT07IRQ = 0x7faa 7FAC 209 _IN07IEN = 0x7fac 7FAD 210 _OUT07IEN = 0x7fad 7FAB 211 _USBIRQ = 0x7fab 7FAE 212 _USBIEN = 0x7fae 7FAF 213 _USBBAV = 0x7faf 7FD6 214 _USBCS = 0x7fd6 7FD7 215 _TOGCTL = 0x7fd7 7FD4 216 _SUDPTRH = 0x7fd4 7FD5 217 _SUDPTRL = 0x7fd5 7FE8 218 _SETUPDAT = 0x7fe8 7FA5 219 _I2CS = 0x7fa5 7FA6 220 _I2DAT = 0x7fa6 7FDE 221 _IN07VAL = 0x7fde 7FDF 222 _OUT07VAL = 0x7fdf 7FE3 223 _AUTOPTRH = 0x7fe3 7FE4 224 _AUTOPTRL = 0x7fe4 7FE5 225 _AUTODATA = 0x7fe5 7FA1 226 _ISOCTL = 0x7fa1 7FDD 227 _USBPAIR = 0x7fdd 1C04 228 __buf = 0x1c04 1C1C 229 __resistor = 0x1c1c 1C24 230 __power_fail = 0x1c24 1C25 231 __adc = 0x1c25 1C55 232 __volt = 0x1c55 1C65 233 __firm_regulate = 0x1c65 1C66 234 __vtol = 0x1c66 2000 235 __vtable = 0x2000 236 ;-------------------------------------------------------- 237 ; external initialized ram data 238 ;-------------------------------------------------------- 239 .area XISEG (XDATA) 240 ;-------------------------------------------------------- 241 ; global & static initialisations 242 ;-------------------------------------------------------- 243 .area GSINIT (CODE) 244 .area GSFINAL (CODE) 245 .area GSINIT (CODE) 246 ;usb_irq.c:211: static data unsigned int string_index[NUM_STRING] = { 247 ; genCast 0000 7Ar79 248 mov r2,#_string_langid 0002 7Bs0B 249 mov r3,#(_string_langid >> 8) 250 ; genPointerSet 251 ; genNearPointerSet 252 ; genDataPointerSet 0004 8A*00 253 mov _string_index,r2 0006 8B*01 254 mov (_string_index + 1),r3 255 ; genCast 0008 7Ar7A 256 mov r2,#_string_mfg 000A 7Bs0B 257 mov r3,#(_string_mfg >> 8) 258 ; genPointerSet 259 ; genNearPointerSet 260 ; genDataPointerSet 000C 8A*02 261 mov (_string_index + 0x0002),r2 000E 8B*03 262 mov ((_string_index + 0x0002) + 1),r3 263 ; genCast 0010 7Ar86 264 mov r2,#_string_prod 0012 7Bs0B 265 mov r3,#(_string_prod >> 8) 266 ; genPointerSet 267 ; genNearPointerSet 268 ; genDataPointerSet 0014 8A*04 269 mov (_string_index + 0x0004),r2 0016 8B*05 270 mov ((_string_index + 0x0004) + 1),r3 271 ; genCast 0018 7Ar9C 272 mov r2,#_string_sernum 001A 7Bs0B 273 mov r3,#(_string_sernum >> 8) 274 ; genPointerSet 275 ; genNearPointerSet 276 ; genDataPointerSet 001C 8A*06 277 mov (_string_index + 0x0006),r2 001E 8B*07 278 mov ((_string_index + 0x0006) + 1),r3 279 ; genCast 0020 7ArB6 280 mov r2,#_string_if 0022 7Bs0B 281 mov r3,#(_string_if >> 8) 282 ; genPointerSet 283 ; genNearPointerSet 284 ; genDataPointerSet 0024 8A*08 285 mov (_string_index + 0x0008),r2 0026 8B*09 286 mov ((_string_index + 0x0008) + 1),r3 287 ; genCast 0028 7ArC0 288 mov r2,#_string_rev 002A 7Bs0B 289 mov r3,#(_string_rev >> 8) 290 ; genPointerSet 291 ; genNearPointerSet 292 ; genDataPointerSet 002C 8A*0A 293 mov (_string_index + 0x000a),r2 002E 8B*0B 294 mov ((_string_index + 0x000a) + 1),r3 295 ;usb_irq.c:220: static xdata setup_dat * data sdat = (xdata setup_dat *)&SETUPDAT; 296 ; genAssign 0030 75*0C E8 297 mov _sdat,#0xE8 0033 75*0D 7F 298 mov (_sdat + 1),#0x7F 299 ;-------------------------------------------------------- 300 ; Home 301 ;-------------------------------------------------------- 302 .area HOME (CODE) 303 .area CSEG (CODE) 304 ;-------------------------------------------------------- 305 ; code 306 ;-------------------------------------------------------- 307 .area CSEG (CODE) 308 ;------------------------------------------------------------ 309 ;Allocation info for local variables in function 'usb_isr' 310 ;------------------------------------------------------------ 311 ;i Allocated with name '_usb_isr_i_1_1' 312 ;len Allocated with name '_usb_isr_len_2_25' 313 ;c Allocated to registers 314 ;c Allocated to registers 315 ;------------------------------------------------------------ 316 ;usb_irq.c:237: void usb_isr(void) interrupt 8 using 1 critical 317 ; ----------------------------------------- 318 ; function usb_isr 319 ; ----------------------------------------- 0000 320 _usb_isr: 000A 321 ar2 = 0x0a 000B 322 ar3 = 0x0b 000C 323 ar4 = 0x0c 000D 324 ar5 = 0x0d 000E 325 ar6 = 0x0e 000F 326 ar7 = 0x0f 0008 327 ar0 = 0x08 0009 328 ar1 = 0x09 0000 C0 E0 329 push acc 0002 C0 F0 330 push b 0004 C0 82 331 push dpl 0006 C0 83 332 push dph 0008 C0 D0 333 push psw 000A 75 D0 08 334 mov psw,#0x08 000D D3 335 setb c 000E 10 AF 01 336 jbc ea,00294$ 0011 C3 337 clr c 0012 338 00294$: 0012 C0 D0 339 push psw 340 ;usb_irq.c:242: EXIF &= 0xef; 341 ; genAnd 0014 53 91 EF 342 anl _EXIF,#0xEF 343 ;usb_irq.c:245: if (USBIRQ & 0x01) { 344 ; genAssign 0017 90 7F AB 345 mov dptr,#_USBIRQ 001A E0 346 movx a,@dptr 347 ; genAnd 348 ; Peephole 105 removed redundant mov 001B FA 349 mov r2,a 350 ; genIfxJump 001C 20 E0 03 351 jb acc.0,00295$ 001F 02s03rD0 352 ljmp 00174$ 0022 353 00295$: 354 ;usb_irq.c:247: USBIRQ = 0x01; 355 ; genAssign 0022 90 7F AB 356 mov dptr,#_USBIRQ 0025 74 01 357 mov a,#0x01 0027 F0 358 movx @dptr,a 359 ;usb_irq.c:265: switch (sdat->bRequest) { 360 ; genPlus 361 ; genPlusIncr 0028 74 01 362 mov a,#0x01 002A 25*0C 363 add a,_sdat 002C F5 82 364 mov dpl,a 365 ; Peephole 181 changed mov to clr 002E E4 366 clr a 002F 35*0D 367 addc a,(_sdat + 1) 0031 F5 83 368 mov dph,a 369 ; genPointerGet 370 ; genFarPointerGet 0033 E0 371 movx a,@dptr 0034 FA 372 mov r2,a 373 ; genCmpEq 0035 BA 00 02 374 cjne r2,#0x00,00296$ 375 ; Peephole 112.b changed ljmp to sjmp 0038 80 32 376 sjmp 00106$ 003A 377 00296$: 378 ; genCmpEq 003A BA 01 02 379 cjne r2,#0x01,00297$ 380 ; Peephole 112.b changed ljmp to sjmp 003D 80 63 381 sjmp 00116$ 003F 382 00297$: 383 ; genCmpEq 003F BA 03 03 384 cjne r2,#0x03,00298$ 0042 02s01r19 385 ljmp 00132$ 0045 386 00298$: 387 ; genCmpEq 0045 BA 06 03 388 cjne r2,#0x06,00299$ 0048 02s01rFA 389 ljmp 00141$ 004B 390 00299$: 391 ; genCmpEq 004B BA 08 03 392 cjne r2,#0x08,00300$ 004E 02s02rBA 393 ljmp 00145$ 0051 394 00300$: 395 ; genCmpEq 0051 BA 09 03 396 cjne r2,#0x09,00301$ 0054 02s02rE3 397 ljmp 00150$ 0057 398 00301$: 399 ; genCmpEq 0057 BA 0A 03 400 cjne r2,#0x0A,00302$ 005A 02s03r0A 401 ljmp 00158$ 005D 402 00302$: 403 ; genCmpEq 005D BA 0B 03 404 cjne r2,#0x0B,00303$ 0060 02s03r58 405 ljmp 00169$ 0063 406 00303$: 407 ; genCmpEq 0063 BA B9 03 408 cjne r2,#0xB9,00304$ 0066 02s03rC3 409 ljmp 00170$ 0069 410 00304$: 0069 02s03rCA 411 ljmp 00171$ 412 ;usb_irq.c:285: } 006C 413 00106$: 414 ;usb_irq.c:269: switch (sdat->bmRequestType) { 415 ; genAssign 006C 85*0C 82 416 mov dpl,_sdat 006F 85*0D 83 417 mov dph,(_sdat + 1) 418 ; genPointerGet 419 ; genFarPointerGet 0072 E0 420 movx a,@dptr 0073 FA 421 mov r2,a 422 ; genCmpEq 0074 BA 80 02 423 cjne r2,#0x80,00305$ 424 ; Peephole 112.b changed ljmp to sjmp 0077 80 08 425 sjmp 00101$ 0079 426 00305$: 427 ; genCmpEq 0079 BA 81 02 428 cjne r2,#0x81,00306$ 429 ; Peephole 112.b changed ljmp to sjmp 007C 80 03 430 sjmp 00101$ 007E 431 00306$: 432 ; genCmpEq 433 ; Peephole 112.b changed ljmp to sjmp 434 ; Peephole 199 optimized misc jump sequence 007E BA 82 18 435 cjne r2,#0x82,00104$ 436 ;00307$: 437 ; Peephole 200 removed redundant sjmp 0081 438 00308$: 439 ;usb_irq.c:276: INBUF(0,0) = 0x00; 0081 440 00101$: 441 ; genPointerSet 442 ; genFarPointerSet 0081 90 7F 00 443 mov dptr,#(_IN4BUF + 0x0200) 444 ; Peephole 181 changed mov to clr 445 ;usb_irq.c:277: INBUF(0,1) = 0x00; 446 ; genPointerSet 447 ; genFarPointerSet 448 ; Peephole 181 changed mov to clr 449 ; Peephole 219 removed redundant clear 0084 E4 450 clr a 0085 F0 451 movx @dptr,a 0086 90 7F 01 452 mov dptr,#(_IN4BUF + 0x0201) 0089 F0 453 movx @dptr,a 454 ;usb_irq.c:278: IN0BC = 0x02; 455 ; genAssign 008A 90 7F B5 456 mov dptr,#_IN0BC 008D 74 02 457 mov a,#0x02 008F F0 458 movx @dptr,a 459 ;usb_irq.c:279: EP0CS = 0x02; /* clear HSNACK */ 460 ; genAssign 0090 90 7F B4 461 mov dptr,#_EP0CS 0093 74 02 462 mov a,#0x02 0095 F0 463 movx @dptr,a 464 ;usb_irq.c:280: break; 0096 02s03rD0 465 ljmp 00174$ 466 ;usb_irq.c:283: EP0CS = 0x03; /* stall */ 0099 467 00104$: 468 ; genAssign 0099 90 7F B4 469 mov dptr,#_EP0CS 009C 74 03 470 mov a,#0x03 009E F0 471 movx @dptr,a 472 ;usb_irq.c:286: break; 009F 02s03rD0 473 ljmp 00174$ 474 ;usb_irq.c:322: } 00A2 475 00116$: 476 ;usb_irq.c:290: switch (sdat->bmRequestType) { 477 ; genAssign 00A2 85*0C 82 478 mov dpl,_sdat 00A5 85*0D 83 479 mov dph,(_sdat + 1) 480 ; genPointerGet 481 ; genFarPointerGet 00A8 E0 482 movx a,@dptr 00A9 FA 483 mov r2,a 484 ; genCmpEq 00AA BA 00 02 485 cjne r2,#0x00,00309$ 486 ; Peephole 112.b changed ljmp to sjmp 00AD 80 0A 487 sjmp 00107$ 00AF 488 00309$: 489 ; genCmpEq 00AF BA 01 02 490 cjne r2,#0x01,00310$ 491 ; Peephole 112.b changed ljmp to sjmp 00B2 80 0D 492 sjmp 00108$ 00B4 493 00310$: 494 ; genCmpEq 495 ; Peephole 112.b changed ljmp to sjmp 496 ;usb_irq.c:293: EP0CS = 0x02; /* clear HSNACK */ 497 ; Peephole 112.b changed ljmp to sjmp 498 ; Peephole 199 optimized misc jump sequence 00B4 BA 02 62 499 cjne r2,#0x02,00132$ 00B7 80 10 500 sjmp 00114$ 501 ;00311$: 00B9 502 00107$: 503 ; genAssign 00B9 90 7F B4 504 mov dptr,#_EP0CS 00BC 74 02 505 mov a,#0x02 00BE F0 506 movx @dptr,a 507 ;usb_irq.c:294: break; 508 ;usb_irq.c:297: EP0CS = 0x02; /* clear HSNACK */ 509 ; Peephole 112.b changed ljmp to sjmp 00BF 80 58 510 sjmp 00132$ 00C1 511 00108$: 512 ; genAssign 00C1 90 7F B4 513 mov dptr,#_EP0CS 00C4 74 02 514 mov a,#0x02 00C6 F0 515 movx @dptr,a 516 ;usb_irq.c:298: break; 517 ;usb_irq.c:320: } 518 ; Peephole 112.b changed ljmp to sjmp 00C7 80 50 519 sjmp 00132$ 00C9 520 00114$: 521 ;usb_irq.c:301: switch (sdat->wIndexL) { 522 ; genPlus 523 ; genPlusIncr 00C9 74 04 524 mov a,#0x04 00CB 25*0C 525 add a,_sdat 00CD F5 82 526 mov dpl,a 527 ; Peephole 181 changed mov to clr 00CF E4 528 clr a 00D0 35*0D 529 addc a,(_sdat + 1) 00D2 F5 83 530 mov dph,a 531 ; genPointerGet 532 ; genFarPointerGet 00D4 E0 533 movx a,@dptr 00D5 FA 534 mov r2,a 535 ; genCmpEq 00D6 BA 00 02 536 cjne r2,#0x00,00312$ 537 ; Peephole 112.b changed ljmp to sjmp 00D9 80 0F 538 sjmp 00109$ 00DB 539 00312$: 540 ; genCmpEq 00DB BA 80 02 541 cjne r2,#0x80,00313$ 542 ; Peephole 112.b changed ljmp to sjmp 00DE 80 1A 543 sjmp 00110$ 00E0 544 00313$: 545 ; genCmpEq 00E0 BA 81 02 546 cjne r2,#0x81,00314$ 547 ; Peephole 112.b changed ljmp to sjmp 00E3 80 26 548 sjmp 00111$ 00E5 549 00314$: 550 ; genCmpEq 551 ; Peephole 112.b changed ljmp to sjmp 552 ;usb_irq.c:305: TOGCTL = 0x00; 553 ; Peephole 112.b changed ljmp to sjmp 554 ; Peephole 199 optimized misc jump sequence 00E5 BA 82 31 555 cjne r2,#0x82,00132$ 00E8 80 29 556 sjmp 00112$ 557 ;00315$: 00EA 558 00109$: 559 ; genAssign 560 ;usb_irq.c:306: TOGCTL = 0x20; 561 ; genAssign 562 ; Peephole 180.a removed redundant mov to dptr 00EA 90 7F D7 563 mov dptr,#_TOGCTL 564 ; Peephole 181 changed mov to clr 00ED E4 565 clr a 00EE F0 566 movx @dptr,a 00EF 74 20 567 mov a,#0x20 00F1 F0 568 movx @dptr,a 569 ;usb_irq.c:307: EP0CS = 0x02; /* clear HSNACK */ 570 ; genAssign 00F2 90 7F B4 571 mov dptr,#_EP0CS 00F5 74 02 572 mov a,#0x02 00F7 F0 573 movx @dptr,a 574 ;usb_irq.c:308: break; 575 ;usb_irq.c:310: TOGCTL = 0x10; 576 ; Peephole 112.b changed ljmp to sjmp 00F8 80 1F 577 sjmp 00132$ 00FA 578 00110$: 579 ; genAssign 580 ;usb_irq.c:311: TOGCTL = 0x30; 581 ; genAssign 582 ; Peephole 180.a removed redundant mov to dptr 00FA 90 7F D7 583 mov dptr,#_TOGCTL 00FD 74 10 584 mov a,#0x10 00FF F0 585 movx @dptr,a 0100 74 30 586 mov a,#0x30 0102 F0 587 movx @dptr,a 588 ;usb_irq.c:312: EP0CS = 0x02; /* clear HSNACK */ 589 ; genAssign 0103 90 7F B4 590 mov dptr,#_EP0CS 0106 74 02 591 mov a,#0x02 0108 F0 592 movx @dptr,a 593 ;usb_irq.c:313: break; 594 ;usb_irq.c:315: EP0CS = 0x03; /* stall */ 595 ; Peephole 112.b changed ljmp to sjmp 0109 80 0E 596 sjmp 00132$ 010B 597 00111$: 598 ; genAssign 010B 90 7F B4 599 mov dptr,#_EP0CS 010E 74 03 600 mov a,#0x03 0110 F0 601 movx @dptr,a 602 ;usb_irq.c:316: break; 603 ;usb_irq.c:318: EP0CS = 0x03; /* stall */ 604 ; Peephole 112.b changed ljmp to sjmp 0111 80 06 605 sjmp 00132$ 0113 606 00112$: 607 ; genAssign 0113 90 7F B4 608 mov dptr,#_EP0CS 0116 74 03 609 mov a,#0x03 0118 F0 610 movx @dptr,a 611 ;usb_irq.c:375: } 0119 612 00132$: 613 ;usb_irq.c:325: switch (sdat->bmRequestType) { 614 ; genAssign 0119 85*0C 82 615 mov dpl,_sdat 011C 85*0D 83 616 mov dph,(_sdat + 1) 617 ; genPointerGet 618 ; genFarPointerGet 011F E0 619 movx a,@dptr 0120 FA 620 mov r2,a 621 ; genCmpEq 0121 BA 00 02 622 cjne r2,#0x00,00316$ 623 ; Peephole 112.b changed ljmp to sjmp 0124 80 13 624 sjmp 00117$ 0126 625 00316$: 626 ; genCmpEq 0126 BA 01 02 627 cjne r2,#0x01,00317$ 628 ; Peephole 112.b changed ljmp to sjmp 0129 80 17 629 sjmp 00118$ 012B 630 00317$: 631 ; genCmpEq 012B BA 02 02 632 cjne r2,#0x02,00318$ 633 ; Peephole 112.b changed ljmp to sjmp 012E 80 1B 634 sjmp 00125$ 0130 635 00318$: 636 ; genCmpEq 0130 BA A1 03 637 cjne r2,#0xA1,00319$ 0133 02s01rC3 638 ljmp 00129$ 0136 639 00319$: 0136 02s01rF1 640 ljmp 00130$ 641 ;usb_irq.c:328: EP0CS = 0x02; /* clear HSNACK */ 0139 642 00117$: 643 ; genAssign 0139 90 7F B4 644 mov dptr,#_EP0CS 013C 74 02 645 mov a,#0x02 013E F0 646 movx @dptr,a 647 ;usb_irq.c:329: break; 013F 02s03rD0 648 ljmp 00174$ 649 ;usb_irq.c:332: EP0CS = 0x02; /* clear HSNACK */ 0142 650 00118$: 651 ; genAssign 0142 90 7F B4 652 mov dptr,#_EP0CS 0145 74 02 653 mov a,#0x02 0147 F0 654 movx @dptr,a 655 ;usb_irq.c:333: break; 0148 02s03rD0 656 ljmp 00174$ 657 ;usb_irq.c:359: } 014B 658 00125$: 659 ;usb_irq.c:336: switch (sdat->wIndexL) { 660 ; genPlus 661 ; genPlusIncr 014B 74 04 662 mov a,#0x04 014D 25*0C 663 add a,_sdat 014F F5 82 664 mov dpl,a 665 ; Peephole 181 changed mov to clr 0151 E4 666 clr a 0152 35*0D 667 addc a,(_sdat + 1) 0154 F5 83 668 mov dph,a 669 ; genPointerGet 670 ; genFarPointerGet 0156 E0 671 movx a,@dptr 0157 FA 672 mov r2,a 673 ; genCmpEq 0158 BA 00 02 674 cjne r2,#0x00,00320$ 675 ; Peephole 112.b changed ljmp to sjmp 015B 80 0F 676 sjmp 00119$ 015D 677 00320$: 678 ; genCmpEq 015D BA 80 02 679 cjne r2,#0x80,00321$ 680 ; Peephole 112.b changed ljmp to sjmp 0160 80 2A 681 sjmp 00120$ 0162 682 00321$: 683 ; genCmpEq 0162 BA 81 02 684 cjne r2,#0x81,00322$ 685 ; Peephole 112.b changed ljmp to sjmp 0165 80 41 686 sjmp 00121$ 0167 687 00322$: 688 ; genCmpEq 689 ; Peephole 112.b changed ljmp to sjmp 690 ;usb_irq.c:338: EP0CS |= 0x01; /* stall endpoint */ 691 ; Peephole 112.b changed ljmp to sjmp 692 ; Peephole 199 optimized misc jump sequence 0167 BA 82 50 693 cjne r2,#0x82,00123$ 016A 80 45 694 sjmp 00122$ 695 ;00323$: 016C 696 00119$: 697 ; genAssign 698 ; genOr 699 ; Peephole 248.a optimized or to xdata 016C 90 7F B4 700 mov dptr,#_EP0CS 016F E0 701 movx a,@dptr 0170 FA 702 mov r2,a 0171 44 01 703 orl a,#0x01 0173 F0 704 movx @dptr,a 705 ;usb_irq.c:339: TOGCTL = 0x00; 706 ; genAssign 707 ;usb_irq.c:340: TOGCTL = 0x20; 708 ; genAssign 709 ; Peephole 180.a removed redundant mov to dptr 0174 90 7F D7 710 mov dptr,#_TOGCTL 711 ; Peephole 181 changed mov to clr 0177 E4 712 clr a 0178 F0 713 movx @dptr,a 0179 74 20 714 mov a,#0x20 017B F0 715 movx @dptr,a 716 ;usb_irq.c:341: OUT0BC = 0x00; 717 ; genAssign 017C 90 7F C5 718 mov dptr,#_OUT0BC 719 ; Peephole 181 changed mov to clr 017F E4 720 clr a 0180 F0 721 movx @dptr,a 722 ;usb_irq.c:342: EP0CS |= 0x02; /* clear HSNACK */ 723 ; genAssign 724 ; genOr 725 ; Peephole 248.a optimized or to xdata 0181 90 7F B4 726 mov dptr,#_EP0CS 0184 E0 727 movx a,@dptr 0185 FA 728 mov r2,a 0186 44 02 729 orl a,#0x02 0188 F0 730 movx @dptr,a 731 ;usb_irq.c:343: break; 0189 02s03rD0 732 ljmp 00174$ 733 ;usb_irq.c:345: EP0CS |= 0x01; /* stall endpoint */ 018C 734 00120$: 735 ; genAssign 736 ; genOr 737 ; Peephole 248.a optimized or to xdata 018C 90 7F B4 738 mov dptr,#_EP0CS 018F E0 739 movx a,@dptr 0190 FA 740 mov r2,a 0191 44 01 741 orl a,#0x01 0193 F0 742 movx @dptr,a 743 ;usb_irq.c:346: TOGCTL = 0x10; 744 ; genAssign 745 ;usb_irq.c:347: TOGCTL = 0x30; 746 ; genAssign 747 ; Peephole 180.a removed redundant mov to dptr 0194 90 7F D7 748 mov dptr,#_TOGCTL 0197 74 10 749 mov a,#0x10 0199 F0 750 movx @dptr,a 019A 74 30 751 mov a,#0x30 019C F0 752 movx @dptr,a 753 ;usb_irq.c:348: EP0CS |= 0x02; /* clear HSNACK */ 754 ; genAssign 755 ; genOr 756 ; Peephole 248.a optimized or to xdata 019D 90 7F B4 757 mov dptr,#_EP0CS 01A0 E0 758 movx a,@dptr 01A1 FA 759 mov r2,a 01A2 44 02 760 orl a,#0x02 01A4 F0 761 movx @dptr,a 762 ;usb_irq.c:349: break; 01A5 02s03rD0 763 ljmp 00174$ 764 ;usb_irq.c:351: EP0CS = 0x03; /* stall */ 01A8 765 00121$: 766 ; genAssign 01A8 90 7F B4 767 mov dptr,#_EP0CS 01AB 74 03 768 mov a,#0x03 01AD F0 769 movx @dptr,a 770 ;usb_irq.c:352: break; 01AE 02s03rD0 771 ljmp 00174$ 772 ;usb_irq.c:354: EP0CS = 0x03; /* stall */ 01B1 773 00122$: 774 ; genAssign 01B1 90 7F B4 775 mov dptr,#_EP0CS 01B4 74 03 776 mov a,#0x03 01B6 F0 777 movx @dptr,a 778 ;usb_irq.c:355: break; 01B7 02s03rD0 779 ljmp 00174$ 780 ;usb_irq.c:357: EP0CS = 0x03; /* stall */ 01BA 781 00123$: 782 ; genAssign 01BA 90 7F B4 783 mov dptr,#_EP0CS 01BD 74 03 784 mov a,#0x03 01BF F0 785 movx @dptr,a 786 ;usb_irq.c:360: break; 01C0 02s03rD0 787 ljmp 00174$ 788 ;usb_irq.c:369: EP0CS = 0x03; /* stall */ 01C3 789 00129$: 790 ;usb_irq.c:364: if (sdat->wIndexL == 0) { 791 ; genPlus 792 ; genPlusIncr 01C3 74 04 793 mov a,#0x04 01C5 25*0C 794 add a,_sdat 01C7 F5 82 795 mov dpl,a 796 ; Peephole 181 changed mov to clr 01C9 E4 797 clr a 01CA 35*0D 798 addc a,(_sdat + 1) 01CC F5 83 799 mov dph,a 800 ; genPointerGet 801 ; genFarPointerGet 01CE E0 802 movx a,@dptr 01CF FA 803 mov r2,a 804 ; genCmpEq 805 ; Peephole 112.b changed ljmp to sjmp 806 ; Peephole 199 optimized misc jump sequence 01D0 BA 00 15 807 cjne r2,#0x00,00127$ 808 ;00324$: 809 ; Peephole 200 removed redundant sjmp 01D3 810 00325$: 811 ;usb_irq.c:365: INBUF(0,0) = 1; /* always send Report protocol */ 812 ; genPointerSet 813 ; genFarPointerSet 01D3 90 7F 00 814 mov dptr,#(_IN4BUF + 0x0200) 01D6 74 01 815 mov a,#0x01 01D8 F0 816 movx @dptr,a 817 ;usb_irq.c:366: IN0BC = 0x01; 818 ; genAssign 01D9 90 7F B5 819 mov dptr,#_IN0BC 01DC 74 01 820 mov a,#0x01 01DE F0 821 movx @dptr,a 822 ;usb_irq.c:367: EP0CS = 0x02; /* clear HSNACK */ 823 ; genAssign 01DF 90 7F B4 824 mov dptr,#_EP0CS 01E2 74 02 825 mov a,#0x02 01E4 F0 826 movx @dptr,a 01E5 02s03rD0 827 ljmp 00174$ 01E8 828 00127$: 829 ;usb_irq.c:369: EP0CS = 0x03; /* stall */ 830 ; genAssign 01E8 90 7F B4 831 mov dptr,#_EP0CS 01EB 74 03 832 mov a,#0x03 01ED F0 833 movx @dptr,a 834 ;usb_irq.c:370: break; 01EE 02s03rD0 835 ljmp 00174$ 836 ;usb_irq.c:373: EP0CS = 0x03; /* stall */ 01F1 837 00130$: 838 ; genAssign 01F1 90 7F B4 839 mov dptr,#_EP0CS 01F4 74 03 840 mov a,#0x03 01F6 F0 841 movx @dptr,a 842 ;usb_irq.c:376: break; 01F7 02s03rD0 843 ljmp 00174$ 844 ;usb_irq.c:408: } 01FA 845 00141$: 846 ;usb_irq.c:380: switch (sdat->wValueH) { 847 ; genPlus 848 ; genPlusIncr 01FA 74 03 849 mov a,#0x03 01FC 25*0C 850 add a,_sdat 01FE F5 82 851 mov dpl,a 852 ; Peephole 181 changed mov to clr 0200 E4 853 clr a 0201 35*0D 854 addc a,(_sdat + 1) 0203 F5 83 855 mov dph,a 856 ; genPointerGet 857 ; genFarPointerGet 0205 E0 858 movx a,@dptr 0206 FA 859 mov r2,a 860 ; genCmpEq 0207 BA 01 02 861 cjne r2,#0x01,00326$ 862 ; Peephole 112.b changed ljmp to sjmp 020A 80 0D 863 sjmp 00133$ 020C 864 00326$: 865 ; genCmpEq 020C BA 02 02 866 cjne r2,#0x02,00327$ 867 ; Peephole 112.b changed ljmp to sjmp 020F 80 27 868 sjmp 00134$ 0211 869 00327$: 870 ; genCmpEq 0211 BA 03 02 871 cjne r2,#0x03,00328$ 872 ; Peephole 112.b changed ljmp to sjmp 0214 80 40 873 sjmp 00138$ 0216 874 00328$: 0216 02s02rB4 875 ljmp 00139$ 876 ;usb_irq.c:383: EP0CS = 0x02; /* clear HSNACK */ 0219 877 00133$: 878 ; genAssign 0219 90 7F B4 879 mov dptr,#_EP0CS 021C 74 02 880 mov a,#0x02 021E F0 881 movx @dptr,a 882 ;usb_irq.c:384: SUDPTRH = (Byte)((unsigned int)dev_desc >> 8); 883 ; genCast 021F 7Ar08 884 mov r2,#_dev_desc 0221 7Bs0B 885 mov r3,#(_dev_desc >> 8) 886 ; genRightShift 887 ; genRightShiftLiteral 888 ; genrshTwo 0223 8B 0A 889 mov ar2,r3 0225 7B 00 890 mov r3,#0x00 891 ; genCast 0227 90 7F D4 892 mov dptr,#_SUDPTRH 022A EA 893 mov a,r2 022B F0 894 movx @dptr,a 895 ;usb_irq.c:385: SUDPTRL = (unsigned int)dev_desc & 0xff; 896 ; genCast 022C 7Ar08 897 mov r2,#_dev_desc 022E 7Bs0B 898 mov r3,#(_dev_desc >> 8) 899 ; genCast 0230 90 7F D5 900 mov dptr,#_SUDPTRL 0233 EA 901 mov a,r2 0234 F0 902 movx @dptr,a 903 ;usb_irq.c:386: break; 0235 02s02rBA 904 ljmp 00145$ 905 ;usb_irq.c:390: EP0CS = 0x02; /* clear HSNACK */ 0238 906 00134$: 907 ; genAssign 0238 90 7F B4 908 mov dptr,#_EP0CS 023B 74 02 909 mov a,#0x02 023D F0 910 movx @dptr,a 911 ;usb_irq.c:391: SUDPTRH = (Byte)((unsigned int)conf_desc >> 8); 912 ; genCast 023E 7Ar1A 913 mov r2,#_conf_desc 0240 7Bs0B 914 mov r3,#(_conf_desc >> 8) 915 ; genRightShift 916 ; genRightShiftLiteral 917 ; genrshTwo 0242 8B 0A 918 mov ar2,r3 0244 7B 00 919 mov r3,#0x00 920 ; genCast 0246 90 7F D4 921 mov dptr,#_SUDPTRH 0249 EA 922 mov a,r2 024A F0 923 movx @dptr,a 924 ;usb_irq.c:392: SUDPTRL = (unsigned int)conf_desc & 0xff; 925 ; genCast 024B 7Ar1A 926 mov r2,#_conf_desc 024D 7Bs0B 927 mov r3,#(_conf_desc >> 8) 928 ; genCast 024F 90 7F D5 929 mov dptr,#_SUDPTRL 0252 EA 930 mov a,r2 0253 F0 931 movx @dptr,a 932 ;usb_irq.c:393: break; 933 ;usb_irq.c:403: } 934 ; Peephole 112.b changed ljmp to sjmp 0254 80 64 935 sjmp 00145$ 0256 936 00138$: 937 ;usb_irq.c:397: if (sdat->wValueL < NUM_STRING) { 938 ; genPlus 939 ; genPlusIncr 0256 74 02 940 mov a,#0x02 0258 25*0C 941 add a,_sdat 025A F5 82 942 mov dpl,a 943 ; Peephole 181 changed mov to clr 025C E4 944 clr a 025D 35*0D 945 addc a,(_sdat + 1) 025F F5 83 946 mov dph,a 947 ; genPointerGet 948 ; genFarPointerGet 0261 E0 949 movx a,@dptr 0262 FA 950 mov r2,a 951 ; genCmpLt 952 ; genCmp 0263 BA 06 00 953 cjne r2,#0x06,00329$ 0266 954 00329$: 955 ; genIfxJump 956 ; Peephole 108 removed ljmp by inverse jump logic 0266 50 44 957 jnc 00136$ 0268 958 00330$: 959 ;usb_irq.c:398: EP0CS = 0x02; /* clear HSNACK */ 960 ; genAssign 0268 90 7F B4 961 mov dptr,#_EP0CS 026B 74 02 962 mov a,#0x02 026D F0 963 movx @dptr,a 964 ;usb_irq.c:399: SUDPTRH = (Byte)(string_index[sdat->wValueL] >> 8); 965 ; genPlus 966 ; genPlusIncr 026E 74 02 967 mov a,#0x02 0270 25*0C 968 add a,_sdat 0272 F5 82 969 mov dpl,a 970 ; Peephole 181 changed mov to clr 0274 E4 971 clr a 0275 35*0D 972 addc a,(_sdat + 1) 0277 F5 83 973 mov dph,a 974 ; genPointerGet 975 ; genFarPointerGet 0279 E0 976 movx a,@dptr 977 ; genLeftShift 978 ; genLeftShiftLiteral 979 ; genlshOne 980 ; Peephole 105 removed redundant mov 981 ; genPlus 982 ; Peephole 177.b removed redundant mov 983 ; Peephole 204 removed redundant mov 027A 25 E0 984 add a,acc 027C FA 985 mov r2,a 027D 24r00 986 add a,#_string_index 027F F8 987 mov r0,a 988 ; genPointerGet 989 ; genNearPointerGet 0280 86 0A 990 mov ar2,@r0 0282 08 991 inc r0 0283 86 0B 992 mov ar3,@r0 993 ; genRightShift 994 ; genRightShiftLiteral 995 ; genrshTwo 0285 8B 0A 996 mov ar2,r3 0287 7B 00 997 mov r3,#0x00 998 ; genCast 0289 90 7F D4 999 mov dptr,#_SUDPTRH 028C EA 1000 mov a,r2 028D F0 1001 movx @dptr,a 1002 ;usb_irq.c:400: SUDPTRL = string_index[sdat->wValueL] & 0xff; 1003 ; genPlus 1004 ; genPlusIncr 028E 74 02 1005 mov a,#0x02 0290 25*0C 1006 add a,_sdat 0292 F5 82 1007 mov dpl,a 1008 ; Peephole 181 changed mov to clr 0294 E4 1009 clr a 0295 35*0D 1010 addc a,(_sdat + 1) 0297 F5 83 1011 mov dph,a 1012 ; genPointerGet 1013 ; genFarPointerGet 0299 E0 1014 movx a,@dptr 1015 ; genLeftShift 1016 ; genLeftShiftLiteral 1017 ; genlshOne 1018 ; Peephole 105 removed redundant mov 1019 ; genPlus 1020 ; Peephole 177.b removed redundant mov 1021 ; Peephole 204 removed redundant mov 029A 25 E0 1022 add a,acc 029C FA 1023 mov r2,a 029D 24r00 1024 add a,#_string_index 029F F8 1025 mov r0,a 1026 ; genPointerGet 1027 ; genNearPointerGet 02A0 86 0A 1028 mov ar2,@r0 02A2 08 1029 inc r0 02A3 86 0B 1030 mov ar3,@r0 1031 ; genCast 02A5 90 7F D5 1032 mov dptr,#_SUDPTRL 02A8 EA 1033 mov a,r2 02A9 F0 1034 movx @dptr,a 1035 ; Peephole 112.b changed ljmp to sjmp 02AA 80 0E 1036 sjmp 00145$ 02AC 1037 00136$: 1038 ;usb_irq.c:402: EP0CS = 0x03; /* stall */ 1039 ; genAssign 02AC 90 7F B4 1040 mov dptr,#_EP0CS 02AF 74 03 1041 mov a,#0x03 02B1 F0 1042 movx @dptr,a 1043 ;usb_irq.c:404: break; 1044 ;usb_irq.c:407: EP0CS = 0x03; /* stall */ 1045 ; Peephole 112.b changed ljmp to sjmp 02B2 80 06 1046 sjmp 00145$ 02B4 1047 00139$: 1048 ; genAssign 02B4 90 7F B4 1049 mov dptr,#_EP0CS 02B7 74 03 1050 mov a,#0x03 02B9 F0 1051 movx @dptr,a 1052 ;usb_irq.c:418: } 02BA 1053 00145$: 1054 ;usb_irq.c:412: if (sdat->bmRequestType == 0x80) { 1055 ; genAssign 02BA 85*0C 82 1056 mov dpl,_sdat 02BD 85*0D 83 1057 mov dph,(_sdat + 1) 1058 ; genPointerGet 1059 ; genFarPointerGet 02C0 E0 1060 movx a,@dptr 02C1 FA 1061 mov r2,a 1062 ; genCmpEq 1063 ; Peephole 112.b changed ljmp to sjmp 1064 ; Peephole 199 optimized misc jump sequence 02C2 BA 80 15 1065 cjne r2,#0x80,00143$ 1066 ;00331$: 1067 ; Peephole 200 removed redundant sjmp 02C5 1068 00332$: 1069 ;usb_irq.c:413: INBUF(0,0) = 0x01; 1070 ; genPointerSet 1071 ; genFarPointerSet 02C5 90 7F 00 1072 mov dptr,#(_IN4BUF + 0x0200) 02C8 74 01 1073 mov a,#0x01 02CA F0 1074 movx @dptr,a 1075 ;usb_irq.c:414: IN0BC = 0x01; 1076 ; genAssign 02CB 90 7F B5 1077 mov dptr,#_IN0BC 02CE 74 01 1078 mov a,#0x01 02D0 F0 1079 movx @dptr,a 1080 ;usb_irq.c:415: EP0CS = 0x02; /* clear HSNACK */ 1081 ; genAssign 02D1 90 7F B4 1082 mov dptr,#_EP0CS 02D4 74 02 1083 mov a,#0x02 02D6 F0 1084 movx @dptr,a 02D7 02s03rD0 1085 ljmp 00174$ 02DA 1086 00143$: 1087 ;usb_irq.c:417: EP0CS = 0x03; /* stall */ 1088 ; genAssign 02DA 90 7F B4 1089 mov dptr,#_EP0CS 02DD 74 03 1090 mov a,#0x03 02DF F0 1091 movx @dptr,a 1092 ;usb_irq.c:419: break; 02E0 02s03rD0 1093 ljmp 00174$ 1094 ;usb_irq.c:436: } 02E3 1095 00150$: 1096 ;usb_irq.c:423: switch (sdat->bmRequestType) { 1097 ; genAssign 02E3 85*0C 82 1098 mov dpl,_sdat 02E6 85*0D 83 1099 mov dph,(_sdat + 1) 1100 ; genPointerGet 1101 ; genFarPointerGet 02E9 E0 1102 movx a,@dptr 02EA FA 1103 mov r2,a 1104 ; genCmpEq 02EB BA 00 02 1105 cjne r2,#0x00,00333$ 1106 ; Peephole 112.b changed ljmp to sjmp 02EE 80 08 1107 sjmp 00146$ 02F0 1108 00333$: 1109 ; genCmpEq 02F0 BA 21 03 1110 cjne r2,#0x21,00334$ 02F3 02s03rD0 1111 ljmp 00174$ 02F6 1112 00334$: 1113 ;usb_irq.c:426: EP0CS = 0x02; /* clear HSNACK */ 1114 ; Peephole 112.b changed ljmp to sjmp 02F6 80 09 1115 sjmp 00148$ 02F8 1116 00146$: 1117 ; genAssign 02F8 90 7F B4 1118 mov dptr,#_EP0CS 02FB 74 02 1119 mov a,#0x02 02FD F0 1120 movx @dptr,a 1121 ;usb_irq.c:427: break; 02FE 02s03rD0 1122 ljmp 00174$ 1123 ;usb_irq.c:434: EP0CS = 0x03; /* stall */ 0301 1124 00148$: 1125 ; genAssign 0301 90 7F B4 1126 mov dptr,#_EP0CS 0304 74 03 1127 mov a,#0x03 0306 F0 1128 movx @dptr,a 1129 ;usb_irq.c:437: break; 0307 02s03rD0 1130 ljmp 00174$ 1131 ;usb_irq.c:465: } 030A 1132 00158$: 1133 ;usb_irq.c:441: switch (sdat->bmRequestType) { 1134 ; genAssign 030A 85*0C 82 1135 mov dpl,_sdat 030D 85*0D 83 1136 mov dph,(_sdat + 1) 1137 ; genPointerGet 1138 ; genFarPointerGet 0310 E0 1139 movx a,@dptr 0311 FA 1140 mov r2,a 1141 ; genCmpEq 0312 BA 21 02 1142 cjne r2,#0x21,00335$ 1143 ; Peephole 112.b changed ljmp to sjmp 0315 80 17 1144 sjmp 00155$ 0317 1145 00335$: 1146 ; genCmpEq 1147 ; Peephole 112.b changed ljmp to sjmp 1148 ; Peephole 199 optimized misc jump sequence 0317 BA 81 36 1149 cjne r2,#0x81,00156$ 1150 ;00336$: 1151 ; Peephole 200 removed redundant sjmp 031A 1152 00337$: 1153 ;usb_irq.c:444: INBUF(0,0) = 0x00; 1154 ; genPointerSet 1155 ; genFarPointerSet 031A 90 7F 00 1156 mov dptr,#(_IN4BUF + 0x0200) 1157 ; Peephole 181 changed mov to clr 031D E4 1158 clr a 031E F0 1159 movx @dptr,a 1160 ;usb_irq.c:445: IN0BC = 0x01; 1161 ; genAssign 031F 90 7F B5 1162 mov dptr,#_IN0BC 0322 74 01 1163 mov a,#0x01 0324 F0 1164 movx @dptr,a 1165 ;usb_irq.c:446: EP0CS = 0x02; /* clear HSNACK */ 1166 ; genAssign 0325 90 7F B4 1167 mov dptr,#_EP0CS 0328 74 02 1168 mov a,#0x02 032A F0 1169 movx @dptr,a 1170 ;usb_irq.c:447: break; 032B 02s03rD0 1171 ljmp 00174$ 1172 ;usb_irq.c:459: EP0CS = 0x03; /* stall */ 032E 1173 00155$: 1174 ;usb_irq.c:451: if (sdat->wIndexL == 0) { 1175 ; genPlus 1176 ; genPlusIncr 032E 74 04 1177 mov a,#0x04 0330 25*0C 1178 add a,_sdat 0332 F5 82 1179 mov dpl,a 1180 ; Peephole 181 changed mov to clr 0334 E4 1181 clr a 0335 35*0D 1182 addc a,(_sdat + 1) 0337 F5 83 1183 mov dph,a 1184 ; genPointerGet 1185 ; genFarPointerGet 0339 E0 1186 movx a,@dptr 033A FA 1187 mov r2,a 1188 ; genCmpEq 1189 ; Peephole 112.b changed ljmp to sjmp 1190 ; Peephole 199 optimized misc jump sequence 033B BA 00 09 1191 cjne r2,#0x00,00153$ 1192 ;00338$: 1193 ; Peephole 200 removed redundant sjmp 033E 1194 00339$: 1195 ;usb_irq.c:457: EP0CS = 0x02; /* clear HSNACK */ 1196 ; genAssign 033E 90 7F B4 1197 mov dptr,#_EP0CS 0341 74 02 1198 mov a,#0x02 0343 F0 1199 movx @dptr,a 0344 02s03rD0 1200 ljmp 00174$ 0347 1201 00153$: 1202 ;usb_irq.c:459: EP0CS = 0x03; /* stall */ 1203 ; genAssign 0347 90 7F B4 1204 mov dptr,#_EP0CS 034A 74 03 1205 mov a,#0x03 034C F0 1206 movx @dptr,a 1207 ;usb_irq.c:460: break; 034D 02s03rD0 1208 ljmp 00174$ 1209 ;usb_irq.c:463: EP0CS = 0x03; /* stall */ 0350 1210 00156$: 1211 ; genAssign 0350 90 7F B4 1212 mov dptr,#_EP0CS 0353 74 03 1213 mov a,#0x03 0355 F0 1214 movx @dptr,a 1215 ;usb_irq.c:466: break; 1216 ;usb_irq.c:494: } 1217 ; Peephole 112.b changed ljmp to sjmp 0356 80 78 1218 sjmp 00174$ 0358 1219 00169$: 1220 ;usb_irq.c:470: switch (sdat->bmRequestType) { 1221 ; genAssign 0358 85*0C 82 1222 mov dpl,_sdat 035B 85*0D 83 1223 mov dph,(_sdat + 1) 1224 ; genPointerGet 1225 ; genFarPointerGet 035E E0 1226 movx a,@dptr 035F FA 1227 mov r2,a 1228 ; genCmpEq 0360 BA 01 02 1229 cjne r2,#0x01,00340$ 1230 ; Peephole 112.b changed ljmp to sjmp 0363 80 05 1231 sjmp 00165$ 0365 1232 00340$: 1233 ; genCmpEq 1234 ; Peephole 112.b changed ljmp to sjmp 1235 ;usb_irq.c:483: EP0CS = 0x03; /* stall */ 1236 ; Peephole 112.b changed ljmp to sjmp 1237 ; Peephole 199 optimized misc jump sequence 0365 BA 21 53 1238 cjne r2,#0x21,00167$ 0368 80 49 1239 sjmp 00166$ 1240 ;00341$: 036A 1241 00165$: 1242 ;usb_irq.c:473: if (sdat->wValueL == 0) { /* only AS 0 supported */ 1243 ; genPlus 1244 ; genPlusIncr 036A 74 02 1245 mov a,#0x02 036C 25*0C 1246 add a,_sdat 036E F5 82 1247 mov dpl,a 1248 ; Peephole 181 changed mov to clr 0370 E4 1249 clr a 0371 35*0D 1250 addc a,(_sdat + 1) 0373 F5 83 1251 mov dph,a 1252 ; genPointerGet 1253 ; genFarPointerGet 0375 E0 1254 movx a,@dptr 0376 FA 1255 mov r2,a 1256 ; genCmpEq 1257 ; Peephole 112.b changed ljmp to sjmp 1258 ; Peephole 199 optimized misc jump sequence 0377 BA 00 31 1259 cjne r2,#0x00,00163$ 1260 ;00342$: 1261 ; Peephole 200 removed redundant sjmp 037A 1262 00343$: 1263 ;usb_irq.c:474: if (sdat->wIndexL == 0) { 1264 ; genPlus 1265 ; genPlusIncr 037A 74 04 1266 mov a,#0x04 037C 25*0C 1267 add a,_sdat 037E F5 82 1268 mov dpl,a 1269 ; Peephole 181 changed mov to clr 0380 E4 1270 clr a 0381 35*0D 1271 addc a,(_sdat + 1) 0383 F5 83 1272 mov dph,a 1273 ; genPointerGet 1274 ; genFarPointerGet 0385 E0 1275 movx a,@dptr 0386 FA 1276 mov r2,a 1277 ; genCmpEq 1278 ; Peephole 112.b changed ljmp to sjmp 1279 ; Peephole 199 optimized misc jump sequence 0387 BA 00 19 1280 cjne r2,#0x00,00160$ 1281 ;00344$: 1282 ; Peephole 200 removed redundant sjmp 038A 1283 00345$: 1284 ;usb_irq.c:475: IN1CS |= 0x02; /* remove busy */ 1285 ; genAssign 1286 ; genOr 1287 ; Peephole 248.a optimized or to xdata 038A 90 7F B6 1288 mov dptr,#_IN1CS 038D E0 1289 movx a,@dptr 038E FA 1290 mov r2,a 038F 44 02 1291 orl a,#0x02 0391 F0 1292 movx @dptr,a 1293 ;usb_irq.c:476: TOGCTL = 0x11; 1294 ; genAssign 1295 ;usb_irq.c:477: TOGCTL = 0x31; /* reset toggle of IN1 */ 1296 ; genAssign 1297 ; Peephole 180.a removed redundant mov to dptr 0392 90 7F D7 1298 mov dptr,#_TOGCTL 0395 74 11 1299 mov a,#0x11 0397 F0 1300 movx @dptr,a 0398 74 31 1301 mov a,#0x31 039A F0 1302 movx @dptr,a 1303 ;usb_irq.c:479: EP0CS = 0x02; /* clear HSNACK */ 1304 ; genAssign 039B 90 7F B4 1305 mov dptr,#_EP0CS 039E 74 02 1306 mov a,#0x02 03A0 F0 1307 movx @dptr,a 1308 ; Peephole 112.b changed ljmp to sjmp 03A1 80 2D 1309 sjmp 00174$ 03A3 1310 00160$: 1311 ;usb_irq.c:481: EP0CS = 0x03; /* stall */ 1312 ; genAssign 03A3 90 7F B4 1313 mov dptr,#_EP0CS 03A6 74 03 1314 mov a,#0x03 03A8 F0 1315 movx @dptr,a 1316 ; Peephole 112.b changed ljmp to sjmp 03A9 80 25 1317 sjmp 00174$ 03AB 1318 00163$: 1319 ;usb_irq.c:483: EP0CS = 0x03; /* stall */ 1320 ; genAssign 03AB 90 7F B4 1321 mov dptr,#_EP0CS 03AE 74 03 1322 mov a,#0x03 03B0 F0 1323 movx @dptr,a 1324 ;usb_irq.c:484: break; 1325 ;usb_irq.c:488: EP0CS = 0x02; /* clear HSNACK */ 1326 ; Peephole 112.b changed ljmp to sjmp 03B1 80 1D 1327 sjmp 00174$ 03B3 1328 00166$: 1329 ; genAssign 03B3 90 7F B4 1330 mov dptr,#_EP0CS 03B6 74 02 1331 mov a,#0x02 03B8 F0 1332 movx @dptr,a 1333 ;usb_irq.c:489: break; 1334 ;usb_irq.c:492: EP0CS = 0x03; /* stall */ 1335 ; Peephole 112.b changed ljmp to sjmp 03B9 80 15 1336 sjmp 00174$ 03BB 1337 00167$: 1338 ; genAssign 03BB 90 7F B4 1339 mov dptr,#_EP0CS 03BE 74 03 1340 mov a,#0x03 03C0 F0 1341 movx @dptr,a 1342 ;usb_irq.c:495: break; 1343 ;usb_irq.c:524: _power_fail = 0; 1344 ; Peephole 112.b changed ljmp to sjmp 03C1 80 0D 1345 sjmp 00174$ 03C3 1346 00170$: 1347 ; genAssign 03C3 90 1C 24 1348 mov dptr,#__power_fail 1349 ; Peephole 181 changed mov to clr 03C6 E4 1350 clr a 03C7 F0 1351 movx @dptr,a 1352 ;usb_irq.c:525: break; 1353 ;usb_irq.c:528: EP0CS = 0x03; /* stall */ 1354 ; Peephole 112.b changed ljmp to sjmp 03C8 80 06 1355 sjmp 00174$ 03CA 1356 00171$: 1357 ; genAssign 03CA 90 7F B4 1358 mov dptr,#_EP0CS 03CD 74 03 1359 mov a,#0x03 03CF F0 1360 movx @dptr,a 1361 ;usb_irq.c:530: } 03D0 1362 00174$: 1363 ;usb_irq.c:537: if (IN07IRQ & 0x01) { 1364 ; genAssign 03D0 90 7F A9 1365 mov dptr,#_IN07IRQ 03D3 E0 1366 movx a,@dptr 1367 ; genAnd 1368 ; Peephole 105 removed redundant mov 03D4 FA 1369 mov r2,a 1370 ; genIfxJump 1371 ; Peephole 111 removed ljmp by inverse jump logic 03D5 30 E0 06 1372 jnb acc.0,00176$ 03D8 1373 00346$: 1374 ;usb_irq.c:539: IN07IRQ = 0x01; 1375 ; genAssign 03D8 90 7F A9 1376 mov dptr,#_IN07IRQ 03DB 74 01 1377 mov a,#0x01 03DD F0 1378 movx @dptr,a 03DE 1379 00176$: 1380 ;usb_irq.c:543: if (OUT07IRQ & 0x01) { 1381 ; genAssign 03DE 90 7F AA 1382 mov dptr,#_OUT07IRQ 03E1 E0 1383 movx a,@dptr 1384 ; genAnd 1385 ; Peephole 105 removed redundant mov 03E2 FA 1386 mov r2,a 1387 ; genIfxJump 1388 ; Peephole 111 removed ljmp by inverse jump logic 03E3 30 E0 0B 1389 jnb acc.0,00292$ 03E6 1390 00347$: 1391 ;usb_irq.c:545: OUT07IRQ = 0x01; 1392 ; genAssign 03E6 90 7F AA 1393 mov dptr,#_OUT07IRQ 03E9 74 01 1394 mov a,#0x01 03EB F0 1395 movx @dptr,a 1396 ;usb_irq.c:548: OUT0BC = 0x00; 1397 ; genAssign 03EC 90 7F C5 1398 mov dptr,#_OUT0BC 1399 ; Peephole 181 changed mov to clr 03EF E4 1400 clr a 03F0 F0 1401 movx @dptr,a 1402 ;usb_irq.c:561: for (i = 1; i < 5; ++i) 03F1 1403 00292$: 1404 ; genAssign 03F1 75*0E 01 1405 mov _usb_isr_i_1_1,#0x01 03F4 1406 00218$: 1407 ; genCmpLt 1408 ; genCmp 03F4 C3 1409 clr c 03F5 E5*0E 1410 mov a,_usb_isr_i_1_1 03F7 94 05 1411 subb a,#0x05 1412 ; genIfxJump 03F9 40 03 1413 jc 00348$ 03FB 02s0ArEB 1414 ljmp 00221$ 03FE 1415 00348$: 1416 ;usb_irq.c:562: if (OUT07IRQ & 1 << i) { 1417 ; genLeftShift 03FE 85*0E F0 1418 mov b,_usb_isr_i_1_1 0401 05 F0 1419 inc b 0403 74 01 1420 mov a,#0x01 0405 80 02 1421 sjmp 00351$ 0407 1422 00349$: 0407 25 E0 1423 add a,acc 0409 1424 00351$: 0409 D5 F0 FB 1425 djnz b,00349$ 040C FB 1426 mov r3,a 1427 ; genAssign 040D 90 7F AA 1428 mov dptr,#_OUT07IRQ 0410 E0 1429 movx a,@dptr 0411 FC 1430 mov r4,a 1431 ; genCast 0412 7D 00 1432 mov r5,#0x00 1433 ; genCast 0414 8B 0E 1434 mov ar6,r3 0416 7F 00 1435 mov r7,#0x00 1436 ; genAnd 0418 EE 1437 mov a,r6 0419 52 0C 1438 anl ar4,a 041B EF 1439 mov a,r7 041C 52 0D 1440 anl ar5,a 1441 ; genIfx 041E EC 1442 mov a,r4 041F 4D 1443 orl a,r5 1444 ; genIfxJump 0420 70 03 1445 jnz 00352$ 0422 02s0ArE6 1446 ljmp 00220$ 0425 1447 00352$: 1448 ;usb_irq.c:563: volatile byte len = OUTBC(i); 1449 ; genCast 0425 AC*0E 1450 mov r4,_usb_isr_i_1_1 0427 7D 00 1451 mov r5,#0x00 1452 ; genMinus 1453 ; genMinusDec 0429 EC 1454 mov a,r4 042A 24 FF 1455 add a,#0xff 042C FE 1456 mov r6,a 042D ED 1457 mov a,r5 042E 34 FF 1458 addc a,#0xff 1459 ; genLeftShift 1460 ; genLeftShiftLiteral 1461 ; genlshTwo 1462 ; Peephole 105 removed redundant mov 0430 FF 1463 mov r7,a 0431 CE 1464 xch a,r6 0432 25 E0 1465 add a,acc 0434 CE 1466 xch a,r6 0435 33 1467 rlc a 0436 FF 1468 mov r7,a 1469 ; genPlus 1470 ; Peephole 236.g used r6 instead of ar6 0437 EE 1471 mov a,r6 0438 24 C7 1472 add a,#_OUT1BC 043A F5 82 1473 mov dpl,a 1474 ; Peephole 236.g used r7 instead of ar7 043C EF 1475 mov a,r7 043D 34 7F 1476 addc a,#(_OUT1BC >> 8) 043F F5 83 1477 mov dph,a 1478 ; genPointerGet 1479 ; genFarPointerGet 0441 E0 1480 movx a,@dptr 0442 F5*0F 1481 mov _usb_isr_len_2_25,a 1482 ;usb_irq.c:564: OUT07IRQ = 1 << i; 1483 ; genAssign 0444 90 7F AA 1484 mov dptr,#_OUT07IRQ 0447 EB 1485 mov a,r3 0448 F0 1486 movx @dptr,a 1487 ;usb_irq.c:565: switch (OUTBUF(i, 0)) { 1488 ; genMinus 0449 74 04 1489 mov a,#0x04 044B C3 1490 clr c 1491 ; Peephole 236.l used r4 instead of ar4 044C 9C 1492 subb a,r4 044D FB 1493 mov r3,a 1494 ; Peephole 181 changed mov to clr 044E E4 1495 clr a 1496 ; Peephole 236.l used r5 instead of ar5 044F 9D 1497 subb a,r5 1498 ; genLeftShift 1499 ; genLeftShiftLiteral 1500 ; genlshTwo 1501 ; Peephole 105 removed redundant mov 0450 FE 1502 mov r6,a 0451 54 01 1503 anl a,#0x01 0453 A2 E0 1504 mov c,acc.0 0455 CB 1505 xch a,r3 0456 13 1506 rrc a 0457 CB 1507 xch a,r3 0458 13 1508 rrc a 0459 CB 1509 xch a,r3 045A FE 1510 mov r6,a 1511 ; genPlus 1512 ; Peephole 236.g used r3 instead of ar3 045B EB 1513 mov a,r3 045C 24 C0 1514 add a,#_OUT4BUF 045E F5 82 1515 mov dpl,a 1516 ; Peephole 236.g used r6 instead of ar6 0460 EE 1517 mov a,r6 0461 34 7C 1518 addc a,#(_OUT4BUF >> 8) 0463 F5 83 1519 mov dph,a 1520 ; genPointerGet 1521 ; genFarPointerGet 0465 E0 1522 movx a,@dptr 0466 FB 1523 mov r3,a 1524 ; genCmpEq 0467 BB 40 02 1525 cjne r3,#0x40,00353$ 1526 ; Peephole 112.b changed ljmp to sjmp 046A 80 61 1527 sjmp 00180$ 046C 1528 00353$: 1529 ; genCmpEq 046C BB 41 02 1530 cjne r3,#0x41,00354$ 1531 ; Peephole 112.b changed ljmp to sjmp 046F 80 43 1532 sjmp 00179$ 0471 1533 00354$: 1534 ; genCmpEq 0471 BB 42 03 1535 cjne r3,#0x42,00355$ 0474 02s05r1D 1536 ljmp 00186$ 0477 1537 00355$: 1538 ; genCmpEq 0477 BB 43 03 1539 cjne r3,#0x43,00356$ 047A 02s05rCB 1540 ljmp 00187$ 047D 1541 00356$: 1542 ; genCmpEq 047D BB 44 03 1543 cjne r3,#0x44,00357$ 0480 02s06r78 1544 ljmp 00191$ 0483 1545 00357$: 1546 ; genCmpEq 0483 BB 45 03 1547 cjne r3,#0x45,00358$ 0486 02s06rEB 1548 ljmp 00195$ 0489 1549 00358$: 1550 ; genCmpEq 0489 BB 46 03 1551 cjne r3,#0x46,00359$ 048C 02s07r5C 1552 ljmp 00198$ 048F 1553 00359$: 1554 ; genCmpEq 048F BB 4B 03 1555 cjne r3,#0x4B,00360$ 0492 02s09r3E 1556 ljmp 00202$ 0495 1557 00360$: 1558 ; genCmpEq 0495 BB 4C 03 1559 cjne r3,#0x4C,00361$ 0498 02s09rBD 1560 ljmp 00206$ 049B 1561 00361$: 1562 ; genCmpEq 049B BB 4D 03 1563 cjne r3,#0x4D,00362$ 049E 02s0Ar3C 1564 ljmp 00207$ 04A1 1565 00362$: 1566 ; genCmpEq 04A1 BB 4E 03 1567 cjne r3,#0x4E,00363$ 04A4 02s0Ar74 1568 ljmp 00208$ 04A7 1569 00363$: 1570 ; genCmpEq 04A7 BB B1 02 1571 cjne r3,#0xB1,00364$ 1572 ; Peephole 112.b changed ljmp to sjmp 04AA 80 42 1573 sjmp 00181$ 04AC 1574 00364$: 1575 ; genCmpEq 04AC BB B4 02 1576 cjne r3,#0xB4,00365$ 1577 ; Peephole 112.b changed ljmp to sjmp 04AF 80 48 1578 sjmp 00182$ 04B1 1579 00365$: 04B1 02s0ArAD 1580 ljmp 00209$ 1581 ;usb_irq.c:567: OUTB = (OUTB & 0x3f) | ((i - 1) << 6); 04B4 1582 00179$: 1583 ; genAssign 04B4 90 7F 97 1584 mov dptr,#_OUTB 04B7 E0 1585 movx a,@dptr 04B8 FB 1586 mov r3,a 1587 ; genAnd 04B9 53 0B 3F 1588 anl ar3,#0x3F 1589 ; genCast 04BC 8C 0E 1590 mov ar6,r4 1591 ; genMinus 1592 ; genMinusDec 04BE 1E 1593 dec r6 1594 ; genLeftShift 1595 ; genLeftShiftLiteral 1596 ; genlshOne 04BF EE 1597 mov a,r6 04C0 03 1598 rr a 04C1 03 1599 rr a 04C2 54 C0 1600 anl a,#0xc0 1601 ; genOr 1602 ; Peephole 177.d removed redundant move 04C4 FE 1603 mov r6,a 04C5 90 7F 97 1604 mov dptr,#_OUTB 04C8 4B 1605 orl a,r3 04C9 F0 1606 movx @dptr,a 1607 ;usb_irq.c:568: break; 04CA 02s0ArCE 1608 ljmp 00213$ 1609 ;usb_irq.c:570: OUTB = (OUTB & 0x3f) | ((i - 1) << 6); 04CD 1610 00180$: 1611 ; genAssign 04CD 90 7F 97 1612 mov dptr,#_OUTB 04D0 E0 1613 movx a,@dptr 04D1 FB 1614 mov r3,a 1615 ; genAnd 04D2 53 0B 3F 1616 anl ar3,#0x3F 1617 ; genCast 04D5 8C 0E 1618 mov ar6,r4 1619 ; genMinus 1620 ; genMinusDec 04D7 1E 1621 dec r6 1622 ; genLeftShift 1623 ; genLeftShiftLiteral 1624 ; genlshOne 04D8 EE 1625 mov a,r6 04D9 03 1626 rr a 04DA 03 1627 rr a 04DB 54 C0 1628 anl a,#0xc0 1629 ; genOr 1630 ; Peephole 177.d removed redundant move 04DD FE 1631 mov r6,a 04DE 90 7F 97 1632 mov dptr,#_OUTB 04E1 4B 1633 orl a,r3 04E2 F0 1634 movx @dptr,a 1635 ;usb_irq.c:571: OUTB |= ENSING; 1636 ; genAssign 1637 ; genOr 1638 ; Peephole 248.a optimized or to xdata 04E3 90 7F 97 1639 mov dptr,#_OUTB 04E6 E0 1640 movx a,@dptr 04E7 FB 1641 mov r3,a 04E8 44 08 1642 orl a,#0x08 04EA F0 1643 movx @dptr,a 1644 ;usb_irq.c:572: break; 04EB 02s0ArCE 1645 ljmp 00213$ 1646 ;usb_irq.c:575: OUTB &= ~ENSING; 04EE 1647 00181$: 1648 ; genAssign 1649 ; genAnd 1650 ; Peephole 248.b optimized and to xdata 04EE 90 7F 97 1651 mov dptr,#_OUTB 04F1 E0 1652 movx a,@dptr 04F2 FB 1653 mov r3,a 04F3 54 F7 1654 anl a,#0xF7 04F5 F0 1655 movx @dptr,a 1656 ;usb_irq.c:576: break; 04F6 02s0ArCE 1657 ljmp 00213$ 1658 ;usb_irq.c:578: OUTB &= ~NRESET; 04F9 1659 00182$: 1660 ; genAssign 1661 ; genAnd 1662 ; Peephole 248.b optimized and to xdata 04F9 90 7F 97 1663 mov dptr,#_OUTB 04FC E0 1664 movx a,@dptr 04FD FB 1665 mov r3,a 04FE 54 FE 1666 anl a,#0xFE 0500 F0 1667 movx @dptr,a 1668 ;usb_irq.c:579: SLEEP; 1669 ; genAssign 0501 7B FF 1670 mov r3,#0xFF 0503 7E 7F 1671 mov r6,#0x7F 0505 1672 00183$: 1673 ; genAssign 0505 8B 0F 1674 mov ar7,r3 0507 8E 08 1675 mov ar0,r6 1676 ; genMinus 1677 ; genMinusDec 0509 1B 1678 dec r3 050A BB FF 01 1679 cjne r3,#0xff,00366$ 050D 1E 1680 dec r6 050E 1681 00366$: 1682 ; genIfx 050E EF 1683 mov a,r7 050F 48 1684 orl a,r0 1685 ; genIfxJump 1686 ; Peephole 109 removed ljmp by inverse jump logic 0510 70 F3 1687 jnz 00183$ 0512 1688 00367$: 1689 ;usb_irq.c:580: OUTB |= NRESET; 1690 ; genAssign 1691 ; genOr 1692 ; Peephole 248.a optimized or to xdata 0512 90 7F 97 1693 mov dptr,#_OUTB 0515 E0 1694 movx a,@dptr 0516 FB 1695 mov r3,a 0517 44 01 1696 orl a,#0x01 0519 F0 1697 movx @dptr,a 1698 ;usb_irq.c:581: break; 051A 02s0ArCE 1699 ljmp 00213$ 1700 ;usb_irq.c:583: VOLT(2 * i - 2) = OUTBUF(i, 1); 051D 1701 00186$: 1702 ; genLeftShift 1703 ; genLeftShiftLiteral 1704 ; genlshOne 051D E5*0E 1705 mov a,_usb_isr_i_1_1 051F 25 E0 1706 add a,acc 1707 ; genMinus 1708 ; genMinusDec 1709 ; Peephole 105 removed redundant mov 0521 FB 1710 mov r3,a 0522 24 FE 1711 add a,#0xfe 1712 ; genMult 1713 ; genMultOneByte 0524 75 F0 02 1714 mov b,#0x02 0527 A4 1715 mul ab 1716 ; genPlus 1717 ; Peephole 236.g used r3 instead of ar3 1718 ; Peephole 177.d removed redundant move 0528 FB 1719 mov r3,a 0529 AE F0 1720 mov r6,b 052B 24 55 1721 add a,#__volt 052D FF 1722 mov r7,a 1723 ; Peephole 236.g used r6 instead of ar6 052E EE 1724 mov a,r6 052F 34 1C 1725 addc a,#(__volt >> 8) 0531 F8 1726 mov r0,a 1727 ; genMinus 0532 74 04 1728 mov a,#0x04 0534 C3 1729 clr c 1730 ; Peephole 236.l used r4 instead of ar4 0535 9C 1731 subb a,r4 0536 F9 1732 mov r1,a 1733 ; Peephole 181 changed mov to clr 0537 E4 1734 clr a 1735 ; Peephole 236.l used r5 instead of ar5 0538 9D 1736 subb a,r5 1737 ; genLeftShift 1738 ; genLeftShiftLiteral 1739 ; genlshTwo 1740 ; Peephole 105 removed redundant mov 0539 FA 1741 mov r2,a 053A 54 01 1742 anl a,#0x01 053C A2 E0 1743 mov c,acc.0 053E C9 1744 xch a,r1 053F 13 1745 rrc a 0540 C9 1746 xch a,r1 0541 13 1747 rrc a 0542 C9 1748 xch a,r1 0543 FA 1749 mov r2,a 1750 ; genIpush 0544 C0 0C 1751 push ar4 0546 C0 0D 1752 push ar5 1753 ; genPlus 1754 ; Peephole 236.g used r1 instead of ar1 0548 E9 1755 mov a,r1 0549 24 C0 1756 add a,#_OUT4BUF 054B FC 1757 mov r4,a 1758 ; Peephole 236.g used r2 instead of ar2 054C EA 1759 mov a,r2 054D 34 7C 1760 addc a,#(_OUT4BUF >> 8) 054F FD 1761 mov r5,a 1762 ; genPlus 1763 ; genPlusIncr 0550 74 01 1764 mov a,#0x01 1765 ; Peephole 236.a used r4 instead of ar4 0552 2C 1766 add a,r4 0553 F5 82 1767 mov dpl,a 1768 ; Peephole 181 changed mov to clr 0555 E4 1769 clr a 1770 ; Peephole 236.b used r5 instead of ar5 0556 3D 1771 addc a,r5 0557 F5 83 1772 mov dph,a 1773 ; genPointerGet 1774 ; genFarPointerGet 0559 E0 1775 movx a,@dptr 055A FC 1776 mov r4,a 1777 ; genCast 055B 7D 00 1778 mov r5,#0x00 1779 ; genPointerSet 1780 ; genFarPointerSet 055D 8F 82 1781 mov dpl,r7 055F 88 83 1782 mov dph,r0 0561 EC 1783 mov a,r4 0562 F0 1784 movx @dptr,a 0563 A3 1785 inc dptr 0564 ED 1786 mov a,r5 0565 F0 1787 movx @dptr,a 1788 ;usb_irq.c:584: VOLT(2 * i - 2) <<= 8; 1789 ; genPlus 1790 ; Peephole 236.g used r3 instead of ar3 0566 EB 1791 mov a,r3 0567 24 55 1792 add a,#__volt 0569 FC 1793 mov r4,a 1794 ; Peephole 236.g used r6 instead of ar6 056A EE 1795 mov a,r6 056B 34 1C 1796 addc a,#(__volt >> 8) 056D FD 1797 mov r5,a 1798 ; genPlus 1799 ; Peephole 236.g used r3 instead of ar3 056E EB 1800 mov a,r3 056F 24 55 1801 add a,#__volt 0571 F5 82 1802 mov dpl,a 1803 ; Peephole 236.g used r6 instead of ar6 0573 EE 1804 mov a,r6 0574 34 1C 1805 addc a,#(__volt >> 8) 0576 F5 83 1806 mov dph,a 1807 ; genPointerGet 1808 ; genFarPointerGet 0578 E0 1809 movx a,@dptr 0579 FF 1810 mov r7,a 057A A3 1811 inc dptr 057B E0 1812 movx a,@dptr 057C F8 1813 mov r0,a 1814 ; genLeftShift 1815 ; genLeftShiftLiteral 1816 ; genlshTwo 057D 8F 08 1817 mov ar0,r7 057F 7F 00 1818 mov r7,#0x00 1819 ; genPointerSet 1820 ; genFarPointerSet 0581 8C 82 1821 mov dpl,r4 0583 8D 83 1822 mov dph,r5 0585 EF 1823 mov a,r7 0586 F0 1824 movx @dptr,a 0587 A3 1825 inc dptr 0588 E8 1826 mov a,r0 0589 F0 1827 movx @dptr,a 1828 ;usb_irq.c:585: VOLT(2 * i - 2) += OUTBUF(i, 2); 1829 ; genPlus 1830 ; Peephole 236.g used r3 instead of ar3 058A EB 1831 mov a,r3 058B 24 55 1832 add a,#__volt 058D FC 1833 mov r4,a 1834 ; Peephole 236.g used r6 instead of ar6 058E EE 1835 mov a,r6 058F 34 1C 1836 addc a,#(__volt >> 8) 0591 FD 1837 mov r5,a 1838 ; genPlus 1839 ; Peephole 236.g used r3 instead of ar3 0592 EB 1840 mov a,r3 0593 24 55 1841 add a,#__volt 0595 F5 82 1842 mov dpl,a 1843 ; Peephole 236.g used r6 instead of ar6 0597 EE 1844 mov a,r6 0598 34 1C 1845 addc a,#(__volt >> 8) 059A F5 83 1846 mov dph,a 1847 ; genPointerGet 1848 ; genFarPointerGet 059C E0 1849 movx a,@dptr 059D FB 1850 mov r3,a 059E A3 1851 inc dptr 059F E0 1852 movx a,@dptr 05A0 FE 1853 mov r6,a 1854 ; genPlus 1855 ; Peephole 236.g used r1 instead of ar1 05A1 E9 1856 mov a,r1 05A2 24 C0 1857 add a,#_OUT4BUF 05A4 F9 1858 mov r1,a 1859 ; Peephole 236.g used r2 instead of ar2 05A5 EA 1860 mov a,r2 05A6 34 7C 1861 addc a,#(_OUT4BUF >> 8) 05A8 FA 1862 mov r2,a 1863 ; genPlus 1864 ; genPlusIncr 05A9 74 02 1865 mov a,#0x02 1866 ; Peephole 236.a used r1 instead of ar1 05AB 29 1867 add a,r1 05AC F5 82 1868 mov dpl,a 1869 ; Peephole 181 changed mov to clr 05AE E4 1870 clr a 1871 ; Peephole 236.b used r2 instead of ar2 05AF 3A 1872 addc a,r2 05B0 F5 83 1873 mov dph,a 1874 ; genPointerGet 1875 ; genFarPointerGet 05B2 E0 1876 movx a,@dptr 1877 ; genCast 1878 ; genPlus 1879 ; Peephole 236.g used r2 instead of ar2 1880 ; Peephole 177.d removed redundant move 05B3 FA 1881 mov r2,a 05B4 7F 00 1882 mov r7,#0x00 1883 ; Peephole 236.a used r3 instead of ar3 05B6 2B 1884 add a,r3 05B7 FB 1885 mov r3,a 1886 ; Peephole 236.g used r7 instead of ar7 05B8 EF 1887 mov a,r7 1888 ; Peephole 236.b used r6 instead of ar6 05B9 3E 1889 addc a,r6 05BA FE 1890 mov r6,a 1891 ; genPointerSet 1892 ; genFarPointerSet 05BB 8C 82 1893 mov dpl,r4 05BD 8D 83 1894 mov dph,r5 05BF EB 1895 mov a,r3 05C0 F0 1896 movx @dptr,a 05C1 A3 1897 inc dptr 05C2 EE 1898 mov a,r6 05C3 F0 1899 movx @dptr,a 1900 ;usb_irq.c:586: break; 1901 ; genIpop 05C4 D0 0D 1902 pop ar5 05C6 D0 0C 1903 pop ar4 05C8 02s0ArCE 1904 ljmp 00213$ 1905 ;usb_irq.c:588: VOLT(2 * i - 1) = OUTBUF(i, 1); 05CB 1906 00187$: 1907 ; genLeftShift 1908 ; genLeftShiftLiteral 1909 ; genlshOne 05CB E5*0E 1910 mov a,_usb_isr_i_1_1 05CD 25 E0 1911 add a,acc 1912 ; genMinus 1913 ; genMinusDec 1914 ; Peephole 105 removed redundant mov 05CF FA 1915 mov r2,a 05D0 14 1916 dec a 1917 ; genMult 1918 ; genMultOneByte 05D1 75 F0 02 1919 mov b,#0x02 05D4 A4 1920 mul ab 1921 ; genPlus 1922 ; Peephole 236.g used r2 instead of ar2 1923 ; Peephole 177.d removed redundant move 05D5 FA 1924 mov r2,a 05D6 AB F0 1925 mov r3,b 05D8 24 55 1926 add a,#__volt 05DA FE 1927 mov r6,a 1928 ; Peephole 236.g used r3 instead of ar3 05DB EB 1929 mov a,r3 05DC 34 1C 1930 addc a,#(__volt >> 8) 05DE FF 1931 mov r7,a 1932 ; genMinus 05DF 74 04 1933 mov a,#0x04 05E1 C3 1934 clr c 1935 ; Peephole 236.l used r4 instead of ar4 05E2 9C 1936 subb a,r4 05E3 F8 1937 mov r0,a 1938 ; Peephole 181 changed mov to clr 05E4 E4 1939 clr a 1940 ; Peephole 236.l used r5 instead of ar5 05E5 9D 1941 subb a,r5 1942 ; genLeftShift 1943 ; genLeftShiftLiteral 1944 ; genlshTwo 1945 ; Peephole 105 removed redundant mov 05E6 F9 1946 mov r1,a 05E7 54 01 1947 anl a,#0x01 05E9 A2 E0 1948 mov c,acc.0 05EB C8 1949 xch a,r0 05EC 13 1950 rrc a 05ED C8 1951 xch a,r0 05EE 13 1952 rrc a 05EF C8 1953 xch a,r0 05F0 F9 1954 mov r1,a 1955 ; genIpush 05F1 C0 0C 1956 push ar4 05F3 C0 0D 1957 push ar5 1958 ; genPlus 1959 ; Peephole 236.g used r0 instead of ar0 05F5 E8 1960 mov a,r0 05F6 24 C0 1961 add a,#_OUT4BUF 05F8 FC 1962 mov r4,a 1963 ; Peephole 236.g used r1 instead of ar1 05F9 E9 1964 mov a,r1 05FA 34 7C 1965 addc a,#(_OUT4BUF >> 8) 05FC FD 1966 mov r5,a 1967 ; genPlus 1968 ; genPlusIncr 05FD 74 01 1969 mov a,#0x01 1970 ; Peephole 236.a used r4 instead of ar4 05FF 2C 1971 add a,r4 0600 F5 82 1972 mov dpl,a 1973 ; Peephole 181 changed mov to clr 0602 E4 1974 clr a 1975 ; Peephole 236.b used r5 instead of ar5 0603 3D 1976 addc a,r5 0604 F5 83 1977 mov dph,a 1978 ; genPointerGet 1979 ; genFarPointerGet 0606 E0 1980 movx a,@dptr 0607 FC 1981 mov r4,a 1982 ; genCast 0608 7D 00 1983 mov r5,#0x00 1984 ; genPointerSet 1985 ; genFarPointerSet 060A 8E 82 1986 mov dpl,r6 060C 8F 83 1987 mov dph,r7 060E EC 1988 mov a,r4 060F F0 1989 movx @dptr,a 0610 A3 1990 inc dptr 0611 ED 1991 mov a,r5 0612 F0 1992 movx @dptr,a 1993 ;usb_irq.c:589: VOLT(2 * i - 1) <<= 8; 1994 ; genPlus 1995 ; Peephole 236.g used r2 instead of ar2 0613 EA 1996 mov a,r2 0614 24 55 1997 add a,#__volt 0616 FC 1998 mov r4,a 1999 ; Peephole 236.g used r3 instead of ar3 0617 EB 2000 mov a,r3 0618 34 1C 2001 addc a,#(__volt >> 8) 061A FD 2002 mov r5,a 2003 ; genPlus 2004 ; Peephole 236.g used r2 instead of ar2 061B EA 2005 mov a,r2 061C 24 55 2006 add a,#__volt 061E F5 82 2007 mov dpl,a 2008 ; Peephole 236.g used r3 instead of ar3 0620 EB 2009 mov a,r3 0621 34 1C 2010 addc a,#(__volt >> 8) 0623 F5 83 2011 mov dph,a 2012 ; genPointerGet 2013 ; genFarPointerGet 0625 E0 2014 movx a,@dptr 0626 FE 2015 mov r6,a 0627 A3 2016 inc dptr 0628 E0 2017 movx a,@dptr 0629 FF 2018 mov r7,a 2019 ; genLeftShift 2020 ; genLeftShiftLiteral 2021 ; genlshTwo 062A 8E 0F 2022 mov ar7,r6 062C 7E 00 2023 mov r6,#0x00 2024 ; genPointerSet 2025 ; genFarPointerSet 062E 8C 82 2026 mov dpl,r4 0630 8D 83 2027 mov dph,r5 0632 EE 2028 mov a,r6 0633 F0 2029 movx @dptr,a 0634 A3 2030 inc dptr 0635 EF 2031 mov a,r7 0636 F0 2032 movx @dptr,a 2033 ;usb_irq.c:590: VOLT(2 * i - 1) += OUTBUF(i, 2); 2034 ; genPlus 2035 ; Peephole 236.g used r2 instead of ar2 0637 EA 2036 mov a,r2 0638 24 55 2037 add a,#__volt 063A FC 2038 mov r4,a 2039 ; Peephole 236.g used r3 instead of ar3 063B EB 2040 mov a,r3 063C 34 1C 2041 addc a,#(__volt >> 8) 063E FD 2042 mov r5,a 2043 ; genPlus 2044 ; Peephole 236.g used r2 instead of ar2 063F EA 2045 mov a,r2 0640 24 55 2046 add a,#__volt 0642 F5 82 2047 mov dpl,a 2048 ; Peephole 236.g used r3 instead of ar3 0644 EB 2049 mov a,r3 0645 34 1C 2050 addc a,#(__volt >> 8) 0647 F5 83 2051 mov dph,a 2052 ; genPointerGet 2053 ; genFarPointerGet 0649 E0 2054 movx a,@dptr 064A FA 2055 mov r2,a 064B A3 2056 inc dptr 064C E0 2057 movx a,@dptr 064D FB 2058 mov r3,a 2059 ; genPlus 2060 ; Peephole 236.g used r0 instead of ar0 064E E8 2061 mov a,r0 064F 24 C0 2062 add a,#_OUT4BUF 0651 F8 2063 mov r0,a 2064 ; Peephole 236.g used r1 instead of ar1 0652 E9 2065 mov a,r1 0653 34 7C 2066 addc a,#(_OUT4BUF >> 8) 0655 F9 2067 mov r1,a 2068 ; genPlus 2069 ; genPlusIncr 0656 74 02 2070 mov a,#0x02 2071 ; Peephole 236.a used r0 instead of ar0 0658 28 2072 add a,r0 0659 F5 82 2073 mov dpl,a 2074 ; Peephole 181 changed mov to clr 065B E4 2075 clr a 2076 ; Peephole 236.b used r1 instead of ar1 065C 39 2077 addc a,r1 065D F5 83 2078 mov dph,a 2079 ; genPointerGet 2080 ; genFarPointerGet 065F E0 2081 movx a,@dptr 2082 ; genCast 2083 ; genPlus 2084 ; Peephole 236.g used r6 instead of ar6 2085 ; Peephole 177.d removed redundant move 0660 FE 2086 mov r6,a 0661 7F 00 2087 mov r7,#0x00 2088 ; Peephole 236.a used r2 instead of ar2 0663 2A 2089 add a,r2 0664 FA 2090 mov r2,a 2091 ; Peephole 236.g used r7 instead of ar7 0665 EF 2092 mov a,r7 2093 ; Peephole 236.b used r3 instead of ar3 0666 3B 2094 addc a,r3 0667 FB 2095 mov r3,a 2096 ; genPointerSet 2097 ; genFarPointerSet 0668 8C 82 2098 mov dpl,r4 066A 8D 83 2099 mov dph,r5 066C EA 2100 mov a,r2 066D F0 2101 movx @dptr,a 066E A3 2102 inc dptr 066F EB 2103 mov a,r3 0670 F0 2104 movx @dptr,a 2105 ;usb_irq.c:592: break; 2106 ; genIpop 0671 D0 0D 2107 pop ar5 0673 D0 0C 2108 pop ar4 0675 02s0ArCE 2109 ljmp 00213$ 2110 ;usb_irq.c:596: } else OUTA &= ~(1 << (i - 1)); 0678 2111 00191$: 2112 ;usb_irq.c:594: if (OUTBUF(i, 1)) { /* turn on */ 2113 ; genMinus 0678 74 04 2114 mov a,#0x04 067A C3 2115 clr c 2116 ; Peephole 236.l used r4 instead of ar4 067B 9C 2117 subb a,r4 067C FA 2118 mov r2,a 2119 ; Peephole 181 changed mov to clr 067D E4 2120 clr a 2121 ; Peephole 236.l used r5 instead of ar5 067E 9D 2122 subb a,r5 2123 ; genLeftShift 2124 ; genLeftShiftLiteral 2125 ; genlshTwo 2126 ; Peephole 105 removed redundant mov 067F FB 2127 mov r3,a 0680 54 01 2128 anl a,#0x01 0682 A2 E0 2129 mov c,acc.0 0684 CA 2130 xch a,r2 0685 13 2131 rrc a 0686 CA 2132 xch a,r2 0687 13 2133 rrc a 0688 CA 2134 xch a,r2 0689 FB 2135 mov r3,a 2136 ; genPlus 2137 ; Peephole 236.g used r2 instead of ar2 068A EA 2138 mov a,r2 068B 24 C0 2139 add a,#_OUT4BUF 068D FA 2140 mov r2,a 2141 ; Peephole 236.g used r3 instead of ar3 068E EB 2142 mov a,r3 068F 34 7C 2143 addc a,#(_OUT4BUF >> 8) 0691 FB 2144 mov r3,a 2145 ; genPlus 2146 ; genPlusIncr 0692 74 01 2147 mov a,#0x01 2148 ; Peephole 236.a used r2 instead of ar2 0694 2A 2149 add a,r2 0695 F5 82 2150 mov dpl,a 2151 ; Peephole 181 changed mov to clr 0697 E4 2152 clr a 2153 ; Peephole 236.b used r3 instead of ar3 0698 3B 2154 addc a,r3 0699 F5 83 2155 mov dph,a 2156 ; genPointerGet 2157 ; genFarPointerGet 069B E0 2158 movx a,@dptr 2159 ; genIfx 2160 ; Peephole 105 removed redundant mov 069C FA 2161 mov r2,a 2162 ; genIfxJump 2163 ; Peephole 110 removed ljmp by inverse jump logic 069D 60 20 2164 jz 00189$ 069F 2165 00368$: 2166 ;usb_irq.c:595: OUTA |= 1 << (i - 1); 2167 ; genMinus 2168 ; genMinusDec 069F EC 2169 mov a,r4 06A0 24 FF 2170 add a,#0xff 06A2 FA 2171 mov r2,a 06A3 ED 2172 mov a,r5 06A4 34 FF 2173 addc a,#0xff 06A6 FB 2174 mov r3,a 2175 ; genLeftShift 06A7 8A F0 2176 mov b,r2 06A9 05 F0 2177 inc b 06AB 74 01 2178 mov a,#0x01 06AD 80 02 2179 sjmp 00371$ 06AF 2180 00369$: 06AF 25 E0 2181 add a,acc 06B1 2182 00371$: 06B1 D5 F0 FB 2183 djnz b,00369$ 06B4 FA 2184 mov r2,a 2185 ; genAssign 2186 ; genOr 2187 ; Peephole 248.a optimized or to xdata 06B5 90 7F 96 2188 mov dptr,#_OUTA 06B8 E0 2189 movx a,@dptr 06B9 FB 2190 mov r3,a 06BA 4A 2191 orl a,r2 06BB F0 2192 movx @dptr,a 06BC 02s0ArCE 2193 ljmp 00213$ 06BF 2194 00189$: 2195 ;usb_irq.c:596: } else OUTA &= ~(1 << (i - 1)); 2196 ; genMinus 2197 ; genMinusDec 06BF EC 2198 mov a,r4 06C0 24 FF 2199 add a,#0xff 06C2 FA 2200 mov r2,a 06C3 ED 2201 mov a,r5 06C4 34 FF 2202 addc a,#0xff 06C6 FB 2203 mov r3,a 2204 ; genLeftShift 06C7 8A F0 2205 mov b,r2 06C9 05 F0 2206 inc b 06CB 7A 01 2207 mov r2,#0x01 06CD 7B 00 2208 mov r3,#0x00 06CF 80 07 2209 sjmp 00373$ 06D1 2210 00372$: 06D1 EA 2211 mov a,r2 06D2 25 E0 2212 add a,acc 06D4 FA 2213 mov r2,a 06D5 EB 2214 mov a,r3 06D6 33 2215 rlc a 06D7 FB 2216 mov r3,a 06D8 2217 00373$: 06D8 D5 F0 F6 2218 djnz b,00372$ 2219 ; genCpl 06DB EA 2220 mov a,r2 06DC F4 2221 cpl a 06DD FA 2222 mov r2,a 06DE EB 2223 mov a,r3 06DF F4 2224 cpl a 06E0 FB 2225 mov r3,a 2226 ; genCast 2227 ; genAssign 2228 ; genAnd 2229 ; Peephole 248.b optimized and to xdata 06E1 90 7F 96 2230 mov dptr,#_OUTA 06E4 E0 2231 movx a,@dptr 06E5 FB 2232 mov r3,a 06E6 5A 2233 anl a,r2 06E7 F0 2234 movx @dptr,a 2235 ;usb_irq.c:597: break; 06E8 02s0ArCE 2236 ljmp 00213$ 2237 ;usb_irq.c:601: } else OUTA &= ~(1 << (i + 3)); 06EB 2238 00195$: 2239 ;usb_irq.c:599: if (OUTBUF(i, 1)) { /* turn on */ 2240 ; genMinus 06EB 74 04 2241 mov a,#0x04 06ED C3 2242 clr c 2243 ; Peephole 236.l used r4 instead of ar4 06EE 9C 2244 subb a,r4 06EF FA 2245 mov r2,a 2246 ; Peephole 181 changed mov to clr 06F0 E4 2247 clr a 2248 ; Peephole 236.l used r5 instead of ar5 06F1 9D 2249 subb a,r5 2250 ; genLeftShift 2251 ; genLeftShiftLiteral 2252 ; genlshTwo 2253 ; Peephole 105 removed redundant mov 06F2 FB 2254 mov r3,a 06F3 54 01 2255 anl a,#0x01 06F5 A2 E0 2256 mov c,acc.0 06F7 CA 2257 xch a,r2 06F8 13 2258 rrc a 06F9 CA 2259 xch a,r2 06FA 13 2260 rrc a 06FB CA 2261 xch a,r2 06FC FB 2262 mov r3,a 2263 ; genPlus 2264 ; Peephole 236.g used r2 instead of ar2 06FD EA 2265 mov a,r2 06FE 24 C0 2266 add a,#_OUT4BUF 0700 FA 2267 mov r2,a 2268 ; Peephole 236.g used r3 instead of ar3 0701 EB 2269 mov a,r3 0702 34 7C 2270 addc a,#(_OUT4BUF >> 8) 0704 FB 2271 mov r3,a 2272 ; genPlus 2273 ; genPlusIncr 0705 74 01 2274 mov a,#0x01 2275 ; Peephole 236.a used r2 instead of ar2 0707 2A 2276 add a,r2 0708 F5 82 2277 mov dpl,a 2278 ; Peephole 181 changed mov to clr 070A E4 2279 clr a 2280 ; Peephole 236.b used r3 instead of ar3 070B 3B 2281 addc a,r3 070C F5 83 2282 mov dph,a 2283 ; genPointerGet 2284 ; genFarPointerGet 070E E0 2285 movx a,@dptr 2286 ; genIfx 2287 ; Peephole 105 removed redundant mov 070F FA 2288 mov r2,a 2289 ; genIfxJump 2290 ; Peephole 110 removed ljmp by inverse jump logic 0710 60 1F 2291 jz 00193$ 0712 2292 00374$: 2293 ;usb_irq.c:600: OUTA |= 1 << (i + 3); 2294 ; genPlus 2295 ; genPlusIncr 0712 74 03 2296 mov a,#0x03 2297 ; Peephole 236.a used r4 instead of ar4 0714 2C 2298 add a,r4 0715 FA 2299 mov r2,a 2300 ; Peephole 181 changed mov to clr 0716 E4 2301 clr a 2302 ; Peephole 236.b used r5 instead of ar5 0717 3D 2303 addc a,r5 0718 FB 2304 mov r3,a 2305 ; genLeftShift 0719 8A F0 2306 mov b,r2 071B 05 F0 2307 inc b 071D 74 01 2308 mov a,#0x01 071F 80 02 2309 sjmp 00377$ 0721 2310 00375$: 0721 25 E0 2311 add a,acc 0723 2312 00377$: 0723 D5 F0 FB 2313 djnz b,00375$ 0726 FA 2314 mov r2,a 2315 ; genAssign 2316 ; genOr 2317 ; Peephole 248.a optimized or to xdata 0727 90 7F 96 2318 mov dptr,#_OUTA 072A E0 2319 movx a,@dptr 072B FB 2320 mov r3,a 072C 4A 2321 orl a,r2 072D F0 2322 movx @dptr,a 072E 02s0ArCE 2323 ljmp 00213$ 0731 2324 00193$: 2325 ;usb_irq.c:601: } else OUTA &= ~(1 << (i + 3)); 2326 ; genPlus 2327 ; genPlusIncr 0731 74 03 2328 mov a,#0x03 2329 ; Peephole 236.a used r4 instead of ar4 0733 2C 2330 add a,r4 0734 FA 2331 mov r2,a 2332 ; Peephole 181 changed mov to clr 0735 E4 2333 clr a 2334 ; Peephole 236.b used r5 instead of ar5 0736 3D 2335 addc a,r5 0737 FB 2336 mov r3,a 2337 ; genLeftShift 0738 8A F0 2338 mov b,r2 073A 05 F0 2339 inc b 073C 7A 01 2340 mov r2,#0x01 073E 7B 00 2341 mov r3,#0x00 0740 80 07 2342 sjmp 00379$ 0742 2343 00378$: 0742 EA 2344 mov a,r2 0743 25 E0 2345 add a,acc 0745 FA 2346 mov r2,a 0746 EB 2347 mov a,r3 0747 33 2348 rlc a 0748 FB 2349 mov r3,a 0749 2350 00379$: 0749 D5 F0 F6 2351 djnz b,00378$ 2352 ; genCpl 074C EA 2353 mov a,r2 074D F4 2354 cpl a 074E FA 2355 mov r2,a 074F EB 2356 mov a,r3 0750 F4 2357 cpl a 0751 FB 2358 mov r3,a 2359 ; genCast 2360 ; genAssign 2361 ; genAnd 2362 ; Peephole 248.b optimized and to xdata 0752 90 7F 96 2363 mov dptr,#_OUTA 0755 E0 2364 movx a,@dptr 0756 FB 2365 mov r3,a 0757 5A 2366 anl a,r2 0758 F0 2367 movx @dptr,a 2368 ;usb_irq.c:602: break; 0759 02s0ArCE 2369 ljmp 00213$ 2370 ;usb_irq.c:607: INBUF(i, 0) = _vtable[i]; /* fix me! status byte */ 075C 2371 00198$: 2372 ;usb_irq.c:604: if (INCS(i) & 0x02) /* busy */ 2373 ; genMinus 2374 ; genMinusDec 075C EC 2375 mov a,r4 075D 24 FF 2376 add a,#0xff 075F FA 2377 mov r2,a 0760 ED 2378 mov a,r5 0761 34 FF 2379 addc a,#0xff 2380 ; genLeftShift 2381 ; genLeftShiftLiteral 2382 ; genlshTwo 2383 ; Peephole 105 removed redundant mov 0763 FB 2384 mov r3,a 0764 CA 2385 xch a,r2 0765 25 E0 2386 add a,acc 0767 CA 2387 xch a,r2 0768 33 2388 rlc a 0769 FB 2389 mov r3,a 2390 ; genPlus 2391 ; Peephole 236.g used r2 instead of ar2 076A EA 2392 mov a,r2 076B 24 B6 2393 add a,#_IN1CS 076D F5 82 2394 mov dpl,a 2395 ; Peephole 236.g used r3 instead of ar3 076F EB 2396 mov a,r3 0770 34 7F 2397 addc a,#(_IN1CS >> 8) 0772 F5 83 2398 mov dph,a 2399 ; genPointerGet 2400 ; genFarPointerGet 0774 E0 2401 movx a,@dptr 2402 ; genAnd 2403 ; Peephole 105 removed redundant mov 0775 FA 2404 mov r2,a 2405 ; genIfxJump 0776 30 E1 03 2406 jnb acc.1,00380$ 0779 02s0ArCE 2407 ljmp 00213$ 077C 2408 00380$: 2409 ;usb_irq.c:607: INBUF(i, 0) = _vtable[i]; /* fix me! status byte */ 2410 ; genMinus 077C 74 04 2411 mov a,#0x04 077E C3 2412 clr c 2413 ; Peephole 236.l used r4 instead of ar4 077F 9C 2414 subb a,r4 0780 FA 2415 mov r2,a 2416 ; Peephole 181 changed mov to clr 0781 E4 2417 clr a 2418 ; Peephole 236.l used r5 instead of ar5 0782 9D 2419 subb a,r5 2420 ; genLeftShift 2421 ; genLeftShiftLiteral 2422 ; genlshTwo 2423 ; Peephole 105 removed redundant mov 0783 FB 2424 mov r3,a 0784 54 01 2425 anl a,#0x01 0786 A2 E0 2426 mov c,acc.0 0788 CA 2427 xch a,r2 0789 13 2428 rrc a 078A CA 2429 xch a,r2 078B 13 2430 rrc a 078C CA 2431 xch a,r2 078D FB 2432 mov r3,a 2433 ; genPlus 2434 ; genPlus aligned array 078E 8A 0E 2435 mov ar6,r2 0790 74 7D 2436 mov a,#(_IN4BUF >> 8) 0792 2B 2437 add a,r3 0793 FF 2438 mov r7,a 2439 ; genPlus 2440 ; genPlus aligned array 0794 85*0E 82 2441 mov dpl,_usb_isr_i_1_1 0797 75 83 20 2442 mov dph,#(__vtable >> 8) 2443 ; genPointerGet 2444 ; genFarPointerGet 079A E0 2445 movx a,@dptr 2446 ; genPointerSet 2447 ; genFarPointerSet 2448 ; Peephole 136 removed redundant moves 079B F8 2449 mov r0,a 079C 8E 82 2450 mov dpl,r6 079E 8F 83 2451 mov dph,r7 07A0 F0 2452 movx @dptr,a 2453 ;usb_irq.c:609: INBUF(i, 1) = ADCANLVH(i); 2454 ; genPlus 2455 ; genPlus aligned array 07A1 8A 0E 2456 mov ar6,r2 07A3 74 7D 2457 mov a,#(_IN4BUF >> 8) 07A5 2B 2458 add a,r3 07A6 FF 2459 mov r7,a 2460 ; genPlus 2461 ; genPlusIncr 07A7 0E 2462 inc r6 07A8 BE 00 01 2463 cjne r6,#0x00,00381$ 07AB 0F 2464 inc r7 07AC 2465 00381$: 2466 ; genMinus 2467 ; genMinusDec 07AC E5*0E 2468 mov a,_usb_isr_i_1_1 07AE 14 2469 dec a 2470 ; genLeftShift 2471 ; genLeftShiftLiteral 2472 ; genlshOne 2473 ; Peephole 105 removed redundant mov 2474 ; Peephole 204 removed redundant mov 07AF 25 E0 2475 add a,acc 2476 ; genPlus 2477 ; Peephole 236.a used r0 instead of ar0 2478 ; Peephole 214 reduced some extra moves 07B1 F8 2479 mov r0,a 07B2 24 28 2480 add a,#0x28 2481 ; genPlus 07B4 24 25 2482 add a,#__adc 07B6 F5 82 2483 mov dpl,a 2484 ; Peephole 240 use clr instead of addc a,#0 07B8 E4 2485 clr a 07B9 34 1C 2486 addc a,#(__adc >> 8) 07BB F5 83 2487 mov dph,a 2488 ; genPointerGet 2489 ; genFarPointerGet 07BD E0 2490 movx a,@dptr 2491 ; genPointerSet 2492 ; genFarPointerSet 2493 ; Peephole 136 removed redundant moves 07BE F9 2494 mov r1,a 07BF 8E 82 2495 mov dpl,r6 07C1 8F 83 2496 mov dph,r7 07C3 F0 2497 movx @dptr,a 2498 ;usb_irq.c:610: INBUF(i, 2) = ADCANLVL(i); 2499 ; genPlus 2500 ; genPlus aligned array 07C4 8A 0E 2501 mov ar6,r2 07C6 74 7D 2502 mov a,#(_IN4BUF >> 8) 07C8 2B 2503 add a,r3 07C9 FF 2504 mov r7,a 2505 ; genPlus 2506 ; genPlusIncr 07CA 74 02 2507 mov a,#0x02 2508 ; Peephole 236.a used r6 instead of ar6 07CC 2E 2509 add a,r6 07CD FE 2510 mov r6,a 2511 ; Peephole 181 changed mov to clr 07CE E4 2512 clr a 2513 ; Peephole 236.b used r7 instead of ar7 07CF 3F 2514 addc a,r7 07D0 FF 2515 mov r7,a 2516 ; genPlus 07D1 74 29 2517 mov a,#0x29 2518 ; Peephole 236.a used r0 instead of ar0 07D3 28 2519 add a,r0 2520 ; genPlus 07D4 24 25 2521 add a,#__adc 07D6 F5 82 2522 mov dpl,a 2523 ; Peephole 240 use clr instead of addc a,#0 07D8 E4 2524 clr a 07D9 34 1C 2525 addc a,#(__adc >> 8) 07DB F5 83 2526 mov dph,a 2527 ; genPointerGet 2528 ; genFarPointerGet 07DD E0 2529 movx a,@dptr 2530 ; genPointerSet 2531 ; genFarPointerSet 2532 ; Peephole 136 removed redundant moves 07DE F9 2533 mov r1,a 07DF 8E 82 2534 mov dpl,r6 07E1 8F 83 2535 mov dph,r7 07E3 F0 2536 movx @dptr,a 2537 ;usb_irq.c:612: INBUF(i, 3) = ADCDIGVH(i); 2538 ; genPlus 2539 ; genPlus aligned array 07E4 8A 0E 2540 mov ar6,r2 07E6 74 7D 2541 mov a,#(_IN4BUF >> 8) 07E8 2B 2542 add a,r3 07E9 FF 2543 mov r7,a 2544 ; genPlus 2545 ; genPlusIncr 07EA 74 03 2546 mov a,#0x03 2547 ; Peephole 236.a used r6 instead of ar6 07EC 2E 2548 add a,r6 07ED FE 2549 mov r6,a 2550 ; Peephole 181 changed mov to clr 07EE E4 2551 clr a 2552 ; Peephole 236.b used r7 instead of ar7 07EF 3F 2553 addc a,r7 07F0 FF 2554 mov r7,a 2555 ; genPlus 07F1 74 18 2556 mov a,#0x18 2557 ; Peephole 236.a used r0 instead of ar0 07F3 28 2558 add a,r0 2559 ; genPlus 07F4 24 25 2560 add a,#__adc 07F6 F5 82 2561 mov dpl,a 2562 ; Peephole 240 use clr instead of addc a,#0 07F8 E4 2563 clr a 07F9 34 1C 2564 addc a,#(__adc >> 8) 07FB F5 83 2565 mov dph,a 2566 ; genPointerGet 2567 ; genFarPointerGet 07FD E0 2568 movx a,@dptr 2569 ; genPointerSet 2570 ; genFarPointerSet 2571 ; Peephole 136 removed redundant moves 07FE F9 2572 mov r1,a 07FF 8E 82 2573 mov dpl,r6 0801 8F 83 2574 mov dph,r7 0803 F0 2575 movx @dptr,a 2576 ;usb_irq.c:613: INBUF(i, 4) = ADCDIGVL(i); 2577 ; genPlus 2578 ; genPlus aligned array 0804 8A 0E 2579 mov ar6,r2 0806 74 7D 2580 mov a,#(_IN4BUF >> 8) 0808 2B 2581 add a,r3 0809 FF 2582 mov r7,a 2583 ; genPlus 2584 ; genPlusIncr 080A 74 04 2585 mov a,#0x04 2586 ; Peephole 236.a used r6 instead of ar6 080C 2E 2587 add a,r6 080D FE 2588 mov r6,a 2589 ; Peephole 181 changed mov to clr 080E E4 2590 clr a 2591 ; Peephole 236.b used r7 instead of ar7 080F 3F 2592 addc a,r7 0810 FF 2593 mov r7,a 2594 ; genPlus 0811 74 19 2595 mov a,#0x19 2596 ; Peephole 236.a used r0 instead of ar0 0813 28 2597 add a,r0 2598 ; genPlus 0814 24 25 2599 add a,#__adc 0816 F5 82 2600 mov dpl,a 2601 ; Peephole 240 use clr instead of addc a,#0 0818 E4 2602 clr a 0819 34 1C 2603 addc a,#(__adc >> 8) 081B F5 83 2604 mov dph,a 2605 ; genPointerGet 2606 ; genFarPointerGet 081D E0 2607 movx a,@dptr 2608 ; genPointerSet 2609 ; genFarPointerSet 2610 ; Peephole 136 removed redundant moves 081E F9 2611 mov r1,a 081F 8E 82 2612 mov dpl,r6 0821 8F 83 2613 mov dph,r7 0823 F0 2614 movx @dptr,a 2615 ;usb_irq.c:615: INBUF(i, 5) = ADCGNDVH(i); 2616 ; genPlus 2617 ; genPlus aligned array 0824 8A 0E 2618 mov ar6,r2 0826 74 7D 2619 mov a,#(_IN4BUF >> 8) 0828 2B 2620 add a,r3 0829 FF 2621 mov r7,a 2622 ; genPlus 082A 74 05 2623 mov a,#0x05 2624 ; Peephole 236.a used r6 instead of ar6 082C 2E 2625 add a,r6 082D FE 2626 mov r6,a 2627 ; Peephole 181 changed mov to clr 082E E4 2628 clr a 2629 ; Peephole 236.b used r7 instead of ar7 082F 3F 2630 addc a,r7 0830 FF 2631 mov r7,a 2632 ; genPlus 0831 74 08 2633 mov a,#0x08 2634 ; Peephole 236.a used r0 instead of ar0 0833 28 2635 add a,r0 2636 ; genPlus 0834 24 25 2637 add a,#__adc 0836 F5 82 2638 mov dpl,a 2639 ; Peephole 240 use clr instead of addc a,#0 0838 E4 2640 clr a 0839 34 1C 2641 addc a,#(__adc >> 8) 083B F5 83 2642 mov dph,a 2643 ; genPointerGet 2644 ; genFarPointerGet 083D E0 2645 movx a,@dptr 2646 ; genPointerSet 2647 ; genFarPointerSet 2648 ; Peephole 136 removed redundant moves 083E F9 2649 mov r1,a 083F 8E 82 2650 mov dpl,r6 0841 8F 83 2651 mov dph,r7 0843 F0 2652 movx @dptr,a 2653 ;usb_irq.c:616: INBUF(i, 6) = ADCGNDVL(i); 2654 ; genPlus 2655 ; genPlus aligned array 0844 8A 0E 2656 mov ar6,r2 0846 74 7D 2657 mov a,#(_IN4BUF >> 8) 0848 2B 2658 add a,r3 0849 FF 2659 mov r7,a 2660 ; genPlus 084A 74 06 2661 mov a,#0x06 2662 ; Peephole 236.a used r6 instead of ar6 084C 2E 2663 add a,r6 084D FE 2664 mov r6,a 2665 ; Peephole 181 changed mov to clr 084E E4 2666 clr a 2667 ; Peephole 236.b used r7 instead of ar7 084F 3F 2668 addc a,r7 0850 FF 2669 mov r7,a 2670 ; genPlus 0851 74 09 2671 mov a,#0x09 2672 ; Peephole 236.a used r0 instead of ar0 0853 28 2673 add a,r0 2674 ; genPlus 0854 24 25 2675 add a,#__adc 0856 F5 82 2676 mov dpl,a 2677 ; Peephole 240 use clr instead of addc a,#0 0858 E4 2678 clr a 0859 34 1C 2679 addc a,#(__adc >> 8) 085B F5 83 2680 mov dph,a 2681 ; genPointerGet 2682 ; genFarPointerGet 085D E0 2683 movx a,@dptr 2684 ; genPointerSet 2685 ; genFarPointerSet 2686 ; Peephole 136 removed redundant moves 085E F9 2687 mov r1,a 085F 8E 82 2688 mov dpl,r6 0861 8F 83 2689 mov dph,r7 0863 F0 2690 movx @dptr,a 2691 ;usb_irq.c:618: INBUF(i, 7) = ADCANLIH(i); 2692 ; genPlus 2693 ; genPlus aligned array 0864 8A 0E 2694 mov ar6,r2 0866 74 7D 2695 mov a,#(_IN4BUF >> 8) 0868 2B 2696 add a,r3 0869 FF 2697 mov r7,a 2698 ; genPlus 086A 74 07 2699 mov a,#0x07 2700 ; Peephole 236.a used r6 instead of ar6 086C 2E 2701 add a,r6 086D FE 2702 mov r6,a 2703 ; Peephole 181 changed mov to clr 086E E4 2704 clr a 2705 ; Peephole 236.b used r7 instead of ar7 086F 3F 2706 addc a,r7 0870 FF 2707 mov r7,a 2708 ; genPlus 0871 74 20 2709 mov a,#0x20 2710 ; Peephole 236.a used r0 instead of ar0 0873 28 2711 add a,r0 2712 ; genPlus 0874 24 25 2713 add a,#__adc 0876 F5 82 2714 mov dpl,a 2715 ; Peephole 240 use clr instead of addc a,#0 0878 E4 2716 clr a 0879 34 1C 2717 addc a,#(__adc >> 8) 087B F5 83 2718 mov dph,a 2719 ; genPointerGet 2720 ; genFarPointerGet 087D E0 2721 movx a,@dptr 2722 ; genPointerSet 2723 ; genFarPointerSet 2724 ; Peephole 136 removed redundant moves 087E F9 2725 mov r1,a 087F 8E 82 2726 mov dpl,r6 0881 8F 83 2727 mov dph,r7 0883 F0 2728 movx @dptr,a 2729 ;usb_irq.c:619: INBUF(i, 8) = ADCANLIL(i); 2730 ; genPlus 2731 ; genPlus aligned array 0884 8A 0E 2732 mov ar6,r2 0886 74 7D 2733 mov a,#(_IN4BUF >> 8) 0888 2B 2734 add a,r3 0889 FF 2735 mov r7,a 2736 ; genPlus 088A 74 08 2737 mov a,#0x08 2738 ; Peephole 236.a used r6 instead of ar6 088C 2E 2739 add a,r6 088D FE 2740 mov r6,a 2741 ; Peephole 181 changed mov to clr 088E E4 2742 clr a 2743 ; Peephole 236.b used r7 instead of ar7 088F 3F 2744 addc a,r7 0890 FF 2745 mov r7,a 2746 ; genPlus 0891 74 21 2747 mov a,#0x21 2748 ; Peephole 236.a used r0 instead of ar0 0893 28 2749 add a,r0 2750 ; genPlus 0894 24 25 2751 add a,#__adc 0896 F5 82 2752 mov dpl,a 2753 ; Peephole 240 use clr instead of addc a,#0 0898 E4 2754 clr a 0899 34 1C 2755 addc a,#(__adc >> 8) 089B F5 83 2756 mov dph,a 2757 ; genPointerGet 2758 ; genFarPointerGet 089D E0 2759 movx a,@dptr 2760 ; genPointerSet 2761 ; genFarPointerSet 2762 ; Peephole 136 removed redundant moves 089E F9 2763 mov r1,a 089F 8E 82 2764 mov dpl,r6 08A1 8F 83 2765 mov dph,r7 08A3 F0 2766 movx @dptr,a 2767 ;usb_irq.c:621: INBUF(i, 9) = ADCDIGIH(i); 2768 ; genPlus 2769 ; genPlus aligned array 08A4 8A 0E 2770 mov ar6,r2 08A6 74 7D 2771 mov a,#(_IN4BUF >> 8) 08A8 2B 2772 add a,r3 08A9 FF 2773 mov r7,a 2774 ; genPlus 08AA 74 09 2775 mov a,#0x09 2776 ; Peephole 236.a used r6 instead of ar6 08AC 2E 2777 add a,r6 08AD FE 2778 mov r6,a 2779 ; Peephole 181 changed mov to clr 08AE E4 2780 clr a 2781 ; Peephole 236.b used r7 instead of ar7 08AF 3F 2782 addc a,r7 08B0 FF 2783 mov r7,a 2784 ; genPlus 08B1 74 10 2785 mov a,#0x10 2786 ; Peephole 236.a used r0 instead of ar0 08B3 28 2787 add a,r0 2788 ; genPlus 08B4 24 25 2789 add a,#__adc 08B6 F5 82 2790 mov dpl,a 2791 ; Peephole 240 use clr instead of addc a,#0 08B8 E4 2792 clr a 08B9 34 1C 2793 addc a,#(__adc >> 8) 08BB F5 83 2794 mov dph,a 2795 ; genPointerGet 2796 ; genFarPointerGet 08BD E0 2797 movx a,@dptr 2798 ; genPointerSet 2799 ; genFarPointerSet 2800 ; Peephole 136 removed redundant moves 08BE F9 2801 mov r1,a 08BF 8E 82 2802 mov dpl,r6 08C1 8F 83 2803 mov dph,r7 08C3 F0 2804 movx @dptr,a 2805 ;usb_irq.c:622: INBUF(i, 10) = ADCDIGIL(i); 2806 ; genPlus 2807 ; genPlus aligned array 08C4 8A 0E 2808 mov ar6,r2 08C6 74 7D 2809 mov a,#(_IN4BUF >> 8) 08C8 2B 2810 add a,r3 08C9 FF 2811 mov r7,a 2812 ; genPlus 08CA 74 0A 2813 mov a,#0x0A 2814 ; Peephole 236.a used r6 instead of ar6 08CC 2E 2815 add a,r6 08CD FE 2816 mov r6,a 2817 ; Peephole 181 changed mov to clr 08CE E4 2818 clr a 2819 ; Peephole 236.b used r7 instead of ar7 08CF 3F 2820 addc a,r7 08D0 FF 2821 mov r7,a 2822 ; genPlus 08D1 74 11 2823 mov a,#0x11 2824 ; Peephole 236.a used r0 instead of ar0 08D3 28 2825 add a,r0 2826 ; genPlus 08D4 24 25 2827 add a,#__adc 08D6 F5 82 2828 mov dpl,a 2829 ; Peephole 240 use clr instead of addc a,#0 08D8 E4 2830 clr a 08D9 34 1C 2831 addc a,#(__adc >> 8) 08DB F5 83 2832 mov dph,a 2833 ; genPointerGet 2834 ; genFarPointerGet 08DD E0 2835 movx a,@dptr 2836 ; genPointerSet 2837 ; genFarPointerSet 2838 ; Peephole 136 removed redundant moves 08DE F9 2839 mov r1,a 08DF 8E 82 2840 mov dpl,r6 08E1 8F 83 2841 mov dph,r7 08E3 F0 2842 movx @dptr,a 2843 ;usb_irq.c:624: INBUF(i, 11) = ADCTEMPH(i); 2844 ; genPlus 2845 ; genPlus aligned array 08E4 8A 0E 2846 mov ar6,r2 08E6 74 7D 2847 mov a,#(_IN4BUF >> 8) 08E8 2B 2848 add a,r3 08E9 FF 2849 mov r7,a 2850 ; genPlus 08EA 74 0B 2851 mov a,#0x0B 2852 ; Peephole 236.a used r6 instead of ar6 08EC 2E 2853 add a,r6 08ED FE 2854 mov r6,a 2855 ; Peephole 181 changed mov to clr 08EE E4 2856 clr a 2857 ; Peephole 236.b used r7 instead of ar7 08EF 3F 2858 addc a,r7 08F0 FF 2859 mov r7,a 2860 ; genPlus 2861 ; Peephole 236.g used r0 instead of ar0 08F1 E8 2862 mov a,r0 08F2 24 25 2863 add a,#__adc 08F4 F5 82 2864 mov dpl,a 2865 ; Peephole 181 changed mov to clr 08F6 E4 2866 clr a 08F7 34 1C 2867 addc a,#(__adc >> 8) 08F9 F5 83 2868 mov dph,a 2869 ; genPointerGet 2870 ; genFarPointerGet 08FB E0 2871 movx a,@dptr 2872 ; genPointerSet 2873 ; genFarPointerSet 2874 ; Peephole 136 removed redundant moves 08FC F9 2875 mov r1,a 08FD 8E 82 2876 mov dpl,r6 08FF 8F 83 2877 mov dph,r7 0901 F0 2878 movx @dptr,a 2879 ;usb_irq.c:625: INBUF(i, 12) = ADCTEMPL(i); 2880 ; genPlus 2881 ; genPlus aligned array 0902 74 7D 2882 mov a,#(_IN4BUF >> 8) 0904 2B 2883 add a,r3 0905 FB 2884 mov r3,a 2885 ; genPlus 0906 74 0C 2886 mov a,#0x0C 2887 ; Peephole 236.a used r2 instead of ar2 0908 2A 2888 add a,r2 0909 FA 2889 mov r2,a 2890 ; Peephole 181 changed mov to clr 090A E4 2891 clr a 2892 ; Peephole 236.b used r3 instead of ar3 090B 3B 2893 addc a,r3 090C FB 2894 mov r3,a 2895 ; genPlus 2896 ; genPlusIncr 090D 74 01 2897 mov a,#0x01 2898 ; Peephole 236.a used r0 instead of ar0 090F 28 2899 add a,r0 2900 ; genPlus 0910 24 25 2901 add a,#__adc 0912 F5 82 2902 mov dpl,a 2903 ; Peephole 240 use clr instead of addc a,#0 0914 E4 2904 clr a 0915 34 1C 2905 addc a,#(__adc >> 8) 0917 F5 83 2906 mov dph,a 2907 ; genPointerGet 2908 ; genFarPointerGet 0919 E0 2909 movx a,@dptr 2910 ; genPointerSet 2911 ; genFarPointerSet 2912 ; Peephole 136 removed redundant moves 091A FE 2913 mov r6,a 091B 8A 82 2914 mov dpl,r2 091D 8B 83 2915 mov dph,r3 091F F0 2916 movx @dptr,a 2917 ;usb_irq.c:626: INBC(i) = 13; 2918 ; genMinus 2919 ; genMinusDec 0920 EC 2920 mov a,r4 0921 24 FF 2921 add a,#0xff 0923 FA 2922 mov r2,a 0924 ED 2923 mov a,r5 0925 34 FF 2924 addc a,#0xff 2925 ; genLeftShift 2926 ; genLeftShiftLiteral 2927 ; genlshTwo 2928 ; Peephole 105 removed redundant mov 0927 FB 2929 mov r3,a 0928 CA 2930 xch a,r2 0929 25 E0 2931 add a,acc 092B CA 2932 xch a,r2 092C 33 2933 rlc a 092D FB 2934 mov r3,a 2935 ; genPlus 2936 ; Peephole 236.g used r2 instead of ar2 092E EA 2937 mov a,r2 092F 24 B7 2938 add a,#_IN1BC 0931 F5 82 2939 mov dpl,a 2940 ; Peephole 236.g used r3 instead of ar3 0933 EB 2941 mov a,r3 0934 34 7F 2942 addc a,#(_IN1BC >> 8) 0936 F5 83 2943 mov dph,a 2944 ; genPointerSet 2945 ; genFarPointerSet 0938 74 0D 2946 mov a,#0x0D 093A F0 2947 movx @dptr,a 2948 ;usb_irq.c:627: break; 093B 02s0ArCE 2949 ljmp 00213$ 2950 ;usb_irq.c:631: else _firm_regulate &= ~(1 << (2 * (i - 1))); 093E 2951 00202$: 2952 ;usb_irq.c:629: if (OUTBUF(i, 1)) 2953 ; genMinus 093E 74 04 2954 mov a,#0x04 0940 C3 2955 clr c 2956 ; Peephole 236.l used r4 instead of ar4 0941 9C 2957 subb a,r4 0942 FA 2958 mov r2,a 2959 ; Peephole 181 changed mov to clr 0943 E4 2960 clr a 2961 ; Peephole 236.l used r5 instead of ar5 0944 9D 2962 subb a,r5 2963 ; genLeftShift 2964 ; genLeftShiftLiteral 2965 ; genlshTwo 2966 ; Peephole 105 removed redundant mov 0945 FB 2967 mov r3,a 0946 54 01 2968 anl a,#0x01 0948 A2 E0 2969 mov c,acc.0 094A CA 2970 xch a,r2 094B 13 2971 rrc a 094C CA 2972 xch a,r2 094D 13 2973 rrc a 094E CA 2974 xch a,r2 094F FB 2975 mov r3,a 2976 ; genPlus 2977 ; Peephole 236.g used r2 instead of ar2 0950 EA 2978 mov a,r2 0951 24 C0 2979 add a,#_OUT4BUF 0953 FA 2980 mov r2,a 2981 ; Peephole 236.g used r3 instead of ar3 0954 EB 2982 mov a,r3 0955 34 7C 2983 addc a,#(_OUT4BUF >> 8) 0957 FB 2984 mov r3,a 2985 ; genPlus 2986 ; genPlusIncr 0958 74 01 2987 mov a,#0x01 2988 ; Peephole 236.a used r2 instead of ar2 095A 2A 2989 add a,r2 095B F5 82 2990 mov dpl,a 2991 ; Peephole 181 changed mov to clr 095D E4 2992 clr a 2993 ; Peephole 236.b used r3 instead of ar3 095E 3B 2994 addc a,r3 095F F5 83 2995 mov dph,a 2996 ; genPointerGet 2997 ; genFarPointerGet 0961 E0 2998 movx a,@dptr 2999 ; genIfx 3000 ; Peephole 105 removed redundant mov 0962 FA 3001 mov r2,a 3002 ; genIfxJump 3003 ; Peephole 110 removed ljmp by inverse jump logic 0963 60 26 3004 jz 00200$ 0965 3005 00382$: 3006 ;usb_irq.c:630: _firm_regulate |= (1 << (2 * (i - 1))); 3007 ; genMinus 3008 ; genMinusDec 0965 EC 3009 mov a,r4 0966 24 FF 3010 add a,#0xff 0968 FA 3011 mov r2,a 0969 ED 3012 mov a,r5 096A 34 FF 3013 addc a,#0xff 3014 ; genLeftShift 3015 ; genLeftShiftLiteral 3016 ; genlshTwo 3017 ; Peephole 105 removed redundant mov 096C FB 3018 mov r3,a 096D CA 3019 xch a,r2 096E 25 E0 3020 add a,acc 0970 CA 3021 xch a,r2 0971 33 3022 rlc a 0972 FB 3023 mov r3,a 3024 ; genLeftShift 0973 8A F0 3025 mov b,r2 0975 05 F0 3026 inc b 0977 74 01 3027 mov a,#0x01 0979 80 02 3028 sjmp 00385$ 097B 3029 00383$: 097B 25 E0 3030 add a,acc 097D 3031 00385$: 097D D5 F0 FB 3032 djnz b,00383$ 0980 FA 3033 mov r2,a 3034 ; genAssign 3035 ; genOr 3036 ; Peephole 248.a optimized or to xdata 0981 90 1C 65 3037 mov dptr,#__firm_regulate 0984 E0 3038 movx a,@dptr 0985 FB 3039 mov r3,a 0986 4A 3040 orl a,r2 0987 F0 3041 movx @dptr,a 0988 02s0ArCE 3042 ljmp 00213$ 098B 3043 00200$: 3044 ;usb_irq.c:631: else _firm_regulate &= ~(1 << (2 * (i - 1))); 3045 ; genMinus 3046 ; genMinusDec 098B EC 3047 mov a,r4 098C 24 FF 3048 add a,#0xff 098E FA 3049 mov r2,a 098F ED 3050 mov a,r5 0990 34 FF 3051 addc a,#0xff 3052 ; genLeftShift 3053 ; genLeftShiftLiteral 3054 ; genlshTwo 3055 ; Peephole 105 removed redundant mov 0992 FB 3056 mov r3,a 0993 CA 3057 xch a,r2 0994 25 E0 3058 add a,acc 0996 CA 3059 xch a,r2 0997 33 3060 rlc a 0998 FB 3061 mov r3,a 3062 ; genLeftShift 0999 8A F0 3063 mov b,r2 099B 05 F0 3064 inc b 099D 7A 01 3065 mov r2,#0x01 099F 7B 00 3066 mov r3,#0x00 09A1 80 07 3067 sjmp 00387$ 09A3 3068 00386$: 09A3 EA 3069 mov a,r2 09A4 25 E0 3070 add a,acc 09A6 FA 3071 mov r2,a 09A7 EB 3072 mov a,r3 09A8 33 3073 rlc a 09A9 FB 3074 mov r3,a 09AA 3075 00387$: 09AA D5 F0 F6 3076 djnz b,00386$ 3077 ; genCpl 09AD EA 3078 mov a,r2 09AE F4 3079 cpl a 09AF FA 3080 mov r2,a 09B0 EB 3081 mov a,r3 09B1 F4 3082 cpl a 09B2 FB 3083 mov r3,a 3084 ; genCast 3085 ; genAssign 3086 ; genAnd 3087 ; Peephole 248.b optimized and to xdata 09B3 90 1C 65 3088 mov dptr,#__firm_regulate 09B6 E0 3089 movx a,@dptr 09B7 FB 3090 mov r3,a 09B8 5A 3091 anl a,r2 09B9 F0 3092 movx @dptr,a 3093 ;usb_irq.c:632: break; 09BA 02s0ArCE 3094 ljmp 00213$ 3095 ;usb_irq.c:636: else _firm_regulate &= ~(1 << (2 * i - 1)); 09BD 3096 00206$: 3097 ;usb_irq.c:634: if (OUTBUF(i, 1)) 3098 ; genMinus 09BD 74 04 3099 mov a,#0x04 09BF C3 3100 clr c 3101 ; Peephole 236.l used r4 instead of ar4 09C0 9C 3102 subb a,r4 09C1 FA 3103 mov r2,a 3104 ; Peephole 181 changed mov to clr 09C2 E4 3105 clr a 3106 ; Peephole 236.l used r5 instead of ar5 09C3 9D 3107 subb a,r5 3108 ; genLeftShift 3109 ; genLeftShiftLiteral 3110 ; genlshTwo 3111 ; Peephole 105 removed redundant mov 09C4 FB 3112 mov r3,a 09C5 54 01 3113 anl a,#0x01 09C7 A2 E0 3114 mov c,acc.0 09C9 CA 3115 xch a,r2 09CA 13 3116 rrc a 09CB CA 3117 xch a,r2 09CC 13 3118 rrc a 09CD CA 3119 xch a,r2 09CE FB 3120 mov r3,a 3121 ; genPlus 3122 ; Peephole 236.g used r2 instead of ar2 09CF EA 3123 mov a,r2 09D0 24 C0 3124 add a,#_OUT4BUF 09D2 FA 3125 mov r2,a 3126 ; Peephole 236.g used r3 instead of ar3 09D3 EB 3127 mov a,r3 09D4 34 7C 3128 addc a,#(_OUT4BUF >> 8) 09D6 FB 3129 mov r3,a 3130 ; genPlus 3131 ; genPlusIncr 09D7 74 01 3132 mov a,#0x01 3133 ; Peephole 236.a used r2 instead of ar2 09D9 2A 3134 add a,r2 09DA F5 82 3135 mov dpl,a 3136 ; Peephole 181 changed mov to clr 09DC E4 3137 clr a 3138 ; Peephole 236.b used r3 instead of ar3 09DD 3B 3139 addc a,r3 09DE F5 83 3140 mov dph,a 3141 ; genPointerGet 3142 ; genFarPointerGet 09E0 E0 3143 movx a,@dptr 3144 ; genIfx 3145 ; Peephole 105 removed redundant mov 09E1 FA 3146 mov r2,a 3147 ; genIfxJump 3148 ; Peephole 110 removed ljmp by inverse jump logic 09E2 60 26 3149 jz 00204$ 09E4 3150 00388$: 3151 ;usb_irq.c:635: _firm_regulate |= (1 << (2 * i - 1)); 3152 ; genMult 3153 ; genMultOneByte 09E4 E5*0E 3154 mov a,_usb_isr_i_1_1 09E6 75 F0 02 3155 mov b,#0x02 09E9 A4 3156 mul ab 3157 ; genMinus 3158 ; genMinusDec 09EA 24 FF 3159 add a,#0xff 09EC FA 3160 mov r2,a 09ED E5 F0 3161 mov a,b 09EF 34 FF 3162 addc a,#0xff 09F1 FB 3163 mov r3,a 3164 ; genLeftShift 09F2 8A F0 3165 mov b,r2 09F4 05 F0 3166 inc b 09F6 74 01 3167 mov a,#0x01 09F8 80 02 3168 sjmp 00391$ 09FA 3169 00389$: 09FA 25 E0 3170 add a,acc 09FC 3171 00391$: 09FC D5 F0 FB 3172 djnz b,00389$ 09FF FA 3173 mov r2,a 3174 ; genAssign 3175 ; genOr 3176 ; Peephole 248.a optimized or to xdata 0A00 90 1C 65 3177 mov dptr,#__firm_regulate 0A03 E0 3178 movx a,@dptr 0A04 FB 3179 mov r3,a 0A05 4A 3180 orl a,r2 0A06 F0 3181 movx @dptr,a 0A07 02s0ArCE 3182 ljmp 00213$ 0A0A 3183 00204$: 3184 ;usb_irq.c:636: else _firm_regulate &= ~(1 << (2 * i - 1)); 3185 ; genMult 3186 ; genMultOneByte 0A0A E5*0E 3187 mov a,_usb_isr_i_1_1 0A0C 75 F0 02 3188 mov b,#0x02 0A0F A4 3189 mul ab 3190 ; genMinus 3191 ; genMinusDec 0A10 24 FF 3192 add a,#0xff 0A12 FA 3193 mov r2,a 0A13 E5 F0 3194 mov a,b 0A15 34 FF 3195 addc a,#0xff 0A17 FB 3196 mov r3,a 3197 ; genLeftShift 0A18 8A F0 3198 mov b,r2 0A1A 05 F0 3199 inc b 0A1C 7A 01 3200 mov r2,#0x01 0A1E 7B 00 3201 mov r3,#0x00 0A20 80 07 3202 sjmp 00393$ 0A22 3203 00392$: 0A22 EA 3204 mov a,r2 0A23 25 E0 3205 add a,acc 0A25 FA 3206 mov r2,a 0A26 EB 3207 mov a,r3 0A27 33 3208 rlc a 0A28 FB 3209 mov r3,a 0A29 3210 00393$: 0A29 D5 F0 F6 3211 djnz b,00392$ 3212 ; genCpl 0A2C EA 3213 mov a,r2 0A2D F4 3214 cpl a 0A2E FA 3215 mov r2,a 0A2F EB 3216 mov a,r3 0A30 F4 3217 cpl a 0A31 FB 3218 mov r3,a 3219 ; genCast 3220 ; genAssign 3221 ; genAnd 3222 ; Peephole 248.b optimized and to xdata 0A32 90 1C 65 3223 mov dptr,#__firm_regulate 0A35 E0 3224 movx a,@dptr 0A36 FB 3225 mov r3,a 0A37 5A 3226 anl a,r2 0A38 F0 3227 movx @dptr,a 3228 ;usb_irq.c:637: break; 0A39 02s0ArCE 3229 ljmp 00213$ 3230 ;usb_irq.c:639: _vtol[2 * (i - 1)] = OUTBUF(i, 1); 0A3C 3231 00207$: 3232 ; genMinus 3233 ; genMinusDec 0A3C E5*0E 3234 mov a,_usb_isr_i_1_1 0A3E 14 3235 dec a 3236 ; genLeftShift 3237 ; genLeftShiftLiteral 3238 ; genlshOne 3239 ; Peephole 105 removed redundant mov 3240 ; genPlus 3241 ; Peephole 177.b removed redundant mov 3242 ; Peephole 204 removed redundant mov 0A3F 25 E0 3243 add a,acc 3244 ; Peephole 215 removed some moves 0A41 24 66 3245 add a,#__vtol 0A43 FA 3246 mov r2,a 3247 ; Peephole 181 changed mov to clr 0A44 E4 3248 clr a 0A45 34 1C 3249 addc a,#(__vtol >> 8) 0A47 FB 3250 mov r3,a 3251 ; genMinus 0A48 74 04 3252 mov a,#0x04 0A4A C3 3253 clr c 3254 ; Peephole 236.l used r4 instead of ar4 0A4B 9C 3255 subb a,r4 0A4C FE 3256 mov r6,a 3257 ; Peephole 181 changed mov to clr 0A4D E4 3258 clr a 3259 ; Peephole 236.l used r5 instead of ar5 0A4E 9D 3260 subb a,r5 3261 ; genLeftShift 3262 ; genLeftShiftLiteral 3263 ; genlshTwo 3264 ; Peephole 105 removed redundant mov 0A4F FF 3265 mov r7,a 0A50 54 01 3266 anl a,#0x01 0A52 A2 E0 3267 mov c,acc.0 0A54 CE 3268 xch a,r6 0A55 13 3269 rrc a 0A56 CE 3270 xch a,r6 0A57 13 3271 rrc a 0A58 CE 3272 xch a,r6 0A59 FF 3273 mov r7,a 3274 ; genPlus 3275 ; Peephole 236.g used r6 instead of ar6 0A5A EE 3276 mov a,r6 0A5B 24 C0 3277 add a,#_OUT4BUF 0A5D FE 3278 mov r6,a 3279 ; Peephole 236.g used r7 instead of ar7 0A5E EF 3280 mov a,r7 0A5F 34 7C 3281 addc a,#(_OUT4BUF >> 8) 0A61 FF 3282 mov r7,a 3283 ; genPlus 3284 ; genPlusIncr 0A62 74 01 3285 mov a,#0x01 3286 ; Peephole 236.a used r6 instead of ar6 0A64 2E 3287 add a,r6 0A65 F5 82 3288 mov dpl,a 3289 ; Peephole 181 changed mov to clr 0A67 E4 3290 clr a 3291 ; Peephole 236.b used r7 instead of ar7 0A68 3F 3292 addc a,r7 0A69 F5 83 3293 mov dph,a 3294 ; genPointerGet 3295 ; genFarPointerGet 0A6B E0 3296 movx a,@dptr 3297 ; genPointerSet 3298 ; genFarPointerSet 3299 ; Peephole 136 removed redundant moves 0A6C FE 3300 mov r6,a 0A6D 8A 82 3301 mov dpl,r2 0A6F 8B 83 3302 mov dph,r3 0A71 F0 3303 movx @dptr,a 3304 ;usb_irq.c:640: break; 3305 ;usb_irq.c:642: _vtol[2 * i - 1] = OUTBUF(i, 1); 3306 ; Peephole 112.b changed ljmp to sjmp 0A72 80 5A 3307 sjmp 00213$ 0A74 3308 00208$: 3309 ; genLeftShift 3310 ; genLeftShiftLiteral 3311 ; genlshOne 0A74 E5*0E 3312 mov a,_usb_isr_i_1_1 0A76 25 E0 3313 add a,acc 3314 ; genMinus 3315 ; genMinusDec 3316 ; Peephole 105 removed redundant mov 0A78 FA 3317 mov r2,a 0A79 14 3318 dec a 3319 ; genPlus 0A7A 24 66 3320 add a,#__vtol 0A7C FA 3321 mov r2,a 3322 ; Peephole 240 use clr instead of addc a,#0 0A7D E4 3323 clr a 0A7E 34 1C 3324 addc a,#(__vtol >> 8) 0A80 FB 3325 mov r3,a 3326 ; genMinus 0A81 74 04 3327 mov a,#0x04 0A83 C3 3328 clr c 3329 ; Peephole 236.l used r4 instead of ar4 0A84 9C 3330 subb a,r4 0A85 FE 3331 mov r6,a 3332 ; Peephole 181 changed mov to clr 0A86 E4 3333 clr a 3334 ; Peephole 236.l used r5 instead of ar5 0A87 9D 3335 subb a,r5 3336 ; genLeftShift 3337 ; genLeftShiftLiteral 3338 ; genlshTwo 3339 ; Peephole 105 removed redundant mov 0A88 FF 3340 mov r7,a 0A89 54 01 3341 anl a,#0x01 0A8B A2 E0 3342 mov c,acc.0 0A8D CE 3343 xch a,r6 0A8E 13 3344 rrc a 0A8F CE 3345 xch a,r6 0A90 13 3346 rrc a 0A91 CE 3347 xch a,r6 0A92 FF 3348 mov r7,a 3349 ; genPlus 3350 ; Peephole 236.g used r6 instead of ar6 0A93 EE 3351 mov a,r6 0A94 24 C0 3352 add a,#_OUT4BUF 0A96 FE 3353 mov r6,a 3354 ; Peephole 236.g used r7 instead of ar7 0A97 EF 3355 mov a,r7 0A98 34 7C 3356 addc a,#(_OUT4BUF >> 8) 0A9A FF 3357 mov r7,a 3358 ; genPlus 3359 ; genPlusIncr 0A9B 74 01 3360 mov a,#0x01 3361 ; Peephole 236.a used r6 instead of ar6 0A9D 2E 3362 add a,r6 0A9E F5 82 3363 mov dpl,a 3364 ; Peephole 181 changed mov to clr 0AA0 E4 3365 clr a 3366 ; Peephole 236.b used r7 instead of ar7 0AA1 3F 3367 addc a,r7 0AA2 F5 83 3368 mov dph,a 3369 ; genPointerGet 3370 ; genFarPointerGet 0AA4 E0 3371 movx a,@dptr 3372 ; genPointerSet 3373 ; genFarPointerSet 3374 ; Peephole 136 removed redundant moves 0AA5 FE 3375 mov r6,a 0AA6 8A 82 3376 mov dpl,r2 0AA8 8B 83 3377 mov dph,r3 0AAA F0 3378 movx @dptr,a 3379 ;usb_irq.c:643: break; 3380 ;usb_irq.c:645: FLASH; 3381 ; Peephole 112.b changed ljmp to sjmp 0AAB 80 21 3382 sjmp 00213$ 0AAD 3383 00209$: 3384 ; genAssign 3385 ; genAnd 3386 ; Peephole 248.b optimized and to xdata 0AAD 90 7F 98 3387 mov dptr,#_OUTC 0AB0 E0 3388 movx a,@dptr 0AB1 FA 3389 mov r2,a 0AB2 54 F7 3390 anl a,#0xF7 0AB4 F0 3391 movx @dptr,a 3392 ; genAssign 0AB5 7A FF 3393 mov r2,#0xFF 0AB7 7B 7F 3394 mov r3,#0x7F 0AB9 3395 00210$: 3396 ; genAssign 0AB9 8A 0E 3397 mov ar6,r2 0ABB 8B 0F 3398 mov ar7,r3 3399 ; genMinus 3400 ; genMinusDec 0ABD 1A 3401 dec r2 0ABE BA FF 01 3402 cjne r2,#0xff,00394$ 0AC1 1B 3403 dec r3 0AC2 3404 00394$: 3405 ; genIfx 0AC2 EE 3406 mov a,r6 0AC3 4F 3407 orl a,r7 3408 ; genIfxJump 3409 ; Peephole 109 removed ljmp by inverse jump logic 0AC4 70 F3 3410 jnz 00210$ 0AC6 3411 00395$: 3412 ; genAssign 3413 ; genOr 3414 ; Peephole 248.a optimized or to xdata 0AC6 90 7F 98 3415 mov dptr,#_OUTC 0AC9 E0 3416 movx a,@dptr 0ACA FA 3417 mov r2,a 0ACB 44 08 3418 orl a,#0x08 0ACD F0 3419 movx @dptr,a 3420 ;usb_irq.c:647: } 0ACE 3421 00213$: 3422 ;usb_irq.c:648: OUTBC(i) = 0; 3423 ; genMinus 3424 ; genMinusDec 0ACE 1C 3425 dec r4 0ACF BC FF 01 3426 cjne r4,#0xff,00396$ 0AD2 1D 3427 dec r5 0AD3 3428 00396$: 3429 ; genLeftShift 3430 ; genLeftShiftLiteral 3431 ; genlshTwo 0AD3 ED 3432 mov a,r5 0AD4 CC 3433 xch a,r4 0AD5 25 E0 3434 add a,acc 0AD7 CC 3435 xch a,r4 0AD8 33 3436 rlc a 0AD9 FD 3437 mov r5,a 3438 ; genPlus 3439 ; Peephole 236.g used r4 instead of ar4 0ADA EC 3440 mov a,r4 0ADB 24 C7 3441 add a,#_OUT1BC 0ADD F5 82 3442 mov dpl,a 3443 ; Peephole 236.g used r5 instead of ar5 0ADF ED 3444 mov a,r5 0AE0 34 7F 3445 addc a,#(_OUT1BC >> 8) 0AE2 F5 83 3446 mov dph,a 3447 ; genPointerSet 3448 ; genFarPointerSet 3449 ; Peephole 181 changed mov to clr 0AE4 E4 3450 clr a 0AE5 F0 3451 movx @dptr,a 0AE6 3452 00220$: 3453 ;usb_irq.c:561: for (i = 1; i < 5; ++i) 3454 ; genPlus 3455 ; genPlusIncr 0AE6 05*0E 3456 inc _usb_isr_i_1_1 0AE8 02s03rF4 3457 ljmp 00218$ 0AEB 3458 00221$: 3459 ;usb_irq.c:652: if (USBIRQ & 0x10) { 3460 ; genAssign 0AEB 90 7F AB 3461 mov dptr,#_USBIRQ 0AEE E0 3462 movx a,@dptr 3463 ; genAnd 3464 ; Peephole 105 removed redundant mov 0AEF FA 3465 mov r2,a 3466 ; genIfxJump 3467 ; Peephole 111 removed ljmp by inverse jump logic 0AF0 30 E4 06 3468 jnb acc.4,00222$ 0AF3 3469 00397$: 3470 ;usb_irq.c:654: USBIRQ = 0x10; 3471 ; genAssign 0AF3 90 7F AB 3472 mov dptr,#_USBIRQ 0AF6 74 10 3473 mov a,#0x10 0AF8 F0 3474 movx @dptr,a 0AF9 3475 00222$: 0AF9 D0 D0 3476 pop psw 0AFB 92 AF 3477 mov ea,c 0AFD D0 D0 3478 pop psw 0AFF D0 83 3479 pop dph 0B01 D0 82 3480 pop dpl 0B03 D0 F0 3481 pop b 0B05 D0 E0 3482 pop acc 0B07 32 3483 reti 3484 .area CSEG (CODE) 0B08 3485 _dev_desc: 0B08 12 3486 .db #0x12 0B09 01 3487 .db #0x01 0B0A 00 3488 .db #0x00 0B0B 01 3489 .db #0x01 0B0C 00 3490 .db #0x00 0B0D 00 3491 .db #0x00 0B0E 00 3492 .db #0x00 0B0F 40 3493 .db #0x40 0B10 42 3494 .db #0x42 0B11 42 3495 .db #0x42 0B12 EF 3496 .db #0xEF 0B13 BE 3497 .db #0xBE 0B14 0A 3498 .db #0x0A 0B15 00 3499 .db #0x00 0B16 01 3500 .db #0x01 0B17 02 3501 .db #0x02 0B18 03 3502 .db #0x03 0B19 01 3503 .db #0x01 0B1A 3504 _conf_desc: 0B1A 09 3505 .db #0x09 0B1B 02 3506 .db #0x02 0B1C 5F 3507 .db #0x5F 0B1D 00 3508 .db #0x00 0B1E 01 3509 .db #0x01 0B1F 01 3510 .db #0x01 0B20 00 3511 .db #0x00 0B21 C0 3512 .db #0xC0 0B22 01 3513 .db #0x01 0B23 09 3514 .db #0x09 0B24 04 3515 .db #0x04 0B25 00 3516 .db #0x00 0B26 00 3517 .db #0x00 0B27 0B 3518 .db #0x0B 0B28 FF 3519 .db #0xFF 0B29 FF 3520 .db #0xFF 0B2A FF 3521 .db #0xFF 0B2B 01 3522 .db #0x01 0B2C 07 3523 .db #0x07 0B2D 05 3524 .db #0x05 0B2E 81 3525 .db #0x81 0B2F 02 3526 .db #0x02 0B30 40 3527 .db #0x40 0B31 00 3528 .db #0x00 0B32 01 3529 .db #0x01 0B33 07 3530 .db #0x07 0B34 05 3531 .db #0x05 0B35 01 3532 .db #0x01 0B36 02 3533 .db #0x02 0B37 40 3534 .db #0x40 0B38 00 3535 .db #0x00 0B39 01 3536 .db #0x01 0B3A 07 3537 .db #0x07 0B3B 05 3538 .db #0x05 0B3C 82 3539 .db #0x82 0B3D 02 3540 .db #0x02 0B3E 40 3541 .db #0x40 0B3F 00 3542 .db #0x00 0B40 01 3543 .db #0x01 0B41 07 3544 .db #0x07 0B42 05 3545 .db #0x05 0B43 02 3546 .db #0x02 0B44 02 3547 .db #0x02 0B45 40 3548 .db #0x40 0B46 00 3549 .db #0x00 0B47 01 3550 .db #0x01 0B48 07 3551 .db #0x07 0B49 05 3552 .db #0x05 0B4A 83 3553 .db #0x83 0B4B 02 3554 .db #0x02 0B4C 40 3555 .db #0x40 0B4D 00 3556 .db #0x00 0B4E 01 3557 .db #0x01 0B4F 07 3558 .db #0x07 0B50 05 3559 .db #0x05 0B51 03 3560 .db #0x03 0B52 02 3561 .db #0x02 0B53 40 3562 .db #0x40 0B54 00 3563 .db #0x00 0B55 01 3564 .db #0x01 0B56 07 3565 .db #0x07 0B57 05 3566 .db #0x05 0B58 84 3567 .db #0x84 0B59 02 3568 .db #0x02 0B5A 40 3569 .db #0x40 0B5B 00 3570 .db #0x00 0B5C 01 3571 .db #0x01 0B5D 07 3572 .db #0x07 0B5E 05 3573 .db #0x05 0B5F 04 3574 .db #0x04 0B60 02 3575 .db #0x02 0B61 40 3576 .db #0x40 0B62 00 3577 .db #0x00 0B63 01 3578 .db #0x01 0B64 07 3579 .db #0x07 0B65 05 3580 .db #0x05 0B66 85 3581 .db #0x85 0B67 02 3582 .db #0x02 0B68 40 3583 .db #0x40 0B69 00 3584 .db #0x00 0B6A 01 3585 .db #0x01 0B6B 07 3586 .db #0x07 0B6C 05 3587 .db #0x05 0B6D 05 3588 .db #0x05 0B6E 02 3589 .db #0x02 0B6F 40 3590 .db #0x40 0B70 00 3591 .db #0x00 0B71 01 3592 .db #0x01 0B72 07 3593 .db #0x07 0B73 05 3594 .db #0x05 0B74 86 3595 .db #0x86 0B75 02 3596 .db #0x02 0B76 40 3597 .db #0x40 0B77 00 3598 .db #0x00 0B78 01 3599 .db #0x01 0B79 3600 _string_langid: 0B79 03 3601 .db #0x03 0B7A 3602 _string_mfg: 0B7A 0C 3603 .db #0x0C 0B7B 03 3604 .db #0x03 0B7C 41 3605 .db #0x41 0B7D 00 3606 .db #0x00 0B7E 54 3607 .db #0x54 0B7F 00 3608 .db #0x00 0B80 4C 3609 .db #0x4C 0B81 00 3610 .db #0x00 0B82 41 3611 .db #0x41 0B83 00 3612 .db #0x00 0B84 53 3613 .db #0x53 0B85 00 3614 .db #0x00 0B86 3615 _string_prod: 0B86 16 3616 .db #0x16 0B87 03 3617 .db #0x03 0B88 53 3618 .db #0x53 0B89 00 3619 .db #0x00 0B8A 75 3620 .db #0x75 0B8B 00 3621 .db #0x00 0B8C 52 3622 .db #0x52 0B8D 00 3623 .db #0x00 0B8E 46 3624 .db #0x46 0B8F 00 3625 .db #0x00 0B90 20 3626 .db #0x20 0B91 00 3627 .db #0x00 0B92 62 3628 .db #0x62 0B93 00 3629 .db #0x00 0B94 6F 3630 .db #0x6F 0B95 00 3631 .db #0x00 0B96 61 3632 .db #0x61 0B97 00 3633 .db #0x00 0B98 72 3634 .db #0x72 0B99 00 3635 .db #0x00 0B9A 64 3636 .db #0x64 0B9B 00 3637 .db #0x00 0B9C 3638 _string_sernum: 0B9C 1A 3639 .db #0x1A 0B9D 03 3640 .db #0x03 0B9E 32 3641 .db #0x32 0B9F 00 3642 .db #0x00 0BA0 30 3643 .db #0x30 0BA1 00 3644 .db #0x00 0BA2 30 3645 .db #0x30 0BA3 00 3646 .db #0x00 0BA4 34 3647 .db #0x34 0BA5 00 3648 .db #0x00 0BA6 30 3649 .db #0x30 0BA7 00 3650 .db #0x00 0BA8 32 3651 .db #0x32 0BA9 00 3652 .db #0x00 0BAA 4C 3653 .db #0x4C 0BAB 00 3654 .db #0x00 0BAC 42 3655 .db #0x42 0BAD 00 3656 .db #0x00 0BAE 4C 3657 .db #0x4C 0BAF 00 3658 .db #0x00 0BB0 30 3659 .db #0x30 0BB1 00 3660 .db #0x00 0BB2 30 3661 .db #0x30 0BB3 00 3662 .db #0x00 0BB4 35 3663 .db #0x35 0BB5 00 3664 .db #0x00 0BB6 3665 _string_if: 0BB6 0A 3666 .db #0x0A 0BB7 03 3667 .db #0x03 0BB8 53 3668 .db #0x53 0BB9 00 3669 .db #0x00 0BBA 75 3670 .db #0x75 0BBB 00 3671 .db #0x00 0BBC 72 3672 .db #0x72 0BBD 00 3673 .db #0x00 0BBE 66 3674 .db #0x66 0BBF 00 3675 .db #0x00 0BC0 3676 _string_rev: 0BC0 08 3677 .db #0x08 0BC1 03 3678 .db #0x03 0BC2 00 3679 .db #0x00 0BC3 00 3680 .db #0x00 0BC4 1E 3681 .db #0x1E 0BC5 00 3682 .db #0x00 0BC6 06 3683 .db #0x06 0BC7 00 3684 .db #0x00 3685 .area XINIT (CODE)