;-------------------------------------------------------- ; File Created by SDCC : FreeWare ANSI-C Compiler ; Version 2.4.0 Wed Mar 31 00:18:31 2004 ;-------------------------------------------------------- .module usb_irq .optsdcc -mmcs51 --model-small ;-------------------------------------------------------- ; Public variables in this module ;-------------------------------------------------------- .globl __vtable .globl __vtol .globl __firm_regulate .globl __volt .globl __adc .globl __power_fail .globl __resistor .globl __buf .globl _USBPAIR .globl _ISOCTL .globl _AUTODATA .globl _AUTOPTRL .globl _AUTOPTRH .globl _OUT07VAL .globl _IN07VAL .globl _I2DAT .globl _I2CS .globl _SETUPDAT .globl _SUDPTRL .globl _SUDPTRH .globl _TOGCTL .globl _USBCS .globl _USBBAV .globl _USBIEN .globl _USBIRQ .globl _OUT07IEN .globl _IN07IEN .globl _OUT07IRQ .globl _IN07IRQ .globl _PORTCCFG .globl _PORTBCFG .globl _PORTACFG .globl _PINSC .globl _OUTC .globl _OEC .globl _OUTB .globl _OEB .globl _OUTA .globl _OEA .globl _OUT6CS .globl _OUT6BC .globl _OUT6BUF .globl _IN6CS .globl _IN6BC .globl _IN6BUF .globl _OUT5CS .globl _OUT5BC .globl _OUT5BUF .globl _IN5CS .globl _IN5BC .globl _IN5BUF .globl _OUT4CS .globl _OUT4BC .globl _OUT4BUF .globl _IN4CS .globl _IN4BC .globl _IN4BUF .globl _OUT3BUF .globl _OUT3CS .globl _OUT3BC .globl _IN3CS .globl _IN3BC .globl _IN3BUF .globl _OUT2BUF .globl _OUT2CS .globl _OUT2BC .globl _IN2CS .globl _IN2BC .globl _IN2BUF .globl _OUT1BC .globl _OUT1CS .globl _OUT1BUF .globl _IN1BC .globl _IN1BUF .globl _IN1CS .globl _OUT0BC .globl _OUT0BUF .globl _IN0BC .globl _IN0BUF .globl _EP0CS .globl _usb_isr ;-------------------------------------------------------- ; special function registers ;-------------------------------------------------------- _EXIF = 0x0091 _EIE = 0x00e8 _SCON0 = 0x0098 _SCON1 = 0x00c0 _SBUF0 = 0x0099 _SBUF1 = 0x00c1 _CKCON = 0x008e _T2CON = 0x00c8 _RCAP2L = 0x00ca _RCAP2H = 0x00cb _TL2 = 0x00cc _TH2 = 0x00cd ;-------------------------------------------------------- ; special function bits ;-------------------------------------------------------- _EUSB = 0x00e8 _ES0 = 0x00ac _ES1 = 0x00ae _RI_0 = 0x0098 _TI_0 = 0x0099 _RI_1 = 0x00c0 _TI_1 = 0x00c1 _TR2 = 0x00ca _TF2 = 0x00cf _ET2 = 0x00ad ;-------------------------------------------------------- ; overlayable register banks ;-------------------------------------------------------- .area REG_BANK_0 (REL,OVR,DATA) .ds 8 .area REG_BANK_1 (REL,OVR,DATA) .ds 8 ;-------------------------------------------------------- ; internal ram data ;-------------------------------------------------------- .area DSEG (DATA) _string_index: .ds 12 _sdat: .ds 2 _usb_isr_i_1_1:: .ds 1 _usb_isr_len_2_25:: .ds 1 ;-------------------------------------------------------- ; overlayable items in internal ram ;-------------------------------------------------------- .area OSEG (OVR,DATA) ;-------------------------------------------------------- ; indirectly addressable internal ram data ;-------------------------------------------------------- .area ISEG (DATA) ;-------------------------------------------------------- ; bit data ;-------------------------------------------------------- .area BSEG (BIT) ;-------------------------------------------------------- ; external ram data ;-------------------------------------------------------- .area XSEG (XDATA) _EP0CS = 0x7fb4 _IN0BUF = 0x7f00 _IN0BC = 0x7fb5 _OUT0BUF = 0x7ec0 _OUT0BC = 0x7fc5 _IN1CS = 0x7fb6 _IN1BUF = 0x7e80 _IN1BC = 0x7fb7 _OUT1BUF = 0x7e40 _OUT1CS = 0x7fc6 _OUT1BC = 0x7fc7 _IN2BUF = 0x7e00 _IN2BC = 0x7fb9 _IN2CS = 0x7fb8 _OUT2BC = 0x7fc9 _OUT2CS = 0x7fc8 _OUT2BUF = 0x7dc0 _IN3BUF = 0x7d80 _IN3BC = 0x7fbb _IN3CS = 0x7fba _OUT3BC = 0x7fcb _OUT3CS = 0x7fca _OUT3BUF = 0x7d40 _IN4BUF = 0x7d00 _IN4BC = 0x7fbd _IN4CS = 0x7fbc _OUT4BUF = 0x7cc0 _OUT4BC = 0x7fcd _OUT4CS = 0x7fcc _IN5BUF = 0x7c80 _IN5BC = 0x7fbf _IN5CS = 0x7fbe _OUT5BUF = 0x7c40 _OUT5BC = 0x7fcf _OUT5CS = 0x7fce _IN6BUF = 0x7c00 _IN6BC = 0x7fc1 _IN6CS = 0x7fc0 _OUT6BUF = 0x7bc0 _OUT6BC = 0x7fd1 _OUT6CS = 0x7fd0 _OEA = 0x7f9c _OUTA = 0x7f96 _OEB = 0x7f9d _OUTB = 0x7f97 _OEC = 0x7f9e _OUTC = 0x7f98 _PINSC = 0x7f9b _PORTACFG = 0x7f93 _PORTBCFG = 0x7f94 _PORTCCFG = 0x7f95 _IN07IRQ = 0x7fa9 _OUT07IRQ = 0x7faa _IN07IEN = 0x7fac _OUT07IEN = 0x7fad _USBIRQ = 0x7fab _USBIEN = 0x7fae _USBBAV = 0x7faf _USBCS = 0x7fd6 _TOGCTL = 0x7fd7 _SUDPTRH = 0x7fd4 _SUDPTRL = 0x7fd5 _SETUPDAT = 0x7fe8 _I2CS = 0x7fa5 _I2DAT = 0x7fa6 _IN07VAL = 0x7fde _OUT07VAL = 0x7fdf _AUTOPTRH = 0x7fe3 _AUTOPTRL = 0x7fe4 _AUTODATA = 0x7fe5 _ISOCTL = 0x7fa1 _USBPAIR = 0x7fdd __buf = 0x1c04 __resistor = 0x1c1c __power_fail = 0x1c24 __adc = 0x1c25 __volt = 0x1c55 __firm_regulate = 0x1c65 __vtol = 0x1c66 __vtable = 0x2000 ;-------------------------------------------------------- ; external initialized ram data ;-------------------------------------------------------- .area XISEG (XDATA) ;-------------------------------------------------------- ; global & static initialisations ;-------------------------------------------------------- .area GSINIT (CODE) .area GSFINAL (CODE) .area GSINIT (CODE) ;usb_irq.c:211: static data unsigned int string_index[NUM_STRING] = { ; genCast mov r2,#_string_langid mov r3,#(_string_langid >> 8) ; genPointerSet ; genNearPointerSet ; genDataPointerSet mov _string_index,r2 mov (_string_index + 1),r3 ; genCast mov r2,#_string_mfg mov r3,#(_string_mfg >> 8) ; genPointerSet ; genNearPointerSet ; genDataPointerSet mov (_string_index + 0x0002),r2 mov ((_string_index + 0x0002) + 1),r3 ; genCast mov r2,#_string_prod mov r3,#(_string_prod >> 8) ; genPointerSet ; genNearPointerSet ; genDataPointerSet mov (_string_index + 0x0004),r2 mov ((_string_index + 0x0004) + 1),r3 ; genCast mov r2,#_string_sernum mov r3,#(_string_sernum >> 8) ; genPointerSet ; genNearPointerSet ; genDataPointerSet mov (_string_index + 0x0006),r2 mov ((_string_index + 0x0006) + 1),r3 ; genCast mov r2,#_string_if mov r3,#(_string_if >> 8) ; genPointerSet ; genNearPointerSet ; genDataPointerSet mov (_string_index + 0x0008),r2 mov ((_string_index + 0x0008) + 1),r3 ; genCast mov r2,#_string_rev mov r3,#(_string_rev >> 8) ; genPointerSet ; genNearPointerSet ; genDataPointerSet mov (_string_index + 0x000a),r2 mov ((_string_index + 0x000a) + 1),r3 ;usb_irq.c:220: static xdata setup_dat * data sdat = (xdata setup_dat *)&SETUPDAT; ; genAssign mov _sdat,#0xE8 mov (_sdat + 1),#0x7F ;-------------------------------------------------------- ; Home ;-------------------------------------------------------- .area HOME (CODE) .area CSEG (CODE) ;-------------------------------------------------------- ; code ;-------------------------------------------------------- .area CSEG (CODE) ;------------------------------------------------------------ ;Allocation info for local variables in function 'usb_isr' ;------------------------------------------------------------ ;i Allocated with name '_usb_isr_i_1_1' ;len Allocated with name '_usb_isr_len_2_25' ;c Allocated to registers ;c Allocated to registers ;------------------------------------------------------------ ;usb_irq.c:237: void usb_isr(void) interrupt 8 using 1 critical ; ----------------------------------------- ; function usb_isr ; ----------------------------------------- _usb_isr: ar2 = 0x0a ar3 = 0x0b ar4 = 0x0c ar5 = 0x0d ar6 = 0x0e ar7 = 0x0f ar0 = 0x08 ar1 = 0x09 push acc push b push dpl push dph push psw mov psw,#0x08 setb c jbc ea,00294$ clr c 00294$: push psw ;usb_irq.c:242: EXIF &= 0xef; ; genAnd anl _EXIF,#0xEF ;usb_irq.c:245: if (USBIRQ & 0x01) { ; genAssign mov dptr,#_USBIRQ movx a,@dptr ; genAnd ; Peephole 105 removed redundant mov mov r2,a ; genIfxJump jb acc.0,00295$ ljmp 00174$ 00295$: ;usb_irq.c:247: USBIRQ = 0x01; ; genAssign mov dptr,#_USBIRQ mov a,#0x01 movx @dptr,a ;usb_irq.c:265: switch (sdat->bRequest) { ; genPlus ; genPlusIncr mov a,#0x01 add a,_sdat mov dpl,a ; Peephole 181 changed mov to clr clr a addc a,(_sdat + 1) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr mov r2,a ; genCmpEq cjne r2,#0x00,00296$ ; Peephole 112.b changed ljmp to sjmp sjmp 00106$ 00296$: ; genCmpEq cjne r2,#0x01,00297$ ; Peephole 112.b changed ljmp to sjmp sjmp 00116$ 00297$: ; genCmpEq cjne r2,#0x03,00298$ ljmp 00132$ 00298$: ; genCmpEq cjne r2,#0x06,00299$ ljmp 00141$ 00299$: ; genCmpEq cjne r2,#0x08,00300$ ljmp 00145$ 00300$: ; genCmpEq cjne r2,#0x09,00301$ ljmp 00150$ 00301$: ; genCmpEq cjne r2,#0x0A,00302$ ljmp 00158$ 00302$: ; genCmpEq cjne r2,#0x0B,00303$ ljmp 00169$ 00303$: ; genCmpEq cjne r2,#0xB9,00304$ ljmp 00170$ 00304$: ljmp 00171$ ;usb_irq.c:285: } 00106$: ;usb_irq.c:269: switch (sdat->bmRequestType) { ; genAssign mov dpl,_sdat mov dph,(_sdat + 1) ; genPointerGet ; genFarPointerGet movx a,@dptr mov r2,a ; genCmpEq cjne r2,#0x80,00305$ ; Peephole 112.b changed ljmp to sjmp sjmp 00101$ 00305$: ; genCmpEq cjne r2,#0x81,00306$ ; Peephole 112.b changed ljmp to sjmp sjmp 00101$ 00306$: ; genCmpEq ; Peephole 112.b changed ljmp to sjmp ; Peephole 199 optimized misc jump sequence cjne r2,#0x82,00104$ ;00307$: ; Peephole 200 removed redundant sjmp 00308$: ;usb_irq.c:276: INBUF(0,0) = 0x00; 00101$: ; genPointerSet ; genFarPointerSet mov dptr,#(_IN4BUF + 0x0200) ; Peephole 181 changed mov to clr ;usb_irq.c:277: INBUF(0,1) = 0x00; ; genPointerSet ; genFarPointerSet ; Peephole 181 changed mov to clr ; Peephole 219 removed redundant clear clr a movx @dptr,a mov dptr,#(_IN4BUF + 0x0201) movx @dptr,a ;usb_irq.c:278: IN0BC = 0x02; ; genAssign mov dptr,#_IN0BC mov a,#0x02 movx @dptr,a ;usb_irq.c:279: EP0CS = 0x02; /* clear HSNACK */ ; genAssign mov dptr,#_EP0CS mov a,#0x02 movx @dptr,a ;usb_irq.c:280: break; ljmp 00174$ ;usb_irq.c:283: EP0CS = 0x03; /* stall */ 00104$: ; genAssign mov dptr,#_EP0CS mov a,#0x03 movx @dptr,a ;usb_irq.c:286: break; ljmp 00174$ ;usb_irq.c:322: } 00116$: ;usb_irq.c:290: switch (sdat->bmRequestType) { ; genAssign mov dpl,_sdat mov dph,(_sdat + 1) ; genPointerGet ; genFarPointerGet movx a,@dptr mov r2,a ; genCmpEq cjne r2,#0x00,00309$ ; Peephole 112.b changed ljmp to sjmp sjmp 00107$ 00309$: ; genCmpEq cjne r2,#0x01,00310$ ; Peephole 112.b changed ljmp to sjmp sjmp 00108$ 00310$: ; genCmpEq ; Peephole 112.b changed ljmp to sjmp ;usb_irq.c:293: EP0CS = 0x02; /* clear HSNACK */ ; Peephole 112.b changed ljmp to sjmp ; Peephole 199 optimized misc jump sequence cjne r2,#0x02,00132$ sjmp 00114$ ;00311$: 00107$: ; genAssign mov dptr,#_EP0CS mov a,#0x02 movx @dptr,a ;usb_irq.c:294: break; ;usb_irq.c:297: EP0CS = 0x02; /* clear HSNACK */ ; Peephole 112.b changed ljmp to sjmp sjmp 00132$ 00108$: ; genAssign mov dptr,#_EP0CS mov a,#0x02 movx @dptr,a ;usb_irq.c:298: break; ;usb_irq.c:320: } ; Peephole 112.b changed ljmp to sjmp sjmp 00132$ 00114$: ;usb_irq.c:301: switch (sdat->wIndexL) { ; genPlus ; genPlusIncr mov a,#0x04 add a,_sdat mov dpl,a ; Peephole 181 changed mov to clr clr a addc a,(_sdat + 1) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr mov r2,a ; genCmpEq cjne r2,#0x00,00312$ ; Peephole 112.b changed ljmp to sjmp sjmp 00109$ 00312$: ; genCmpEq cjne r2,#0x80,00313$ ; Peephole 112.b changed ljmp to sjmp sjmp 00110$ 00313$: ; genCmpEq cjne r2,#0x81,00314$ ; Peephole 112.b changed ljmp to sjmp sjmp 00111$ 00314$: ; genCmpEq ; Peephole 112.b changed ljmp to sjmp ;usb_irq.c:305: TOGCTL = 0x00; ; Peephole 112.b changed ljmp to sjmp ; Peephole 199 optimized misc jump sequence cjne r2,#0x82,00132$ sjmp 00112$ ;00315$: 00109$: ; genAssign ;usb_irq.c:306: TOGCTL = 0x20; ; genAssign ; Peephole 180.a removed redundant mov to dptr mov dptr,#_TOGCTL ; Peephole 181 changed mov to clr clr a movx @dptr,a mov a,#0x20 movx @dptr,a ;usb_irq.c:307: EP0CS = 0x02; /* clear HSNACK */ ; genAssign mov dptr,#_EP0CS mov a,#0x02 movx @dptr,a ;usb_irq.c:308: break; ;usb_irq.c:310: TOGCTL = 0x10; ; Peephole 112.b changed ljmp to sjmp sjmp 00132$ 00110$: ; genAssign ;usb_irq.c:311: TOGCTL = 0x30; ; genAssign ; Peephole 180.a removed redundant mov to dptr mov dptr,#_TOGCTL mov a,#0x10 movx @dptr,a mov a,#0x30 movx @dptr,a ;usb_irq.c:312: EP0CS = 0x02; /* clear HSNACK */ ; genAssign mov dptr,#_EP0CS mov a,#0x02 movx @dptr,a ;usb_irq.c:313: break; ;usb_irq.c:315: EP0CS = 0x03; /* stall */ ; Peephole 112.b changed ljmp to sjmp sjmp 00132$ 00111$: ; genAssign mov dptr,#_EP0CS mov a,#0x03 movx @dptr,a ;usb_irq.c:316: break; ;usb_irq.c:318: EP0CS = 0x03; /* stall */ ; Peephole 112.b changed ljmp to sjmp sjmp 00132$ 00112$: ; genAssign mov dptr,#_EP0CS mov a,#0x03 movx @dptr,a ;usb_irq.c:375: } 00132$: ;usb_irq.c:325: switch (sdat->bmRequestType) { ; genAssign mov dpl,_sdat mov dph,(_sdat + 1) ; genPointerGet ; genFarPointerGet movx a,@dptr mov r2,a ; genCmpEq cjne r2,#0x00,00316$ ; Peephole 112.b changed ljmp to sjmp sjmp 00117$ 00316$: ; genCmpEq cjne r2,#0x01,00317$ ; Peephole 112.b changed ljmp to sjmp sjmp 00118$ 00317$: ; genCmpEq cjne r2,#0x02,00318$ ; Peephole 112.b changed ljmp to sjmp sjmp 00125$ 00318$: ; genCmpEq cjne r2,#0xA1,00319$ ljmp 00129$ 00319$: ljmp 00130$ ;usb_irq.c:328: EP0CS = 0x02; /* clear HSNACK */ 00117$: ; genAssign mov dptr,#_EP0CS mov a,#0x02 movx @dptr,a ;usb_irq.c:329: break; ljmp 00174$ ;usb_irq.c:332: EP0CS = 0x02; /* clear HSNACK */ 00118$: ; genAssign mov dptr,#_EP0CS mov a,#0x02 movx @dptr,a ;usb_irq.c:333: break; ljmp 00174$ ;usb_irq.c:359: } 00125$: ;usb_irq.c:336: switch (sdat->wIndexL) { ; genPlus ; genPlusIncr mov a,#0x04 add a,_sdat mov dpl,a ; Peephole 181 changed mov to clr clr a addc a,(_sdat + 1) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr mov r2,a ; genCmpEq cjne r2,#0x00,00320$ ; Peephole 112.b changed ljmp to sjmp sjmp 00119$ 00320$: ; genCmpEq cjne r2,#0x80,00321$ ; Peephole 112.b changed ljmp to sjmp sjmp 00120$ 00321$: ; genCmpEq cjne r2,#0x81,00322$ ; Peephole 112.b changed ljmp to sjmp sjmp 00121$ 00322$: ; genCmpEq ; Peephole 112.b changed ljmp to sjmp ;usb_irq.c:338: EP0CS |= 0x01; /* stall endpoint */ ; Peephole 112.b changed ljmp to sjmp ; Peephole 199 optimized misc jump sequence cjne r2,#0x82,00123$ sjmp 00122$ ;00323$: 00119$: ; genAssign ; genOr ; Peephole 248.a optimized or to xdata mov dptr,#_EP0CS movx a,@dptr mov r2,a orl a,#0x01 movx @dptr,a ;usb_irq.c:339: TOGCTL = 0x00; ; genAssign ;usb_irq.c:340: TOGCTL = 0x20; ; genAssign ; Peephole 180.a removed redundant mov to dptr mov dptr,#_TOGCTL ; Peephole 181 changed mov to clr clr a movx @dptr,a mov a,#0x20 movx @dptr,a ;usb_irq.c:341: OUT0BC = 0x00; ; genAssign mov dptr,#_OUT0BC ; Peephole 181 changed mov to clr clr a movx @dptr,a ;usb_irq.c:342: EP0CS |= 0x02; /* clear HSNACK */ ; genAssign ; genOr ; Peephole 248.a optimized or to xdata mov dptr,#_EP0CS movx a,@dptr mov r2,a orl a,#0x02 movx @dptr,a ;usb_irq.c:343: break; ljmp 00174$ ;usb_irq.c:345: EP0CS |= 0x01; /* stall endpoint */ 00120$: ; genAssign ; genOr ; Peephole 248.a optimized or to xdata mov dptr,#_EP0CS movx a,@dptr mov r2,a orl a,#0x01 movx @dptr,a ;usb_irq.c:346: TOGCTL = 0x10; ; genAssign ;usb_irq.c:347: TOGCTL = 0x30; ; genAssign ; Peephole 180.a removed redundant mov to dptr mov dptr,#_TOGCTL mov a,#0x10 movx @dptr,a mov a,#0x30 movx @dptr,a ;usb_irq.c:348: EP0CS |= 0x02; /* clear HSNACK */ ; genAssign ; genOr ; Peephole 248.a optimized or to xdata mov dptr,#_EP0CS movx a,@dptr mov r2,a orl a,#0x02 movx @dptr,a ;usb_irq.c:349: break; ljmp 00174$ ;usb_irq.c:351: EP0CS = 0x03; /* stall */ 00121$: ; genAssign mov dptr,#_EP0CS mov a,#0x03 movx @dptr,a ;usb_irq.c:352: break; ljmp 00174$ ;usb_irq.c:354: EP0CS = 0x03; /* stall */ 00122$: ; genAssign mov dptr,#_EP0CS mov a,#0x03 movx @dptr,a ;usb_irq.c:355: break; ljmp 00174$ ;usb_irq.c:357: EP0CS = 0x03; /* stall */ 00123$: ; genAssign mov dptr,#_EP0CS mov a,#0x03 movx @dptr,a ;usb_irq.c:360: break; ljmp 00174$ ;usb_irq.c:369: EP0CS = 0x03; /* stall */ 00129$: ;usb_irq.c:364: if (sdat->wIndexL == 0) { ; genPlus ; genPlusIncr mov a,#0x04 add a,_sdat mov dpl,a ; Peephole 181 changed mov to clr clr a addc a,(_sdat + 1) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr mov r2,a ; genCmpEq ; Peephole 112.b changed ljmp to sjmp ; Peephole 199 optimized misc jump sequence cjne r2,#0x00,00127$ ;00324$: ; Peephole 200 removed redundant sjmp 00325$: ;usb_irq.c:365: INBUF(0,0) = 1; /* always send Report protocol */ ; genPointerSet ; genFarPointerSet mov dptr,#(_IN4BUF + 0x0200) mov a,#0x01 movx @dptr,a ;usb_irq.c:366: IN0BC = 0x01; ; genAssign mov dptr,#_IN0BC mov a,#0x01 movx @dptr,a ;usb_irq.c:367: EP0CS = 0x02; /* clear HSNACK */ ; genAssign mov dptr,#_EP0CS mov a,#0x02 movx @dptr,a ljmp 00174$ 00127$: ;usb_irq.c:369: EP0CS = 0x03; /* stall */ ; genAssign mov dptr,#_EP0CS mov a,#0x03 movx @dptr,a ;usb_irq.c:370: break; ljmp 00174$ ;usb_irq.c:373: EP0CS = 0x03; /* stall */ 00130$: ; genAssign mov dptr,#_EP0CS mov a,#0x03 movx @dptr,a ;usb_irq.c:376: break; ljmp 00174$ ;usb_irq.c:408: } 00141$: ;usb_irq.c:380: switch (sdat->wValueH) { ; genPlus ; genPlusIncr mov a,#0x03 add a,_sdat mov dpl,a ; Peephole 181 changed mov to clr clr a addc a,(_sdat + 1) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr mov r2,a ; genCmpEq cjne r2,#0x01,00326$ ; Peephole 112.b changed ljmp to sjmp sjmp 00133$ 00326$: ; genCmpEq cjne r2,#0x02,00327$ ; Peephole 112.b changed ljmp to sjmp sjmp 00134$ 00327$: ; genCmpEq cjne r2,#0x03,00328$ ; Peephole 112.b changed ljmp to sjmp sjmp 00138$ 00328$: ljmp 00139$ ;usb_irq.c:383: EP0CS = 0x02; /* clear HSNACK */ 00133$: ; genAssign mov dptr,#_EP0CS mov a,#0x02 movx @dptr,a ;usb_irq.c:384: SUDPTRH = (Byte)((unsigned int)dev_desc >> 8); ; genCast mov r2,#_dev_desc mov r3,#(_dev_desc >> 8) ; genRightShift ; genRightShiftLiteral ; genrshTwo mov ar2,r3 mov r3,#0x00 ; genCast mov dptr,#_SUDPTRH mov a,r2 movx @dptr,a ;usb_irq.c:385: SUDPTRL = (unsigned int)dev_desc & 0xff; ; genCast mov r2,#_dev_desc mov r3,#(_dev_desc >> 8) ; genCast mov dptr,#_SUDPTRL mov a,r2 movx @dptr,a ;usb_irq.c:386: break; ljmp 00145$ ;usb_irq.c:390: EP0CS = 0x02; /* clear HSNACK */ 00134$: ; genAssign mov dptr,#_EP0CS mov a,#0x02 movx @dptr,a ;usb_irq.c:391: SUDPTRH = (Byte)((unsigned int)conf_desc >> 8); ; genCast mov r2,#_conf_desc mov r3,#(_conf_desc >> 8) ; genRightShift ; genRightShiftLiteral ; genrshTwo mov ar2,r3 mov r3,#0x00 ; genCast mov dptr,#_SUDPTRH mov a,r2 movx @dptr,a ;usb_irq.c:392: SUDPTRL = (unsigned int)conf_desc & 0xff; ; genCast mov r2,#_conf_desc mov r3,#(_conf_desc >> 8) ; genCast mov dptr,#_SUDPTRL mov a,r2 movx @dptr,a ;usb_irq.c:393: break; ;usb_irq.c:403: } ; Peephole 112.b changed ljmp to sjmp sjmp 00145$ 00138$: ;usb_irq.c:397: if (sdat->wValueL < NUM_STRING) { ; genPlus ; genPlusIncr mov a,#0x02 add a,_sdat mov dpl,a ; Peephole 181 changed mov to clr clr a addc a,(_sdat + 1) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr mov r2,a ; genCmpLt ; genCmp cjne r2,#0x06,00329$ 00329$: ; genIfxJump ; Peephole 108 removed ljmp by inverse jump logic jnc 00136$ 00330$: ;usb_irq.c:398: EP0CS = 0x02; /* clear HSNACK */ ; genAssign mov dptr,#_EP0CS mov a,#0x02 movx @dptr,a ;usb_irq.c:399: SUDPTRH = (Byte)(string_index[sdat->wValueL] >> 8); ; genPlus ; genPlusIncr mov a,#0x02 add a,_sdat mov dpl,a ; Peephole 181 changed mov to clr clr a addc a,(_sdat + 1) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genLeftShift ; genLeftShiftLiteral ; genlshOne ; Peephole 105 removed redundant mov ; genPlus ; Peephole 177.b removed redundant mov ; Peephole 204 removed redundant mov add a,acc mov r2,a add a,#_string_index mov r0,a ; genPointerGet ; genNearPointerGet mov ar2,@r0 inc r0 mov ar3,@r0 ; genRightShift ; genRightShiftLiteral ; genrshTwo mov ar2,r3 mov r3,#0x00 ; genCast mov dptr,#_SUDPTRH mov a,r2 movx @dptr,a ;usb_irq.c:400: SUDPTRL = string_index[sdat->wValueL] & 0xff; ; genPlus ; genPlusIncr mov a,#0x02 add a,_sdat mov dpl,a ; Peephole 181 changed mov to clr clr a addc a,(_sdat + 1) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genLeftShift ; genLeftShiftLiteral ; genlshOne ; Peephole 105 removed redundant mov ; genPlus ; Peephole 177.b removed redundant mov ; Peephole 204 removed redundant mov add a,acc mov r2,a add a,#_string_index mov r0,a ; genPointerGet ; genNearPointerGet mov ar2,@r0 inc r0 mov ar3,@r0 ; genCast mov dptr,#_SUDPTRL mov a,r2 movx @dptr,a ; Peephole 112.b changed ljmp to sjmp sjmp 00145$ 00136$: ;usb_irq.c:402: EP0CS = 0x03; /* stall */ ; genAssign mov dptr,#_EP0CS mov a,#0x03 movx @dptr,a ;usb_irq.c:404: break; ;usb_irq.c:407: EP0CS = 0x03; /* stall */ ; Peephole 112.b changed ljmp to sjmp sjmp 00145$ 00139$: ; genAssign mov dptr,#_EP0CS mov a,#0x03 movx @dptr,a ;usb_irq.c:418: } 00145$: ;usb_irq.c:412: if (sdat->bmRequestType == 0x80) { ; genAssign mov dpl,_sdat mov dph,(_sdat + 1) ; genPointerGet ; genFarPointerGet movx a,@dptr mov r2,a ; genCmpEq ; Peephole 112.b changed ljmp to sjmp ; Peephole 199 optimized misc jump sequence cjne r2,#0x80,00143$ ;00331$: ; Peephole 200 removed redundant sjmp 00332$: ;usb_irq.c:413: INBUF(0,0) = 0x01; ; genPointerSet ; genFarPointerSet mov dptr,#(_IN4BUF + 0x0200) mov a,#0x01 movx @dptr,a ;usb_irq.c:414: IN0BC = 0x01; ; genAssign mov dptr,#_IN0BC mov a,#0x01 movx @dptr,a ;usb_irq.c:415: EP0CS = 0x02; /* clear HSNACK */ ; genAssign mov dptr,#_EP0CS mov a,#0x02 movx @dptr,a ljmp 00174$ 00143$: ;usb_irq.c:417: EP0CS = 0x03; /* stall */ ; genAssign mov dptr,#_EP0CS mov a,#0x03 movx @dptr,a ;usb_irq.c:419: break; ljmp 00174$ ;usb_irq.c:436: } 00150$: ;usb_irq.c:423: switch (sdat->bmRequestType) { ; genAssign mov dpl,_sdat mov dph,(_sdat + 1) ; genPointerGet ; genFarPointerGet movx a,@dptr mov r2,a ; genCmpEq cjne r2,#0x00,00333$ ; Peephole 112.b changed ljmp to sjmp sjmp 00146$ 00333$: ; genCmpEq cjne r2,#0x21,00334$ ljmp 00174$ 00334$: ;usb_irq.c:426: EP0CS = 0x02; /* clear HSNACK */ ; Peephole 112.b changed ljmp to sjmp sjmp 00148$ 00146$: ; genAssign mov dptr,#_EP0CS mov a,#0x02 movx @dptr,a ;usb_irq.c:427: break; ljmp 00174$ ;usb_irq.c:434: EP0CS = 0x03; /* stall */ 00148$: ; genAssign mov dptr,#_EP0CS mov a,#0x03 movx @dptr,a ;usb_irq.c:437: break; ljmp 00174$ ;usb_irq.c:465: } 00158$: ;usb_irq.c:441: switch (sdat->bmRequestType) { ; genAssign mov dpl,_sdat mov dph,(_sdat + 1) ; genPointerGet ; genFarPointerGet movx a,@dptr mov r2,a ; genCmpEq cjne r2,#0x21,00335$ ; Peephole 112.b changed ljmp to sjmp sjmp 00155$ 00335$: ; genCmpEq ; Peephole 112.b changed ljmp to sjmp ; Peephole 199 optimized misc jump sequence cjne r2,#0x81,00156$ ;00336$: ; Peephole 200 removed redundant sjmp 00337$: ;usb_irq.c:444: INBUF(0,0) = 0x00; ; genPointerSet ; genFarPointerSet mov dptr,#(_IN4BUF + 0x0200) ; Peephole 181 changed mov to clr clr a movx @dptr,a ;usb_irq.c:445: IN0BC = 0x01; ; genAssign mov dptr,#_IN0BC mov a,#0x01 movx @dptr,a ;usb_irq.c:446: EP0CS = 0x02; /* clear HSNACK */ ; genAssign mov dptr,#_EP0CS mov a,#0x02 movx @dptr,a ;usb_irq.c:447: break; ljmp 00174$ ;usb_irq.c:459: EP0CS = 0x03; /* stall */ 00155$: ;usb_irq.c:451: if (sdat->wIndexL == 0) { ; genPlus ; genPlusIncr mov a,#0x04 add a,_sdat mov dpl,a ; Peephole 181 changed mov to clr clr a addc a,(_sdat + 1) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr mov r2,a ; genCmpEq ; Peephole 112.b changed ljmp to sjmp ; Peephole 199 optimized misc jump sequence cjne r2,#0x00,00153$ ;00338$: ; Peephole 200 removed redundant sjmp 00339$: ;usb_irq.c:457: EP0CS = 0x02; /* clear HSNACK */ ; genAssign mov dptr,#_EP0CS mov a,#0x02 movx @dptr,a ljmp 00174$ 00153$: ;usb_irq.c:459: EP0CS = 0x03; /* stall */ ; genAssign mov dptr,#_EP0CS mov a,#0x03 movx @dptr,a ;usb_irq.c:460: break; ljmp 00174$ ;usb_irq.c:463: EP0CS = 0x03; /* stall */ 00156$: ; genAssign mov dptr,#_EP0CS mov a,#0x03 movx @dptr,a ;usb_irq.c:466: break; ;usb_irq.c:494: } ; Peephole 112.b changed ljmp to sjmp sjmp 00174$ 00169$: ;usb_irq.c:470: switch (sdat->bmRequestType) { ; genAssign mov dpl,_sdat mov dph,(_sdat + 1) ; genPointerGet ; genFarPointerGet movx a,@dptr mov r2,a ; genCmpEq cjne r2,#0x01,00340$ ; Peephole 112.b changed ljmp to sjmp sjmp 00165$ 00340$: ; genCmpEq ; Peephole 112.b changed ljmp to sjmp ;usb_irq.c:483: EP0CS = 0x03; /* stall */ ; Peephole 112.b changed ljmp to sjmp ; Peephole 199 optimized misc jump sequence cjne r2,#0x21,00167$ sjmp 00166$ ;00341$: 00165$: ;usb_irq.c:473: if (sdat->wValueL == 0) { /* only AS 0 supported */ ; genPlus ; genPlusIncr mov a,#0x02 add a,_sdat mov dpl,a ; Peephole 181 changed mov to clr clr a addc a,(_sdat + 1) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr mov r2,a ; genCmpEq ; Peephole 112.b changed ljmp to sjmp ; Peephole 199 optimized misc jump sequence cjne r2,#0x00,00163$ ;00342$: ; Peephole 200 removed redundant sjmp 00343$: ;usb_irq.c:474: if (sdat->wIndexL == 0) { ; genPlus ; genPlusIncr mov a,#0x04 add a,_sdat mov dpl,a ; Peephole 181 changed mov to clr clr a addc a,(_sdat + 1) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr mov r2,a ; genCmpEq ; Peephole 112.b changed ljmp to sjmp ; Peephole 199 optimized misc jump sequence cjne r2,#0x00,00160$ ;00344$: ; Peephole 200 removed redundant sjmp 00345$: ;usb_irq.c:475: IN1CS |= 0x02; /* remove busy */ ; genAssign ; genOr ; Peephole 248.a optimized or to xdata mov dptr,#_IN1CS movx a,@dptr mov r2,a orl a,#0x02 movx @dptr,a ;usb_irq.c:476: TOGCTL = 0x11; ; genAssign ;usb_irq.c:477: TOGCTL = 0x31; /* reset toggle of IN1 */ ; genAssign ; Peephole 180.a removed redundant mov to dptr mov dptr,#_TOGCTL mov a,#0x11 movx @dptr,a mov a,#0x31 movx @dptr,a ;usb_irq.c:479: EP0CS = 0x02; /* clear HSNACK */ ; genAssign mov dptr,#_EP0CS mov a,#0x02 movx @dptr,a ; Peephole 112.b changed ljmp to sjmp sjmp 00174$ 00160$: ;usb_irq.c:481: EP0CS = 0x03; /* stall */ ; genAssign mov dptr,#_EP0CS mov a,#0x03 movx @dptr,a ; Peephole 112.b changed ljmp to sjmp sjmp 00174$ 00163$: ;usb_irq.c:483: EP0CS = 0x03; /* stall */ ; genAssign mov dptr,#_EP0CS mov a,#0x03 movx @dptr,a ;usb_irq.c:484: break; ;usb_irq.c:488: EP0CS = 0x02; /* clear HSNACK */ ; Peephole 112.b changed ljmp to sjmp sjmp 00174$ 00166$: ; genAssign mov dptr,#_EP0CS mov a,#0x02 movx @dptr,a ;usb_irq.c:489: break; ;usb_irq.c:492: EP0CS = 0x03; /* stall */ ; Peephole 112.b changed ljmp to sjmp sjmp 00174$ 00167$: ; genAssign mov dptr,#_EP0CS mov a,#0x03 movx @dptr,a ;usb_irq.c:495: break; ;usb_irq.c:524: _power_fail = 0; ; Peephole 112.b changed ljmp to sjmp sjmp 00174$ 00170$: ; genAssign mov dptr,#__power_fail ; Peephole 181 changed mov to clr clr a movx @dptr,a ;usb_irq.c:525: break; ;usb_irq.c:528: EP0CS = 0x03; /* stall */ ; Peephole 112.b changed ljmp to sjmp sjmp 00174$ 00171$: ; genAssign mov dptr,#_EP0CS mov a,#0x03 movx @dptr,a ;usb_irq.c:530: } 00174$: ;usb_irq.c:537: if (IN07IRQ & 0x01) { ; genAssign mov dptr,#_IN07IRQ movx a,@dptr ; genAnd ; Peephole 105 removed redundant mov mov r2,a ; genIfxJump ; Peephole 111 removed ljmp by inverse jump logic jnb acc.0,00176$ 00346$: ;usb_irq.c:539: IN07IRQ = 0x01; ; genAssign mov dptr,#_IN07IRQ mov a,#0x01 movx @dptr,a 00176$: ;usb_irq.c:543: if (OUT07IRQ & 0x01) { ; genAssign mov dptr,#_OUT07IRQ movx a,@dptr ; genAnd ; Peephole 105 removed redundant mov mov r2,a ; genIfxJump ; Peephole 111 removed ljmp by inverse jump logic jnb acc.0,00292$ 00347$: ;usb_irq.c:545: OUT07IRQ = 0x01; ; genAssign mov dptr,#_OUT07IRQ mov a,#0x01 movx @dptr,a ;usb_irq.c:548: OUT0BC = 0x00; ; genAssign mov dptr,#_OUT0BC ; Peephole 181 changed mov to clr clr a movx @dptr,a ;usb_irq.c:561: for (i = 1; i < 5; ++i) 00292$: ; genAssign mov _usb_isr_i_1_1,#0x01 00218$: ; genCmpLt ; genCmp clr c mov a,_usb_isr_i_1_1 subb a,#0x05 ; genIfxJump jc 00348$ ljmp 00221$ 00348$: ;usb_irq.c:562: if (OUT07IRQ & 1 << i) { ; genLeftShift mov b,_usb_isr_i_1_1 inc b mov a,#0x01 sjmp 00351$ 00349$: add a,acc 00351$: djnz b,00349$ mov r3,a ; genAssign mov dptr,#_OUT07IRQ movx a,@dptr mov r4,a ; genCast mov r5,#0x00 ; genCast mov ar6,r3 mov r7,#0x00 ; genAnd mov a,r6 anl ar4,a mov a,r7 anl ar5,a ; genIfx mov a,r4 orl a,r5 ; genIfxJump jnz 00352$ ljmp 00220$ 00352$: ;usb_irq.c:563: volatile byte len = OUTBC(i); ; genCast mov r4,_usb_isr_i_1_1 mov r5,#0x00 ; genMinus ; genMinusDec mov a,r4 add a,#0xff mov r6,a mov a,r5 addc a,#0xff ; genLeftShift ; genLeftShiftLiteral ; genlshTwo ; Peephole 105 removed redundant mov mov r7,a xch a,r6 add a,acc xch a,r6 rlc a mov r7,a ; genPlus ; Peephole 236.g used r6 instead of ar6 mov a,r6 add a,#_OUT1BC mov dpl,a ; Peephole 236.g used r7 instead of ar7 mov a,r7 addc a,#(_OUT1BC >> 8) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr mov _usb_isr_len_2_25,a ;usb_irq.c:564: OUT07IRQ = 1 << i; ; genAssign mov dptr,#_OUT07IRQ mov a,r3 movx @dptr,a ;usb_irq.c:565: switch (OUTBUF(i, 0)) { ; genMinus mov a,#0x04 clr c ; Peephole 236.l used r4 instead of ar4 subb a,r4 mov r3,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.l used r5 instead of ar5 subb a,r5 ; genLeftShift ; genLeftShiftLiteral ; genlshTwo ; Peephole 105 removed redundant mov mov r6,a anl a,#0x01 mov c,acc.0 xch a,r3 rrc a xch a,r3 rrc a xch a,r3 mov r6,a ; genPlus ; Peephole 236.g used r3 instead of ar3 mov a,r3 add a,#_OUT4BUF mov dpl,a ; Peephole 236.g used r6 instead of ar6 mov a,r6 addc a,#(_OUT4BUF >> 8) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr mov r3,a ; genCmpEq cjne r3,#0x40,00353$ ; Peephole 112.b changed ljmp to sjmp sjmp 00180$ 00353$: ; genCmpEq cjne r3,#0x41,00354$ ; Peephole 112.b changed ljmp to sjmp sjmp 00179$ 00354$: ; genCmpEq cjne r3,#0x42,00355$ ljmp 00186$ 00355$: ; genCmpEq cjne r3,#0x43,00356$ ljmp 00187$ 00356$: ; genCmpEq cjne r3,#0x44,00357$ ljmp 00191$ 00357$: ; genCmpEq cjne r3,#0x45,00358$ ljmp 00195$ 00358$: ; genCmpEq cjne r3,#0x46,00359$ ljmp 00198$ 00359$: ; genCmpEq cjne r3,#0x4B,00360$ ljmp 00202$ 00360$: ; genCmpEq cjne r3,#0x4C,00361$ ljmp 00206$ 00361$: ; genCmpEq cjne r3,#0x4D,00362$ ljmp 00207$ 00362$: ; genCmpEq cjne r3,#0x4E,00363$ ljmp 00208$ 00363$: ; genCmpEq cjne r3,#0xB1,00364$ ; Peephole 112.b changed ljmp to sjmp sjmp 00181$ 00364$: ; genCmpEq cjne r3,#0xB4,00365$ ; Peephole 112.b changed ljmp to sjmp sjmp 00182$ 00365$: ljmp 00209$ ;usb_irq.c:567: OUTB = (OUTB & 0x3f) | ((i - 1) << 6); 00179$: ; genAssign mov dptr,#_OUTB movx a,@dptr mov r3,a ; genAnd anl ar3,#0x3F ; genCast mov ar6,r4 ; genMinus ; genMinusDec dec r6 ; genLeftShift ; genLeftShiftLiteral ; genlshOne mov a,r6 rr a rr a anl a,#0xc0 ; genOr ; Peephole 177.d removed redundant move mov r6,a mov dptr,#_OUTB orl a,r3 movx @dptr,a ;usb_irq.c:568: break; ljmp 00213$ ;usb_irq.c:570: OUTB = (OUTB & 0x3f) | ((i - 1) << 6); 00180$: ; genAssign mov dptr,#_OUTB movx a,@dptr mov r3,a ; genAnd anl ar3,#0x3F ; genCast mov ar6,r4 ; genMinus ; genMinusDec dec r6 ; genLeftShift ; genLeftShiftLiteral ; genlshOne mov a,r6 rr a rr a anl a,#0xc0 ; genOr ; Peephole 177.d removed redundant move mov r6,a mov dptr,#_OUTB orl a,r3 movx @dptr,a ;usb_irq.c:571: OUTB |= ENSING; ; genAssign ; genOr ; Peephole 248.a optimized or to xdata mov dptr,#_OUTB movx a,@dptr mov r3,a orl a,#0x08 movx @dptr,a ;usb_irq.c:572: break; ljmp 00213$ ;usb_irq.c:575: OUTB &= ~ENSING; 00181$: ; genAssign ; genAnd ; Peephole 248.b optimized and to xdata mov dptr,#_OUTB movx a,@dptr mov r3,a anl a,#0xF7 movx @dptr,a ;usb_irq.c:576: break; ljmp 00213$ ;usb_irq.c:578: OUTB &= ~NRESET; 00182$: ; genAssign ; genAnd ; Peephole 248.b optimized and to xdata mov dptr,#_OUTB movx a,@dptr mov r3,a anl a,#0xFE movx @dptr,a ;usb_irq.c:579: SLEEP; ; genAssign mov r3,#0xFF mov r6,#0x7F 00183$: ; genAssign mov ar7,r3 mov ar0,r6 ; genMinus ; genMinusDec dec r3 cjne r3,#0xff,00366$ dec r6 00366$: ; genIfx mov a,r7 orl a,r0 ; genIfxJump ; Peephole 109 removed ljmp by inverse jump logic jnz 00183$ 00367$: ;usb_irq.c:580: OUTB |= NRESET; ; genAssign ; genOr ; Peephole 248.a optimized or to xdata mov dptr,#_OUTB movx a,@dptr mov r3,a orl a,#0x01 movx @dptr,a ;usb_irq.c:581: break; ljmp 00213$ ;usb_irq.c:583: VOLT(2 * i - 2) = OUTBUF(i, 1); 00186$: ; genLeftShift ; genLeftShiftLiteral ; genlshOne mov a,_usb_isr_i_1_1 add a,acc ; genMinus ; genMinusDec ; Peephole 105 removed redundant mov mov r3,a add a,#0xfe ; genMult ; genMultOneByte mov b,#0x02 mul ab ; genPlus ; Peephole 236.g used r3 instead of ar3 ; Peephole 177.d removed redundant move mov r3,a mov r6,b add a,#__volt mov r7,a ; Peephole 236.g used r6 instead of ar6 mov a,r6 addc a,#(__volt >> 8) mov r0,a ; genMinus mov a,#0x04 clr c ; Peephole 236.l used r4 instead of ar4 subb a,r4 mov r1,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.l used r5 instead of ar5 subb a,r5 ; genLeftShift ; genLeftShiftLiteral ; genlshTwo ; Peephole 105 removed redundant mov mov r2,a anl a,#0x01 mov c,acc.0 xch a,r1 rrc a xch a,r1 rrc a xch a,r1 mov r2,a ; genIpush push ar4 push ar5 ; genPlus ; Peephole 236.g used r1 instead of ar1 mov a,r1 add a,#_OUT4BUF mov r4,a ; Peephole 236.g used r2 instead of ar2 mov a,r2 addc a,#(_OUT4BUF >> 8) mov r5,a ; genPlus ; genPlusIncr mov a,#0x01 ; Peephole 236.a used r4 instead of ar4 add a,r4 mov dpl,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r5 instead of ar5 addc a,r5 mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr mov r4,a ; genCast mov r5,#0x00 ; genPointerSet ; genFarPointerSet mov dpl,r7 mov dph,r0 mov a,r4 movx @dptr,a inc dptr mov a,r5 movx @dptr,a ;usb_irq.c:584: VOLT(2 * i - 2) <<= 8; ; genPlus ; Peephole 236.g used r3 instead of ar3 mov a,r3 add a,#__volt mov r4,a ; Peephole 236.g used r6 instead of ar6 mov a,r6 addc a,#(__volt >> 8) mov r5,a ; genPlus ; Peephole 236.g used r3 instead of ar3 mov a,r3 add a,#__volt mov dpl,a ; Peephole 236.g used r6 instead of ar6 mov a,r6 addc a,#(__volt >> 8) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr mov r7,a inc dptr movx a,@dptr mov r0,a ; genLeftShift ; genLeftShiftLiteral ; genlshTwo mov ar0,r7 mov r7,#0x00 ; genPointerSet ; genFarPointerSet mov dpl,r4 mov dph,r5 mov a,r7 movx @dptr,a inc dptr mov a,r0 movx @dptr,a ;usb_irq.c:585: VOLT(2 * i - 2) += OUTBUF(i, 2); ; genPlus ; Peephole 236.g used r3 instead of ar3 mov a,r3 add a,#__volt mov r4,a ; Peephole 236.g used r6 instead of ar6 mov a,r6 addc a,#(__volt >> 8) mov r5,a ; genPlus ; Peephole 236.g used r3 instead of ar3 mov a,r3 add a,#__volt mov dpl,a ; Peephole 236.g used r6 instead of ar6 mov a,r6 addc a,#(__volt >> 8) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr mov r3,a inc dptr movx a,@dptr mov r6,a ; genPlus ; Peephole 236.g used r1 instead of ar1 mov a,r1 add a,#_OUT4BUF mov r1,a ; Peephole 236.g used r2 instead of ar2 mov a,r2 addc a,#(_OUT4BUF >> 8) mov r2,a ; genPlus ; genPlusIncr mov a,#0x02 ; Peephole 236.a used r1 instead of ar1 add a,r1 mov dpl,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r2 instead of ar2 addc a,r2 mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genCast ; genPlus ; Peephole 236.g used r2 instead of ar2 ; Peephole 177.d removed redundant move mov r2,a mov r7,#0x00 ; Peephole 236.a used r3 instead of ar3 add a,r3 mov r3,a ; Peephole 236.g used r7 instead of ar7 mov a,r7 ; Peephole 236.b used r6 instead of ar6 addc a,r6 mov r6,a ; genPointerSet ; genFarPointerSet mov dpl,r4 mov dph,r5 mov a,r3 movx @dptr,a inc dptr mov a,r6 movx @dptr,a ;usb_irq.c:586: break; ; genIpop pop ar5 pop ar4 ljmp 00213$ ;usb_irq.c:588: VOLT(2 * i - 1) = OUTBUF(i, 1); 00187$: ; genLeftShift ; genLeftShiftLiteral ; genlshOne mov a,_usb_isr_i_1_1 add a,acc ; genMinus ; genMinusDec ; Peephole 105 removed redundant mov mov r2,a dec a ; genMult ; genMultOneByte mov b,#0x02 mul ab ; genPlus ; Peephole 236.g used r2 instead of ar2 ; Peephole 177.d removed redundant move mov r2,a mov r3,b add a,#__volt mov r6,a ; Peephole 236.g used r3 instead of ar3 mov a,r3 addc a,#(__volt >> 8) mov r7,a ; genMinus mov a,#0x04 clr c ; Peephole 236.l used r4 instead of ar4 subb a,r4 mov r0,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.l used r5 instead of ar5 subb a,r5 ; genLeftShift ; genLeftShiftLiteral ; genlshTwo ; Peephole 105 removed redundant mov mov r1,a anl a,#0x01 mov c,acc.0 xch a,r0 rrc a xch a,r0 rrc a xch a,r0 mov r1,a ; genIpush push ar4 push ar5 ; genPlus ; Peephole 236.g used r0 instead of ar0 mov a,r0 add a,#_OUT4BUF mov r4,a ; Peephole 236.g used r1 instead of ar1 mov a,r1 addc a,#(_OUT4BUF >> 8) mov r5,a ; genPlus ; genPlusIncr mov a,#0x01 ; Peephole 236.a used r4 instead of ar4 add a,r4 mov dpl,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r5 instead of ar5 addc a,r5 mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr mov r4,a ; genCast mov r5,#0x00 ; genPointerSet ; genFarPointerSet mov dpl,r6 mov dph,r7 mov a,r4 movx @dptr,a inc dptr mov a,r5 movx @dptr,a ;usb_irq.c:589: VOLT(2 * i - 1) <<= 8; ; genPlus ; Peephole 236.g used r2 instead of ar2 mov a,r2 add a,#__volt mov r4,a ; Peephole 236.g used r3 instead of ar3 mov a,r3 addc a,#(__volt >> 8) mov r5,a ; genPlus ; Peephole 236.g used r2 instead of ar2 mov a,r2 add a,#__volt mov dpl,a ; Peephole 236.g used r3 instead of ar3 mov a,r3 addc a,#(__volt >> 8) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr mov r6,a inc dptr movx a,@dptr mov r7,a ; genLeftShift ; genLeftShiftLiteral ; genlshTwo mov ar7,r6 mov r6,#0x00 ; genPointerSet ; genFarPointerSet mov dpl,r4 mov dph,r5 mov a,r6 movx @dptr,a inc dptr mov a,r7 movx @dptr,a ;usb_irq.c:590: VOLT(2 * i - 1) += OUTBUF(i, 2); ; genPlus ; Peephole 236.g used r2 instead of ar2 mov a,r2 add a,#__volt mov r4,a ; Peephole 236.g used r3 instead of ar3 mov a,r3 addc a,#(__volt >> 8) mov r5,a ; genPlus ; Peephole 236.g used r2 instead of ar2 mov a,r2 add a,#__volt mov dpl,a ; Peephole 236.g used r3 instead of ar3 mov a,r3 addc a,#(__volt >> 8) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr mov r2,a inc dptr movx a,@dptr mov r3,a ; genPlus ; Peephole 236.g used r0 instead of ar0 mov a,r0 add a,#_OUT4BUF mov r0,a ; Peephole 236.g used r1 instead of ar1 mov a,r1 addc a,#(_OUT4BUF >> 8) mov r1,a ; genPlus ; genPlusIncr mov a,#0x02 ; Peephole 236.a used r0 instead of ar0 add a,r0 mov dpl,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r1 instead of ar1 addc a,r1 mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genCast ; genPlus ; Peephole 236.g used r6 instead of ar6 ; Peephole 177.d removed redundant move mov r6,a mov r7,#0x00 ; Peephole 236.a used r2 instead of ar2 add a,r2 mov r2,a ; Peephole 236.g used r7 instead of ar7 mov a,r7 ; Peephole 236.b used r3 instead of ar3 addc a,r3 mov r3,a ; genPointerSet ; genFarPointerSet mov dpl,r4 mov dph,r5 mov a,r2 movx @dptr,a inc dptr mov a,r3 movx @dptr,a ;usb_irq.c:592: break; ; genIpop pop ar5 pop ar4 ljmp 00213$ ;usb_irq.c:596: } else OUTA &= ~(1 << (i - 1)); 00191$: ;usb_irq.c:594: if (OUTBUF(i, 1)) { /* turn on */ ; genMinus mov a,#0x04 clr c ; Peephole 236.l used r4 instead of ar4 subb a,r4 mov r2,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.l used r5 instead of ar5 subb a,r5 ; genLeftShift ; genLeftShiftLiteral ; genlshTwo ; Peephole 105 removed redundant mov mov r3,a anl a,#0x01 mov c,acc.0 xch a,r2 rrc a xch a,r2 rrc a xch a,r2 mov r3,a ; genPlus ; Peephole 236.g used r2 instead of ar2 mov a,r2 add a,#_OUT4BUF mov r2,a ; Peephole 236.g used r3 instead of ar3 mov a,r3 addc a,#(_OUT4BUF >> 8) mov r3,a ; genPlus ; genPlusIncr mov a,#0x01 ; Peephole 236.a used r2 instead of ar2 add a,r2 mov dpl,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r3 instead of ar3 addc a,r3 mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genIfx ; Peephole 105 removed redundant mov mov r2,a ; genIfxJump ; Peephole 110 removed ljmp by inverse jump logic jz 00189$ 00368$: ;usb_irq.c:595: OUTA |= 1 << (i - 1); ; genMinus ; genMinusDec mov a,r4 add a,#0xff mov r2,a mov a,r5 addc a,#0xff mov r3,a ; genLeftShift mov b,r2 inc b mov a,#0x01 sjmp 00371$ 00369$: add a,acc 00371$: djnz b,00369$ mov r2,a ; genAssign ; genOr ; Peephole 248.a optimized or to xdata mov dptr,#_OUTA movx a,@dptr mov r3,a orl a,r2 movx @dptr,a ljmp 00213$ 00189$: ;usb_irq.c:596: } else OUTA &= ~(1 << (i - 1)); ; genMinus ; genMinusDec mov a,r4 add a,#0xff mov r2,a mov a,r5 addc a,#0xff mov r3,a ; genLeftShift mov b,r2 inc b mov r2,#0x01 mov r3,#0x00 sjmp 00373$ 00372$: mov a,r2 add a,acc mov r2,a mov a,r3 rlc a mov r3,a 00373$: djnz b,00372$ ; genCpl mov a,r2 cpl a mov r2,a mov a,r3 cpl a mov r3,a ; genCast ; genAssign ; genAnd ; Peephole 248.b optimized and to xdata mov dptr,#_OUTA movx a,@dptr mov r3,a anl a,r2 movx @dptr,a ;usb_irq.c:597: break; ljmp 00213$ ;usb_irq.c:601: } else OUTA &= ~(1 << (i + 3)); 00195$: ;usb_irq.c:599: if (OUTBUF(i, 1)) { /* turn on */ ; genMinus mov a,#0x04 clr c ; Peephole 236.l used r4 instead of ar4 subb a,r4 mov r2,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.l used r5 instead of ar5 subb a,r5 ; genLeftShift ; genLeftShiftLiteral ; genlshTwo ; Peephole 105 removed redundant mov mov r3,a anl a,#0x01 mov c,acc.0 xch a,r2 rrc a xch a,r2 rrc a xch a,r2 mov r3,a ; genPlus ; Peephole 236.g used r2 instead of ar2 mov a,r2 add a,#_OUT4BUF mov r2,a ; Peephole 236.g used r3 instead of ar3 mov a,r3 addc a,#(_OUT4BUF >> 8) mov r3,a ; genPlus ; genPlusIncr mov a,#0x01 ; Peephole 236.a used r2 instead of ar2 add a,r2 mov dpl,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r3 instead of ar3 addc a,r3 mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genIfx ; Peephole 105 removed redundant mov mov r2,a ; genIfxJump ; Peephole 110 removed ljmp by inverse jump logic jz 00193$ 00374$: ;usb_irq.c:600: OUTA |= 1 << (i + 3); ; genPlus ; genPlusIncr mov a,#0x03 ; Peephole 236.a used r4 instead of ar4 add a,r4 mov r2,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r5 instead of ar5 addc a,r5 mov r3,a ; genLeftShift mov b,r2 inc b mov a,#0x01 sjmp 00377$ 00375$: add a,acc 00377$: djnz b,00375$ mov r2,a ; genAssign ; genOr ; Peephole 248.a optimized or to xdata mov dptr,#_OUTA movx a,@dptr mov r3,a orl a,r2 movx @dptr,a ljmp 00213$ 00193$: ;usb_irq.c:601: } else OUTA &= ~(1 << (i + 3)); ; genPlus ; genPlusIncr mov a,#0x03 ; Peephole 236.a used r4 instead of ar4 add a,r4 mov r2,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r5 instead of ar5 addc a,r5 mov r3,a ; genLeftShift mov b,r2 inc b mov r2,#0x01 mov r3,#0x00 sjmp 00379$ 00378$: mov a,r2 add a,acc mov r2,a mov a,r3 rlc a mov r3,a 00379$: djnz b,00378$ ; genCpl mov a,r2 cpl a mov r2,a mov a,r3 cpl a mov r3,a ; genCast ; genAssign ; genAnd ; Peephole 248.b optimized and to xdata mov dptr,#_OUTA movx a,@dptr mov r3,a anl a,r2 movx @dptr,a ;usb_irq.c:602: break; ljmp 00213$ ;usb_irq.c:607: INBUF(i, 0) = _vtable[i]; /* fix me! status byte */ 00198$: ;usb_irq.c:604: if (INCS(i) & 0x02) /* busy */ ; genMinus ; genMinusDec mov a,r4 add a,#0xff mov r2,a mov a,r5 addc a,#0xff ; genLeftShift ; genLeftShiftLiteral ; genlshTwo ; Peephole 105 removed redundant mov mov r3,a xch a,r2 add a,acc xch a,r2 rlc a mov r3,a ; genPlus ; Peephole 236.g used r2 instead of ar2 mov a,r2 add a,#_IN1CS mov dpl,a ; Peephole 236.g used r3 instead of ar3 mov a,r3 addc a,#(_IN1CS >> 8) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genAnd ; Peephole 105 removed redundant mov mov r2,a ; genIfxJump jnb acc.1,00380$ ljmp 00213$ 00380$: ;usb_irq.c:607: INBUF(i, 0) = _vtable[i]; /* fix me! status byte */ ; genMinus mov a,#0x04 clr c ; Peephole 236.l used r4 instead of ar4 subb a,r4 mov r2,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.l used r5 instead of ar5 subb a,r5 ; genLeftShift ; genLeftShiftLiteral ; genlshTwo ; Peephole 105 removed redundant mov mov r3,a anl a,#0x01 mov c,acc.0 xch a,r2 rrc a xch a,r2 rrc a xch a,r2 mov r3,a ; genPlus ; genPlus aligned array mov ar6,r2 mov a,#(_IN4BUF >> 8) add a,r3 mov r7,a ; genPlus ; genPlus aligned array mov dpl,_usb_isr_i_1_1 mov dph,#(__vtable >> 8) ; genPointerGet ; genFarPointerGet movx a,@dptr ; genPointerSet ; genFarPointerSet ; Peephole 136 removed redundant moves mov r0,a mov dpl,r6 mov dph,r7 movx @dptr,a ;usb_irq.c:609: INBUF(i, 1) = ADCANLVH(i); ; genPlus ; genPlus aligned array mov ar6,r2 mov a,#(_IN4BUF >> 8) add a,r3 mov r7,a ; genPlus ; genPlusIncr inc r6 cjne r6,#0x00,00381$ inc r7 00381$: ; genMinus ; genMinusDec mov a,_usb_isr_i_1_1 dec a ; genLeftShift ; genLeftShiftLiteral ; genlshOne ; Peephole 105 removed redundant mov ; Peephole 204 removed redundant mov add a,acc ; genPlus ; Peephole 236.a used r0 instead of ar0 ; Peephole 214 reduced some extra moves mov r0,a add a,#0x28 ; genPlus add a,#__adc mov dpl,a ; Peephole 240 use clr instead of addc a,#0 clr a addc a,#(__adc >> 8) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genPointerSet ; genFarPointerSet ; Peephole 136 removed redundant moves mov r1,a mov dpl,r6 mov dph,r7 movx @dptr,a ;usb_irq.c:610: INBUF(i, 2) = ADCANLVL(i); ; genPlus ; genPlus aligned array mov ar6,r2 mov a,#(_IN4BUF >> 8) add a,r3 mov r7,a ; genPlus ; genPlusIncr mov a,#0x02 ; Peephole 236.a used r6 instead of ar6 add a,r6 mov r6,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r7 instead of ar7 addc a,r7 mov r7,a ; genPlus mov a,#0x29 ; Peephole 236.a used r0 instead of ar0 add a,r0 ; genPlus add a,#__adc mov dpl,a ; Peephole 240 use clr instead of addc a,#0 clr a addc a,#(__adc >> 8) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genPointerSet ; genFarPointerSet ; Peephole 136 removed redundant moves mov r1,a mov dpl,r6 mov dph,r7 movx @dptr,a ;usb_irq.c:612: INBUF(i, 3) = ADCDIGVH(i); ; genPlus ; genPlus aligned array mov ar6,r2 mov a,#(_IN4BUF >> 8) add a,r3 mov r7,a ; genPlus ; genPlusIncr mov a,#0x03 ; Peephole 236.a used r6 instead of ar6 add a,r6 mov r6,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r7 instead of ar7 addc a,r7 mov r7,a ; genPlus mov a,#0x18 ; Peephole 236.a used r0 instead of ar0 add a,r0 ; genPlus add a,#__adc mov dpl,a ; Peephole 240 use clr instead of addc a,#0 clr a addc a,#(__adc >> 8) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genPointerSet ; genFarPointerSet ; Peephole 136 removed redundant moves mov r1,a mov dpl,r6 mov dph,r7 movx @dptr,a ;usb_irq.c:613: INBUF(i, 4) = ADCDIGVL(i); ; genPlus ; genPlus aligned array mov ar6,r2 mov a,#(_IN4BUF >> 8) add a,r3 mov r7,a ; genPlus ; genPlusIncr mov a,#0x04 ; Peephole 236.a used r6 instead of ar6 add a,r6 mov r6,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r7 instead of ar7 addc a,r7 mov r7,a ; genPlus mov a,#0x19 ; Peephole 236.a used r0 instead of ar0 add a,r0 ; genPlus add a,#__adc mov dpl,a ; Peephole 240 use clr instead of addc a,#0 clr a addc a,#(__adc >> 8) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genPointerSet ; genFarPointerSet ; Peephole 136 removed redundant moves mov r1,a mov dpl,r6 mov dph,r7 movx @dptr,a ;usb_irq.c:615: INBUF(i, 5) = ADCGNDVH(i); ; genPlus ; genPlus aligned array mov ar6,r2 mov a,#(_IN4BUF >> 8) add a,r3 mov r7,a ; genPlus mov a,#0x05 ; Peephole 236.a used r6 instead of ar6 add a,r6 mov r6,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r7 instead of ar7 addc a,r7 mov r7,a ; genPlus mov a,#0x08 ; Peephole 236.a used r0 instead of ar0 add a,r0 ; genPlus add a,#__adc mov dpl,a ; Peephole 240 use clr instead of addc a,#0 clr a addc a,#(__adc >> 8) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genPointerSet ; genFarPointerSet ; Peephole 136 removed redundant moves mov r1,a mov dpl,r6 mov dph,r7 movx @dptr,a ;usb_irq.c:616: INBUF(i, 6) = ADCGNDVL(i); ; genPlus ; genPlus aligned array mov ar6,r2 mov a,#(_IN4BUF >> 8) add a,r3 mov r7,a ; genPlus mov a,#0x06 ; Peephole 236.a used r6 instead of ar6 add a,r6 mov r6,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r7 instead of ar7 addc a,r7 mov r7,a ; genPlus mov a,#0x09 ; Peephole 236.a used r0 instead of ar0 add a,r0 ; genPlus add a,#__adc mov dpl,a ; Peephole 240 use clr instead of addc a,#0 clr a addc a,#(__adc >> 8) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genPointerSet ; genFarPointerSet ; Peephole 136 removed redundant moves mov r1,a mov dpl,r6 mov dph,r7 movx @dptr,a ;usb_irq.c:618: INBUF(i, 7) = ADCANLIH(i); ; genPlus ; genPlus aligned array mov ar6,r2 mov a,#(_IN4BUF >> 8) add a,r3 mov r7,a ; genPlus mov a,#0x07 ; Peephole 236.a used r6 instead of ar6 add a,r6 mov r6,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r7 instead of ar7 addc a,r7 mov r7,a ; genPlus mov a,#0x20 ; Peephole 236.a used r0 instead of ar0 add a,r0 ; genPlus add a,#__adc mov dpl,a ; Peephole 240 use clr instead of addc a,#0 clr a addc a,#(__adc >> 8) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genPointerSet ; genFarPointerSet ; Peephole 136 removed redundant moves mov r1,a mov dpl,r6 mov dph,r7 movx @dptr,a ;usb_irq.c:619: INBUF(i, 8) = ADCANLIL(i); ; genPlus ; genPlus aligned array mov ar6,r2 mov a,#(_IN4BUF >> 8) add a,r3 mov r7,a ; genPlus mov a,#0x08 ; Peephole 236.a used r6 instead of ar6 add a,r6 mov r6,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r7 instead of ar7 addc a,r7 mov r7,a ; genPlus mov a,#0x21 ; Peephole 236.a used r0 instead of ar0 add a,r0 ; genPlus add a,#__adc mov dpl,a ; Peephole 240 use clr instead of addc a,#0 clr a addc a,#(__adc >> 8) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genPointerSet ; genFarPointerSet ; Peephole 136 removed redundant moves mov r1,a mov dpl,r6 mov dph,r7 movx @dptr,a ;usb_irq.c:621: INBUF(i, 9) = ADCDIGIH(i); ; genPlus ; genPlus aligned array mov ar6,r2 mov a,#(_IN4BUF >> 8) add a,r3 mov r7,a ; genPlus mov a,#0x09 ; Peephole 236.a used r6 instead of ar6 add a,r6 mov r6,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r7 instead of ar7 addc a,r7 mov r7,a ; genPlus mov a,#0x10 ; Peephole 236.a used r0 instead of ar0 add a,r0 ; genPlus add a,#__adc mov dpl,a ; Peephole 240 use clr instead of addc a,#0 clr a addc a,#(__adc >> 8) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genPointerSet ; genFarPointerSet ; Peephole 136 removed redundant moves mov r1,a mov dpl,r6 mov dph,r7 movx @dptr,a ;usb_irq.c:622: INBUF(i, 10) = ADCDIGIL(i); ; genPlus ; genPlus aligned array mov ar6,r2 mov a,#(_IN4BUF >> 8) add a,r3 mov r7,a ; genPlus mov a,#0x0A ; Peephole 236.a used r6 instead of ar6 add a,r6 mov r6,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r7 instead of ar7 addc a,r7 mov r7,a ; genPlus mov a,#0x11 ; Peephole 236.a used r0 instead of ar0 add a,r0 ; genPlus add a,#__adc mov dpl,a ; Peephole 240 use clr instead of addc a,#0 clr a addc a,#(__adc >> 8) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genPointerSet ; genFarPointerSet ; Peephole 136 removed redundant moves mov r1,a mov dpl,r6 mov dph,r7 movx @dptr,a ;usb_irq.c:624: INBUF(i, 11) = ADCTEMPH(i); ; genPlus ; genPlus aligned array mov ar6,r2 mov a,#(_IN4BUF >> 8) add a,r3 mov r7,a ; genPlus mov a,#0x0B ; Peephole 236.a used r6 instead of ar6 add a,r6 mov r6,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r7 instead of ar7 addc a,r7 mov r7,a ; genPlus ; Peephole 236.g used r0 instead of ar0 mov a,r0 add a,#__adc mov dpl,a ; Peephole 181 changed mov to clr clr a addc a,#(__adc >> 8) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genPointerSet ; genFarPointerSet ; Peephole 136 removed redundant moves mov r1,a mov dpl,r6 mov dph,r7 movx @dptr,a ;usb_irq.c:625: INBUF(i, 12) = ADCTEMPL(i); ; genPlus ; genPlus aligned array mov a,#(_IN4BUF >> 8) add a,r3 mov r3,a ; genPlus mov a,#0x0C ; Peephole 236.a used r2 instead of ar2 add a,r2 mov r2,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r3 instead of ar3 addc a,r3 mov r3,a ; genPlus ; genPlusIncr mov a,#0x01 ; Peephole 236.a used r0 instead of ar0 add a,r0 ; genPlus add a,#__adc mov dpl,a ; Peephole 240 use clr instead of addc a,#0 clr a addc a,#(__adc >> 8) mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genPointerSet ; genFarPointerSet ; Peephole 136 removed redundant moves mov r6,a mov dpl,r2 mov dph,r3 movx @dptr,a ;usb_irq.c:626: INBC(i) = 13; ; genMinus ; genMinusDec mov a,r4 add a,#0xff mov r2,a mov a,r5 addc a,#0xff ; genLeftShift ; genLeftShiftLiteral ; genlshTwo ; Peephole 105 removed redundant mov mov r3,a xch a,r2 add a,acc xch a,r2 rlc a mov r3,a ; genPlus ; Peephole 236.g used r2 instead of ar2 mov a,r2 add a,#_IN1BC mov dpl,a ; Peephole 236.g used r3 instead of ar3 mov a,r3 addc a,#(_IN1BC >> 8) mov dph,a ; genPointerSet ; genFarPointerSet mov a,#0x0D movx @dptr,a ;usb_irq.c:627: break; ljmp 00213$ ;usb_irq.c:631: else _firm_regulate &= ~(1 << (2 * (i - 1))); 00202$: ;usb_irq.c:629: if (OUTBUF(i, 1)) ; genMinus mov a,#0x04 clr c ; Peephole 236.l used r4 instead of ar4 subb a,r4 mov r2,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.l used r5 instead of ar5 subb a,r5 ; genLeftShift ; genLeftShiftLiteral ; genlshTwo ; Peephole 105 removed redundant mov mov r3,a anl a,#0x01 mov c,acc.0 xch a,r2 rrc a xch a,r2 rrc a xch a,r2 mov r3,a ; genPlus ; Peephole 236.g used r2 instead of ar2 mov a,r2 add a,#_OUT4BUF mov r2,a ; Peephole 236.g used r3 instead of ar3 mov a,r3 addc a,#(_OUT4BUF >> 8) mov r3,a ; genPlus ; genPlusIncr mov a,#0x01 ; Peephole 236.a used r2 instead of ar2 add a,r2 mov dpl,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r3 instead of ar3 addc a,r3 mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genIfx ; Peephole 105 removed redundant mov mov r2,a ; genIfxJump ; Peephole 110 removed ljmp by inverse jump logic jz 00200$ 00382$: ;usb_irq.c:630: _firm_regulate |= (1 << (2 * (i - 1))); ; genMinus ; genMinusDec mov a,r4 add a,#0xff mov r2,a mov a,r5 addc a,#0xff ; genLeftShift ; genLeftShiftLiteral ; genlshTwo ; Peephole 105 removed redundant mov mov r3,a xch a,r2 add a,acc xch a,r2 rlc a mov r3,a ; genLeftShift mov b,r2 inc b mov a,#0x01 sjmp 00385$ 00383$: add a,acc 00385$: djnz b,00383$ mov r2,a ; genAssign ; genOr ; Peephole 248.a optimized or to xdata mov dptr,#__firm_regulate movx a,@dptr mov r3,a orl a,r2 movx @dptr,a ljmp 00213$ 00200$: ;usb_irq.c:631: else _firm_regulate &= ~(1 << (2 * (i - 1))); ; genMinus ; genMinusDec mov a,r4 add a,#0xff mov r2,a mov a,r5 addc a,#0xff ; genLeftShift ; genLeftShiftLiteral ; genlshTwo ; Peephole 105 removed redundant mov mov r3,a xch a,r2 add a,acc xch a,r2 rlc a mov r3,a ; genLeftShift mov b,r2 inc b mov r2,#0x01 mov r3,#0x00 sjmp 00387$ 00386$: mov a,r2 add a,acc mov r2,a mov a,r3 rlc a mov r3,a 00387$: djnz b,00386$ ; genCpl mov a,r2 cpl a mov r2,a mov a,r3 cpl a mov r3,a ; genCast ; genAssign ; genAnd ; Peephole 248.b optimized and to xdata mov dptr,#__firm_regulate movx a,@dptr mov r3,a anl a,r2 movx @dptr,a ;usb_irq.c:632: break; ljmp 00213$ ;usb_irq.c:636: else _firm_regulate &= ~(1 << (2 * i - 1)); 00206$: ;usb_irq.c:634: if (OUTBUF(i, 1)) ; genMinus mov a,#0x04 clr c ; Peephole 236.l used r4 instead of ar4 subb a,r4 mov r2,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.l used r5 instead of ar5 subb a,r5 ; genLeftShift ; genLeftShiftLiteral ; genlshTwo ; Peephole 105 removed redundant mov mov r3,a anl a,#0x01 mov c,acc.0 xch a,r2 rrc a xch a,r2 rrc a xch a,r2 mov r3,a ; genPlus ; Peephole 236.g used r2 instead of ar2 mov a,r2 add a,#_OUT4BUF mov r2,a ; Peephole 236.g used r3 instead of ar3 mov a,r3 addc a,#(_OUT4BUF >> 8) mov r3,a ; genPlus ; genPlusIncr mov a,#0x01 ; Peephole 236.a used r2 instead of ar2 add a,r2 mov dpl,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r3 instead of ar3 addc a,r3 mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genIfx ; Peephole 105 removed redundant mov mov r2,a ; genIfxJump ; Peephole 110 removed ljmp by inverse jump logic jz 00204$ 00388$: ;usb_irq.c:635: _firm_regulate |= (1 << (2 * i - 1)); ; genMult ; genMultOneByte mov a,_usb_isr_i_1_1 mov b,#0x02 mul ab ; genMinus ; genMinusDec add a,#0xff mov r2,a mov a,b addc a,#0xff mov r3,a ; genLeftShift mov b,r2 inc b mov a,#0x01 sjmp 00391$ 00389$: add a,acc 00391$: djnz b,00389$ mov r2,a ; genAssign ; genOr ; Peephole 248.a optimized or to xdata mov dptr,#__firm_regulate movx a,@dptr mov r3,a orl a,r2 movx @dptr,a ljmp 00213$ 00204$: ;usb_irq.c:636: else _firm_regulate &= ~(1 << (2 * i - 1)); ; genMult ; genMultOneByte mov a,_usb_isr_i_1_1 mov b,#0x02 mul ab ; genMinus ; genMinusDec add a,#0xff mov r2,a mov a,b addc a,#0xff mov r3,a ; genLeftShift mov b,r2 inc b mov r2,#0x01 mov r3,#0x00 sjmp 00393$ 00392$: mov a,r2 add a,acc mov r2,a mov a,r3 rlc a mov r3,a 00393$: djnz b,00392$ ; genCpl mov a,r2 cpl a mov r2,a mov a,r3 cpl a mov r3,a ; genCast ; genAssign ; genAnd ; Peephole 248.b optimized and to xdata mov dptr,#__firm_regulate movx a,@dptr mov r3,a anl a,r2 movx @dptr,a ;usb_irq.c:637: break; ljmp 00213$ ;usb_irq.c:639: _vtol[2 * (i - 1)] = OUTBUF(i, 1); 00207$: ; genMinus ; genMinusDec mov a,_usb_isr_i_1_1 dec a ; genLeftShift ; genLeftShiftLiteral ; genlshOne ; Peephole 105 removed redundant mov ; genPlus ; Peephole 177.b removed redundant mov ; Peephole 204 removed redundant mov add a,acc ; Peephole 215 removed some moves add a,#__vtol mov r2,a ; Peephole 181 changed mov to clr clr a addc a,#(__vtol >> 8) mov r3,a ; genMinus mov a,#0x04 clr c ; Peephole 236.l used r4 instead of ar4 subb a,r4 mov r6,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.l used r5 instead of ar5 subb a,r5 ; genLeftShift ; genLeftShiftLiteral ; genlshTwo ; Peephole 105 removed redundant mov mov r7,a anl a,#0x01 mov c,acc.0 xch a,r6 rrc a xch a,r6 rrc a xch a,r6 mov r7,a ; genPlus ; Peephole 236.g used r6 instead of ar6 mov a,r6 add a,#_OUT4BUF mov r6,a ; Peephole 236.g used r7 instead of ar7 mov a,r7 addc a,#(_OUT4BUF >> 8) mov r7,a ; genPlus ; genPlusIncr mov a,#0x01 ; Peephole 236.a used r6 instead of ar6 add a,r6 mov dpl,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r7 instead of ar7 addc a,r7 mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genPointerSet ; genFarPointerSet ; Peephole 136 removed redundant moves mov r6,a mov dpl,r2 mov dph,r3 movx @dptr,a ;usb_irq.c:640: break; ;usb_irq.c:642: _vtol[2 * i - 1] = OUTBUF(i, 1); ; Peephole 112.b changed ljmp to sjmp sjmp 00213$ 00208$: ; genLeftShift ; genLeftShiftLiteral ; genlshOne mov a,_usb_isr_i_1_1 add a,acc ; genMinus ; genMinusDec ; Peephole 105 removed redundant mov mov r2,a dec a ; genPlus add a,#__vtol mov r2,a ; Peephole 240 use clr instead of addc a,#0 clr a addc a,#(__vtol >> 8) mov r3,a ; genMinus mov a,#0x04 clr c ; Peephole 236.l used r4 instead of ar4 subb a,r4 mov r6,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.l used r5 instead of ar5 subb a,r5 ; genLeftShift ; genLeftShiftLiteral ; genlshTwo ; Peephole 105 removed redundant mov mov r7,a anl a,#0x01 mov c,acc.0 xch a,r6 rrc a xch a,r6 rrc a xch a,r6 mov r7,a ; genPlus ; Peephole 236.g used r6 instead of ar6 mov a,r6 add a,#_OUT4BUF mov r6,a ; Peephole 236.g used r7 instead of ar7 mov a,r7 addc a,#(_OUT4BUF >> 8) mov r7,a ; genPlus ; genPlusIncr mov a,#0x01 ; Peephole 236.a used r6 instead of ar6 add a,r6 mov dpl,a ; Peephole 181 changed mov to clr clr a ; Peephole 236.b used r7 instead of ar7 addc a,r7 mov dph,a ; genPointerGet ; genFarPointerGet movx a,@dptr ; genPointerSet ; genFarPointerSet ; Peephole 136 removed redundant moves mov r6,a mov dpl,r2 mov dph,r3 movx @dptr,a ;usb_irq.c:643: break; ;usb_irq.c:645: FLASH; ; Peephole 112.b changed ljmp to sjmp sjmp 00213$ 00209$: ; genAssign ; genAnd ; Peephole 248.b optimized and to xdata mov dptr,#_OUTC movx a,@dptr mov r2,a anl a,#0xF7 movx @dptr,a ; genAssign mov r2,#0xFF mov r3,#0x7F 00210$: ; genAssign mov ar6,r2 mov ar7,r3 ; genMinus ; genMinusDec dec r2 cjne r2,#0xff,00394$ dec r3 00394$: ; genIfx mov a,r6 orl a,r7 ; genIfxJump ; Peephole 109 removed ljmp by inverse jump logic jnz 00210$ 00395$: ; genAssign ; genOr ; Peephole 248.a optimized or to xdata mov dptr,#_OUTC movx a,@dptr mov r2,a orl a,#0x08 movx @dptr,a ;usb_irq.c:647: } 00213$: ;usb_irq.c:648: OUTBC(i) = 0; ; genMinus ; genMinusDec dec r4 cjne r4,#0xff,00396$ dec r5 00396$: ; genLeftShift ; genLeftShiftLiteral ; genlshTwo mov a,r5 xch a,r4 add a,acc xch a,r4 rlc a mov r5,a ; genPlus ; Peephole 236.g used r4 instead of ar4 mov a,r4 add a,#_OUT1BC mov dpl,a ; Peephole 236.g used r5 instead of ar5 mov a,r5 addc a,#(_OUT1BC >> 8) mov dph,a ; genPointerSet ; genFarPointerSet ; Peephole 181 changed mov to clr clr a movx @dptr,a 00220$: ;usb_irq.c:561: for (i = 1; i < 5; ++i) ; genPlus ; genPlusIncr inc _usb_isr_i_1_1 ljmp 00218$ 00221$: ;usb_irq.c:652: if (USBIRQ & 0x10) { ; genAssign mov dptr,#_USBIRQ movx a,@dptr ; genAnd ; Peephole 105 removed redundant mov mov r2,a ; genIfxJump ; Peephole 111 removed ljmp by inverse jump logic jnb acc.4,00222$ 00397$: ;usb_irq.c:654: USBIRQ = 0x10; ; genAssign mov dptr,#_USBIRQ mov a,#0x10 movx @dptr,a 00222$: pop psw mov ea,c pop psw pop dph pop dpl pop b pop acc reti .area CSEG (CODE) _dev_desc: .db #0x12 .db #0x01 .db #0x00 .db #0x01 .db #0x00 .db #0x00 .db #0x00 .db #0x40 .db #0x42 .db #0x42 .db #0xEF .db #0xBE .db #0x0A .db #0x00 .db #0x01 .db #0x02 .db #0x03 .db #0x01 _conf_desc: .db #0x09 .db #0x02 .db #0x5F .db #0x00 .db #0x01 .db #0x01 .db #0x00 .db #0xC0 .db #0x01 .db #0x09 .db #0x04 .db #0x00 .db #0x00 .db #0x0B .db #0xFF .db #0xFF .db #0xFF .db #0x01 .db #0x07 .db #0x05 .db #0x81 .db #0x02 .db #0x40 .db #0x00 .db #0x01 .db #0x07 .db #0x05 .db #0x01 .db #0x02 .db #0x40 .db #0x00 .db #0x01 .db #0x07 .db #0x05 .db #0x82 .db #0x02 .db #0x40 .db #0x00 .db #0x01 .db #0x07 .db #0x05 .db #0x02 .db #0x02 .db #0x40 .db #0x00 .db #0x01 .db #0x07 .db #0x05 .db #0x83 .db #0x02 .db #0x40 .db #0x00 .db #0x01 .db #0x07 .db #0x05 .db #0x03 .db #0x02 .db #0x40 .db #0x00 .db #0x01 .db #0x07 .db #0x05 .db #0x84 .db #0x02 .db #0x40 .db #0x00 .db #0x01 .db #0x07 .db #0x05 .db #0x04 .db #0x02 .db #0x40 .db #0x00 .db #0x01 .db #0x07 .db #0x05 .db #0x85 .db #0x02 .db #0x40 .db #0x00 .db #0x01 .db #0x07 .db #0x05 .db #0x05 .db #0x02 .db #0x40 .db #0x00 .db #0x01 .db #0x07 .db #0x05 .db #0x86 .db #0x02 .db #0x40 .db #0x00 .db #0x01 _string_langid: .db #0x03 _string_mfg: .db #0x0C .db #0x03 .db #0x41 .db #0x00 .db #0x54 .db #0x00 .db #0x4C .db #0x00 .db #0x41 .db #0x00 .db #0x53 .db #0x00 _string_prod: .db #0x16 .db #0x03 .db #0x53 .db #0x00 .db #0x75 .db #0x00 .db #0x52 .db #0x00 .db #0x46 .db #0x00 .db #0x20 .db #0x00 .db #0x62 .db #0x00 .db #0x6F .db #0x00 .db #0x61 .db #0x00 .db #0x72 .db #0x00 .db #0x64 .db #0x00 _string_sernum: .db #0x1A .db #0x03 .db #0x32 .db #0x00 .db #0x30 .db #0x00 .db #0x30 .db #0x00 .db #0x34 .db #0x00 .db #0x30 .db #0x00 .db #0x32 .db #0x00 .db #0x4C .db #0x00 .db #0x42 .db #0x00 .db #0x4C .db #0x00 .db #0x30 .db #0x00 .db #0x30 .db #0x00 .db #0x35 .db #0x00 _string_if: .db #0x0A .db #0x03 .db #0x53 .db #0x00 .db #0x75 .db #0x00 .db #0x72 .db #0x00 .db #0x66 .db #0x00 _string_rev: .db #0x08 .db #0x03 .db #0x00 .db #0x00 .db #0x1E .db #0x00 .db #0x06 .db #0x00 .area XINIT (CODE)