diff --git a/src/main/fragment/cache/fragment-cache-csg65ce02.asm b/src/main/fragment/cache/fragment-cache-csg65ce02.asm index 5c90f162b..85adbb04a 100644 --- a/src/main/fragment/cache/fragment-cache-csg65ce02.asm +++ b/src/main/fragment/cache/fragment-cache-csg65ce02.asm @@ -237,3 +237,2072 @@ stx {c1} sty {c1} //FRAGMENT _deref_pbsc1=vbszz stz {c1} +//FRAGMENT vbuz1=vbuc1 +ldz #{c1} +stz {z1} +//FRAGMENT pbuz1=pbuc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT vbuz1=_deref_pbuc1 +lda {c1} +sta {z1} +//FRAGMENT vbuz1_lt_vbuc1_then_la1 +lda {z1} +cmp #{c1} +bcc {la1} +//FRAGMENT vbuz1=vbuz2 +lda {z2} +sta {z1} +//FRAGMENT vbuz1=_stackidxbyte_vbuc1 +tsx +lda STACK_BASE+{c1},x +sta {z1} +//FRAGMENT vbuz1_eq_vbuc1_then_la1 +ldz #{c1} +cpz {z1} +beq {la1} +//FRAGMENT pbuz1_derefidx_vbuz2=vbuz3 +lda {z3} +ldz {z2} +sta ({z1}),z +//FRAGMENT pbuz1_derefidx_vbuz2=vbuc1 +lda #{c1} +ldz {z2} +sta ({z1}),z +//FRAGMENT vbuz1=_inc_vbuz1 +inc {z1} +//FRAGMENT vbuz1_neq_vbuc1_then_la1 +ldz #{c1} +cpz {z1} +bne {la1} +//FRAGMENT pprz1=pprc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT vduz1=vduz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +lda {z2}+2 +sta {z1}+2 +lda {z2}+3 +sta {z1}+3 +//FRAGMENT vwuz1=_word_vbuz2 +lda {z2} +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwuz1=vwuz2_rol_2 +lda {z2} +asl +sta {z1} +lda {z2}+1 +rol +sta {z1}+1 +asl {z1} +rol {z1}+1 +//FRAGMENT vwuz1=vwuz2_plus_vwuz3 +lda {z2} +clc +adc {z3} +sta {z1} +lda {z2}+1 +adc {z3}+1 +sta {z1}+1 +//FRAGMENT vwuz1=vwuz2_rol_3 +lda {z2} +asl +sta {z1} +lda {z2}+1 +rol +sta {z1}+1 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +//FRAGMENT pbuz1=pbuc1_plus_vwuz2 +lda {z2} +clc +adc #<{c1} +sta {z1} +lda {z2}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT pbuz1=pbuz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT pbuz1=pbuz1_plus_vbuc1 +lda #{c1} +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+1 +!: +//FRAGMENT vbuz1=_deref_pbuz2 +ldy #0 +lda ({z2}),y +sta {z1} +//FRAGMENT pbuz1=_inc_pbuz1 +inw {z1} +//FRAGMENT 0_neq_vbuz1_then_la1 +lda {z1} +bne {la1} +//FRAGMENT _stackpushbyte_=vbuz1 +lda {z1} +pha +//FRAGMENT call__deref_pprz1 +jsr {la1} +{la1}: @outside_flow +jmp ({z1}) @outside_flow +//FRAGMENT _stackpullbyte_1 +pla +//FRAGMENT _deref_pbuc1=vbuc2 +ldz #{c2} +stz {c1} +//FRAGMENT vduz1=vduc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +lda #<{c1}>>$10 +sta {z1}+2 +lda #>{c1}>>$10 +sta {z1}+3 +//FRAGMENT pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 +ldx {z1} +inc {c1},x +//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuc2_then_la1 +ldy {z1} +lda {c1},y +cmp #{c2} +beq {la1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sta {z1} +//FRAGMENT 0_eq_vbuz1_then_la1 +lda {z1} +beq {la1} +//FRAGMENT vduz1=_inc_vduz1 +inc {z1} +bne !+ +inc {z1}+1 +bne !+ +inc {z1}+2 +bne !+ +inc {z1}+3 +!: +//FRAGMENT pbuc1_derefidx_vbuz1=vbuc2 +lda #{c2} +ldy {z1} +sta {c1},y +//FRAGMENT vbuz1=_dec_vbuz1 +dec {z1} +//FRAGMENT pvoz1=pvoc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT pbuz1=pbuz1_minus_vbuc1 +sec +lda {z1} +sbc #{c1} +sta {z1} +lda {z1}+1 +sbc #0 +sta {z1}+1 +//FRAGMENT vwuz1=vwuc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT vbuz1=_byte_vwuz2 +lda {z2} +sta {z1} +//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +ldy #0 +sta ({z1}),y +//FRAGMENT pbuz1=_inc_pbuz2 +clc +lda {z2} +adc #1 +sta {z1} +lda {z2}+1 +adc #0 +sta {z1}+1 +//FRAGMENT _deref_pbuz1=vbuc1 +lda #{c1} +ldy #0 +sta ({z1}),y +//FRAGMENT vbuz1=vbuz2_rol_1 +lda {z2} +asl +sta {z1} +//FRAGMENT vwuz1=pwuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 +//FRAGMENT vwuz1_ge_vwuz2_then_la1 +lda {z2}+1 +cmp {z1}+1 +bne !+ +lda {z2} +cmp {z1} +beq {la1} +!: +bcc {la1} +//FRAGMENT vwuz1=vwuz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT vbsz1=_sbyte_vwuz2 +lda {z2} +sta {z1} +//FRAGMENT vbsz1=_inc_vbsz1 +inc {z1} +//FRAGMENT vbsz1=vbsz2_minus_vbsz3 +lda {z2} +sec +sbc {z3} +sta {z1} +//FRAGMENT vbsz1_ge_0_then_la1 +lda {z1} +cmp #0 +bpl {la1} +//FRAGMENT vbsz1=vbsc1 +ldz #{c1} +stz {z1} +//FRAGMENT 0_neq_vbsz1_then_la1 +lda {z1} +cmp #0 +bne {la1} +//FRAGMENT pprz1=pprz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT vbuz1=vbuz2_minus_1 +ldx {z2} +dex +stx {z1} +//FRAGMENT vbuz1_le_vbuz2_then_la1 +lda {z2} +cmp {z1} +bcs {la1} +//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 +ldy {z1} +lda {c1},y +cmp {z2} +beq {la1} +//FRAGMENT vbuz1_lt_vbuz2_then_la1 +lda {z1} +cmp {z2} +bcc {la1} +//FRAGMENT vbuz1=vbuz2_minus_vbuz3 +lda {z2} +sec +sbc {z3} +sta {z1} +//FRAGMENT vbuz1_neq_vbuz2_then_la1 +lda {z1} +cmp {z2} +bne {la1} +//FRAGMENT vbuz1=_byte_vduz2 +lda {z2} +sta {z1} +//FRAGMENT vbuz1=vbuz2_rol_2 +lda {z2} +asl +asl +sta {z1} +//FRAGMENT vduz1=pduc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 +lda {c1}+2,y +sta {z1}+2 +lda {c1}+3,y +sta {z1}+3 +//FRAGMENT vduz1_ge_vduz2_then_la1 +lda {z1}+3 +cmp {z2}+3 +bcc !+ +bne {la1} +lda {z1}+2 +cmp {z2}+2 +bcc !+ +bne {la1} +lda {z1}+1 +cmp {z2}+1 +bcc !+ +bne {la1} +lda {z1} +cmp {z2} +bcs {la1} +!: +//FRAGMENT pbuz1=pbuz2_plus_vwuc1 +lda {z2} +clc +adc #<{c1} +sta {z1} +lda {z2}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT pbuz1_neq_pbuz2_then_la1 +lda {z1}+1 +cmp {z2}+1 +bne {la1} +lda {z1} +cmp {z2} +bne {la1} +//FRAGMENT _deref_pbuz1=_deref_pbuz2 +ldy #0 +lda ({z2}),y +ldy #0 +sta ({z1}),y +//FRAGMENT pbuz1=pbuz2_plus_vbuc1 +lda #{c1} +clc +adc {z2} +sta {z1} +lda #0 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT _deref_pbuz1=vbuz2 +lda {z2} +ldy #0 +sta ({z1}),y +//FRAGMENT vwuz1=vwuz1_minus_vwuz2 +lda {z1} +sec +sbc {z2} +sta {z1} +lda {z1}+1 +sbc {z2}+1 +sta {z1}+1 +//FRAGMENT 0_neq__deref_pbuz1_then_la1 +ldy #0 +lda ({z1}),y +cmp #0 +bne {la1} +//FRAGMENT vwuz1=_inc_vwuz1 +inw {z1} +//FRAGMENT vduz1=vduz1_minus_vduz2 +lda {z1} +sec +sbc {z2} +sta {z1} +lda {z1}+1 +sbc {z2}+1 +sta {z1}+1 +lda {z1}+2 +sbc {z2}+2 +sta {z1}+2 +lda {z1}+3 +sbc {z2}+3 +sta {z1}+3 +//FRAGMENT vbuz1_le_vbuc1_then_la1 +ldz #{c1} +cpz {z1} +bcs {la1} +//FRAGMENT vbuz1=vbuz1_plus_vbuc1 +lda #{c1} +clc +adc {z1} +sta {z1} +//FRAGMENT vbuz1_ge_vbuz2_then_la1 +lda {z1} +cmp {z2} +bcs {la1} +//FRAGMENT vbuz1=vbuz1_minus_vbuz2 +lda {z1} +sec +sbc {z2} +sta {z1} +//FRAGMENT vbuaa=_deref_pbuc1 +lda {c1} +//FRAGMENT vbuxx=_deref_pbuc1 +ldx {c1} +//FRAGMENT vbuaa_lt_vbuc1_then_la1 +cmp #{c1} +bcc {la1} +//FRAGMENT vbuaa=vbuz1 +lda {z1} +//FRAGMENT vbuxx=vbuz1 +ldx {z1} +//FRAGMENT vbuaa=_stackidxbyte_vbuc1 +tsx +lda STACK_BASE+{c1},x +//FRAGMENT vbuxx=_stackidxbyte_vbuc1 +tsx +lda STACK_BASE+{c1},x +tax +//FRAGMENT vbuyy=_stackidxbyte_vbuc1 +tsx +lda STACK_BASE+{c1},x +tay +//FRAGMENT vbuzz=_stackidxbyte_vbuc1 +tsx +lda STACK_BASE+{c1},x +taz +//FRAGMENT vbuaa_eq_vbuc1_then_la1 +cmp #{c1} +beq {la1} +//FRAGMENT pbuz1_derefidx_vbuz2=vbuaa +ldz {z2} +sta ({z1}),z +//FRAGMENT pbuz1_derefidx_vbuz2=vbuxx +txa +ldz {z2} +sta ({z1}),z +//FRAGMENT pbuz1_derefidx_vbuz2=vbuyy +tya +ldz {z2} +sta ({z1}),z +//FRAGMENT pbuz1_derefidx_vbuz2=vbuzz +tza +ldz {z2} +sta ({z1}),z +//FRAGMENT vbuz1=vbuaa +sta {z1} +//FRAGMENT vwuz1=_word_vbuaa +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwuz1=_word_vbuxx +txa +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwuz1=_word_vbuyy +tya +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT pbuz1_derefidx_vbuaa=vbuc1 +taz +lda #{c1} +sta ({z1}),z +//FRAGMENT pbuz1_derefidx_vbuxx=vbuc1 +txa +taz +lda #{c1} +sta ({z1}),z +//FRAGMENT pbuz1_derefidx_vbuyy=vbuc1 +lda #{c1} +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuzz=vbuc1 +lda #{c1} +sta ({z1}),z +//FRAGMENT vbuaa=_deref_pbuz1 +ldy #0 +lda ({z1}),y +//FRAGMENT vbuxx=_deref_pbuz1 +ldy #0 +lda ({z1}),y +tax +//FRAGMENT vbuyy=_deref_pbuz1 +ldy #0 +lda ({z1}),y +tay +//FRAGMENT vbuzz=_deref_pbuz1 +ldy #0 +lda ({z1}),y +taz +//FRAGMENT 0_neq_vbuaa_then_la1 +cmp #0 +bne {la1} +//FRAGMENT _stackpushbyte_=vbuaa +pha +//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1 +ldy {z1} +lda {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1 +ldy {z1} +ldx {c1},y +//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1 +ldx {z1} +ldy {c1},x +//FRAGMENT vbuzz=pbuc1_derefidx_vbuz1 +ldx {z1} +ldz {c1},x +//FRAGMENT 0_eq_vbuaa_then_la1 +cmp #0 +beq {la1} +//FRAGMENT vbuaa=_byte_vwuz1 +lda {z1} +//FRAGMENT vbuxx=_byte_vwuz1 +ldx {z1} +//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuaa +tay +lda {c1},y +ldy #0 +sta ({z1}),y +//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuxx +lda {c1},x +ldy #0 +sta ({z1}),y +//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuyy +lda {c1},y +ldy #0 +sta ({z1}),y +//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuzz +tza +tay +lda {c1},y +ldy #0 +sta ({z1}),y +//FRAGMENT vbuaa=vbuz1_rol_1 +lda {z1} +asl +//FRAGMENT vbuxx=vbuz1_rol_1 +lda {z1} +asl +tax +//FRAGMENT vbuyy=vbuz1_rol_1 +lda {z1} +asl +tay +//FRAGMENT vbuzz=vbuz1_rol_1 +lda {z1} +asl +taz +//FRAGMENT vbuz1=vbuaa_rol_1 +asl +sta {z1} +//FRAGMENT vbuaa=vbuaa_rol_1 +asl +//FRAGMENT vbuxx=vbuaa_rol_1 +asl +tax +//FRAGMENT vbuyy=vbuaa_rol_1 +asl +tay +//FRAGMENT vbuzz=vbuaa_rol_1 +asl +taz +//FRAGMENT vbuz1=vbuxx_rol_1 +txa +asl +sta {z1} +//FRAGMENT vbuaa=vbuxx_rol_1 +txa +asl +//FRAGMENT vbuxx=vbuxx_rol_1 +txa +asl +tax +//FRAGMENT vbuyy=vbuxx_rol_1 +txa +asl +tay +//FRAGMENT vbuzz=vbuxx_rol_1 +txa +asl +taz +//FRAGMENT vbuz1=vbuyy_rol_1 +tya +asl +sta {z1} +//FRAGMENT vbuaa=vbuyy_rol_1 +tya +asl +//FRAGMENT vbuxx=vbuyy_rol_1 +tya +asl +tax +//FRAGMENT vbuyy=vbuyy_rol_1 +tya +asl +tay +//FRAGMENT vbuzz=vbuyy_rol_1 +tya +asl +taz +//FRAGMENT vbuz1=vbuzz_rol_1 +tza +asl +sta {z1} +//FRAGMENT vbuaa=vbuzz_rol_1 +tza +asl +//FRAGMENT vbuxx=vbuzz_rol_1 +tza +asl +tax +//FRAGMENT vbuyy=vbuzz_rol_1 +tza +asl +tay +//FRAGMENT vbuzz=vbuzz_rol_1 +tza +asl +taz +//FRAGMENT vwuz1=pwuc1_derefidx_vbuaa +tay +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 +//FRAGMENT vwuz1=pwuc1_derefidx_vbuxx +lda {c1},x +sta {z1} +lda {c1}+1,x +sta {z1}+1 +//FRAGMENT vwuz1=pwuc1_derefidx_vbuyy +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 +//FRAGMENT vwuz1=pwuc1_derefidx_vbuzz +tza +tay +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 +//FRAGMENT 0_neq_vbuxx_then_la1 +cpx #0 +bne {la1} +//FRAGMENT vbsaa=_sbyte_vwuz1 +lda {z1} +//FRAGMENT vbsxx=_sbyte_vwuz1 +ldx {z1} +//FRAGMENT 0_eq_vbuxx_then_la1 +cpx #0 +beq {la1} +//FRAGMENT vbsz1=vbsz2_minus_vbsaa +eor #$ff +sec +adc {z2} +sta {z1} +//FRAGMENT vbsz1=vbsz2_minus_vbsxx +txa +eor #$ff +sec +adc {z2} +sta {z1} +//FRAGMENT vbsz1=vbsz2_minus_vbsyy +tya +eor #$ff +sec +adc {z2} +sta {z1} +//FRAGMENT vbsz1=vbsz2_minus_vbszz +tza +eor #$ff +sec +adc {z2} +sta {z1} +//FRAGMENT vbsz1=vbsxx_minus_vbsz2 +txa +sec +sbc {z2} +sta {z1} +//FRAGMENT vbsz1=vbsxx_minus_vbsaa +sta $ff +txa +sec +sbc $ff +sta {z1} +//FRAGMENT vbsz1=vbsxx_minus_vbsxx +lda #0 +sta {z1} +//FRAGMENT vbsz1=vbsxx_minus_vbsyy +txa +sty $ff +sec +sbc $ff +sta {z1} +//FRAGMENT vbsz1=vbsxx_minus_vbszz +txa +stz $ff +sec +sbc $ff +sta {z1} +//FRAGMENT vbsz1=vbsyy_minus_vbsz2 +tya +sec +sbc {z2} +sta {z1} +//FRAGMENT vbsz1=vbsyy_minus_vbsaa +sta $ff +tya +sec +sbc $ff +sta {z1} +//FRAGMENT vbsz1=vbsyy_minus_vbsxx +tya +stx $ff +sec +sbc $ff +sta {z1} +//FRAGMENT vbsz1=vbsyy_minus_vbsyy +lda #0 +sta {z1} +//FRAGMENT vbsz1=vbsyy_minus_vbszz +tya +stz $ff +sec +sbc $ff +sta {z1} +//FRAGMENT vbsz1=vbszz_minus_vbsz2 +tza +sec +sbc {z2} +sta {z1} +//FRAGMENT vbsz1=vbszz_minus_vbsaa +tay +tza +sty $ff +sec +sbc $ff +sta {z1} +//FRAGMENT vbsz1=vbszz_minus_vbsxx +tza +stx $ff +sec +sbc $ff +sta {z1} +//FRAGMENT vbsz1=vbszz_minus_vbsyy +tza +sty $ff +sec +sbc $ff +sta {z1} +//FRAGMENT vbsz1=vbszz_minus_vbszz +tza +lda #0 +sta {z1} +//FRAGMENT _stackpushbyte_=vbuxx +txa +pha +//FRAGMENT _stackpushbyte_=vbuyy +tya +pha +//FRAGMENT _stackpushbyte_=vbuzz +tza +pha +//FRAGMENT vbuz1=vbuaa_minus_1 +sec +sbc #1 +sta {z1} +//FRAGMENT vbuaa_le_vbuz1_then_la1 +ldy {z1} +sta $ff +cpy $ff +bcs {la1} +//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuz1_then_la1 +tay +lda {c1},y +cmp {z1} +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuxx_eq_vbuz1_then_la1 +lda {c1},x +cmp {z1} +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuyy_eq_vbuz1_then_la1 +lda {c1},y +cmp {z1} +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuzz_eq_vbuz1_then_la1 +tza +tay +lda {c1},y +cmp {z1} +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuaa_then_la1 +ldx {z1} +tay +lda {c1},x +tax +sty $ff +cpx $ff +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuaa_then_la1 +tax +lda {c1},x +tay +sty $ff +cpx $ff +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuxx_eq_vbuaa_then_la1 +tay +lda {c1},x +tax +sty $ff +cpx $ff +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuyy_eq_vbuaa_then_la1 +tax +lda {c1},y +tay +sty $ff +cpx $ff +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuzz_eq_vbuaa_then_la1 +tax +tza +tay +lda {c1},y +tay +sty $ff +cpx $ff +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuxx_then_la1 +ldy {z1} +lda {c1},y +tay +sty $ff +cpx $ff +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuxx_then_la1 +tay +lda {c1},y +tay +sty $ff +cpx $ff +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuxx_eq_vbuxx_then_la1 +lda {c1},x +tay +sty $ff +cpx $ff +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuyy_eq_vbuxx_then_la1 +lda {c1},y +tay +sty $ff +cpx $ff +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuzz_eq_vbuxx_then_la1 +tza +tay +lda {c1},y +tay +sty $ff +cpx $ff +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuyy_then_la1 +ldx {z1} +lda {c1},x +tax +sty $ff +cpx $ff +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuyy_then_la1 +tax +lda {c1},x +tax +sty $ff +cpx $ff +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuxx_eq_vbuyy_then_la1 +lda {c1},x +tax +sty $ff +cpx $ff +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuyy_eq_vbuyy_then_la1 +lda {c1},y +tax +sty $ff +cpx $ff +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuzz_eq_vbuyy_then_la1 +tza +tax +lda {c1},x +tax +sty $ff +cpx $ff +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuz1_eq_vbuzz_then_la1 +ldy {z1} +lda {c1},y +sta $ff +cpz $ff +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuzz_then_la1 +tay +lda {c1},y +sta $ff +cpz $ff +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuxx_eq_vbuzz_then_la1 +lda {c1},x +sta $ff +cpz $ff +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuyy_eq_vbuzz_then_la1 +lda {c1},y +sta $ff +cpz $ff +beq {la1} +//FRAGMENT pbuc1_derefidx_vbuzz_eq_vbuzz_then_la1 +tza +tay +lda {c1},y +sta $ff +cpz $ff +beq {la1} +//FRAGMENT vbuaa_lt_vbuz1_then_la1 +cmp {z1} +bcc {la1} +//FRAGMENT vbuz1=vbuaa_minus_vbuz2 +sec +sbc {z2} +sta {z1} +//FRAGMENT vbuz1=vbuxx_minus_vbuz2 +txa +sec +sbc {z2} +sta {z1} +//FRAGMENT vbuz1=vbuyy_minus_vbuz2 +tya +sec +sbc {z2} +sta {z1} +//FRAGMENT vbuz1=vbuzz_minus_vbuz2 +tza +sec +sbc {z2} +sta {z1} +//FRAGMENT vbuaa=vbuz1_minus_vbuz2 +lda {z1} +sec +sbc {z2} +//FRAGMENT vbuaa=vbuaa_minus_vbuz1 +sec +sbc {z1} +//FRAGMENT vbuaa=vbuxx_minus_vbuz1 +txa +sec +sbc {z1} +//FRAGMENT vbuaa=vbuyy_minus_vbuz1 +tya +sec +sbc {z1} +//FRAGMENT vbuaa=vbuzz_minus_vbuz1 +tza +sec +sbc {z1} +//FRAGMENT vbuxx=vbuz1_minus_vbuz2 +lda {z1} +sec +sbc {z2} +tax +//FRAGMENT vbuxx=vbuaa_minus_vbuz1 +sec +sbc {z1} +tax +//FRAGMENT vbuxx=vbuxx_minus_vbuz1 +txa +sec +sbc {z1} +tax +//FRAGMENT vbuxx=vbuyy_minus_vbuz1 +tya +sec +sbc {z1} +tax +//FRAGMENT vbuxx=vbuzz_minus_vbuz1 +tza +sec +sbc {z1} +tax +//FRAGMENT vbuyy=vbuz1_minus_vbuz2 +lda {z1} +sec +sbc {z2} +tay +//FRAGMENT vbuyy=vbuaa_minus_vbuz1 +sec +sbc {z1} +tay +//FRAGMENT vbuyy=vbuxx_minus_vbuz1 +txa +sec +sbc {z1} +tay +//FRAGMENT vbuyy=vbuyy_minus_vbuz1 +tya +sec +sbc {z1} +tay +//FRAGMENT vbuyy=vbuzz_minus_vbuz1 +tza +sec +sbc {z1} +tay +//FRAGMENT vbuzz=vbuz1_minus_vbuz2 +lda {z1} +sec +sbc {z2} +taz +//FRAGMENT vbuzz=vbuaa_minus_vbuz1 +sec +sbc {z1} +taz +//FRAGMENT vbuzz=vbuxx_minus_vbuz1 +txa +sec +sbc {z1} +taz +//FRAGMENT vbuzz=vbuyy_minus_vbuz1 +tya +sec +sbc {z1} +taz +//FRAGMENT vbuzz=vbuzz_minus_vbuz1 +tza +sec +sbc {z1} +taz +//FRAGMENT vbuz1=vbuz2_minus_vbuxx +txa +eor #$ff +sec +adc {z2} +sta {z1} +//FRAGMENT vbuz1=vbuaa_minus_vbuxx +stx $ff +sec +sbc $ff +sta {z1} +//FRAGMENT vbuz1=vbuxx_minus_vbuxx +lda #0 +sta {z1} +//FRAGMENT vbuz1=vbuyy_minus_vbuxx +tya +stx $ff +sec +sbc $ff +sta {z1} +//FRAGMENT vbuz1=vbuzz_minus_vbuxx +tza +stx $ff +sec +sbc $ff +sta {z1} +//FRAGMENT vbuaa=vbuz1_minus_vbuxx +txa +eor #$ff +sec +adc {z1} +//FRAGMENT vbuaa=vbuaa_minus_vbuxx +stx $ff +sec +sbc $ff +//FRAGMENT vbuaa=vbuxx_minus_vbuxx +lda #0 +//FRAGMENT vbuaa=vbuyy_minus_vbuxx +tya +stx $ff +sec +sbc $ff +//FRAGMENT vbuaa=vbuzz_minus_vbuxx +tza +stx $ff +sec +sbc $ff +//FRAGMENT vbuxx=vbuz1_minus_vbuxx +txa +eor #$ff +sec +adc {z1} +tax +//FRAGMENT vbuxx=vbuaa_minus_vbuxx +stx $ff +sec +sbc $ff +tax +//FRAGMENT vbuxx=vbuxx_minus_vbuxx +lda #0 +tax +//FRAGMENT vbuxx=vbuyy_minus_vbuxx +tya +stx $ff +sec +sbc $ff +tax +//FRAGMENT vbuxx=vbuzz_minus_vbuxx +tza +stx $ff +sec +sbc $ff +tax +//FRAGMENT vbuyy=vbuz1_minus_vbuxx +txa +eor #$ff +sec +adc {z1} +tay +//FRAGMENT vbuyy=vbuaa_minus_vbuxx +stx $ff +sec +sbc $ff +tay +//FRAGMENT vbuyy=vbuxx_minus_vbuxx +lda #0 +tay +//FRAGMENT vbuyy=vbuyy_minus_vbuxx +tya +stx $ff +sec +sbc $ff +tay +//FRAGMENT vbuyy=vbuzz_minus_vbuxx +tza +stx $ff +sec +sbc $ff +tay +//FRAGMENT vbuzz=vbuz1_minus_vbuxx +txa +eor #$ff +sec +adc {z1} +taz +//FRAGMENT vbuzz=vbuaa_minus_vbuxx +stx $ff +sec +sbc $ff +taz +//FRAGMENT vbuzz=vbuxx_minus_vbuxx +lda #0 +taz +//FRAGMENT vbuzz=vbuyy_minus_vbuxx +tya +stx $ff +sec +sbc $ff +taz +//FRAGMENT vbuzz=vbuzz_minus_vbuxx +tza +stx $ff +sec +sbc $ff +taz +//FRAGMENT vbuz1=vbuz2_minus_vbuyy +tya +eor #$ff +sec +adc {z2} +sta {z1} +//FRAGMENT vbuz1=vbuaa_minus_vbuyy +sty $ff +sec +sbc $ff +sta {z1} +//FRAGMENT vbuz1=vbuxx_minus_vbuyy +txa +sty $ff +sec +sbc $ff +sta {z1} +//FRAGMENT vbuz1=vbuyy_minus_vbuyy +lda #0 +sta {z1} +//FRAGMENT vbuz1=vbuzz_minus_vbuyy +tza +sty $ff +sec +sbc $ff +sta {z1} +//FRAGMENT vbuaa=vbuz1_minus_vbuyy +tya +eor #$ff +sec +adc {z1} +//FRAGMENT vbuaa=vbuaa_minus_vbuyy +sty $ff +sec +sbc $ff +//FRAGMENT vbuaa=vbuxx_minus_vbuyy +txa +sty $ff +sec +sbc $ff +//FRAGMENT vbuaa=vbuyy_minus_vbuyy +lda #0 +//FRAGMENT vbuaa=vbuzz_minus_vbuyy +tza +sty $ff +sec +sbc $ff +//FRAGMENT vbuxx=vbuz1_minus_vbuyy +tya +eor #$ff +sec +adc {z1} +tax +//FRAGMENT vbuxx=vbuaa_minus_vbuyy +sty $ff +sec +sbc $ff +tax +//FRAGMENT vbuxx=vbuxx_minus_vbuyy +txa +sty $ff +sec +sbc $ff +tax +//FRAGMENT vbuxx=vbuyy_minus_vbuyy +lda #0 +tax +//FRAGMENT vbuxx=vbuzz_minus_vbuyy +tza +sty $ff +sec +sbc $ff +tax +//FRAGMENT vbuyy=vbuz1_minus_vbuyy +tya +eor #$ff +sec +adc {z1} +tay +//FRAGMENT vbuyy=vbuaa_minus_vbuyy +sty $ff +sec +sbc $ff +tay +//FRAGMENT vbuyy=vbuxx_minus_vbuyy +txa +sty $ff +sec +sbc $ff +tay +//FRAGMENT vbuyy=vbuyy_minus_vbuyy +lda #0 +tay +//FRAGMENT vbuyy=vbuzz_minus_vbuyy +tza +sty $ff +sec +sbc $ff +tay +//FRAGMENT vbuzz=vbuz1_minus_vbuyy +tya +eor #$ff +sec +adc {z1} +taz +//FRAGMENT vbuzz=vbuaa_minus_vbuyy +sty $ff +sec +sbc $ff +taz +//FRAGMENT vbuzz=vbuxx_minus_vbuyy +txa +sty $ff +sec +sbc $ff +taz +//FRAGMENT vbuzz=vbuyy_minus_vbuyy +lda #0 +taz +//FRAGMENT vbuzz=vbuzz_minus_vbuyy +tza +sty $ff +sec +sbc $ff +taz +//FRAGMENT vbuz1=vbuz2_minus_vbuzz +tza +eor #$ff +sec +adc {z2} +sta {z1} +//FRAGMENT vbuz1=vbuaa_minus_vbuzz +stz $ff +sec +sbc $ff +sta {z1} +//FRAGMENT vbuz1=vbuxx_minus_vbuzz +txa +stz $ff +sec +sbc $ff +sta {z1} +//FRAGMENT vbuz1=vbuyy_minus_vbuzz +tya +stz $ff +sec +sbc $ff +sta {z1} +//FRAGMENT vbuz1=vbuzz_minus_vbuzz +tza +lda #0 +sta {z1} +//FRAGMENT vbuaa=vbuz1_minus_vbuzz +tza +eor #$ff +sec +adc {z1} +//FRAGMENT vbuaa=vbuaa_minus_vbuzz +stz $ff +sec +sbc $ff +//FRAGMENT vbuaa=vbuxx_minus_vbuzz +txa +stz $ff +sec +sbc $ff +//FRAGMENT vbuaa=vbuyy_minus_vbuzz +tya +stz $ff +sec +sbc $ff +//FRAGMENT vbuaa=vbuzz_minus_vbuzz +tza +lda #0 +//FRAGMENT vbuxx=vbuz1_minus_vbuzz +tza +eor #$ff +sec +adc {z1} +tax +//FRAGMENT vbuxx=vbuaa_minus_vbuzz +stz $ff +sec +sbc $ff +tax +//FRAGMENT vbuxx=vbuxx_minus_vbuzz +txa +stz $ff +sec +sbc $ff +tax +//FRAGMENT vbuxx=vbuyy_minus_vbuzz +tya +stz $ff +sec +sbc $ff +tax +//FRAGMENT vbuxx=vbuzz_minus_vbuzz +tza +lda #0 +tax +//FRAGMENT vbuyy=vbuz1_minus_vbuzz +tza +eor #$ff +sec +adc {z1} +tay +//FRAGMENT vbuyy=vbuaa_minus_vbuzz +stz $ff +sec +sbc $ff +tay +//FRAGMENT vbuyy=vbuxx_minus_vbuzz +txa +stz $ff +sec +sbc $ff +tay +//FRAGMENT vbuyy=vbuyy_minus_vbuzz +tya +stz $ff +sec +sbc $ff +tay +//FRAGMENT vbuyy=vbuzz_minus_vbuzz +tza +lda #0 +tay +//FRAGMENT vbuzz=vbuz1_minus_vbuzz +tza +eor #$ff +sec +adc {z1} +taz +//FRAGMENT vbuzz=vbuaa_minus_vbuzz +stz $ff +sec +sbc $ff +taz +//FRAGMENT vbuzz=vbuxx_minus_vbuzz +txa +stz $ff +sec +sbc $ff +taz +//FRAGMENT vbuzz=vbuyy_minus_vbuzz +tya +stz $ff +sec +sbc $ff +taz +//FRAGMENT vbuzz=vbuzz_minus_vbuzz +tza +lda #0 +taz +//FRAGMENT vbuxx_lt_vbuz1_then_la1 +cpx {z1} +bcc {la1} +//FRAGMENT vbuz1_neq_vbuaa_then_la1 +cmp {z1} +bne {la1} +//FRAGMENT vbuz1=vbuz2_minus_vbuaa +eor #$ff +sec +adc {z2} +sta {z1} +//FRAGMENT vbuxx=vbuz1_minus_vbuaa +eor #$ff +sec +adc {z1} +tax +//FRAGMENT vbuyy=vbuz1_minus_vbuaa +eor #$ff +sec +adc {z1} +tay +//FRAGMENT vbuzz=vbuz1_minus_vbuaa +eor #$ff +sec +adc {z1} +taz +//FRAGMENT vbuz1=vbuxx_minus_vbuaa +sta $ff +txa +sec +sbc $ff +sta {z1} +//FRAGMENT vbuxx=vbuxx_minus_vbuaa +sta $ff +txa +sec +sbc $ff +tax +//FRAGMENT vbuyy=vbuxx_minus_vbuaa +sta $ff +txa +sec +sbc $ff +tay +//FRAGMENT vbuzz=vbuxx_minus_vbuaa +sta $ff +txa +sec +sbc $ff +taz +//FRAGMENT vbuz1=vbuyy_minus_vbuaa +sta $ff +tya +sec +sbc $ff +sta {z1} +//FRAGMENT vbuxx=vbuyy_minus_vbuaa +sta $ff +tya +sec +sbc $ff +tax +//FRAGMENT vbuyy=vbuyy_minus_vbuaa +sta $ff +tya +sec +sbc $ff +tay +//FRAGMENT vbuzz=vbuyy_minus_vbuaa +sta $ff +tya +sec +sbc $ff +taz +//FRAGMENT vbuz1=vbuzz_minus_vbuaa +tay +tza +sty $ff +sec +sbc $ff +sta {z1} +//FRAGMENT vbuxx=vbuzz_minus_vbuaa +tax +tza +stx $ff +sec +sbc $ff +tax +//FRAGMENT vbuyy=vbuzz_minus_vbuaa +tay +tza +sty $ff +sec +sbc $ff +tay +//FRAGMENT vbuzz=vbuzz_minus_vbuaa +tay +tza +sty $ff +sec +sbc $ff +taz +//FRAGMENT vbuaa=_byte_vduz1 +lda {z1} +//FRAGMENT vbuxx=_byte_vduz1 +lda {z1} +tax +//FRAGMENT vbuyy=_byte_vduz1 +lda {z1} +tay +//FRAGMENT vbuzz=_byte_vduz1 +lda {z1} +taz +//FRAGMENT vbuz1=vbuaa_rol_2 +asl +asl +sta {z1} +//FRAGMENT vbuz1=vbuxx_rol_2 +txa +asl +asl +sta {z1} +//FRAGMENT vbuz1=vbuyy_rol_2 +tya +asl +asl +sta {z1} +//FRAGMENT vbuz1=vbuzz_rol_2 +tza +asl +asl +sta {z1} +//FRAGMENT vbuaa=vbuz1_rol_2 +lda {z1} +asl +asl +//FRAGMENT vbuaa=vbuaa_rol_2 +asl +asl +//FRAGMENT vbuaa=vbuxx_rol_2 +txa +asl +asl +//FRAGMENT vbuaa=vbuyy_rol_2 +tya +asl +asl +//FRAGMENT vbuaa=vbuzz_rol_2 +tza +asl +asl +//FRAGMENT vbuxx=vbuz1_rol_2 +lda {z1} +asl +asl +tax +//FRAGMENT vbuxx=vbuaa_rol_2 +asl +asl +tax +//FRAGMENT vbuxx=vbuxx_rol_2 +txa +asl +asl +tax +//FRAGMENT vbuxx=vbuyy_rol_2 +tya +asl +asl +tax +//FRAGMENT vbuxx=vbuzz_rol_2 +tza +asl +asl +tax +//FRAGMENT vbuyy=vbuz1_rol_2 +lda {z1} +asl +asl +tay +//FRAGMENT vbuyy=vbuaa_rol_2 +asl +asl +tay +//FRAGMENT vbuyy=vbuxx_rol_2 +txa +asl +asl +tay +//FRAGMENT vbuyy=vbuyy_rol_2 +tya +asl +asl +tay +//FRAGMENT vbuyy=vbuzz_rol_2 +tza +asl +asl +tay +//FRAGMENT vbuzz=vbuz1_rol_2 +lda {z1} +asl +asl +taz +//FRAGMENT vbuzz=vbuaa_rol_2 +asl +asl +taz +//FRAGMENT vbuzz=vbuxx_rol_2 +txa +asl +asl +taz +//FRAGMENT vbuzz=vbuyy_rol_2 +tya +asl +asl +taz +//FRAGMENT vbuzz=vbuzz_rol_2 +tza +asl +asl +taz +//FRAGMENT vduz1=pduc1_derefidx_vbuaa +tay +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 +lda {c1}+2,y +sta {z1}+2 +lda {c1}+3,y +sta {z1}+3 +//FRAGMENT vduz1=pduc1_derefidx_vbuxx +lda {c1},x +sta {z1} +lda {c1}+1,x +sta {z1}+1 +lda {c1}+2,x +sta {z1}+2 +lda {c1}+3,x +sta {z1}+3 +//FRAGMENT vduz1=pduc1_derefidx_vbuyy +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 +lda {c1}+2,y +sta {z1}+2 +lda {c1}+3,y +sta {z1}+3 +//FRAGMENT vduz1=pduc1_derefidx_vbuzz +tza +tay +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 +lda {c1}+2,y +sta {z1}+2 +lda {c1}+3,y +sta {z1}+3 +//FRAGMENT _deref_pbuz1=vbuxx +txa +ldy #0 +sta ({z1}),y +//FRAGMENT _deref_pbuz1=vbuyy +tya +ldy #0 +sta ({z1}),y +//FRAGMENT _deref_pbuz1=vbuzz +tza +ldy #0 +sta ({z1}),y +//FRAGMENT _deref_pbuz1=vbuaa +ldy #0 +sta ({z1}),y +//FRAGMENT vbuaa_le_vbuc1_then_la1 +cmp #{c1} +bcc {la1} +beq {la1} +//FRAGMENT vbuaa=vbuaa_plus_vbuc1 +clc +adc #{c1} +//FRAGMENT vbuxx=vbuxx_plus_vbuc1 +txa +clc +adc #{c1} +tax +//FRAGMENT vbuyy=vbuyy_plus_vbuc1 +tya +clc +adc #{c1} +tay +//FRAGMENT vbuzz=vbuzz_plus_vbuc1 +tza +clc +adc #{c1} +taz +//FRAGMENT vbuaa_ge_vbuz1_then_la1 +cmp {z1} +bcs {la1} +//FRAGMENT vbuz1=vbuxx +stx {z1} +//FRAGMENT vbuz1=vbuz1_minus_vbuaa +eor #$ff +sec +adc {z1} +sta {z1} +//FRAGMENT vbuz1=vbuz1_minus_vbuxx +txa +eor #$ff +sec +adc {z1} +sta {z1} +//FRAGMENT vbuz1=vbuz1_minus_vbuyy +tya +eor #$ff +sec +adc {z1} +sta {z1} +//FRAGMENT vbuz1=vbuz1_minus_vbuzz +tza +eor #$ff +sec +adc {z1} +sta {z1} +//FRAGMENT vbuxx_lt_vbuc1_then_la1 +cpx #{c1} +bcc {la1} +//FRAGMENT vbuz1=vbuxx_minus_1 +dex +stx {z1} +//FRAGMENT vbuz1=vbuyy_minus_1 +tya +sec +sbc #1 +sta {z1} +//FRAGMENT vbuxx_le_vbuz1_then_la1 +lda {z1} +stx $ff +cmp $ff +bcs {la1} +//FRAGMENT vbuyy_le_vbuz1_then_la1 +lda {z1} +sty $ff +cmp $ff +bcs {la1} +//FRAGMENT vbuzz_le_vbuz1_then_la1 +ldy {z1} +tza +sta $ff +cpy $ff +bcs {la1} +//FRAGMENT vbuz1_le_vbuaa_then_la1 +cmp {z1} +bcs {la1} +//FRAGMENT vbuxx_ge_vbuz1_then_la1 +cpx {z1} +bcs {la1} +//FRAGMENT vbuzz=vbuz1 +ldz {z1} +//FRAGMENT vbuz1=vbuzz +stz {z1} +//FRAGMENT vbuzz_ge_vbuz1_then_la1 +cpz {z1} +bcs {la1} +//FRAGMENT vbuxx=vbuc1 +ldx #{c1} +//FRAGMENT vbuxx=_inc_vbuxx +inx +//FRAGMENT vbuyy=vbuc1 +ldy #{c1} +//FRAGMENT vbuyy=_inc_vbuyy +iny +//FRAGMENT vbuz1_ge_vbuxx_then_la1 +lda {z1} +stx $ff +cmp $ff +bcs {la1} +//FRAGMENT vbuzz_ge_vbuxx_then_la1 +stx $ff +cpz $ff +bcs {la1} +//FRAGMENT vbuyy=vbuz1 +ldy {z1} +//FRAGMENT vbuz1_ge_vbuyy_then_la1 +lda {z1} +sty $ff +cmp $ff +bcs {la1} +//FRAGMENT vbuxx_ge_vbuyy_then_la1 +sty $ff +cpx $ff +bcs {la1} +//FRAGMENT vbuzz_ge_vbuyy_then_la1 +sty $ff +cpz $ff +bcs {la1} +//FRAGMENT vbuz1_ge_vbuzz_then_la1 +ldy {z1} +tza +sta $ff +cpy $ff +bcs {la1} +//FRAGMENT vbuxx_ge_vbuzz_then_la1 +tza +tay +sty $ff +cpx $ff +bcs {la1} +//FRAGMENT vbuaa=vbuxx +txa +//FRAGMENT vbuaa=vbuzz +tza +//FRAGMENT vbuxx=vbuzz +tza +tax +//FRAGMENT vbuxx_le_vbuc1_then_la1 +cpx #{c1} +bcc {la1} +beq {la1} +//FRAGMENT vbuz1=vbuyy +sty {z1} +//FRAGMENT vbuyy_lt_vbuc1_then_la1 +cpy #{c1} +bcc {la1} +//FRAGMENT vbuyy_le_vbuc1_then_la1 +cpy #{c1} +bcc {la1} +beq {la1} +//FRAGMENT vbuzz_le_vbuc1_then_la1 +cpz #{c1} +bcc {la1} +beq {la1} +//FRAGMENT vbuaa=vbuyy +tya +//FRAGMENT vbuxx=vbuaa +tax +//FRAGMENT vbuxx=vbuyy +tya +tax +//FRAGMENT vbuyy=vbuaa +tay +//FRAGMENT vbuyy=vbuxx +txa +tay +//FRAGMENT vbuyy=vbuzz +tza +tay +//FRAGMENT vbuzz=vbuaa +taz +//FRAGMENT vbuzz=vbuxx +txa +taz +//FRAGMENT vbuzz=vbuyy +tya +taz +//FRAGMENT vbuyy_ge_vbuz1_then_la1 +cpy {z1} +bcs {la1} +//FRAGMENT vbuaa=vbuc1 +lda #{c1} +//FRAGMENT 0_neq_vbuyy_then_la1 +cpy #0 +bne {la1} +//FRAGMENT 0_neq_vbuzz_then_la1 +cpz #0 +bne {la1} +//FRAGMENT vbuyy_ge_vbuxx_then_la1 +stx $ff +cpy $ff +bcs {la1} +//FRAGMENT vbsxx=_inc_vbsxx +inx +//FRAGMENT vbsyy=_sbyte_vwuz1 +ldy {z1} +//FRAGMENT vbsyy=_inc_vbsyy +iny +//FRAGMENT vbszz=_sbyte_vwuz1 +ldz {z1} +//FRAGMENT vbszz=_inc_vbszz +inz +//FRAGMENT 0_eq_vbuzz_then_la1 +cpz #0 +beq {la1} +//FRAGMENT vbuz1_neq_vbuxx_then_la1 +cpx {z1} +bne {la1} +//FRAGMENT vbuz1_neq_vbuyy_then_la1 +cpy {z1} +bne {la1} +//FRAGMENT vbuz1_neq_vbuzz_then_la1 +cpz {z1} +bne {la1} +//FRAGMENT vbuxx_neq_vbuz1_then_la1 +cpx {z1} +bne {la1} +//FRAGMENT vbuxx_neq_vbuaa_then_la1 +tay +stx $ff +cpy $ff +bne {la1} +//FRAGMENT vbuxx_neq_vbuyy_then_la1 +stx $ff +cpy $ff +bne {la1} +//FRAGMENT vbuxx_neq_vbuzz_then_la1 +tza +tay +stx $ff +cpy $ff +bne {la1} +//FRAGMENT vbuyy_neq_vbuz1_then_la1 +cpy {z1} +bne {la1} +//FRAGMENT vbuyy_neq_vbuaa_then_la1 +tax +stx $ff +cpy $ff +bne {la1} +//FRAGMENT vbuyy_neq_vbuxx_then_la1 +stx $ff +cpy $ff +bne {la1} +//FRAGMENT vbuyy_neq_vbuzz_then_la1 +tza +tax +stx $ff +cpy $ff +bne {la1} +//FRAGMENT vbuzz_neq_vbuz1_then_la1 +cpz {z1} +bne {la1} +//FRAGMENT vbuzz_neq_vbuaa_then_la1 +tax +tza +tay +stx $ff +cpy $ff +bne {la1} +//FRAGMENT vbuzz_neq_vbuxx_then_la1 +tza +tay +stx $ff +cpy $ff +bne {la1} +//FRAGMENT vbuzz_neq_vbuyy_then_la1 +tza +tax +stx $ff +cpy $ff +bne {la1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx +lda {c1},x +sta {z1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy +lda {c1},y +sta {z1} +//FRAGMENT vbuyy_lt_vbuz1_then_la1 +cpy {z1} +bcc {la1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuzz +tza +tay +lda {c1},y +sta {z1} +//FRAGMENT vbuzz_lt_vbuz1_then_la1 +cpz {z1} +bcc {la1} +//FRAGMENT vbuaa=vbuz1_minus_1 +lda {z1} +sec +sbc #1 +//FRAGMENT 0_eq_vbuyy_then_la1 +cpy #0 +beq {la1} +//FRAGMENT vbuyy=_deref_pbuc1 +ldy {c1} +//FRAGMENT vbuzz=_deref_pbuc1 +ldz {c1} +//FRAGMENT vbuxx_eq_vbuc1_then_la1 +cpx #{c1} +beq {la1} +//FRAGMENT vbuyy_eq_vbuc1_then_la1 +cpy #{c1} +beq {la1} +//FRAGMENT vbuzz_eq_vbuc1_then_la1 +cpz #{c1} +beq {la1} +//FRAGMENT vbuyy_le_vbuaa_then_la1 +sty $ff +cmp $ff +bcs {la1} +//FRAGMENT vbuxx=vbuz1_minus_1 +ldx {z1} +dex +//FRAGMENT vbuyy_le_vbuxx_then_la1 +sty $ff +cpx $ff +bcs {la1} +//FRAGMENT vbuzz=vbuz1_minus_1 +lda {z1} +taz +dez +//FRAGMENT vbuyy_le_vbuzz_then_la1 +sty $ff +cpz $ff +bcs {la1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy +lda {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy +ldx {c1},y +//FRAGMENT vbuzz=pbuc1_derefidx_vbuyy +lda {c1},y +taz +//FRAGMENT vbuaa_lt_vbuzz_then_la1 +stz $ff +cmp $ff +bcc {la1} +//FRAGMENT vbuxx=vbuzz_minus_1 +tza +tax +dex +//FRAGMENT vbuyy_lt_vbuzz_then_la1 +stz $ff +cpy $ff +bcc {la1} +//FRAGMENT vbuyy=_byte_vwuz1 +ldy {z1} +//FRAGMENT vbuzz=_byte_vwuz1 +lda {z1} +taz +//FRAGMENT vwuz1=vwuz2_plus_vwuz1 +clc +lda {z1} +adc {z2} +sta {z1} +lda {z1}+1 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT pbuz1=pbuc1_plus_vwuz1 +lda {z1} +clc +adc #<{c1} +sta {z1} +lda {z1}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vwuz1=vwuz1_rol_3 +asw {z1} +asw {z1} +asw {z1} diff --git a/src/main/fragment/cache/fragment-cache-mos6502x.asm b/src/main/fragment/cache/fragment-cache-mos6502x.asm index 567c61424..8bfaf2020 100644 --- a/src/main/fragment/cache/fragment-cache-mos6502x.asm +++ b/src/main/fragment/cache/fragment-cache-mos6502x.asm @@ -20108,3 +20108,3549 @@ txa sec sbc #{c1} tay +//FRAGMENT vbsaa=vbsz1_minus_vbsaa +eor #$ff +sec +adc {z1} +//FRAGMENT vbsaa=vbsxx_minus_vbsaa +sta $ff +txa +sec +sbc $ff +//FRAGMENT vbsaa=vbsyy_minus_vbsaa +sta $ff +tya +sec +sbc $ff +//FRAGMENT vbsxx=vbsz1_minus_vbsaa +eor #$ff +sec +adc {z1} +tax +//FRAGMENT vbsxx=vbsxx_minus_vbsaa +sta $ff +txa +sec +sbc $ff +tax +//FRAGMENT vbsxx=vbsyy_minus_vbsaa +sta $ff +tya +sec +sbc $ff +tax +//FRAGMENT vbsyy=vbsz1_minus_vbsaa +eor #$ff +sec +adc {z1} +tay +//FRAGMENT vbsyy=vbsxx_minus_vbsaa +sta $ff +txa +sec +sbc $ff +tay +//FRAGMENT vbsyy=vbsyy_minus_vbsaa +sta $ff +tya +sec +sbc $ff +tay +//FRAGMENT pwsz1=pwsc1_plus_vwuz2 +lda {z2} +clc +adc #<{c1} +sta {z1} +lda {z2}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vwuz1=vwuz2_minus_vwuc1 +sec +lda {z2} +sbc #<{c1} +sta {z1} +lda {z2}+1 +sbc #>{c1} +sta {z1}+1 +//FRAGMENT vbsz1=_sbyte_vwsz2 +lda {z2} +sta {z1} +//FRAGMENT vbsaa=_sbyte_vwsz1 +lda {z1} +//FRAGMENT vbsxx=_sbyte_vwsz1 +lda {z1} +tax +//FRAGMENT vbsyy=_sbyte_vwsz1 +lda {z1} +tay +//FRAGMENT pwsz1=pwsc1_plus_vwuz1 +lda {z1} +clc +adc #<{c1} +sta {z1} +lda {z1}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vwsz1=vwsz1_minus_vwsc1 +lda {z1} +sec +sbc #<{c1} +sta {z1} +lda {z1}+1 +sbc #>{c1} +sta {z1}+1 +//FRAGMENT vbsz1=pbsc1_derefidx_vbuz2_minus_pbsc2_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sec +sbc {c2},y +sta {z1} +//FRAGMENT pbsz1=pbsc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT _deref_pbsz1=vbsz2 +lda {z2} +ldy #0 +sta ({z1}),y +//FRAGMENT pbsz1=_inc_pbsz1 +inc {z1} +bne !+ +inc {z1}+1 +!: +//FRAGMENT vbsaa=pbsc1_derefidx_vbuz1_minus_pbsc2_derefidx_vbuz1 +ldy {z1} +lda {c1},y +sec +sbc {c2},y +//FRAGMENT vbsxx=pbsc1_derefidx_vbuz1_minus_pbsc2_derefidx_vbuz1 +ldx {z1} +lda {c1},x +sec +sbc {c2},x +tax +//FRAGMENT vbsyy=pbsc1_derefidx_vbuz1_minus_pbsc2_derefidx_vbuz1 +ldy {z1} +lda {c1},y +sec +sbc {c2},y +tay +//FRAGMENT vbsz1=pbsc1_derefidx_vbuaa_minus_pbsc2_derefidx_vbuaa +tay +lda {c1},y +sec +sbc {c2},y +sta {z1} +//FRAGMENT vbsaa=pbsc1_derefidx_vbuaa_minus_pbsc2_derefidx_vbuaa +tay +lda {c1},y +sec +sbc {c2},y +//FRAGMENT vbsxx=pbsc1_derefidx_vbuaa_minus_pbsc2_derefidx_vbuaa +tax +lda {c1},x +sec +sbc {c2},x +tax +//FRAGMENT vbsyy=pbsc1_derefidx_vbuaa_minus_pbsc2_derefidx_vbuaa +tay +lda {c1},y +sec +sbc {c2},y +tay +//FRAGMENT vbsz1=pbsc1_derefidx_vbuxx_minus_pbsc2_derefidx_vbuxx +lda {c1},x +sec +sbc {c2},x +sta {z1} +//FRAGMENT vbsaa=pbsc1_derefidx_vbuxx_minus_pbsc2_derefidx_vbuxx +lda {c1},x +sec +sbc {c2},x +//FRAGMENT vbsxx=pbsc1_derefidx_vbuxx_minus_pbsc2_derefidx_vbuxx +lda {c1},x +sec +sbc {c2},x +tax +//FRAGMENT vbsyy=pbsc1_derefidx_vbuxx_minus_pbsc2_derefidx_vbuxx +lda {c1},x +sec +sbc {c2},x +tay +//FRAGMENT vbsz1=pbsc1_derefidx_vbuyy_minus_pbsc2_derefidx_vbuyy +lda {c1},y +sec +sbc {c2},y +sta {z1} +//FRAGMENT vbsaa=pbsc1_derefidx_vbuyy_minus_pbsc2_derefidx_vbuyy +lda {c1},y +sec +sbc {c2},y +//FRAGMENT vbsxx=pbsc1_derefidx_vbuyy_minus_pbsc2_derefidx_vbuyy +lda {c1},y +sec +sbc {c2},y +tax +//FRAGMENT vbsyy=pbsc1_derefidx_vbuyy_minus_pbsc2_derefidx_vbuyy +lda {c1},y +sec +sbc {c2},y +tay +//FRAGMENT _deref_pbsz1=vbsaa +ldy #0 +sta ({z1}),y +//FRAGMENT _deref_pbsz1=vbsxx +txa +ldy #0 +sta ({z1}),y +//FRAGMENT _deref_pbsz1=vbsyy +tya +ldy #0 +sta ({z1}),y +//FRAGMENT vbum1=vbum2_plus_1 +ldy {m2} +iny +sty {m1} +//FRAGMENT vbum1=vbum2_band_vbuc1 +lda #{c1} +and {m2} +sta {m1} +//FRAGMENT 0_neq_vbum1_then_la1 +lda {m1} +bne {la1} +//FRAGMENT vbuz1=vbum2_plus_1 +ldy {m2} +iny +sty {z1} +//FRAGMENT vbum1=vbuz2 +lda {z2} +sta {m1} +//FRAGMENT vbum1_eq_0_then_la1 +lda {m1} +beq {la1} +//FRAGMENT vbum1_eq_vbuc1_then_la1 +lda #{c1} +cmp {m1} +beq {la1} +//FRAGMENT vbum1=vbuz2_minus_1 +ldx {z2} +dex +stx {m1} +//FRAGMENT vbuz1=vbum2_ror_2 +lda {m2} +lsr +lsr +sta {z1} +//FRAGMENT vbum1=vbuz2_bor_vbum3 +lda {m3} +ora {z2} +sta {m1} +//FRAGMENT vbuz1=vbum2_band_vbuc1 +lda #{c1} +and {m2} +sta {z1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbum2_plus_vbuz3 +lda {z3} +ldy {m2} +clc +adc {c1},y +sta {z1} +//FRAGMENT vbum1=vbuz2_bor_vbuz3 +lda {z2} +ora {z3} +sta {m1} +//FRAGMENT vbum1=pbuc1_derefidx_vbum2_plus_vbum3 +lda {m3} +ldy {m2} +clc +adc {c1},y +sta {m1} +//FRAGMENT 0_eq_vbum1_then_la1 +lda {m1} +beq {la1} +//FRAGMENT vbum1=vbuz2_ror_1 +lda {z2} +lsr +sta {m1} +//FRAGMENT pbum1=pbuc1_plus_pwuc2_derefidx_vbum2 +ldy {m2} +clc +lda #<{c1} +adc {c2},y +sta {m1} +lda #>{c1} +adc {c2}+1,y +sta {m1}+1 +//FRAGMENT vbum1=pbum2_derefidx_vbum3 +ldy {m3} +lda {m2} +sta $fe +lda {m2}+1 +sta $ff +lda ($fe),y +sta {m1} +//FRAGMENT pbuc1_derefidx_vbum1_eq_vbuc2_then_la1 +ldy {m1} +lda {c1},y +cmp #{c2} +beq {la1} +//FRAGMENT pbuc1_derefidx_vbum1_neq_vbuc2_then_la1 +lda #{c2} +ldy {m1} +cmp {c1},y +bne {la1} +//FRAGMENT pbum1_derefidx_vbum2=vbuc1 +lda #{c1} +ldy {m2} +sty $fd +ldy {m1} +sty $fe +ldy {m1}+1 +sty $ff +ldy $fd +sta ($fe),y +//FRAGMENT vbum1=vbum2_ror_1 +lda {m2} +lsr +sta {m1} +//FRAGMENT pbum1=pbum2_plus_vbum3 +lda {m3} +clc +adc {m2} +sta {m1} +lda #0 +adc {m2}+1 +sta {m1}+1 +//FRAGMENT vbum1=vbuz2_minus_vbuz3 +lda {z2} +sec +sbc {z3} +sta {m1} +//FRAGMENT pbuc1_derefidx_vbum1_ge_vbuc2_then_la1 +ldy {m1} +lda {c1},y +cmp #{c2} +bcs {la1} +//FRAGMENT pbuc1_derefidx_vbum1_lt_vbuc2_then_la1 +ldy {m1} +lda {c1},y +cmp #{c2} +bcc {la1} +//FRAGMENT vwum1=_dec_vwum1 +lda {m1} +bne !+ +dec {m1}+1 +!: +dec {m1} +//FRAGMENT vwum1_neq_0_then_la1 +lda {m1} +ora {m1}+1 +bne {la1} +//FRAGMENT vbum1=vbum2_band_pbuc1_derefidx_vbuz3 +lda {m2} +ldy {z3} +and {c1},y +sta {m1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {z1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuz1 +ldy {z1} +lda {c1},y +sta {z1} +//FRAGMENT vbum1=_deref_pbuc1_band_vbuc2 +lda #{c2} +and {c1} +sta {m1} +//FRAGMENT vbum1=vbum2_bxor_vbuc1 +lda #{c1} +eor {m2} +sta {m1} +//FRAGMENT vbum1=vbum2_rol_2 +lda {m2} +asl +asl +sta {m1} +//FRAGMENT vbum1=vbum2_band_vbum3 +lda {m2} +and {m3} +sta {m1} +//FRAGMENT vbum1=pbuc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {m1} +//FRAGMENT vbuz1=vbuz1_band_vbum2 +lda {m2} +and {z1} +sta {z1} +//FRAGMENT _deref_pbuc1=pbuc2_derefidx_vbum1 +ldy {m1} +lda {c2},y +sta {c1} +//FRAGMENT pvom1=pvoc1 +lda #<{c1} +sta {m1} +lda #>{c1} +sta {m1}+1 +//FRAGMENT vwum1=vwuz2 +lda {z2} +sta {m1} +lda {z2}+1 +sta {m1}+1 +//FRAGMENT pbuz1=pbuc1_plus_pwuc2_derefidx_vbuz2 +ldy {z2} +clc +lda #<{c1} +adc {c2},y +sta {z1} +lda #>{c1} +adc {c2}+1,y +sta {z1}+1 +//FRAGMENT vbuz1=pbuc1_derefidx_vbum2_plus_pbuc2_derefidx_vbum3 +ldy {m2} +lda {c1},y +ldy {m3} +clc +adc {c2},y +sta {z1} +//FRAGMENT pbuz1=pbum2_plus_vwuz3 +lda {m2} +clc +adc {z3} +sta {z1} +lda {m2}+1 +adc {z3}+1 +sta {z1}+1 +//FRAGMENT pbuz1=qbuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 +//FRAGMENT pwuz1=pwuz2_plus_vwuz3 +lda {z2} +clc +adc {z3} +sta {z1} +lda {z2}+1 +adc {z3}+1 +sta {z1}+1 +//FRAGMENT pbuz1=pbuz2_plus__deref_pwuz3 +ldy #0 +clc +lda {z2} +adc ({z3}),y +sta {z1} +iny +lda {z2}+1 +adc ({z3}),y +sta {z1}+1 +//FRAGMENT vwuz1=pbuz2_derefidx_vbuc1_word__deref_pbuz2 +ldy #{c1} +lda ({z2}),y +sta {z1}+1 +ldy #0 +lda ({z2}),y +sta {z1} +//FRAGMENT pbuz1=pbuz1_plus_pbuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+1 +!: +//FRAGMENT vbuz1=pbuz2_derefidx_vbuz3_bor_pbuz4_derefidx_vbuz3 +ldy {z3} +lda ({z2}),y +ora ({z4}),y +sta {z1} +//FRAGMENT vbuaa=vbum1_plus_1 +lda {m1} +clc +adc #1 +//FRAGMENT vbum1=vbuaa_band_vbuc1 +and #{c1} +sta {m1} +//FRAGMENT vbum1=vbuxx_band_vbuc1 +lda #{c1} +sax {m1} +//FRAGMENT vbum1=vbuyy_band_vbuc1 +tya +and #{c1} +sta {m1} +//FRAGMENT vbuaa=vbum1_band_vbuc1 +lda #{c1} +and {m1} +//FRAGMENT vbuxx=vbum1_band_vbuc1 +lda #{c1} +and {m1} +tax +//FRAGMENT vbuaa=vbuz1_bor_vbum2 +lda {m2} +ora {z1} +//FRAGMENT vbuxx=vbuz1_bor_vbum2 +lda {m2} +ora {z1} +tax +//FRAGMENT vbuyy=vbuz1_bor_vbum2 +lda {m2} +ora {z1} +tay +//FRAGMENT vbuyy=vbum1_band_vbuc1 +lda #{c1} +and {m1} +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_vbuz2 +lda {c1},x +clc +adc {z2} +sta {z1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_vbuz2 +lda {c1},y +clc +adc {z2} +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbum1_plus_vbuz2 +lda {z2} +ldy {m1} +clc +adc {c1},y +//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_vbuz1 +lda {c1},x +clc +adc {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_vbuz1 +lda {c1},y +clc +adc {z1} +//FRAGMENT vbuxx=pbuc1_derefidx_vbum1_plus_vbuz2 +lda {z2} +ldx {m1} +clc +adc {c1},x +tax +//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_vbuz1 +lda {c1},x +clc +adc {z1} +tax +//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_vbuz1 +lda {c1},y +clc +adc {z1} +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbum1_plus_vbuz2 +lda {z2} +ldy {m1} +clc +adc {c1},y +tay +//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_vbuz1 +lda {c1},x +clc +adc {z1} +tay +//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_vbuz1 +lda {c1},y +clc +adc {z1} +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbum2_plus_vbuaa +ldy {m2} +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_vbuaa +clc +adc {c1},x +sta {z1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_vbuaa +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbum1_plus_vbuaa +ldy {m1} +clc +adc {c1},y +//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_vbuaa +clc +adc {c1},x +//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_vbuaa +clc +adc {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbum1_plus_vbuaa +ldx {m1} +clc +adc {c1},x +tax +//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_vbuaa +clc +adc {c1},x +tax +//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_vbuaa +clc +adc {c1},y +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbum1_plus_vbuaa +ldy {m1} +clc +adc {c1},y +tay +//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_vbuaa +clc +adc {c1},x +tay +//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_vbuaa +clc +adc {c1},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbum2_plus_vbuxx +ldy {m2} +txa +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_vbuxx +txa +clc +adc {c1},x +sta {z1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_vbuxx +txa +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbum1_plus_vbuxx +ldy {m1} +txa +clc +adc {c1},y +//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_vbuxx +txa +clc +adc {c1},x +//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_vbuxx +txa +clc +adc {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbum1_plus_vbuxx +txa +ldx {m1} +clc +adc {c1},x +tax +//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_vbuxx +txa +clc +adc {c1},x +tax +//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_vbuxx +txa +clc +adc {c1},y +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbum1_plus_vbuxx +ldy {m1} +txa +clc +adc {c1},y +tay +//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_vbuxx +txa +clc +adc {c1},x +tay +//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_vbuxx +txa +clc +adc {c1},y +tay +//FRAGMENT vbuz1=pbuc1_derefidx_vbum2_plus_vbuyy +tya +ldy {m2} +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_vbuyy +tya +clc +adc {c1},x +sta {z1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_vbuyy +tya +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbum1_plus_vbuyy +tya +ldy {m1} +clc +adc {c1},y +//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_vbuyy +tya +clc +adc {c1},x +//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_vbuyy +tya +clc +adc {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbum1_plus_vbuyy +ldx {m1} +tya +clc +adc {c1},x +tax +//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_vbuyy +tya +clc +adc {c1},x +tax +//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_vbuyy +tya +clc +adc {c1},y +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbum1_plus_vbuyy +tya +ldy {m1} +clc +adc {c1},y +tay +//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_vbuyy +tya +clc +adc {c1},x +tay +//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_vbuyy +tya +clc +adc {c1},y +tay +//FRAGMENT vbum1=vbuz2_bor_vbuxx +txa +ora {z2} +sta {m1} +//FRAGMENT vbum1=vbuz2_bor_vbuyy +tya +ora {z2} +sta {m1} +//FRAGMENT vbum1=pbuc1_derefidx_vbuxx_plus_vbum2 +lda {c1},x +clc +adc {m2} +sta {m1} +//FRAGMENT vbum1=pbuc1_derefidx_vbuyy_plus_vbum2 +lda {c1},y +clc +adc {m2} +sta {m1} +//FRAGMENT vbum1=pbuc1_derefidx_vbum2_plus_vbuaa +ldy {m2} +clc +adc {c1},y +sta {m1} +//FRAGMENT vbum1=pbuc1_derefidx_vbuxx_plus_vbuaa +clc +adc {c1},x +sta {m1} +//FRAGMENT vbum1=pbuc1_derefidx_vbuyy_plus_vbuaa +clc +adc {c1},y +sta {m1} +//FRAGMENT vbum1=pbuc1_derefidx_vbum2_plus_vbuxx +ldy {m2} +txa +clc +adc {c1},y +sta {m1} +//FRAGMENT vbum1=pbuc1_derefidx_vbuxx_plus_vbuxx +txa +clc +adc {c1},x +sta {m1} +//FRAGMENT vbum1=pbuc1_derefidx_vbuyy_plus_vbuxx +txa +clc +adc {c1},y +sta {m1} +//FRAGMENT vbum1=pbuc1_derefidx_vbum2_plus_vbuyy +tya +ldy {m2} +clc +adc {c1},y +sta {m1} +//FRAGMENT vbum1=pbuc1_derefidx_vbuxx_plus_vbuyy +tya +clc +adc {c1},x +sta {m1} +//FRAGMENT vbum1=pbuc1_derefidx_vbuyy_plus_vbuyy +tya +clc +adc {c1},y +sta {m1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbum1_plus_vbum2 +lda {m2} +ldy {m1} +clc +adc {c1},y +//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_vbum1 +lda {c1},x +clc +adc {m1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_vbum1 +lda {c1},y +clc +adc {m1} +//FRAGMENT vbuxx=pbuc1_derefidx_vbum1_plus_vbum2 +lda {m2} +ldx {m1} +clc +adc {c1},x +tax +//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_vbum1 +lda {c1},x +clc +adc {m1} +tax +//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_vbum1 +lda {c1},y +clc +adc {m1} +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbum1_plus_vbum2 +lda {m2} +ldy {m1} +clc +adc {c1},y +tay +//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_vbum1 +lda {c1},x +clc +adc {m1} +tay +//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_vbum1 +lda {c1},y +clc +adc {m1} +tay +//FRAGMENT pbum1=pbuc1_plus_pwuc2_derefidx_vbuaa +tay +clc +lda #<{c1} +adc {c2},y +sta {m1} +lda #>{c1} +adc {c2}+1,y +sta {m1}+1 +//FRAGMENT pbum1=pbuc1_plus_pwuc2_derefidx_vbuxx +txa +tay +clc +lda #<{c1} +adc {c2},y +sta {m1} +lda #>{c1} +adc {c2}+1,y +sta {m1}+1 +//FRAGMENT pbum1=pbuc1_plus_pwuc2_derefidx_vbuyy +clc +lda #<{c1} +adc {c2},y +sta {m1} +lda #>{c1} +adc {c2}+1,y +sta {m1}+1 +//FRAGMENT vbuaa=pbum1_derefidx_vbum2 +ldy {m2} +lda {m1} +sta $fe +lda {m1}+1 +sta $ff +lda ($fe),y +//FRAGMENT vbuxx=pbum1_derefidx_vbum2 +ldy {m2} +lda {m1} +sta $fe +lda {m1}+1 +sta $ff +lda ($fe),y +tax +//FRAGMENT vbuyy=pbum1_derefidx_vbum2 +ldy {m2} +lda {m1} +sta $fe +lda {m1}+1 +sta $ff +lda ($fe),y +tay +//FRAGMENT vbum1=pbum2_derefidx_vbuxx +txa +tay +lda {m2} +sta $fe +lda {m2}+1 +sta $ff +lda ($fe),y +sta {m1} +//FRAGMENT vbuaa=pbum1_derefidx_vbuxx +txa +tay +lda {m1} +sta $fe +lda {m1}+1 +sta $ff +lda ($fe),y +//FRAGMENT vbuxx=pbum1_derefidx_vbuxx +txa +tay +lda {m1} +sta $fe +lda {m1}+1 +sta $ff +lda ($fe),y +tax +//FRAGMENT vbuyy=pbum1_derefidx_vbuxx +txa +tay +lda {m1} +sta $fe +lda {m1}+1 +sta $ff +lda ($fe),y +tay +//FRAGMENT vbum1=pbum2_derefidx_vbuyy +lda {m2} +sta $fe +lda {m2}+1 +sta $ff +lda ($fe),y +sta {m1} +//FRAGMENT vbuaa=pbum1_derefidx_vbuyy +lda {m1} +sta $fe +lda {m1}+1 +sta $ff +lda ($fe),y +//FRAGMENT vbuxx=pbum1_derefidx_vbuyy +lda {m1} +sta $fe +lda {m1}+1 +sta $ff +lda ($fe),y +tax +//FRAGMENT vbuyy=pbum1_derefidx_vbuyy +lda {m1} +sta $fe +lda {m1}+1 +sta $ff +lda ($fe),y +tay +//FRAGMENT pbum1_derefidx_vbuxx=vbuc1 +txa +tay +lda #{c1} +sty $fd +ldy {m1} +sty $fe +ldy {m1}+1 +sty $ff +ldy $fd +sta ($fe),y +//FRAGMENT pbum1_derefidx_vbuyy=vbuc1 +lda #{c1} +sty $fd +ldy {m1} +sty $fe +ldy {m1}+1 +sty $ff +ldy $fd +sta ($fe),y +//FRAGMENT vbuaa=vbum1_ror_1 +lda {m1} +lsr +//FRAGMENT vbuxx=vbum1_ror_1 +lda {m1} +lsr +tax +//FRAGMENT vbuyy=vbum1_ror_1 +lda {m1} +lsr +tay +//FRAGMENT vbum1=vbuxx_ror_1 +txa +lsr +sta {m1} +//FRAGMENT pbum1=pbum2_plus_vbuaa +clc +adc {m2} +sta {m1} +lda #0 +adc {m2}+1 +sta {m1}+1 +//FRAGMENT pbum1=pbum2_plus_vbuxx +txa +clc +adc {m2} +sta {m1} +lda #0 +adc {m2}+1 +sta {m1}+1 +//FRAGMENT pbum1=pbum2_plus_vbuyy +tya +clc +adc {m2} +sta {m1} +lda #0 +adc {m2}+1 +sta {m1}+1 +//FRAGMENT pbuc1_derefidx_vbuxx_ge_vbuc2_then_la1 +lda {c1},x +cmp #{c2} +bcs {la1} +//FRAGMENT pbuc1_derefidx_vbuyy_ge_vbuc2_then_la1 +lda {c1},y +cmp #{c2} +bcs {la1} +//FRAGMENT pbuc1_derefidx_vbuxx_lt_vbuc2_then_la1 +lda {c1},x +cmp #{c2} +bcc {la1} +//FRAGMENT pbuc1_derefidx_vbuyy_lt_vbuc2_then_la1 +lda {c1},y +cmp #{c2} +bcc {la1} +//FRAGMENT vbum1=vbuaa_band_pbuc1_derefidx_vbuz2 +ldy {z2} +and {c1},y +sta {m1} +//FRAGMENT vbum1=vbuxx_band_pbuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sax {m1} +//FRAGMENT vbum1=vbuyy_band_pbuc1_derefidx_vbuz2 +tya +ldy {z2} +and {c1},y +sta {m1} +//FRAGMENT vbuaa=vbum1_band_pbuc1_derefidx_vbuz2 +lda {m1} +ldy {z2} +and {c1},y +//FRAGMENT vbuxx=vbum1_band_pbuc1_derefidx_vbuz2 +lda {m1} +ldx {z2} +and {c1},x +tax +//FRAGMENT vbuyy=vbum1_band_pbuc1_derefidx_vbuz2 +lda {m1} +ldy {z2} +and {c1},y +tay +//FRAGMENT vbum1=vbuaa_bxor_vbuc1 +eor #{c1} +sta {m1} +//FRAGMENT vbum1=vbuxx_bxor_vbuc1 +txa +eor #{c1} +sta {m1} +//FRAGMENT vbum1=vbuyy_bxor_vbuc1 +tya +eor #{c1} +sta {m1} +//FRAGMENT vbuaa=vbum1_bxor_vbuc1 +lda #{c1} +eor {m1} +//FRAGMENT vbuxx=vbum1_bxor_vbuc1 +lda #{c1} +eor {m1} +tax +//FRAGMENT vbuyy=vbum1_bxor_vbuc1 +lda #{c1} +eor {m1} +tay +//FRAGMENT vbum1=vbuaa_rol_2 +asl +asl +sta {m1} +//FRAGMENT vbum1=vbuxx_rol_2 +txa +asl +asl +sta {m1} +//FRAGMENT vbum1=vbuyy_rol_2 +tya +asl +asl +sta {m1} +//FRAGMENT vbuaa=vbum1_rol_2 +lda {m1} +asl +asl +//FRAGMENT vbuxx=vbum1_rol_2 +lda {m1} +asl +asl +tax +//FRAGMENT vbuyy=vbum1_rol_2 +lda {m1} +asl +asl +tay +//FRAGMENT vbum1=vbuaa_band_vbum2 +and {m2} +sta {m1} +//FRAGMENT vbum1=vbuxx_band_vbum2 +lda {m2} +sax {m1} +//FRAGMENT vbum1=vbuyy_band_vbum2 +tya +and {m2} +sta {m1} +//FRAGMENT vbum1=vbum2_band_vbuxx +lda {m2} +sax {m1} +//FRAGMENT vbum1=vbuaa_band_vbuxx +sax {m1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbum1 +ldy {m1} +lda {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbum1 +ldy {m1} +ldx {c1},y +//FRAGMENT vbuyy=pbuc1_derefidx_vbum1 +ldx {m1} +ldy {c1},x +//FRAGMENT vbum1=pbuc1_derefidx_vbuaa +tay +lda {c1},y +sta {m1} +//FRAGMENT vbum1=pbuc1_derefidx_vbuxx +lda {c1},x +sta {m1} +//FRAGMENT vbuz1=vbuz1_band_vbuxx +lda {z1} +sax {z1} +//FRAGMENT vbuz1=vbuz1_band_vbuyy +tya +and {z1} +sta {z1} +//FRAGMENT pbuc1_derefidx_vbuyy=_byte_vwuz1 +lda {z1} +sta {c1},y +//FRAGMENT pbuz1=pbuc1_plus_pwuc2_derefidx_vbuaa +tay +clc +lda #<{c1} +adc {c2},y +sta {z1} +lda #>{c1} +adc {c2}+1,y +sta {z1}+1 +//FRAGMENT pbuz1=pbuc1_plus_pwuc2_derefidx_vbuxx +txa +tay +clc +lda #<{c1} +adc {c2},y +sta {z1} +lda #>{c1} +adc {c2}+1,y +sta {z1}+1 +//FRAGMENT pbuz1=pbuc1_plus_pwuc2_derefidx_vbuyy +clc +lda #<{c1} +adc {c2},y +sta {z1} +lda #>{c1} +adc {c2}+1,y +sta {z1}+1 +//FRAGMENT vbum1=vbuz2_minus_vbuaa +eor #$ff +sec +adc {z2} +sta {m1} +//FRAGMENT vbum1=vbuz2_minus_vbuxx +txa +eor #$ff +sec +adc {z2} +sta {m1} +//FRAGMENT vbum1=vbuz2_minus_vbuyy +tya +eor #$ff +sec +adc {z2} +sta {m1} +//FRAGMENT vbum1=vbuaa_minus_vbuz2 +sec +sbc {z2} +sta {m1} +//FRAGMENT vbum1=vbuaa_minus_vbuaa +lda #0 +sta {m1} +//FRAGMENT vbum1=vbuaa_minus_vbuxx +stx $ff +sec +sbc $ff +sta {m1} +//FRAGMENT vbum1=vbuaa_minus_vbuyy +sty $ff +sec +sbc $ff +sta {m1} +//FRAGMENT vbum1=vbuxx_minus_vbuz2 +txa +sec +sbc {z2} +sta {m1} +//FRAGMENT vbum1=vbuxx_minus_vbuaa +sta $ff +txa +sec +sbc $ff +sta {m1} +//FRAGMENT vbum1=vbuxx_minus_vbuxx +lda #0 +sta {m1} +//FRAGMENT vbum1=vbuxx_minus_vbuyy +txa +sty $ff +sec +sbc $ff +sta {m1} +//FRAGMENT vbum1=vbuyy_minus_vbuz2 +tya +sec +sbc {z2} +sta {m1} +//FRAGMENT vbum1=vbuyy_minus_vbuaa +sta $ff +tya +sec +sbc $ff +sta {m1} +//FRAGMENT vbum1=vbuyy_minus_vbuxx +tya +stx $ff +sec +sbc $ff +sta {m1} +//FRAGMENT vbum1=vbuyy_minus_vbuyy +lda #0 +sta {m1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbum2_plus_pbuc2_derefidx_vbuxx +lda {c2},x +ldy {m2} +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbum2_plus_pbuc2_derefidx_vbuyy +lda {c2},y +ldy {m2} +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbum2 +lda {c1},x +ldy {m2} +clc +adc {c2},y +sta {z1} +//FRAGMENT vbuz1=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbum2 +lda {c1},y +ldy {m2} +clc +adc {c2},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbum1_plus_pbuc2_derefidx_vbum2 +ldy {m1} +lda {c1},y +ldy {m2} +clc +adc {c2},y +//FRAGMENT vbuaa=pbuc1_derefidx_vbum1_plus_pbuc2_derefidx_vbuxx +lda {c2},x +ldy {m1} +clc +adc {c1},y +//FRAGMENT vbuaa=pbuc1_derefidx_vbum1_plus_pbuc2_derefidx_vbuyy +lda {c2},y +ldy {m1} +clc +adc {c1},y +//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbum1 +lda {c1},x +ldy {m1} +clc +adc {c2},y +//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbum1 +lda {c1},y +ldy {m1} +clc +adc {c2},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbum1_plus_pbuc2_derefidx_vbum2 +ldx {m1} +lda {c1},x +ldx {m2} +clc +adc {c2},x +tax +//FRAGMENT vbuxx=pbuc1_derefidx_vbum1_plus_pbuc2_derefidx_vbuxx +lda {c2},x +ldx {m1} +clc +adc {c1},x +tax +//FRAGMENT vbuxx=pbuc1_derefidx_vbum1_plus_pbuc2_derefidx_vbuyy +lda {c2},y +ldx {m1} +clc +adc {c1},x +tax +//FRAGMENT vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbum1 +lda {c1},x +ldx {m1} +clc +adc {c2},x +tax +//FRAGMENT vbuxx=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbum1 +lda {c1},y +ldx {m1} +clc +adc {c2},x +tax +//FRAGMENT vbuyy=pbuc1_derefidx_vbum1_plus_pbuc2_derefidx_vbum2 +ldy {m1} +lda {c1},y +ldy {m2} +clc +adc {c2},y +tay +//FRAGMENT vbuyy=pbuc1_derefidx_vbum1_plus_pbuc2_derefidx_vbuxx +lda {c2},x +ldy {m1} +clc +adc {c1},y +tay +//FRAGMENT vbuyy=pbuc1_derefidx_vbum1_plus_pbuc2_derefidx_vbuyy +lda {c2},y +ldy {m1} +clc +adc {c1},y +tay +//FRAGMENT vbuyy=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbum1 +lda {c1},x +ldy {m1} +clc +adc {c2},y +tay +//FRAGMENT vbuyy=pbuc1_derefidx_vbuyy_plus_pbuc2_derefidx_vbum1 +lda {c1},y +ldy {m1} +clc +adc {c2},y +tay +//FRAGMENT pbuz1=qbuc1_derefidx_vbuaa +tay +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 +//FRAGMENT pbuz1=qbuc1_derefidx_vbuxx +lda {c1},x +sta {z1} +lda {c1}+1,x +sta {z1}+1 +//FRAGMENT pbuz1=qbuc1_derefidx_vbuyy +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 +//FRAGMENT vbuz1=vbuaa_plus_pbuc1_derefidx_vbuz2 +ldy {z2} +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuz1=vbuaa_plus_pbuc1_derefidx_vbuxx +clc +adc {c1},x +sta {z1} +//FRAGMENT vbuz1=vbuaa_plus_pbuc1_derefidx_vbuyy +clc +adc {c1},y +sta {z1} +//FRAGMENT vbuaa=vbuaa_plus_pbuc1_derefidx_vbuz1 +ldy {z1} +clc +adc {c1},y +//FRAGMENT vbuaa=vbuaa_plus_pbuc1_derefidx_vbuxx +clc +adc {c1},x +//FRAGMENT vbuaa=vbuaa_plus_pbuc1_derefidx_vbuyy +clc +adc {c1},y +//FRAGMENT vbuxx=vbuaa_plus_pbuc1_derefidx_vbuz1 +ldx {z1} +clc +adc {c1},x +tax +//FRAGMENT vbuxx=vbuaa_plus_pbuc1_derefidx_vbuxx +clc +adc {c1},x +tax +//FRAGMENT vbuxx=vbuaa_plus_pbuc1_derefidx_vbuyy +clc +adc {c1},y +tax +//FRAGMENT vbuyy=vbuaa_plus_pbuc1_derefidx_vbuz1 +ldy {z1} +clc +adc {c1},y +tay +//FRAGMENT vbuyy=vbuaa_plus_pbuc1_derefidx_vbuxx +clc +adc {c1},x +tay +//FRAGMENT vbuyy=vbuaa_plus_pbuc1_derefidx_vbuyy +clc +adc {c1},y +tay +//FRAGMENT pbuz1=pbuz1_plus_pbuc1_derefidx_vbuxx +lda {c1},x +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+1 +!: +//FRAGMENT pbuz1=pbuz1_plus_pbuc1_derefidx_vbuyy +lda {c1},y +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+1 +!: +//FRAGMENT vbuz1=pbuz2_derefidx_vbuaa_bor_pbuz3_derefidx_vbuaa +tay +lda ({z2}),y +ora ({z3}),y +sta {z1} +//FRAGMENT vbuz1=pbuz2_derefidx_vbuxx_bor_pbuz3_derefidx_vbuxx +txa +tay +lda ({z2}),y +ora ({z3}),y +sta {z1} +//FRAGMENT vbuz1=pbuz2_derefidx_vbuyy_bor_pbuz3_derefidx_vbuyy +lda ({z2}),y +ora ({z3}),y +sta {z1} +//FRAGMENT vbuaa=pbuz1_derefidx_vbuz2_bor_pbuz3_derefidx_vbuz2 +ldy {z2} +lda ({z1}),y +ora ({z3}),y +//FRAGMENT vbuaa=pbuz1_derefidx_vbuaa_bor_pbuz2_derefidx_vbuaa +tay +lda ({z1}),y +ora ({z2}),y +//FRAGMENT vbuaa=pbuz1_derefidx_vbuxx_bor_pbuz2_derefidx_vbuxx +txa +tay +lda ({z1}),y +ora ({z2}),y +//FRAGMENT vbuaa=pbuz1_derefidx_vbuyy_bor_pbuz2_derefidx_vbuyy +lda ({z1}),y +ora ({z2}),y +//FRAGMENT vbuxx=pbuz1_derefidx_vbuz2_bor_pbuz3_derefidx_vbuz2 +ldy {z2} +lda ({z1}),y +ora ({z3}),y +tax +//FRAGMENT vbuxx=pbuz1_derefidx_vbuaa_bor_pbuz2_derefidx_vbuaa +tay +lda ({z1}),y +ora ({z2}),y +tax +//FRAGMENT vbuxx=pbuz1_derefidx_vbuxx_bor_pbuz2_derefidx_vbuxx +txa +tay +lda ({z1}),y +ora ({z2}),y +tax +//FRAGMENT vbuxx=pbuz1_derefidx_vbuyy_bor_pbuz2_derefidx_vbuyy +lda ({z1}),y +ora ({z2}),y +tax +//FRAGMENT vbuyy=pbuz1_derefidx_vbuz2_bor_pbuz3_derefidx_vbuz2 +ldy {z2} +lda ({z1}),y +ora ({z3}),y +tay +//FRAGMENT vbuyy=pbuz1_derefidx_vbuaa_bor_pbuz2_derefidx_vbuaa +tay +lda ({z1}),y +ora ({z2}),y +tay +//FRAGMENT vbuyy=pbuz1_derefidx_vbuxx_bor_pbuz2_derefidx_vbuxx +txa +tay +lda ({z1}),y +ora ({z2}),y +tay +//FRAGMENT vbuyy=pbuz1_derefidx_vbuyy_bor_pbuz2_derefidx_vbuyy +lda ({z1}),y +ora ({z2}),y +tay +//FRAGMENT vbuxx=vbuyy_minus_1 +tya +tax +dex +//FRAGMENT vbuaa=vbuxx_minus_1 +txa +sec +sbc #1 +//FRAGMENT vbuyy=vbuxx_minus_1 +txa +tay +dey +//FRAGMENT vbuxx=vbum1_plus_1 +ldx {m1} +inx +//FRAGMENT vbuyy=vbum1_plus_1 +ldy {m1} +iny +//FRAGMENT vbuaa=vbuyy_minus_1 +tya +sec +sbc #1 +//FRAGMENT vbuaa=vbum1_band_vbum2 +lda {m1} +and {m2} +//FRAGMENT vbuxx=vbum1_band_vbum2 +lda {m1} +and {m2} +tax +//FRAGMENT vbuyy=vbum1_band_vbum2 +lda {m1} +and {m2} +tay +//FRAGMENT vbum1=pbuc1_derefidx_vbuyy +lda {c1},y +sta {m1} +//FRAGMENT vbuaa=vbuaa_band_vbum1 +and {m1} +//FRAGMENT vbuaa=vbuxx_band_vbum1 +txa +and {m1} +//FRAGMENT vbuaa=vbuyy_band_vbum1 +tya +and {m1} +//FRAGMENT vbuaa=vbuaa_band_vbuxx +stx $ff +and $ff +//FRAGMENT vbuaa=vbuaa_band_vbuyy +sty $ff +and $ff +//FRAGMENT pbuz1=pbum2_plus_vwuz1 +clc +lda {z1} +adc {m2} +sta {z1} +lda {z1}+1 +adc {m2}+1 +sta {z1}+1 +//FRAGMENT pbum1=pbum1_plus_vbuaa +clc +adc {m1} +sta {m1} +bcc !+ +inc {m1}+1 +!: +//FRAGMENT pbuz1=pbuz2_plus__deref_pwuz1 +ldy #0 +clc +lda ({z1}),y +adc {z2} +pha +iny +lda ({z1}),y +adc {z2}+1 +sta {z1}+1 +pla +sta {z1} +//FRAGMENT pwuz1=pwuz2_plus_vwuz1 +clc +lda {z1} +adc {z2} +sta {z1} +lda {z1}+1 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT vwuz1=vwuc1_plus_pbuc2_derefidx_vbuz2 +ldy {z2} +lda {c2},y +clc +adc #<{c1} +sta {z1} +lda #>{c1} +adc #0 +sta {z1}+1 +//FRAGMENT pbuz1_derefidx_vbuz2=_byte_vwuz3 +lda {z3} +ldy {z2} +sta ({z1}),y +//FRAGMENT vwuz1=vwuc1_plus_pbuc2_derefidx_vbuaa +tay +lda {c2},y +clc +adc #<{c1} +sta {z1} +lda #>{c1} +adc #0 +sta {z1}+1 +//FRAGMENT vwuz1=vwuc1_plus_pbuc2_derefidx_vbuxx +lda {c2},x +clc +adc #<{c1} +sta {z1} +lda #>{c1} +adc #0 +sta {z1}+1 +//FRAGMENT vwuz1=vwuc1_plus_pbuc2_derefidx_vbuyy +lda {c2},y +clc +adc #<{c1} +sta {z1} +lda #>{c1} +adc #0 +sta {z1}+1 +//FRAGMENT pbuz1_derefidx_vbuxx=_byte_vwuz2 +txa +tay +lda {z2} +sta ({z1}),y +//FRAGMENT pbuz1_derefidx_vbuyy=_byte_vwuz2 +lda {z2} +sta ({z1}),y +//FRAGMENT vbuz1=vbuz1_bor_vbuaa +ora {z1} +sta {z1} +//FRAGMENT vbuxx_neq_vbuaa_then_la1 +tay +stx $ff +cpy $ff +bne {la1} +//FRAGMENT vbuyy_neq_vbuaa_then_la1 +tax +stx $ff +cpy $ff +bne {la1} +//FRAGMENT vwuz1=_deref_pbuz2_word__deref_pbuz3 +ldy #0 +lda ({z3}),y +sta {z1} +lda ({z2}),y +sta {z1}+1 +//FRAGMENT vbuz1=vbuz2_minus_2 +lda {z2} +sec +sbc #2 +sta {z1} +//FRAGMENT vbuxx=vbuz1_minus_2 +ldx {z1} +dex +dex +//FRAGMENT pprm1=pprc1 +lda #<{c1} +sta {m1} +lda #>{c1} +sta {m1}+1 +//FRAGMENT vwum1=vwum2 +lda {m2} +sta {m1} +lda {m2}+1 +sta {m1}+1 +//FRAGMENT call__deref_pprm1 +jsr {la1} +{la1}: @outside_flow +jmp ({m1}) @outside_flow +//FRAGMENT vwum1=vwum2_plus_vbuc1 +lda #{c1} +clc +adc {m2} +sta {m1} +lda #0 +adc {m2}+1 +sta {m1}+1 +//FRAGMENT vwum1=vwum2_rol_6 +lda {m2}+1 +lsr +sta $ff +lda {m2} +ror +sta {m1}+1 +lda #0 +ror +sta {m1} +lsr $ff +ror {m1}+1 +ror {m1} +//FRAGMENT vwum1=vwum2_minus_vbuc1 +sec +lda {m2} +sbc #{c1} +sta {m1} +lda {m2}+1 +sbc #0 +sta {m1}+1 +//FRAGMENT pvom1=pvom2 +lda {m2} +sta {m1} +lda {m2}+1 +sta {m1}+1 +//FRAGMENT pvoz1=pvom2 +lda {m2} +sta {z1} +lda {m2}+1 +sta {z1}+1 +//FRAGMENT pbum1=pbum2_plus_vwum3 +lda {m2} +clc +adc {m3} +sta {m1} +lda {m2}+1 +adc {m3}+1 +sta {m1}+1 +//FRAGMENT vdum1=vwum2_rol_3 +lda {m2} +asl +sta {m1} +lda {m2}+1 +rol +sta {m1}+1 +lda #0 +sta {m1}+3 +rol +sta {m1}+2 +asl {m1} +rol {m1}+1 +rol {m1}+2 +rol {m1}+3 +asl {m1} +rol {m1}+1 +rol {m1}+2 +rol {m1}+3 +//FRAGMENT vwsm1_lt_vwum2_then_la1 +lda {m1}+1 +bmi {la1} +cmp {m2}+1 +bcc {la1} +bne !+ +lda {m1} +cmp {m2} +bcc {la1} +!: +//FRAGMENT pbum1=pbum2_plus_vwsm3 +lda {m2} +clc +adc {m3} +sta {m1} +lda {m2}+1 +adc {m3}+1 +sta {m1}+1 +//FRAGMENT vdum1=vdum1_plus_vdum2 +clc +lda {m1} +adc {m2} +sta {m1} +lda {m1}+1 +adc {m2}+1 +sta {m1}+1 +lda {m1}+2 +adc {m2}+2 +sta {m1}+2 +lda {m1}+3 +adc {m2}+3 +sta {m1}+3 +//FRAGMENT vwsm1=vwsm1_plus_vbsc1 +lda {m1} +clc +adc #<{c1} +sta {m1} +lda {m1}+1 +adc #>{c1} +sta {m1}+1 +//FRAGMENT vbum1=vbum2_ror_4 +lda {m2} +lsr +lsr +lsr +lsr +sta {m1} +//FRAGMENT vbum1=vbuz2_rol_2 +lda {z2} +asl +asl +sta {m1} +//FRAGMENT vduz1=pdum2_derefidx_vbum3 +NO_SYNTHESIS +//FRAGMENT vduz1=pduc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 +lda {c1}+2,y +sta {z1}+2 +lda {c1}+3,y +sta {z1}+3 +//FRAGMENT vdum1=vdum2_plus_vdum3 +lda {m2} +clc +adc {m3} +sta {m1} +lda {m2}+1 +adc {m3}+1 +sta {m1}+1 +lda {m2}+2 +adc {m3}+2 +sta {m1}+2 +lda {m2}+3 +adc {m3}+3 +sta {m1}+3 +//FRAGMENT vdum1=vdum2_plus_pduc1_derefidx_vbum3 +ldy {m3} +clc +lda {m2} +adc {c1},y +sta {m1} +lda {m2}+1 +adc {c1}+1,y +sta {m1}+1 +lda {m2}+2 +adc {c1}+2,y +sta {m1}+2 +lda {m2}+3 +adc {c1}+3,y +sta {m1}+3 +//FRAGMENT vdum1=vdum2_plus_pdum3_derefidx_vbum4 +NO_SYNTHESIS +//FRAGMENT vdum1=_bnot_vdum2 +lda {m2} +eor #$ff +sta {m1} +lda {m2}+1 +eor #$ff +sta {m1}+1 +lda {m2}+2 +eor #$ff +sta {m1}+2 +lda {m2}+3 +eor #$ff +sta {m1}+3 +//FRAGMENT vdum1=vdum2_bor_vdum3 +lda {m2} +ora {m3} +sta {m1} +lda {m2}+1 +ora {m3}+1 +sta {m1}+1 +lda {m2}+2 +ora {m3}+2 +sta {m1}+2 +lda {m2}+3 +ora {m3}+3 +sta {m1}+3 +//FRAGMENT vdum1=vdum2_bxor_vdum3 +lda {m2} +eor {m3} +sta {m1} +lda {m2}+1 +eor {m3}+1 +sta {m1}+1 +lda {m2}+2 +eor {m3}+2 +sta {m1}+2 +lda {m2}+3 +eor {m3}+3 +sta {m1}+3 +//FRAGMENT vwuz1=vwum2_plus_vbuc1 +lda #{c1} +clc +adc {m2} +sta {z1} +lda #0 +adc {m2}+1 +sta {z1}+1 +//FRAGMENT vdum1=vdum2_band_vdum3 +lda {m2} +and {m3} +sta {m1} +lda {m2}+1 +and {m3}+1 +sta {m1}+1 +lda {m2}+2 +and {m3}+2 +sta {m1}+2 +lda {m2}+3 +and {m3}+3 +sta {m1}+3 +//FRAGMENT vdum1=_deref_pduc1 +lda {c1} +sta {m1} +lda {c1}+1 +sta {m1}+1 +lda {c1}+2 +sta {m1}+2 +lda {c1}+3 +sta {m1}+3 +//FRAGMENT vwuz1=_word_vbum2 +lda {m2} +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwum1=vwuz2_plus_vwuz3 +lda {z2} +clc +adc {z3} +sta {m1} +lda {z2}+1 +adc {z3}+1 +sta {m1}+1 +//FRAGMENT vwuz1=vwuz2_band_vbuc1 +lda #{c1} +and {z2} +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vbum1=vwuz2_band_vbuc1 +lda #{c1} +and {z2} +sta {m1} +//FRAGMENT pbum1=pbuc1_minus_vwum2 +sec +lda #<{c1} +sbc {m2} +sta {m1} +lda #>{c1} +sbc {m2}+1 +sta {m1}+1 +//FRAGMENT vbuaa=vbum1_ror_4 +lda {m1} +lsr +lsr +lsr +lsr +//FRAGMENT vbuxx=vbum1_ror_4 +lda {m1} +lsr +lsr +lsr +lsr +tax +//FRAGMENT vbuyy=vbum1_ror_4 +lda {m1} +lsr +lsr +lsr +lsr +tay +//FRAGMENT vdum1=vdum2_bxor_vdum1 +lda {m1} +eor {m2} +sta {m1} +lda {m1}+1 +eor {m2}+1 +sta {m1}+1 +lda {m1}+2 +eor {m2}+2 +sta {m1}+2 +lda {m1}+3 +eor {m2}+3 +sta {m1}+3 +//FRAGMENT vdum1=vdum1_bxor_vdum2 +lda {m1} +eor {m2} +sta {m1} +lda {m1}+1 +eor {m2}+1 +sta {m1}+1 +lda {m1}+2 +eor {m2}+2 +sta {m1}+2 +lda {m1}+3 +eor {m2}+3 +sta {m1}+3 +//FRAGMENT vdum1=vdum1_bor_vdum2 +lda {m2} +ora {m1} +sta {m1} +lda {m2}+1 +ora {m1}+1 +sta {m1}+1 +lda {m2}+2 +ora {m1}+2 +sta {m1}+2 +lda {m2}+3 +ora {m1}+3 +sta {m1}+3 +//FRAGMENT vwuz1=vwuz1_band_vbuc1 +lda #{c1} +and {z1} +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwum1=vwum1_rol_6 +lda {m1}+1 +lsr +sta $ff +lda {m1} +ror +sta {m1}+1 +lda #0 +ror +sta {m1} +lsr $ff +ror {m1}+1 +ror {m1} +//FRAGMENT vdum1=vdum1_plus_pdum2_derefidx_vbum3 +NO_SYNTHESIS +//FRAGMENT vdum1=vdum1_band_vdum2 +lda {m1} +and {m2} +sta {m1} +lda {m1}+1 +and {m2}+1 +sta {m1}+1 +lda {m1}+2 +and {m2}+2 +sta {m1}+2 +lda {m1}+3 +and {m2}+3 +sta {m1}+3 +//FRAGMENT vdum1=vdum1_plus_pduc1_derefidx_vbum2 +ldy {m2} +clc +lda {m1} +adc {c1},y +sta {m1} +lda {m1}+1 +adc {c1}+1,y +sta {m1}+1 +lda {m1}+2 +adc {c1}+2,y +sta {m1}+2 +lda {m1}+3 +adc {c1}+3,y +sta {m1}+3 +//FRAGMENT vdum1=vdum2_bor_vdum1 +lda {m2} +ora {m1} +sta {m1} +lda {m2}+1 +ora {m1}+1 +sta {m1}+1 +lda {m2}+2 +ora {m1}+2 +sta {m1}+2 +lda {m2}+3 +ora {m1}+3 +sta {m1}+3 +//FRAGMENT vwum1=vwum1_plus_1 +inc {m1} +bne !+ +inc {m1}+1 +!: +//FRAGMENT vdum1=vdum2_plus_vdum1 +clc +lda {m1} +adc {m2} +sta {m1} +lda {m1}+1 +adc {m2}+1 +sta {m1}+1 +lda {m1}+2 +adc {m2}+2 +sta {m1}+2 +lda {m1}+3 +adc {m2}+3 +sta {m1}+3 +//FRAGMENT vwum1=vwum1_minus_vbuc1 +sec +lda {m1} +sbc #{c1} +sta {m1} +lda {m1}+1 +sbc #0 +sta {m1}+1 +//FRAGMENT vwuz1=vwuz1_rol_6 +lda {z1}+1 +lsr +sta $ff +lda {z1} +ror +sta {z1}+1 +lda #0 +ror +sta {z1} +lsr $ff +ror {z1}+1 +ror {z1} +//FRAGMENT vduz1=vwuz2_rol_3 +lda {z2} +asl +sta {z1} +lda {z2}+1 +rol +sta {z1}+1 +lda #0 +sta {z1}+3 +rol +sta {z1}+2 +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +//FRAGMENT vwsz1_lt_vwuz2_then_la1 +lda {z1}+1 +bmi {la1} +cmp {z2}+1 +bcc {la1} +bne !+ +lda {z1} +cmp {z2} +bcc {la1} +!: +//FRAGMENT vduz1=pduz2_derefidx_vbuz3 +ldy {z3} +lda ({z2}),y +sta {z1} +iny +lda ({z2}),y +sta {z1}+1 +iny +lda ({z2}),y +sta {z1}+2 +iny +lda ({z2}),y +sta {z1}+3 +//FRAGMENT vduz1=vduz1_plus_pduc1_derefidx_vbuz2 +ldy {z2} +clc +lda {z1} +adc {c1},y +sta {z1} +lda {z1}+1 +adc {c1}+1,y +sta {z1}+1 +lda {z1}+2 +adc {c1}+2,y +sta {z1}+2 +lda {z1}+3 +adc {c1}+3,y +sta {z1}+3 +//FRAGMENT vduz1=vduz1_plus_pduz2_derefidx_vbuz3 +ldy {z3} +lda {z1} +clc +adc ({z2}),y +sta {z1} +iny +lda {z1}+1 +adc ({z2}),y +sta {z1}+1 +iny +lda {z1}+2 +adc ({z2}),y +sta {z1}+2 +iny +lda {z1}+3 +adc ({z2}),y +sta {z1}+3 +//FRAGMENT vduz1=vduz2_plus_vduz1 +clc +lda {z1} +adc {z2} +sta {z1} +lda {z1}+1 +adc {z2}+1 +sta {z1}+1 +lda {z1}+2 +adc {z2}+2 +sta {z1}+2 +lda {z1}+3 +adc {z2}+3 +sta {z1}+3 +//FRAGMENT vduz1=_bnot_vduz2 +lda {z2} +eor #$ff +sta {z1} +lda {z2}+1 +eor #$ff +sta {z1}+1 +lda {z2}+2 +eor #$ff +sta {z1}+2 +lda {z2}+3 +eor #$ff +sta {z1}+3 +//FRAGMENT vduz1=vduz2_bor_vduz1 +lda {z2} +ora {z1} +sta {z1} +lda {z2}+1 +ora {z1}+1 +sta {z1}+1 +lda {z2}+2 +ora {z1}+2 +sta {z1}+2 +lda {z2}+3 +ora {z1}+3 +sta {z1}+3 +//FRAGMENT vduz1=vduz2_bxor_vduz1 +lda {z1} +eor {z2} +sta {z1} +lda {z1}+1 +eor {z2}+1 +sta {z1}+1 +lda {z1}+2 +eor {z2}+2 +sta {z1}+2 +lda {z1}+3 +eor {z2}+3 +sta {z1}+3 +//FRAGMENT vduz1=vduz2_bxor_vduz3 +lda {z2} +eor {z3} +sta {z1} +lda {z2}+1 +eor {z3}+1 +sta {z1}+1 +lda {z2}+2 +eor {z3}+2 +sta {z1}+2 +lda {z2}+3 +eor {z3}+3 +sta {z1}+3 +//FRAGMENT vduz1=vduz1_bxor_vduz2 +lda {z1} +eor {z2} +sta {z1} +lda {z1}+1 +eor {z2}+1 +sta {z1}+1 +lda {z1}+2 +eor {z2}+2 +sta {z1}+2 +lda {z1}+3 +eor {z2}+3 +sta {z1}+3 +//FRAGMENT vduz1=vduz2_band_vduz3 +lda {z2} +and {z3} +sta {z1} +lda {z2}+1 +and {z3}+1 +sta {z1}+1 +lda {z2}+2 +and {z3}+2 +sta {z1}+2 +lda {z2}+3 +and {z3}+3 +sta {z1}+3 +//FRAGMENT vduz1=vduz1_band_vduz2 +lda {z1} +and {z2} +sta {z1} +lda {z1}+1 +and {z2}+1 +sta {z1}+1 +lda {z1}+2 +and {z2}+2 +sta {z1}+2 +lda {z1}+3 +and {z2}+3 +sta {z1}+3 +//FRAGMENT vduz1=vduz1_bor_vduz2 +lda {z2} +ora {z1} +sta {z1} +lda {z2}+1 +ora {z1}+1 +sta {z1}+1 +lda {z2}+2 +ora {z1}+2 +sta {z1}+2 +lda {z2}+3 +ora {z1}+3 +sta {z1}+3 +//FRAGMENT pbuz1=pbuc1_minus_vwuz2 +sec +lda #<{c1} +sbc {z2} +sta {z1} +lda #>{c1} +sbc {z2}+1 +sta {z1}+1 +//FRAGMENT pbuc1_derefidx_vbum1=pbuc2_derefidx_vbum1 +ldy {m1} +lda {c2},y +sta {c1},y +//FRAGMENT pbum1_neq_pbuc1_then_la1 +lda {m1}+1 +cmp #>{c1} +bne {la1} +lda {m1} +cmp #<{c1} +bne {la1} +//FRAGMENT vbuz1=vbuz2_plus_vbum3 +lda {m3} +clc +adc {z2} +sta {z1} +//FRAGMENT vbuz1=vbum2_ror_1 +lda {m2} +lsr +sta {z1} +//FRAGMENT vbum1_neq_0_then_la1 +lda {m1} +bne {la1} +//FRAGMENT vwuz1=vwuz2_plus_vbum3 +lda {m3} +clc +adc {z2} +sta {z1} +lda #0 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT vwum1_le_0_then_la1 +lda {m1} +bne !+ +lda {m1}+1 +beq {la1} +!: +//FRAGMENT pbuz1=pbum2_plus_vwum3 +lda {m2} +clc +adc {m3} +sta {z1} +lda {m2}+1 +adc {m3}+1 +sta {z1}+1 +//FRAGMENT vbuz1=vbuaa_plus_vbum2 +clc +adc {m2} +sta {z1} +//FRAGMENT vbuz1=vbuxx_plus_vbum2 +txa +clc +adc {m2} +sta {z1} +//FRAGMENT vbuz1=vbuyy_plus_vbum2 +tya +clc +adc {m2} +sta {z1} +//FRAGMENT vbuaa=vbuz1_plus_vbum2 +lda {m2} +clc +adc {z1} +//FRAGMENT vbuxx=vbuz1_plus_vbum2 +lda {m2} +clc +adc {z1} +tax +//FRAGMENT vbuyy=vbuz1_plus_vbum2 +lda {m2} +clc +adc {z1} +tay +//FRAGMENT vbsaa=pbsc1_derefidx_vbuxx +lda {c1},x +//FRAGMENT vbsaa=pbsc1_derefidx_vbuyy +lda {c1},y +//FRAGMENT vdsz1=vdsz2_rol_4 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +lda {z2}+2 +sta {z1}+2 +lda {z2}+3 +sta {z1}+3 +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +//FRAGMENT vwuz1=vbuc1_plus_vwuz2 +lda #{c1} +clc +adc {z2} +sta {z1} +lda #0 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT vwuz1=vwuz2_minus_vwuz1 +lda {z2} +sec +sbc {z1} +sta {z1} +lda {z2}+1 +sbc {z1}+1 +sta {z1}+1 +//FRAGMENT vwuz1=vbuc1_plus_vwuz1 +lda #{c1} +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+1 +!: +//FRAGMENT vdsz1=vdsz1_rol_4 +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +//FRAGMENT vwsz1=vwsz2_ror_2 +lda {z2}+1 +cmp #$80 +ror +sta {z1}+1 +lda {z2} +ror +sta {z1} +lda {z1}+1 +cmp #$80 +ror {z1}+1 +ror {z1} +//FRAGMENT vwsz1=vbsc1_plus_vwsz2 +lda {z2} +clc +adc #<{c1} +sta {z1} +lda {z2}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vwsz1=vwsz1_plus_vbuz2 +lda {z1} +clc +adc {z2} +sta {z1} +lda {z1}+1 +adc #0 +sta {z1}+1 +//FRAGMENT vwsz1=vwsc1_plus_vwsz1 +clc +lda {z1} +adc #<{c1} +sta {z1} +lda {z1}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vwsz1=vbsc1_plus_vwsz1 +lda {z1} +clc +adc #<{c1} +sta {z1} +lda {z1}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vbsz1_le_0_then_la1 +lda {z1} +cmp #1 +bmi {la1} +//FRAGMENT vwsz1=vwsz1_minus_vbsz2 +lda {z2} +sta $fe +ora #$7f +bmi !+ +lda #0 +!: +sta $ff +lda {z1} +sec +sbc $fe +sta {z1} +lda {z1}+1 +sbc $ff +sta {z1}+1 +//FRAGMENT _deref_pbsc1_ge_0_then_la1 +lda {c1} +cmp #0 +bpl {la1} +//FRAGMENT vbuz1=vbuz2_minus__deref_pbuc1 +lda {z2} +sec +sbc {c1} +sta {z1} +//FRAGMENT vbsaa_le_0_then_la1 +cmp #1 +bmi {la1} +//FRAGMENT vbsaa_neq_vbsz1_then_la1 +cmp {z1} +bne {la1} +//FRAGMENT vwsz1=vwsz1_minus_vbsxx +txa +sta $fe +ora #$7f +bmi !+ +lda #0 +!: +sta $ff +lda {z1} +sec +sbc $fe +sta {z1} +lda {z1}+1 +sbc $ff +sta {z1}+1 +//FRAGMENT vwsz1=vwsz1_minus_vbsyy +tya +sta $fe +ora #$7f +bmi !+ +lda #0 +!: +sta $ff +lda {z1} +sec +sbc $fe +sta {z1} +lda {z1}+1 +sbc $ff +sta {z1}+1 +//FRAGMENT vbuaa=vbuz1_minus__deref_pbuc1 +lda {z1} +sec +sbc {c1} +//FRAGMENT vbuxx=vbuz1_minus__deref_pbuc1 +lda {z1} +sec +sbc {c1} +tax +//FRAGMENT vbuyy=vbuz1_minus__deref_pbuc1 +lda {z1} +sec +sbc {c1} +tay +//FRAGMENT vbuz1=vbuaa_minus__deref_pbuc1 +sec +sbc {c1} +sta {z1} +//FRAGMENT vbuaa=vbuaa_minus__deref_pbuc1 +sec +sbc {c1} +//FRAGMENT vbuxx=vbuaa_minus__deref_pbuc1 +sec +sbc {c1} +tax +//FRAGMENT vbuyy=vbuaa_minus__deref_pbuc1 +sec +sbc {c1} +tay +//FRAGMENT vbuz1=vbuxx_minus__deref_pbuc1 +txa +sec +sbc {c1} +sta {z1} +//FRAGMENT vbuaa=vbuxx_minus__deref_pbuc1 +txa +sec +sbc {c1} +//FRAGMENT vbuxx=vbuxx_minus__deref_pbuc1 +txa +sec +sbc {c1} +tax +//FRAGMENT vbuyy=vbuxx_minus__deref_pbuc1 +txa +sec +sbc {c1} +tay +//FRAGMENT vbuz1=vbuyy_minus__deref_pbuc1 +tya +sec +sbc {c1} +sta {z1} +//FRAGMENT vbuaa=vbuyy_minus__deref_pbuc1 +tya +sec +sbc {c1} +//FRAGMENT vbuxx=vbuyy_minus__deref_pbuc1 +tya +sec +sbc {c1} +tax +//FRAGMENT vbuyy=vbuyy_minus__deref_pbuc1 +tya +sec +sbc {c1} +tay +//FRAGMENT vbsxx_le_0_then_la1 +cpx #1 +bmi {la1} +//FRAGMENT vbsyy_neq_vbsz1_then_la1 +cpy {z1} +bne {la1} +//FRAGMENT vbsyy=_dec_vbsyy +dey +//FRAGMENT vbsyy_neq_vbsxx_then_la1 +stx $ff +cpy $ff +bne {la1} +//FRAGMENT vbsyy_le_0_then_la1 +cpy #1 +bmi {la1} +//FRAGMENT vbsz1_neq_vbsyy_then_la1 +cpy {z1} +bne {la1} +//FRAGMENT vbsxx_neq_vbsyy_then_la1 +stx $ff +cpy $ff +bne {la1} +//FRAGMENT vbuz1=pbuz2_derefidx_(pbuz3_derefidx_vbuz4)_plus_pbuz5_derefidx_(pbuz6_derefidx_vbuz4) +ldy {z4} +lda ({z6}),y +sta $ff +lda ({z3}),y +tay +lda ({z2}),y +ldy $ff +clc +adc ({z5}),y +sta {z1} +//FRAGMENT vbuz1=vbuz1_bor_pbuc1_derefidx_vbuaa +tay +lda {c1},y +ora {z1} +sta {z1} +//FRAGMENT vbuxx=vbuxx_bor_pbuc1_derefidx_vbuaa +tay +txa +ora {c1},y +tax +//FRAGMENT vbuyy=vbuyy_bor_pbuc1_derefidx_vbuaa +tax +tya +ora {c1},x +tay +//FRAGMENT vbuaa=pbuz1_derefidx_(pbuz2_derefidx_vbuz3)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuz3) +ldy {z3} +lda ({z5}),y +sta $ff +lda ({z2}),y +tay +lda ({z1}),y +ldy $ff +clc +adc ({z4}),y +//FRAGMENT vbuxx=pbuz1_derefidx_(pbuz2_derefidx_vbuz3)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuz3) +ldy {z3} +lda ({z5}),y +sta $ff +lda ({z2}),y +tay +lda ({z1}),y +ldy $ff +clc +adc ({z4}),y +tax +//FRAGMENT vbuyy=pbuz1_derefidx_(pbuz2_derefidx_vbuz3)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuz3) +ldy {z3} +lda ({z5}),y +sta $ff +lda ({z2}),y +tay +lda ({z1}),y +ldy $ff +clc +adc ({z4}),y +tay +//FRAGMENT vbuz1=pbuz2_derefidx_(pbuz3_derefidx_vbuaa)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuaa) +tay +lda ({z5}),y +sta $ff +lda ({z3}),y +tay +lda ({z2}),y +ldy $ff +clc +adc ({z4}),y +sta {z1} +//FRAGMENT vbuaa=pbuz1_derefidx_(pbuz2_derefidx_vbuaa)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuaa) +tay +lda ({z4}),y +sta $ff +lda ({z2}),y +tay +lda ({z1}),y +ldy $ff +clc +adc ({z3}),y +//FRAGMENT vbuxx=pbuz1_derefidx_(pbuz2_derefidx_vbuaa)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuaa) +tay +lda ({z4}),y +sta $ff +lda ({z2}),y +tay +lda ({z1}),y +ldy $ff +clc +adc ({z3}),y +tax +//FRAGMENT vbuyy=pbuz1_derefidx_(pbuz2_derefidx_vbuaa)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuaa) +tay +lda ({z4}),y +sta $ff +lda ({z2}),y +tay +lda ({z1}),y +ldy $ff +clc +adc ({z3}),y +tay +//FRAGMENT vbuz1=pbuz2_derefidx_(pbuz3_derefidx_vbuxx)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuxx) +txa +tay +lda ({z5}),y +sta $ff +lda ({z3}),y +tay +lda ({z2}),y +ldy $ff +clc +adc ({z4}),y +sta {z1} +//FRAGMENT vbuaa=pbuz1_derefidx_(pbuz2_derefidx_vbuxx)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuxx) +txa +tay +lda ({z4}),y +sta $ff +lda ({z2}),y +tay +lda ({z1}),y +ldy $ff +clc +adc ({z3}),y +//FRAGMENT vbuxx=pbuz1_derefidx_(pbuz2_derefidx_vbuxx)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuxx) +txa +tay +lda ({z4}),y +sta $ff +lda ({z2}),y +tay +lda ({z1}),y +ldy $ff +clc +adc ({z3}),y +tax +//FRAGMENT vbuyy=pbuz1_derefidx_(pbuz2_derefidx_vbuxx)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuxx) +txa +tay +lda ({z4}),y +sta $ff +lda ({z2}),y +tay +lda ({z1}),y +ldy $ff +clc +adc ({z3}),y +tay +//FRAGMENT vbuz1=pbuz2_derefidx_(pbuz3_derefidx_vbuyy)_plus_pbuz4_derefidx_(pbuz5_derefidx_vbuyy) +lda ({z5}),y +sta $ff +lda ({z3}),y +tay +lda ({z2}),y +ldy $ff +clc +adc ({z4}),y +sta {z1} +//FRAGMENT vbuaa=pbuz1_derefidx_(pbuz2_derefidx_vbuyy)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuyy) +lda ({z4}),y +sta $ff +lda ({z2}),y +tay +lda ({z1}),y +ldy $ff +clc +adc ({z3}),y +//FRAGMENT vbuxx=pbuz1_derefidx_(pbuz2_derefidx_vbuyy)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuyy) +lda ({z4}),y +sta $ff +lda ({z2}),y +tay +lda ({z1}),y +ldy $ff +clc +adc ({z3}),y +tax +//FRAGMENT vbuyy=pbuz1_derefidx_(pbuz2_derefidx_vbuyy)_plus_pbuz3_derefidx_(pbuz4_derefidx_vbuyy) +lda ({z4}),y +sta $ff +lda ({z2}),y +tay +lda ({z1}),y +ldy $ff +clc +adc ({z3}),y +tay +//FRAGMENT vwsz1=_deref_pwsz2_minus__deref_pwsz3 +ldy #0 +lda ({z2}),y +sec +sbc ({z3}),y +sta {z1} +iny +lda ({z2}),y +sbc ({z3}),y +sta {z1}+1 +//FRAGMENT vwsz1=vbsz2_plus_vwsc1 +lda {z2} +sta $ff +clc +adc #<{c1} +sta {z1} +lda $ff +ora #$7f +bmi !+ +lda #0 +!: +adc #>{c1} +sta {z1}+1 +//FRAGMENT vwsz1=vbsaa_plus_vwsc1 +sta $ff +clc +adc #<{c1} +sta {z1} +lda $ff +ora #$7f +bmi !+ +lda #0 +!: +adc #>{c1} +sta {z1}+1 +//FRAGMENT vwsz1=vbsxx_plus_vwsc1 +txa +sta $ff +clc +adc #<{c1} +sta {z1} +lda $ff +ora #$7f +bmi !+ +lda #0 +!: +adc #>{c1} +sta {z1}+1 +//FRAGMENT vwsz1=vbsyy_plus_vwsc1 +tya +sta $ff +clc +adc #<{c1} +sta {z1} +lda $ff +ora #$7f +bmi !+ +lda #0 +!: +adc #>{c1} +sta {z1}+1 +//FRAGMENT vduz1_eq_vduz2_then_la1 +lda {z1} +cmp {z2} +bne !+ +lda {z1}+1 +cmp {z2}+1 +bne !+ +lda {z1}+2 +cmp {z2}+2 +bne !+ +lda {z1}+3 +cmp {z2}+3 +beq {la1} +!: +//FRAGMENT vdsz1_eq_vdsz2_then_la1 +lda {z1} +cmp {z2} +bne !+ +lda {z1}+1 +cmp {z2}+1 +bne !+ +lda {z1}+2 +cmp {z2}+2 +bne !+ +lda {z1}+3 +cmp {z2}+3 +beq {la1} +!: +//FRAGMENT vdsz1=vdsz1_plus_vwsz2 +lda {z2} +clc +adc {z1} +sta {z1} +lda {z2}+1 +adc {z1}+1 +sta {z1}+1 +lda {z2}+1 +ora #$7f +bmi !+ +lda #0 +!: +sta $ff +adc {z1}+2 +sta {z1}+2 +lda $ff +adc {z1}+3 +sta {z1}+3 +//FRAGMENT vdsz1=vdsz1_minus_vwsz2 +lda {z2}+1 +ora #$7f +bmi !+ +lda #0 +!: +sta $ff +sec +lda {z1} +sbc {z2} +sta {z1} +lda {z1}+1 +sbc {z2}+1 +sta {z1}+1 +lda {z1}+2 +sbc $ff +sta {z1}+2 +lda {z1}+3 +sbc $ff +sta {z1}+3 +//FRAGMENT vwsz1=_dec_vwsz1 +lda {z1} +bne !+ +dec {z1}+1 +!: +dec {z1} +//FRAGMENT _deref_pwuc1=vbuz1 +lda {z1} +sta {c1} +lda #0 +sta {c1}+1 +//FRAGMENT _deref_pwuc1=vbuaa +sta {c1} +lda #0 +sta {c1}+1 +//FRAGMENT _deref_pwuc1=vbuxx +txa +sta {c1} +lda #0 +sta {c1}+1 +//FRAGMENT _deref_pwuc1=vbuyy +tya +sta {c1} +lda #0 +sta {c1}+1 +//FRAGMENT vwsz1=pwsc1_derefidx_vbuz2_minus_pwsc2_derefidx_vbuz2 +ldy {z2} +sec +lda {c1},y +sbc {c2},y +sta {z1} +lda {c1}+1,y +sbc {c2}+1,y +sta {z1}+1 +//FRAGMENT vwsz1=_sword_pbuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwuz1=pwuc1_derefidx_vbuz2_rol_4 +ldy {z2} +lda {c1},y +asl +sta {z1} +lda {c1}+1,y +rol +sta {z1}+1 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +//FRAGMENT pbsc1_derefidx_vbuz1=vbsc2 +lda #{c2} +ldy {z1} +sta {c1},y +//FRAGMENT vwsz1=pwsc1_derefidx_vbuaa_minus_pwsc2_derefidx_vbuaa +tay +sec +lda {c1},y +sbc {c2},y +sta {z1} +lda {c1}+1,y +sbc {c2}+1,y +sta {z1}+1 +//FRAGMENT vwsz1=pwsc1_derefidx_vbuxx_minus_pwsc2_derefidx_vbuxx +sec +lda {c1},x +sbc {c2},x +sta {z1} +lda {c1}+1,x +sbc {c2}+1,x +sta {z1}+1 +//FRAGMENT vwsz1=pwsc1_derefidx_vbuyy_minus_pwsc2_derefidx_vbuyy +sec +lda {c1},y +sbc {c2},y +sta {z1} +lda {c1}+1,y +sbc {c2}+1,y +sta {z1}+1 +//FRAGMENT vwsz1=_sword_pbuc1_derefidx_vbuxx +lda {c1},x +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwsz1=_sword_pbuc1_derefidx_vbuyy +lda {c1},y +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwuz1=pwuc1_derefidx_vbuxx_rol_4 +lda {c1},x +asl +sta {z1} +lda {c1}+1,x +rol +sta {z1}+1 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +//FRAGMENT vwuz1=pwuc1_derefidx_vbuyy_rol_4 +lda {c1},y +asl +sta {z1} +lda {c1}+1,y +rol +sta {z1}+1 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +//FRAGMENT pbsc1_derefidx_vbuxx=vbsc2 +lda #{c2} +sta {c1},x +//FRAGMENT pbsc1_derefidx_vbuyy=vbsc2 +lda #{c2} +sta {c1},y +//FRAGMENT vbuz1=vbuz2_plus__deref_pbuc1 +lda {c1} +clc +adc {z2} +sta {z1} +//FRAGMENT vbuaa=vbuz1_plus__deref_pbuc1 +lda {c1} +clc +adc {z1} +//FRAGMENT vbuxx=vbuz1_plus__deref_pbuc1 +lda {c1} +clc +adc {z1} +tax +//FRAGMENT vbuyy=vbuz1_plus__deref_pbuc1 +lda {c1} +clc +adc {z1} +tay +//FRAGMENT vbuz1=vbuaa_plus__deref_pbuc1 +clc +adc {c1} +sta {z1} +//FRAGMENT vbuaa=vbuaa_plus__deref_pbuc1 +clc +adc {c1} +//FRAGMENT vbuxx=vbuaa_plus__deref_pbuc1 +clc +adc {c1} +tax +//FRAGMENT vbuyy=vbuaa_plus__deref_pbuc1 +clc +adc {c1} +tay +//FRAGMENT vbuz1=vbuxx_plus__deref_pbuc1 +txa +clc +adc {c1} +sta {z1} +//FRAGMENT vbuaa=vbuxx_plus__deref_pbuc1 +txa +clc +adc {c1} +//FRAGMENT vbuxx=vbuxx_plus__deref_pbuc1 +txa +clc +adc {c1} +tax +//FRAGMENT vbuyy=vbuxx_plus__deref_pbuc1 +txa +clc +adc {c1} +tay +//FRAGMENT vbuz1=vbuyy_plus__deref_pbuc1 +tya +clc +adc {c1} +sta {z1} +//FRAGMENT vbuaa=vbuyy_plus__deref_pbuc1 +tya +clc +adc {c1} +//FRAGMENT vbuxx=vbuyy_plus__deref_pbuc1 +tya +clc +adc {c1} +tax +//FRAGMENT vbuyy=vbuyy_plus__deref_pbuc1 +tya +clc +adc {c1} +tay +//FRAGMENT vwuz1=pbuz2_minus_pbuc1 +sec +lda {z2} +sbc #<{c1} +sta {z1} +lda {z2}+1 +sbc #>{c1} +sta {z1}+1 +//FRAGMENT vwuc1_neq_vwuz1_then_la1 +lda {z1}+1 +cmp #>{c1} +bne {la1} +lda {z1} +cmp #<{c1} +bne {la1} +//FRAGMENT pvoc1_neq_pvoz1_then_la1 +lda {z1}+1 +cmp #>{c1} +bne {la1} +lda {z1} +cmp #<{c1} +bne {la1} +//FRAGMENT _deref_pbuz1_neq_vbuyy_then_la1 +tya +tax +ldy #0 +lda ({z1}),y +tay +stx $ff +cpy $ff +bne {la1} +//FRAGMENT vwuz1=pbuz1_minus_pbuc1 +lda {z1} +sec +sbc #<{c1} +sta {z1} +lda {z1}+1 +sbc #>{c1} +sta {z1}+1 +//FRAGMENT vduz1=vduz2_rol_0 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +lda {z2}+2 +sta {z1}+2 +lda {z2}+3 +sta {z1}+3 +//FRAGMENT vduz1=vduz2_rol_5 +lda {z2} +asl +sta {z1} +lda {z2}+1 +rol +sta {z1}+1 +lda {z2}+2 +rol +sta {z1}+2 +lda {z2}+3 +rol +sta {z1}+3 +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +//FRAGMENT vduz1=vduz2_rol_6 +lda {z2}+3 +lsr +sta $ff +lda {z2}+2 +ror +sta {z1}+3 +lda {z2}+1 +ror +sta {z1}+2 +lda {z2} +ror +sta {z1}+1 +lda #0 +ror +sta {z1} +lsr $ff +ror {z1}+3 +ror {z1}+2 +ror {z1}+1 +ror {z1} +//FRAGMENT vduz1=vduz2_rol_7 +lda {z2}+3 +lsr +lda {z2}+2 +ror +sta {z1}+3 +lda {z2}+1 +ror +sta {z1}+2 +lda {z2} +ror +sta {z1}+1 +lda #0 +ror +sta {z1} +//FRAGMENT vduz1=vduz2_rol_8 +lda #0 +sta {z1} +lda {z2} +sta {z1}+1 +lda {z2}+1 +sta {z1}+2 +lda {z2}+2 +sta {z1}+3 +//FRAGMENT vduz1=vduz2_rol_9 +lda #0 +sta {z1} +lda {z2} +asl +sta {z1}+1 +lda {z2}+1 +rol +sta {z1}+2 +lda {z2}+2 +rol +sta {z1}+3 +//FRAGMENT vduz1=vduz2_rol_vbuc1 +ldy #{c1} +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +lda {z2}+2 +sta {z1}+2 +lda {z2}+3 +sta {z1}+3 +cpy #0 +beq !e+ +!: +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +dey +bne !- +!e: +//FRAGMENT vduz1=vduz2_rol_$10 +NO_SYNTHESIS +//FRAGMENT vduz1=vduz2_rol_$18 +NO_SYNTHESIS +//FRAGMENT vduz1=vduz2_rol_$20 +NO_SYNTHESIS +//FRAGMENT vduz1=vduz2_ror_0 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +lda {z2}+2 +sta {z1}+2 +lda {z2}+3 +sta {z1}+3 +//FRAGMENT vduz1=vduz2_ror_1 +lda {z2}+3 +lsr +sta {z1}+3 +lda {z2}+2 +ror +sta {z1}+2 +lda {z2}+1 +ror +sta {z1}+1 +lda {z2} +ror +sta {z1} +//FRAGMENT vduz1=vduz2_ror_2 +lda {z2}+3 +lsr +sta {z1}+3 +lda {z2}+2 +ror +sta {z1}+2 +lda {z2}+1 +ror +sta {z1}+1 +lda {z2} +ror +sta {z1} +lsr {z1}+3 +ror {z1}+2 +ror {z1}+1 +ror {z1} +//FRAGMENT vduz1=vduz2_ror_3 +lda {z2}+3 +lsr +sta {z1}+3 +lda {z2}+2 +ror +sta {z1}+2 +lda {z2}+1 +ror +sta {z1}+1 +lda {z2} +ror +sta {z1} +lsr {z1}+3 +ror {z1}+2 +ror {z1}+1 +ror {z1} +lsr {z1}+3 +ror {z1}+2 +ror {z1}+1 +ror {z1} +//FRAGMENT vduz1=vduz2_ror_4 +lda {z2}+3 +lsr +sta {z1}+3 +lda {z2}+2 +ror +sta {z1}+2 +lda {z2}+1 +ror +sta {z1}+1 +lda {z2} +ror +sta {z1} +lsr {z1}+3 +ror {z1}+2 +ror {z1}+1 +ror {z1} +lsr {z1}+3 +ror {z1}+2 +ror {z1}+1 +ror {z1} +lsr {z1}+3 +ror {z1}+2 +ror {z1}+1 +ror {z1} +//FRAGMENT vduz1=vduz2_ror_5 +lda {z2}+3 +lsr +sta {z1}+3 +lda {z2}+2 +ror +sta {z1}+2 +lda {z2}+1 +ror +sta {z1}+1 +lda {z2} +ror +sta {z1} +lsr {z1}+3 +ror {z1}+2 +ror {z1}+1 +ror {z1} +lsr {z1}+3 +ror {z1}+2 +ror {z1}+1 +ror {z1} +lsr {z1}+3 +ror {z1}+2 +ror {z1}+1 +ror {z1} +lsr {z1}+3 +ror {z1}+2 +ror {z1}+1 +ror {z1} +//FRAGMENT vduz1=vduz2_ror_6 +lda {z2} +asl +sta $ff +lda {z2}+1 +rol +sta {z1} +lda {z2}+2 +rol +sta {z1}+1 +lda {z2}+3 +rol +sta {z1}+2 +lda #0 +rol +sta {z1}+3 +asl $ff +rol {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +//FRAGMENT vduz1=vduz2_ror_7 +lda {z2} +asl +lda {z2}+1 +rol +sta {z1} +lda {z2}+2 +rol +sta {z1}+1 +lda {z2}+3 +rol +sta {z1}+2 +lda #0 +rol +sta {z1}+3 +//FRAGMENT vduz1=vduz2_ror_8 +lda #0 +sta {z1}+3 +lda {z2}+3 +sta {z1}+2 +lda {z2}+2 +sta {z1}+1 +lda {z2}+1 +sta {z1} +//FRAGMENT vduz1=vduz2_ror_9 +lda #0 +sta {z1}+3 +lda {z2}+3 +lsr +sta {z1}+2 +lda {z2}+2 +ror +sta {z1}+1 +lda {z2}+1 +ror +sta {z1} +//FRAGMENT vduz1=vduz2_ror_vbuc1 +ldx #{c1} +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +lda {z2}+2 +sta {z1}+2 +lda {z2}+3 +sta {z1}+3 +cpx #0 +beq !e+ +!: +lsr {z1}+3 +ror {z1}+2 +ror {z1}+1 +ror {z1} +dex +bne !- +!e: +//FRAGMENT vduz1=vduz2_ror_$10 +NO_SYNTHESIS +//FRAGMENT vduz1=vduz2_ror_$18 +NO_SYNTHESIS +//FRAGMENT vduz1=vduz2_ror_$20 +NO_SYNTHESIS +//FRAGMENT vduz1=vduz2_rol_pbuc1_derefidx_vbuz3 +ldx {z3} +ldy {c1},x +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +lda {z2}+2 +sta {z1}+2 +lda {z2}+3 +sta {z1}+3 +cpy #0 +beq !e+ +!: +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +dey +bne !- +!e: +//FRAGMENT vduz1=vduz2_ror_pbuc1_derefidx_vbuz3 +ldy {z3} +ldx {c1},y +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +lda {z2}+2 +sta {z1}+2 +lda {z2}+3 +sta {z1}+3 +cpx #0 +beq !e+ +!: +lsr {z1}+3 +ror {z1}+2 +ror {z1}+1 +ror {z1} +dex +bne !- +!e: diff --git a/src/main/fragment/cache/fragment-cache-rom6502x.asm b/src/main/fragment/cache/fragment-cache-rom6502x.asm index 11cc69933..e423781d3 100644 --- a/src/main/fragment/cache/fragment-cache-rom6502x.asm +++ b/src/main/fragment/cache/fragment-cache-rom6502x.asm @@ -792,3 +792,401 @@ iny tax //FRAGMENT vbuyy=vbuaa tay +//FRAGMENT vbuz1=vbuz2_band_vbuc1 +lda #{c1} +and {z2} +sta {z1} +//FRAGMENT _deref_pbuc1=_dec__deref_pbuc1 +dec {c1} +//FRAGMENT pbuz1=pbuc1_plus_vbuz2 +lda {z2} +clc +adc #<{c1} +sta {z1} +lda #>{c1} +adc #0 +sta {z1}+1 +//FRAGMENT pvoz1=pvoz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT vbuz1=vbuz1_plus_2 +lda {z1} +clc +adc #2 +sta {z1} +//FRAGMENT vbuz1=pbuz2_derefidx_vbuc1 +ldy #{c1} +lda ({z2}),y +sta {z1} +//FRAGMENT pbuz1=pbuz2_plus_vbuc1 +lda #{c1} +clc +adc {z2} +sta {z1} +lda #0 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT pbuz1_neq_pbuc1_then_la1 +lda {z1}+1 +cmp #>{c1} +bne {la1} +lda {z1} +cmp #<{c1} +bne {la1} +//FRAGMENT _deref_pbuz1=_deref_pbuz2 +ldy #0 +lda ({z2}),y +ldy #0 +sta ({z1}),y +//FRAGMENT vbuz1=vbuaa_band_vbuc1 +and #{c1} +sta {z1} +//FRAGMENT vbuz1=vbuxx_band_vbuc1 +lda #{c1} +sax {z1} +//FRAGMENT vbuz1=vbuyy_band_vbuc1 +tya +and #{c1} +sta {z1} +//FRAGMENT vbuaa=vbuz1_band_vbuc1 +lda #{c1} +and {z1} +//FRAGMENT vbuaa=vbuaa_band_vbuc1 +and #{c1} +//FRAGMENT vbuaa=vbuxx_band_vbuc1 +txa +and #{c1} +//FRAGMENT vbuaa=vbuyy_band_vbuc1 +tya +and #{c1} +//FRAGMENT vbuxx=vbuz1_band_vbuc1 +lda #{c1} +and {z1} +tax +//FRAGMENT vbuxx=vbuaa_band_vbuc1 +ldx #{c1} +axs #0 +//FRAGMENT vbuyy=vbuz1_band_vbuc1 +lda #{c1} +and {z1} +tay +//FRAGMENT pbuz1=pbuc1_plus_vbuaa +clc +adc #<{c1} +sta {z1} +lda #>{c1} +adc #0 +sta {z1}+1 +//FRAGMENT pbuz1=pbuc1_plus_vbuxx +txa +clc +adc #<{c1} +sta {z1} +lda #>{c1} +adc #0 +sta {z1}+1 +//FRAGMENT pbuz1=pbuc1_plus_vbuyy +tya +clc +adc #<{c1} +sta {z1} +lda #>{c1} +adc #0 +sta {z1}+1 +//FRAGMENT vbuxx=vbuxx_plus_2 +inx +inx +//FRAGMENT vbuaa=pbuz1_derefidx_vbuc1 +ldy #{c1} +lda ({z1}),y +//FRAGMENT vbuxx=pbuz1_derefidx_vbuc1 +ldy #{c1} +lda ({z1}),y +tax +//FRAGMENT vbuyy=pbuz1_derefidx_vbuc1 +ldy #{c1} +lda ({z1}),y +tay +//FRAGMENT pbuz1=pbuz1_plus_vbuc1 +lda #{c1} +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+1 +!: +//FRAGMENT vbuz1=_dec_vbuz1 +dec {z1} +//FRAGMENT pbuz1=pbuz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +ldy #0 +sta ({z1}),y +//FRAGMENT pbuz1=_inc_pbuz2 +clc +lda {z2} +adc #1 +sta {z1} +lda {z2}+1 +adc #0 +sta {z1}+1 +//FRAGMENT _deref_pbuz1=vbuc1 +lda #{c1} +ldy #0 +sta ({z1}),y +//FRAGMENT vbuz1=pbuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sta {z1} +//FRAGMENT vbuz1_ge_vbuz2_then_la1 +lda {z1} +cmp {z2} +bcs {la1} +//FRAGMENT vbuz1=vbuz1_minus_vbuz2 +lda {z1} +sec +sbc {z2} +sta {z1} +//FRAGMENT vwuz1=_word_vbuz2 +lda {z2} +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwuz1=vwuz2_rol_5 +lda {z2} +asl +sta {z1} +lda {z2}+1 +rol +sta {z1}+1 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +//FRAGMENT pbuz1=pbuc1_plus_vwuz2 +lda {z2} +clc +adc #<{c1} +sta {z1} +lda {z2}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT pbuz1=pbuz2_plus_vbuz3 +lda {z3} +clc +adc {z2} +sta {z1} +lda #0 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT pbuz1=pbuz1_minus_vbuc1 +sec +lda {z1} +sbc #{c1} +sta {z1} +lda {z1}+1 +sbc #0 +sta {z1}+1 +//FRAGMENT vbuz1=_deref_pbuc1 +lda {c1} +sta {z1} +//FRAGMENT _deref_pbuz1=vbuz2 +lda {z2} +ldy #0 +sta ({z1}),y +//FRAGMENT vbuxx=vbuxx_band_vbuc1 +lda #{c1} +axs #0 +//FRAGMENT vbuyy=vbuxx_band_vbuc1 +txa +and #{c1} +tay +//FRAGMENT vbuxx=vbuyy_band_vbuc1 +ldx #{c1} +tya +axs #0 +//FRAGMENT vbuyy=vbuyy_band_vbuc1 +tya +and #{c1} +tay +//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuaa +tay +lda {c1},y +ldy #0 +sta ({z1}),y +//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuxx +lda {c1},x +ldy #0 +sta ({z1}),y +//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuyy +lda {c1},y +ldy #0 +sta ({z1}),y +//FRAGMENT vbuaa=pbuc1_derefidx_vbuz1 +ldy {z1} +lda {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuz1 +ldy {z1} +ldx {c1},y +//FRAGMENT vbuyy=pbuc1_derefidx_vbuz1 +ldx {z1} +ldy {c1},x +//FRAGMENT vbuz1=pbuc1_derefidx_vbuaa +tay +lda {c1},y +sta {z1} +//FRAGMENT vbuaa=pbuc1_derefidx_vbuaa +tay +lda {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbuaa +tay +ldx {c1},y +//FRAGMENT vbuyy=pbuc1_derefidx_vbuaa +tax +ldy {c1},x +//FRAGMENT vbuz1=pbuc1_derefidx_vbuxx +lda {c1},x +sta {z1} +//FRAGMENT 0_neq_vbuaa_then_la1 +cmp #0 +bne {la1} +//FRAGMENT vbuaa_ge_vbuz1_then_la1 +cmp {z1} +bcs {la1} +//FRAGMENT vbuxx=vbuxx_minus_vbuz1 +txa +sec +sbc {z1} +tax +//FRAGMENT vbuz1=vbuz1_minus_vbuaa +eor #$ff +sec +adc {z1} +sta {z1} +//FRAGMENT vbuxx=vbuxx_minus_vbuaa +sta $ff +txa +sec +sbc $ff +tax +//FRAGMENT vbuz1=vbuz1_minus_vbuxx +txa +eor #$ff +sec +adc {z1} +sta {z1} +//FRAGMENT vbuxx=vbuxx_minus_vbuxx +lda #0 +tax +//FRAGMENT vbuz1=vbuz1_minus_vbuyy +tya +eor #$ff +sec +adc {z1} +sta {z1} +//FRAGMENT vbuxx=vbuxx_minus_vbuyy +txa +sty $ff +sec +sbc $ff +tax +//FRAGMENT vwuz1=_word_vbuaa +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwuz1=_word_vbuxx +txa +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwuz1=_word_vbuyy +tya +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vbuaa_eq_vbuc1_then_la1 +cmp #{c1} +beq {la1} +//FRAGMENT vbuaa=_deref_pbuc1 +lda {c1} +//FRAGMENT vbuxx=_deref_pbuc1 +ldx {c1} +//FRAGMENT _deref_pbuz1=vbuaa +ldy #0 +sta ({z1}),y +//FRAGMENT _deref_pbuz1=vbuxx +txa +ldy #0 +sta ({z1}),y +//FRAGMENT _deref_pbuz1=vbuyy +tya +ldy #0 +sta ({z1}),y +//FRAGMENT vbuxx_ge_vbuz1_then_la1 +cpx {z1} +bcs {la1} +//FRAGMENT vbuxx_eq_vbuc1_then_la1 +cpx #{c1} +beq {la1} +//FRAGMENT vbuyy=_deref_pbuc1 +ldy {c1} +//FRAGMENT vbuz1_ge_vbuxx_then_la1 +lda {z1} +stx $ff +cmp $ff +bcs {la1} +//FRAGMENT vbuz1_ge_vbuyy_then_la1 +lda {z1} +sty $ff +cmp $ff +bcs {la1} +//FRAGMENT vbuxx_ge_vbuyy_then_la1 +sty $ff +cpx $ff +bcs {la1} +//FRAGMENT vbuaa=vbuxx +txa +//FRAGMENT vbuyy=vbuxx +txa +tay +//FRAGMENT vbuyy_eq_vbuc1_then_la1 +cpy #{c1} +beq {la1} +//FRAGMENT vbuaa=vbuyy +tya +//FRAGMENT vbuxx=vbuyy +tya +tax +//FRAGMENT vbuyy_ge_vbuz1_then_la1 +cpy {z1} +bcs {la1} +//FRAGMENT vwuz1=vwuz1_rol_5 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +asl {z1} +rol {z1}+1 +//FRAGMENT pbuz1=pbuc1_plus_vwuz1 +lda {z1} +clc +adc #<{c1} +sta {z1} +lda {z1}+1 +adc #>{c1} +sta {z1}+1 diff --git a/src/main/fragment/cache/fragment-cache-wdc65c02.asm b/src/main/fragment/cache/fragment-cache-wdc65c02.asm index b5226ece1..10f2181e5 100644 --- a/src/main/fragment/cache/fragment-cache-wdc65c02.asm +++ b/src/main/fragment/cache/fragment-cache-wdc65c02.asm @@ -2798,3 +2798,2784 @@ asl asl asl sta {z1} +//FRAGMENT vbum1=_stackidxbyte_vbuc1 +tsx +lda STACK_BASE+{c1},x +sta {m1} +//FRAGMENT _deref_pbuc1=vbum1 +lda {m1} +sta {c1} +//FRAGMENT 0_eq_vbum1_then_la1 +lda {m1} +beq {la1} +//FRAGMENT vwum1=_inc_vwum1 +inc {m1} +bne !+ +inc {m1}+1 +!: +//FRAGMENT vwum1_le_vwuc1_then_la1 +lda {m1}+1 +cmp #>{c1} +bne !+ +lda {m1} +cmp #<{c1} +!: +bcc {la1} +beq {la1} +//FRAGMENT vbuz1=vwum2_band_vbuc1 +lda #{c1} +and {m2} +sta {z1} +//FRAGMENT vbum1=_deref_pbuc1_ror_7 +lda {c1} +rol +rol +and #$01 +sta {m1} +//FRAGMENT vbum1=vbuc1_rol_vbum2 +lda #{c1} +ldy {m2} +cpy #0 +beq !e+ +!: +asl +dey +bne !- +!e: +sta {m1} +//FRAGMENT vbum1=vbum2_rol_1 +lda {m2} +asl +sta {m1} +//FRAGMENT pbum1=qbuc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {m1} +lda {c1}+1,y +sta {m1}+1 +//FRAGMENT vbum1=_deref_pbum2_band_vbuc1 +ldy {m2} +sty $fe +ldy {m2}+1 +sty $ff +ldy #0 +lda ($fe),y +and #{c1} +sta {m1} +//FRAGMENT vbum1=vbum2_ror_4 +lda {m2} +lsr +lsr +lsr +lsr +sta {m1} +//FRAGMENT vwum1=pwuc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {m1} +lda {c1}+1,y +sta {m1}+1 +//FRAGMENT vbum1=vbum2_ror_6 +lda {m2} +rol +rol +rol +and #$03 +sta {m1} +//FRAGMENT pwuc1_derefidx_vbum1=vwuc2 +ldy {m1} +lda #<{c2} +sta {c1},y +lda #>{c2} +sta {c1}+1,y +//FRAGMENT vwum1=_word0_vdum2 +lda {m2} +sta {m1} +lda {m2}+1 +sta {m1}+1 +//FRAGMENT pwuc1_derefidx_vbum1=vwum2 +ldy {m1} +lda {m2} +sta {c1},y +lda {m2}+1 +sta {c1}+1,y +//FRAGMENT vbum1=_byte2_vdum2 +lda {m2}+2 +sta {m1} +//FRAGMENT vbum1=vbum2_rol_2 +lda {m2} +asl +asl +sta {m1} +//FRAGMENT pduc1_derefidx_vbum1=vdum2 +ldy {m1} +lda {m2} +sta {c1},y +lda {m2}+1 +sta {c1}+1,y +lda {m2}+2 +sta {c1}+2,y +lda {m2}+3 +sta {c1}+3,y +//FRAGMENT vdum1=vdum2_ror_1 +lda {m2}+3 +lsr +sta {m1}+3 +lda {m2}+2 +ror +sta {m1}+2 +lda {m2}+1 +ror +sta {m1}+1 +lda {m2} +ror +sta {m1} +//FRAGMENT vbum1=_byte1_vdum2 +lda {m2}+1 +sta {m1} +//FRAGMENT vbuz1=vbum2_band_vbuc1 +lda #{c1} +and {m2} +sta {z1} +//FRAGMENT _deref_pwuc1=vwuc2 +lda #<{c2} +sta {c1} +lda #>{c2} +sta {c1}+1 +//FRAGMENT _deref_pduc1=vduc2 +lda #<{c2} +sta {c1} +lda #>{c2} +sta {c1}+1 +lda #<{c2}>>$10 +sta {c1}+2 +lda #>{c2}>>$10 +sta {c1}+3 +//FRAGMENT pbum1=pbum2 +lda {m2} +sta {m1} +lda {m2}+1 +sta {m1}+1 +//FRAGMENT vbum1=vbum2_bor_vbum3 +lda {m2} +ora {m3} +sta {m1} +//FRAGMENT vbum1=_byte0_pbum2 +lda {m2} +sta {m1} +//FRAGMENT vbum1=_byte1_pbum2 +lda {m2}+1 +sta {m1} +//FRAGMENT vbum1=vbum2_bor_vbuc1 +lda #{c1} +ora {m2} +sta {m1} +//FRAGMENT pbum1=pbum1_plus_vwuz2 +clc +lda {m1} +adc {z2} +sta {m1} +lda {m1}+1 +adc {z2}+1 +sta {m1}+1 +//FRAGMENT vbum1=_deref_pbum2 +ldy {m2} +sty $fe +ldy {m2}+1 +sty $ff +ldy #0 +lda ($fe),y +sta {m1} +//FRAGMENT pbum1=_inc_pbum1 +inc {m1} +bne !+ +inc {m1}+1 +!: +//FRAGMENT 0_neq_vbum1_then_la1 +lda {m1} +bne {la1} +//FRAGMENT _stackpushbyte_=vbum1 +lda {m1} +pha +//FRAGMENT vbuz1=pbuc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {z1} +//FRAGMENT vbsz1=pbsc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {z1} +//FRAGMENT vwum1=vwum2_ror_3 +lda {m2}+1 +lsr +sta {m1}+1 +lda {m2} +ror +sta {m1} +lsr {m1}+1 +ror {m1} +lsr {m1}+1 +ror {m1} +//FRAGMENT vwum1=vwum2_rol_1 +lda {m2} +asl +sta {m1} +lda {m2}+1 +rol +sta {m1}+1 +//FRAGMENT pwum1=pwuc1_plus_vwum2 +lda {m2} +clc +adc #<{c1} +sta {m1} +lda {m2}+1 +adc #>{c1} +sta {m1}+1 +//FRAGMENT _deref_pwum1=vwum2 +NO_SYNTHESIS +//FRAGMENT pbum1=pbuc1_plus_vwum2 +lda {m2} +clc +adc #<{c1} +sta {m1} +lda {m2}+1 +adc #>{c1} +sta {m1}+1 +//FRAGMENT _deref_pbum1=vbuz2 +lda {z2} +ldy {m1} +sty $fe +ldy {m1}+1 +sty $ff +ldy #0 +sta ($fe),y +//FRAGMENT vbsz1=vbsz1_minus_1 +dec {z1} +//FRAGMENT vbuz1=vbuz1_ror_1 +lsr {z1} +//FRAGMENT vwum1=vwum2_ror_2 +lda {m2}+1 +lsr +sta {m1}+1 +lda {m2} +ror +sta {m1} +lsr {m1}+1 +ror {m1} +//FRAGMENT vbsz1=vbsz1_minus_2 +dec {z1} +dec {z1} +//FRAGMENT vbuz1=vbuz1_ror_2 +lda {z1} +lsr +lsr +sta {z1} +//FRAGMENT vwum1=vwum2_ror_1 +lda {m2}+1 +lsr +sta {m1}+1 +lda {m2} +ror +sta {m1} +//FRAGMENT vbsz1=vbsz1_minus_vbsc1 +lda {z1} +sec +sbc #{c1} +sta {z1} +//FRAGMENT vbuz1=vbuz1_ror_4 +lda {z1} +lsr +lsr +lsr +lsr +sta {z1} +//FRAGMENT vbsz1_ge_0_then_la1 +lda {z1} +cmp #0 +bpl {la1} +//FRAGMENT vbum1=vbum2_plus_vbum3 +lda {m2} +clc +adc {m3} +sta {m1} +//FRAGMENT vdum1=vdum2 +lda {m2} +sta {m1} +lda {m2}+1 +sta {m1}+1 +lda {m2}+2 +sta {m1}+2 +lda {m2}+3 +sta {m1}+3 +//FRAGMENT vwum1=vwum2_rol_2 +lda {m2} +asl +sta {m1} +lda {m2}+1 +rol +sta {m1}+1 +asl {m1} +rol {m1}+1 +//FRAGMENT pdum1=pduc1_plus_vwum2 +lda {m2} +clc +adc #<{c1} +sta {m1} +lda {m2}+1 +adc #>{c1} +sta {m1}+1 +//FRAGMENT _deref_pdum1=vdum2 +NO_SYNTHESIS +//FRAGMENT vdum1=vdum1_plus_vwum2 +lda {m1} +clc +adc {m2} +sta {m1} +lda {m1}+1 +adc {m2}+1 +sta {m1}+1 +lda {m1}+2 +adc #0 +sta {m1}+2 +lda {m1}+3 +adc #0 +sta {m1}+3 +//FRAGMENT vdum1=vduz2 +lda {z2} +sta {m1} +lda {z2}+1 +sta {m1}+1 +lda {z2}+2 +sta {m1}+2 +lda {z2}+3 +sta {m1}+3 +//FRAGMENT pvom1=pvom2 +lda {m2} +sta {m1} +lda {m2}+1 +sta {m1}+1 +//FRAGMENT vwuz1=vwuz2_minus_vwuz3 +lda {z2} +sec +sbc {z3} +sta {z1} +lda {z2}+1 +sbc {z3}+1 +sta {z1}+1 +//FRAGMENT vwum1=vwum2_rol_7 +lda {m2}+1 +lsr +lda {m2} +ror +sta {m1}+1 +lda #0 +ror +sta {m1} +//FRAGMENT vwum1=vwum2_bxor_vwum3 +lda {m2} +eor {m3} +sta {m1} +lda {m2}+1 +eor {m3}+1 +sta {m1}+1 +//FRAGMENT vwum1=vwum2_ror_9 +lda {m2}+1 +lsr +sta {m1} +lda #0 +sta {m1}+1 +//FRAGMENT vwum1=vwum2_rol_8 +lda {m2} +sta {m1}+1 +lda #0 +sta {m1} +//FRAGMENT vbum1=pbuc1_derefidx_vbum2 +ldy {m2} +lda {c1},y +sta {m1} +//FRAGMENT _deref_pbuc1_neq_pbuc2_derefidx_vbuz1_then_la1 +lda {c1} +ldy {z1} +cmp {c2},y +bne {la1} +//FRAGMENT vduz1=_dword_vwum2 +lda {m2} +sta {z1} +lda {m2}+1 +sta {z1}+1 +lda #0 +sta {z1}+2 +sta {z1}+3 +//FRAGMENT vwuz1_neq_0_then_la1 +lda {z1} +ora {z1}+1 +bne {la1} +//FRAGMENT vbuz1=vwuz2_band_vbuc1 +lda #{c1} +and {z2} +sta {z1} +//FRAGMENT vbuz1_eq_0_then_la1 +lda {z1} +beq {la1} +//FRAGMENT vduz1=vduz1_plus_vduz2 +clc +lda {z1} +adc {z2} +sta {z1} +lda {z1}+1 +adc {z2}+1 +sta {z1}+1 +lda {z1}+2 +adc {z2}+2 +sta {z1}+2 +lda {z1}+3 +adc {z2}+3 +sta {z1}+3 +//FRAGMENT vwuz1=vwuz1_ror_1 +lsr {z1}+1 +ror {z1} +//FRAGMENT vduz1=vduz1_rol_1 +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +//FRAGMENT vbum1=_byte0_pvom2 +lda {m2} +sta {m1} +//FRAGMENT vbum1=_byte1_pvom2 +lda {m2}+1 +sta {m1} +//FRAGMENT vbum1=vbuc1_bor_vbum2 +lda #{c1} +ora {m2} +sta {m1} +//FRAGMENT vduz1_lt_vdum2_then_la1 +lda {z1}+3 +cmp {m2}+3 +bcc {la1} +bne !+ +lda {z1}+2 +cmp {m2}+2 +bcc {la1} +bne !+ +lda {z1}+1 +cmp {m2}+1 +bcc {la1} +bne !+ +lda {z1} +cmp {m2} +bcc {la1} +!: +//FRAGMENT vduz1=_inc_vduz1 +inc {z1} +bne !+ +inc {z1}+1 +bne !+ +inc {z1}+2 +bne !+ +inc {z1}+3 +!: +//FRAGMENT vwuz1=vwuz2_ror_1 +lda {z2}+1 +lsr +sta {z1}+1 +lda {z2} +ror +sta {z1} +//FRAGMENT vwuz1_ge_vwuz2_then_la1 +lda {z2}+1 +cmp {z1}+1 +bne !+ +lda {z2} +cmp {z1} +beq {la1} +!: +bcc {la1} +//FRAGMENT vwuz1=vwuz1_minus_vwuz2 +lda {z1} +sec +sbc {z2} +sta {z1} +lda {z1}+1 +sbc {z2}+1 +sta {z1}+1 +//FRAGMENT vwuz1=vwuz2_plus_1 +clc +lda {z2} +adc #1 +sta {z1} +lda {z2}+1 +adc #0 +sta {z1}+1 +//FRAGMENT vwuz1=_dec_vwuz1 +lda {z1} +bne !+ +dec {z1}+1 +!: +dec {z1} +//FRAGMENT vwuz1=vwuz1_rol_1 +asl {z1} +rol {z1}+1 +//FRAGMENT vwuz1=vwuz1_bor_vbuc1 +lda #{c1} +ora {z1} +sta {z1} +//FRAGMENT vwuz1=vwuz2_rol_1 +lda {z2} +asl +sta {z1} +lda {z2}+1 +rol +sta {z1}+1 +//FRAGMENT pwuz1=pwuc1_plus_vwuz2 +lda {z2} +clc +adc #<{c1} +sta {z1} +lda {z2}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vduz1=_dword__deref_pwuz2 +ldy #0 +sty {z1}+2 +sty {z1}+3 +lda ({z2}),y +sta {z1} +iny +lda ({z2}),y +sta {z1}+1 +//FRAGMENT vwuz1=vwuz2_rol_2 +lda {z2} +asl +sta {z1} +lda {z2}+1 +rol +sta {z1}+1 +asl {z1} +rol {z1}+1 +//FRAGMENT pduz1=pduc1_plus_vwuz2 +lda {z2} +clc +adc #<{c1} +sta {z1} +lda {z2}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vduz1=_deref_pduz2 +ldy #0 +lda ({z2}),y +sta {z1} +iny +lda ({z2}),y +sta {z1}+1 +iny +lda ({z2}),y +sta {z1}+2 +iny +lda ({z2}),y +sta {z1}+3 +//FRAGMENT vduz1=vduz2_plus_vduz3 +lda {z2} +clc +adc {z3} +sta {z1} +lda {z2}+1 +adc {z3}+1 +sta {z1}+1 +lda {z2}+2 +adc {z3}+2 +sta {z1}+2 +lda {z2}+3 +adc {z3}+3 +sta {z1}+3 +//FRAGMENT pbuz1=pbuc1_plus_vwuz2 +lda {z2} +clc +adc #<{c1} +sta {z1} +lda {z2}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vbuz1=vbuz1_rol_vbuz2 +lda {z1} +ldy {z2} +cpy #0 +beq !e+ +!: +asl +dey +bne !- +!e: +sta {z1} +//FRAGMENT vbuz1=_bnot__deref_pbuz2 +ldy #0 +lda ({z2}),y +eor #$ff +sta {z1} +//FRAGMENT vbuz1=_deref_pbuc1_band_vbuz2 +lda {c1} +and {z2} +sta {z1} +//FRAGMENT vbuaa=vwum1_band_vbuc1 +lda #{c1} +and {m1} +//FRAGMENT vbuxx=vwum1_band_vbuc1 +lda #{c1} +and {m1} +tax +//FRAGMENT vbuyy=vwum1_band_vbuc1 +lda #{c1} +and {m1} +tay +//FRAGMENT vbum1=vbuc1_rol_vbuaa +tay +lda #{c1} +cpy #0 +beq !e+ +!: +asl +dey +bne !- +!e: +sta {m1} +//FRAGMENT vbum1=vbuc1_rol_vbuxx +lda #{c1} +cpx #0 +beq !e+ +!: +asl +dex +bne !- +!e: +sta {m1} +//FRAGMENT vbum1=vbuc1_rol_vbuyy +lda #{c1} +cpy #0 +beq !e+ +!: +asl +dey +bne !- +!e: +sta {m1} +//FRAGMENT vbuaa=vbuc1_rol_vbum1 +lda #{c1} +ldy {m1} +cpy #0 +beq !e+ +!: +asl +dey +bne !- +!e: +//FRAGMENT vbuxx=vbuc1_rol_vbum1 +lda #{c1} +ldx {m1} +cpx #0 +beq !e+ +!: +asl +dex +bne !- +!e: +tax +//FRAGMENT vbuyy=vbuc1_rol_vbum1 +lda #{c1} +ldy {m1} +cpy #0 +beq !e+ +!: +asl +dey +bne !- +!e: +tay +//FRAGMENT vbuaa=vbum1_rol_1 +lda {m1} +asl +//FRAGMENT vbuxx=vbum1_rol_1 +lda {m1} +asl +tax +//FRAGMENT vbuyy=vbum1_rol_1 +lda {m1} +asl +tay +//FRAGMENT vbum1=vbuaa_rol_1 +asl +sta {m1} +//FRAGMENT vbum1=vbuxx_rol_1 +txa +asl +sta {m1} +//FRAGMENT vbum1=vbuyy_rol_1 +tya +asl +sta {m1} +//FRAGMENT pbum1=qbuc1_derefidx_vbuaa +tay +lda {c1},y +sta {m1} +lda {c1}+1,y +sta {m1}+1 +//FRAGMENT pbum1=qbuc1_derefidx_vbuxx +lda {c1},x +sta {m1} +lda {c1}+1,x +sta {m1}+1 +//FRAGMENT pbum1=qbuc1_derefidx_vbuyy +lda {c1},y +sta {m1} +lda {c1}+1,y +sta {m1}+1 +//FRAGMENT vbuaa=_deref_pbum1_band_vbuc1 +ldy {m1} +sty $fe +ldy {m1}+1 +sty $ff +ldy #0 +lda ($fe),y +and #{c1} +//FRAGMENT vbuxx=_deref_pbum1_band_vbuc1 +ldy {m1} +sty $fe +ldy {m1}+1 +sty $ff +ldy #0 +lda ($fe),y +and #{c1} +tax +//FRAGMENT vbuyy=_deref_pbum1_band_vbuc1 +ldy {m1} +sty $fe +ldy {m1}+1 +sty $ff +ldy #0 +lda ($fe),y +and #{c1} +tay +//FRAGMENT vbuaa=vbum1_ror_4 +lda {m1} +lsr +lsr +lsr +lsr +//FRAGMENT vbuxx=vbum1_ror_4 +lda {m1} +lsr +lsr +lsr +lsr +tax +//FRAGMENT vbuyy=vbum1_ror_4 +lda {m1} +lsr +lsr +lsr +lsr +tay +//FRAGMENT vbum1=vbuaa_ror_4 +lsr +lsr +lsr +lsr +sta {m1} +//FRAGMENT vbum1=vbuxx_ror_4 +txa +lsr +lsr +lsr +lsr +sta {m1} +//FRAGMENT vbum1=vbuyy_ror_4 +tya +lsr +lsr +lsr +lsr +sta {m1} +//FRAGMENT vbuaa=vbum1_ror_6 +lda {m1} +rol +rol +rol +and #$03 +//FRAGMENT vbuxx=vbum1_ror_6 +lda {m1} +rol +rol +rol +and #$03 +tax +//FRAGMENT vbuyy=vbum1_ror_6 +lda {m1} +rol +rol +rol +and #$03 +tay +//FRAGMENT vbum1=vbuaa_ror_6 +rol +rol +rol +and #$03 +sta {m1} +//FRAGMENT vbum1=vbuxx_ror_6 +txa +rol +rol +rol +and #$03 +sta {m1} +//FRAGMENT vbum1=vbuyy_ror_6 +tya +rol +rol +rol +and #$03 +sta {m1} +//FRAGMENT pwuc1_derefidx_vbuxx=vwum1 +lda {m1} +sta {c1},x +lda {m1}+1 +sta {c1}+1,x +//FRAGMENT vbum1=vbuxx_rol_2 +txa +asl +asl +sta {m1} +//FRAGMENT vbuxx=vbum1_rol_2 +lda {m1} +asl +asl +tax +//FRAGMENT vbuaa=_byte1_vdum1 +lda {m1}+1 +//FRAGMENT vbuxx=_byte1_vdum1 +ldx {m1}+1 +//FRAGMENT vbuaa=vbum1_band_vbuc1 +lda #{c1} +and {m1} +//FRAGMENT vbuxx=vbum1_band_vbuc1 +lda #{c1} +and {m1} +tax +//FRAGMENT vbuyy=vbum1_band_vbuc1 +lda #{c1} +and {m1} +tay +//FRAGMENT vbum1=vbum2_bor_vbuaa +ora {m2} +sta {m1} +//FRAGMENT vbum1=vbum2_bor_vbuxx +txa +ora {m2} +sta {m1} +//FRAGMENT vbum1=vbum2_bor_vbuyy +tya +ora {m2} +sta {m1} +//FRAGMENT vbum1=vbuaa_bor_vbum2 +ora {m2} +sta {m1} +//FRAGMENT vbum1=vbuaa_bor_vbuaa +sta {m1} +//FRAGMENT vbuaa=_byte0_pbum1 +lda {m1} +//FRAGMENT vbuxx=_byte0_pbum1 +ldx {m1} +//FRAGMENT vbuaa=_byte1_pbum1 +lda {m1}+1 +//FRAGMENT vbuxx=_byte1_pbum1 +ldx {m1}+1 +//FRAGMENT vbuaa=_deref_pbum1 +ldy {m1} +sty $fe +ldy {m1}+1 +sty $ff +ldy #0 +lda ($fe),y +//FRAGMENT vbuxx=_deref_pbum1 +ldy {m1} +sty $fe +ldy {m1}+1 +sty $ff +ldy #0 +lda ($fe),y +tax +//FRAGMENT vbuyy=_deref_pbum1 +ldy {m1} +sty $fe +ldy {m1}+1 +sty $ff +ldy #0 +lda ($fe),y +tay +//FRAGMENT vbuaa=pbuc1_derefidx_vbum1 +ldy {m1} +lda {c1},y +//FRAGMENT vbuxx=pbuc1_derefidx_vbum1 +ldy {m1} +ldx {c1},y +//FRAGMENT vbuyy=pbuc1_derefidx_vbum1 +ldx {m1} +ldy {c1},x +//FRAGMENT vbsaa=pbsc1_derefidx_vbum1 +ldy {m1} +lda {c1},y +//FRAGMENT vbsxx=pbsc1_derefidx_vbum1 +ldy {m1} +ldx {c1},y +//FRAGMENT vbsyy=pbsc1_derefidx_vbum1 +ldx {m1} +ldy {c1},x +//FRAGMENT vbuaa=vbum1_rol_2 +lda {m1} +asl +asl +//FRAGMENT vbuyy=vbum1_rol_2 +lda {m1} +asl +asl +tay +//FRAGMENT vbum1=vbuaa_plus_vbum2 +clc +adc {m2} +sta {m1} +//FRAGMENT vbum1=vbuxx_plus_vbum2 +txa +clc +adc {m2} +sta {m1} +//FRAGMENT vbum1=vbuyy_plus_vbum2 +tya +clc +adc {m2} +sta {m1} +//FRAGMENT vbuaa=vbum1_plus_vbum2 +lda {m1} +clc +adc {m2} +//FRAGMENT vbuaa=vbuaa_plus_vbum1 +clc +adc {m1} +//FRAGMENT vbuaa=vbuxx_plus_vbum1 +txa +clc +adc {m1} +//FRAGMENT vbuaa=vbuyy_plus_vbum1 +tya +clc +adc {m1} +//FRAGMENT vbuxx=vbum1_plus_vbum2 +lda {m1} +clc +adc {m2} +tax +//FRAGMENT vbuxx=vbuaa_plus_vbum1 +clc +adc {m1} +tax +//FRAGMENT vbuxx=vbuxx_plus_vbum1 +txa +clc +adc {m1} +tax +//FRAGMENT vbuxx=vbuyy_plus_vbum1 +tya +clc +adc {m1} +tax +//FRAGMENT vbuyy=vbum1_plus_vbum2 +lda {m1} +clc +adc {m2} +tay +//FRAGMENT vbuyy=vbuaa_plus_vbum1 +clc +adc {m1} +tay +//FRAGMENT vbuyy=vbuxx_plus_vbum1 +txa +clc +adc {m1} +tay +//FRAGMENT vbuyy=vbuyy_plus_vbum1 +tya +clc +adc {m1} +tay +//FRAGMENT vbum1=vbuxx +stx {m1} +//FRAGMENT vbum1=pbuc1_derefidx_vbuaa +tay +lda {c1},y +sta {m1} +//FRAGMENT vbum1=pbuc1_derefidx_vbuxx +lda {c1},x +sta {m1} +//FRAGMENT vbum1=pbuc1_derefidx_vbuyy +lda {c1},y +sta {m1} +//FRAGMENT _deref_pbuc1_neq_pbuc2_derefidx_vbuaa_then_la1 +tay +lda {c1} +cmp {c2},y +bne {la1} +//FRAGMENT _deref_pbuc1_neq_pbuc2_derefidx_vbuxx_then_la1 +lda {c2},x +cmp {c1} +bne {la1} +//FRAGMENT _deref_pbuc1_neq_pbuc2_derefidx_vbuyy_then_la1 +lda {c1} +cmp {c2},y +bne {la1} +//FRAGMENT vbuaa=vwuz1_band_vbuc1 +lda #{c1} +and {z1} +//FRAGMENT vbuxx=vwuz1_band_vbuc1 +lda #{c1} +and {z1} +tax +//FRAGMENT vbuyy=vwuz1_band_vbuc1 +lda #{c1} +and {z1} +tay +//FRAGMENT vbuaa_eq_0_then_la1 +cmp #0 +beq {la1} +//FRAGMENT vbuaa=_byte0_pvom1 +lda {m1} +//FRAGMENT vbuxx=_byte0_pvom1 +ldx {m1} +//FRAGMENT vbuaa=_byte1_pvom1 +lda {m1}+1 +//FRAGMENT vbuxx=_byte1_pvom1 +ldx {m1}+1 +//FRAGMENT vbuaa=vbuc1_bor_vbum1 +lda #{c1} +ora {m1} +//FRAGMENT vbuxx=vbuc1_bor_vbum1 +lda #{c1} +ora {m1} +tax +//FRAGMENT vbuyy=vbuc1_bor_vbum1 +lda #{c1} +ora {m1} +tay +//FRAGMENT vbum1=vbuc1_bor_vbuxx +txa +ora #{c1} +sta {m1} +//FRAGMENT vbum1=vbuc1_bor_vbuyy +tya +ora #{c1} +sta {m1} +//FRAGMENT vbuxx=vbuxx_rol_vbuz1 +txa +ldx {z1} +cpx #0 +beq !e+ +!: +asl +dex +bne !- +!e: +tax +//FRAGMENT vbuz1=vbuz1_rol_vbuaa +tay +lda {z1} +cpy #0 +beq !e+ +!: +asl +dey +bne !- +!e: +sta {z1} +//FRAGMENT vbuxx=vbuxx_rol_vbuaa +tay +txa +cpy #0 +beq !e+ +!: +asl +dey +bne !- +!e: +tax +//FRAGMENT vbuz1=vbuz1_rol_vbuxx +lda {z1} +cpx #0 +beq !e+ +!: +asl +dex +bne !- +!e: +sta {z1} +//FRAGMENT vbuxx=vbuxx_rol_vbuxx +txa +tax +cpx #0 +beq !e+ +!: +asl +dex +bne !- +!e: +tax +//FRAGMENT vbuz1=vbuz1_rol_vbuyy +lda {z1} +cpy #0 +beq !e+ +!: +asl +dey +bne !- +!e: +sta {z1} +//FRAGMENT vbuxx=vbuxx_rol_vbuyy +txa +cpy #0 +beq !e+ +!: +asl +dey +bne !- +!e: +tax +//FRAGMENT vbuaa=_bnot__deref_pbuz1 +ldy #0 +lda ({z1}),y +eor #$ff +//FRAGMENT vbuxx=_bnot__deref_pbuz1 +ldy #0 +lda ({z1}),y +eor #$ff +tax +//FRAGMENT vbuyy=_bnot__deref_pbuz1 +ldy #0 +lda ({z1}),y +eor #$ff +tay +//FRAGMENT vbuz1=_deref_pbuc1_band_vbuaa +and {c1} +sta {z1} +//FRAGMENT vbuz1=_deref_pbuc1_band_vbuxx +txa +and {c1} +sta {z1} +//FRAGMENT vbuz1=_deref_pbuc1_band_vbuyy +tya +and {c1} +sta {z1} +//FRAGMENT vbuaa=_deref_pbuc1_band_vbuz1 +lda {c1} +and {z1} +//FRAGMENT vbuaa=_deref_pbuc1_band_vbuaa +and {c1} +//FRAGMENT vbuaa=_deref_pbuc1_band_vbuxx +txa +and {c1} +//FRAGMENT vbuaa=_deref_pbuc1_band_vbuyy +tya +and {c1} +//FRAGMENT vbuxx=_deref_pbuc1_band_vbuz1 +lda {c1} +and {z1} +tax +//FRAGMENT vbuxx=_deref_pbuc1_band_vbuaa +and {c1} +tax +//FRAGMENT vbuxx=_deref_pbuc1_band_vbuxx +txa +and {c1} +tax +//FRAGMENT vbuxx=_deref_pbuc1_band_vbuyy +tya +and {c1} +tax +//FRAGMENT vbuyy=_deref_pbuc1_band_vbuz1 +lda {c1} +and {z1} +tay +//FRAGMENT vbuyy=_deref_pbuc1_band_vbuaa +and {c1} +tay +//FRAGMENT vbuyy=_deref_pbuc1_band_vbuxx +txa +and {c1} +tay +//FRAGMENT vbuyy=_deref_pbuc1_band_vbuyy +tya +and {c1} +tay +//FRAGMENT vbuz1=vbuaa_bor_vbuxx +stx $ff +ora $ff +sta {z1} +//FRAGMENT vbuaa=vbuaa_bor_vbuxx +stx $ff +ora $ff +//FRAGMENT vbuxx=vbuaa_bor_vbuxx +stx $ff +ora $ff +tax +//FRAGMENT vbuyy=vbuaa_bor_vbuxx +stx $ff +ora $ff +tay +//FRAGMENT vbuz1=vbuxx_bor_vbuxx +stx {z1} +//FRAGMENT vbuxx_eq_0_then_la1 +cpx #0 +beq {la1} +//FRAGMENT vbuyy_eq_0_then_la1 +cpy #0 +beq {la1} +//FRAGMENT pbuc1_derefidx_vbum1=vbuxx +ldy {m1} +txa +sta {c1},y +//FRAGMENT vbuyy=_byte0_pbum1 +ldy {m1} +//FRAGMENT vbuyy=_byte0_pvom1 +ldy {m1} +//FRAGMENT vbuyy=_byte1_pvom1 +ldy {m1}+1 +//FRAGMENT pbuc1_derefidx_vbuxx=vbuaa +sta {c1},x +//FRAGMENT pbuc1_derefidx_vbuaa=vbuxx +tay +txa +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuyy=vbuxx +txa +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuxx=vbuyy +tya +sta {c1},x +//FRAGMENT vbuz1=vbuyy_bor_vbuxx +txa +sty $ff +ora $ff +sta {z1} +//FRAGMENT vbuyy=_byte1_vdum1 +ldy {m1}+1 +//FRAGMENT vbum1=vbuyy_bor_vbuaa +sty $ff +ora $ff +sta {m1} +//FRAGMENT vdum1=vdum1_ror_1 +lsr {m1}+3 +ror {m1}+2 +ror {m1}+1 +ror {m1} +//FRAGMENT vwum1=vwum1_bxor_vwum2 +lda {m1} +eor {m2} +sta {m1} +lda {m1}+1 +eor {m2}+1 +sta {m1}+1 +//FRAGMENT vbum1=vbum1_bor_vbuaa +ora {m1} +sta {m1} +//FRAGMENT pwum1=pwuc1_plus_vwum1 +lda {m1} +clc +adc #<{c1} +sta {m1} +lda {m1}+1 +adc #>{c1} +sta {m1}+1 +//FRAGMENT pdum1=pduc1_plus_vwum1 +lda {m1} +clc +adc #<{c1} +sta {m1} +lda {m1}+1 +adc #>{c1} +sta {m1}+1 +//FRAGMENT pwuz1=pwuc1_plus_vwuz1 +lda {z1} +clc +adc #<{c1} +sta {z1} +lda {z1}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT pduz1=pduc1_plus_vwuz1 +lda {z1} +clc +adc #<{c1} +sta {z1} +lda {z1}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vwuz1_le_vwuc1_then_la1 +lda {z1}+1 +cmp #>{c1} +bne !+ +lda {z1} +cmp #<{c1} +!: +bcc {la1} +beq {la1} +//FRAGMENT vduz1=vduz1_ror_1 +lsr {z1}+3 +ror {z1}+2 +ror {z1}+1 +ror {z1} +//FRAGMENT vbuz1=vbuz1_bor_vbuaa +ora {z1} +sta {z1} +//FRAGMENT vbsz1=pbsc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sta {z1} +//FRAGMENT vwuz1=vwuz2_ror_3 +lda {z2}+1 +lsr +sta {z1}+1 +lda {z2} +ror +sta {z1} +lsr {z1}+1 +ror {z1} +lsr {z1}+1 +ror {z1} +//FRAGMENT _deref_pwuz1=vwuz2 +ldy #0 +lda {z2} +sta ({z1}),y +iny +lda {z2}+1 +sta ({z1}),y +//FRAGMENT vwuz1=vwuz2_ror_2 +lda {z2}+1 +lsr +sta {z1}+1 +lda {z2} +ror +sta {z1} +lsr {z1}+1 +ror {z1} +//FRAGMENT vbuaa=vbuz1_rol_2 +lda {z1} +asl +asl +//FRAGMENT vbuaa=vbuaa_plus_vbuz1 +clc +adc {z1} +//FRAGMENT vduz1=vduz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +lda {z2}+2 +sta {z1}+2 +lda {z2}+3 +sta {z1}+3 +//FRAGMENT _deref_pduz1=vduz2 +ldy #0 +lda {z2} +sta ({z1}),y +iny +lda {z2}+1 +sta ({z1}),y +iny +lda {z2}+2 +sta ({z1}),y +iny +lda {z2}+3 +sta ({z1}),y +//FRAGMENT vwuz1=vwuz2_rol_7 +lda {z2}+1 +lsr +lda {z2} +ror +sta {z1}+1 +lda #0 +ror +sta {z1} +//FRAGMENT vwuz1=vwuz1_bxor_vwuz2 +lda {z1} +eor {z2} +sta {z1} +lda {z1}+1 +eor {z2}+1 +sta {z1}+1 +//FRAGMENT vwuz1=vwuz2_ror_9 +lda {z2}+1 +lsr +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vwuz1=vwuz2_rol_8 +lda {z2} +sta {z1}+1 +lda #0 +sta {z1} +//FRAGMENT vduz1=_dword_vwuz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +lda #0 +sta {z1}+2 +sta {z1}+3 +//FRAGMENT vduz1_lt_vduz2_then_la1 +lda {z1}+3 +cmp {z2}+3 +bcc {la1} +bne !+ +lda {z1}+2 +cmp {z2}+2 +bcc {la1} +bne !+ +lda {z1}+1 +cmp {z2}+1 +bcc {la1} +bne !+ +lda {z1} +cmp {z2} +bcc {la1} +!: +//FRAGMENT _deref_pssc1=_deref_pssc2_memcpy_vbuc3 +ldy #{c3} +!: +lda {c2}-1,y +sta {c1}-1,y +dey +bne !- +//FRAGMENT vduz1=vwsc1 +NO_SYNTHESIS +//FRAGMENT _deref_pwuc1=vbuc2 +lda #<{c2} +sta {c1} +lda #>{c2} +sta {c1}+1 +//FRAGMENT vbuz1=vbuz2_rol_4 +lda {z2} +asl +asl +asl +asl +sta {z1} +//FRAGMENT vbuz1=vbuz2_rol_3 +lda {z2} +asl +asl +asl +sta {z1} +//FRAGMENT vbuz1=vbuz2_ror_5 +lda {z2} +lsr +lsr +lsr +lsr +lsr +sta {z1} +//FRAGMENT vwuz1=vwuz2_band_vwuc1 +lda {z2} +and #<{c1} +sta {z1} +lda {z2}+1 +and #>{c1} +sta {z1}+1 +//FRAGMENT pbuz1=pbuz2_plus_vwuc1 +lda {z2} +clc +adc #<{c1} +sta {z1} +lda {z2}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT pbuz1_neq_vwuc1_then_la1 +lda {z1}+1 +cmp #>{c1} +bne {la1} +lda {z1} +cmp #<{c1} +bne {la1} +//FRAGMENT vbuz1=_byte_vwuz2 +lda {z2} +sta {z1} +//FRAGMENT 0_neq__deref_pbuz1_then_la1 +ldy #0 +lda ({z1}),y +cmp #0 +bne {la1} +//FRAGMENT vbuz1=vbuxx_rol_4 +txa +asl +asl +asl +asl +sta {z1} +//FRAGMENT vbuz1=vbuyy_rol_4 +tya +asl +asl +asl +asl +sta {z1} +//FRAGMENT vbuaa=vbuz1_rol_4 +lda {z1} +asl +asl +asl +asl +//FRAGMENT vbuxx=vbuz1_rol_4 +lda {z1} +asl +asl +asl +asl +tax +//FRAGMENT vbuyy=vbuz1_rol_4 +lda {z1} +asl +asl +asl +asl +tay +//FRAGMENT vbuaa=vbuz1_rol_3 +lda {z1} +asl +asl +asl +//FRAGMENT vbuxx=vbuz1_rol_3 +lda {z1} +asl +asl +asl +tax +//FRAGMENT vbuyy=vbuz1_rol_3 +lda {z1} +asl +asl +asl +tay +//FRAGMENT vbuz1=vbuaa_rol_3 +asl +asl +asl +sta {z1} +//FRAGMENT vbuaa=vbuaa_rol_3 +asl +asl +asl +//FRAGMENT vbuxx=vbuaa_rol_3 +asl +asl +asl +tax +//FRAGMENT vbuyy=vbuaa_rol_3 +asl +asl +asl +tay +//FRAGMENT vbuz1=vbuxx_rol_3 +txa +asl +asl +asl +sta {z1} +//FRAGMENT vbuaa=vbuxx_rol_3 +txa +asl +asl +asl +//FRAGMENT vbuxx=vbuxx_rol_3 +txa +asl +asl +asl +tax +//FRAGMENT vbuyy=vbuxx_rol_3 +txa +asl +asl +asl +tay +//FRAGMENT vbuz1=vbuyy_rol_3 +tya +asl +asl +asl +sta {z1} +//FRAGMENT vbuaa=vbuyy_rol_3 +tya +asl +asl +asl +//FRAGMENT vbuxx=vbuyy_rol_3 +tya +asl +asl +asl +tax +//FRAGMENT vbuyy=vbuyy_rol_3 +tya +asl +asl +asl +tay +//FRAGMENT vbuaa=vbuz1_ror_5 +lda {z1} +lsr +lsr +lsr +lsr +lsr +//FRAGMENT vbuxx=vbuz1_ror_5 +lda {z1} +lsr +lsr +lsr +lsr +lsr +tax +//FRAGMENT vbuyy=vbuz1_ror_5 +lda {z1} +lsr +lsr +lsr +lsr +lsr +tay +//FRAGMENT vbuz1=vbuaa_ror_5 +lsr +lsr +lsr +lsr +lsr +sta {z1} +//FRAGMENT vbuaa=vbuaa_ror_5 +lsr +lsr +lsr +lsr +lsr +//FRAGMENT vbuxx=vbuaa_ror_5 +lsr +lsr +lsr +lsr +lsr +tax +//FRAGMENT vbuyy=vbuaa_ror_5 +lsr +lsr +lsr +lsr +lsr +tay +//FRAGMENT vbuz1=vbuxx_ror_5 +txa +lsr +lsr +lsr +lsr +lsr +sta {z1} +//FRAGMENT vbuaa=vbuxx_ror_5 +txa +lsr +lsr +lsr +lsr +lsr +//FRAGMENT vbuxx=vbuxx_ror_5 +txa +lsr +lsr +lsr +lsr +lsr +tax +//FRAGMENT vbuyy=vbuxx_ror_5 +txa +lsr +lsr +lsr +lsr +lsr +tay +//FRAGMENT vbuz1=vbuyy_ror_5 +tya +lsr +lsr +lsr +lsr +lsr +sta {z1} +//FRAGMENT vbuaa=vbuyy_ror_5 +tya +lsr +lsr +lsr +lsr +lsr +//FRAGMENT vbuxx=vbuyy_ror_5 +tya +lsr +lsr +lsr +lsr +lsr +tax +//FRAGMENT vbuyy=vbuyy_ror_5 +tya +lsr +lsr +lsr +lsr +lsr +tay +//FRAGMENT vbuz1=vbuxx_bor_vbuaa +stx $ff +ora $ff +sta {z1} +//FRAGMENT vbuxx=vbuxx_bor_vbuaa +stx $ff +ora $ff +tax +//FRAGMENT vbuxx=vbuyy_bor_vbuaa +sty $ff +ora $ff +tax +//FRAGMENT vduz1=vduz2_plus_vduz1 +clc +lda {z1} +adc {z2} +sta {z1} +lda {z1}+1 +adc {z2}+1 +sta {z1}+1 +lda {z1}+2 +adc {z2}+2 +sta {z1}+2 +lda {z1}+3 +adc {z2}+3 +sta {z1}+3 +//FRAGMENT vwuz1=vwuz1_band_vwuc1 +lda {z1} +and #<{c1} +sta {z1} +lda {z1}+1 +and #>{c1} +sta {z1}+1 +//FRAGMENT vdum1=vwsc1 +NO_SYNTHESIS +//FRAGMENT pbum1=pbum1_plus_vbuc1 +lda #{c1} +clc +adc {m1} +sta {m1} +bcc !+ +inc {m1}+1 +!: +//FRAGMENT vbum1=vbuz2_rol_4 +lda {z2} +asl +asl +asl +asl +sta {m1} +//FRAGMENT vbuz1=vbuyy_bor_vbuaa +sty $ff +ora $ff +sta {z1} +//FRAGMENT pbuz1=pbuz1_plus_vbuc1 +lda #{c1} +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+1 +!: +//FRAGMENT pprz1=pprc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT vbuz1=_deref_pbuc1_band__deref_pbuc2 +lda {c1} +and {c2} +sta {z1} +//FRAGMENT vbuz1=_bnot__deref_pbuc1 +lda {c1} +eor #$ff +sta {z1} +//FRAGMENT _deref_pbuc1=_deref_pbuc1_band_vbuz1 +lda {c1} +and {z1} +sta {c1} +//FRAGMENT call__deref_pprz1 +jsr {la1} +{la1}: @outside_flow +jmp ({z1}) @outside_flow +//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +ldy #0 +sta ({z1}),y +//FRAGMENT pbuz1=_inc_pbuz2 +clc +lda {z2} +adc #1 +sta {z1} +lda {z2}+1 +adc #0 +sta {z1}+1 +//FRAGMENT vbuz1=pbuz2_derefidx_vbuz3 +ldy {z3} +lda ({z2}),y +sta {z1} +//FRAGMENT vbuz1_ge_vbuz2_then_la1 +lda {z1} +cmp {z2} +bcs {la1} +//FRAGMENT vbuz1=vbuz1_minus_vbuz2 +lda {z1} +sec +sbc {z2} +sta {z1} +//FRAGMENT vbuaa=_deref_pbuc1_band__deref_pbuc2 +lda {c1} +and {c2} +//FRAGMENT vbuxx=_deref_pbuc1_band__deref_pbuc2 +lda {c1} +and {c2} +tax +//FRAGMENT vbuyy=_deref_pbuc1_band__deref_pbuc2 +lda {c1} +and {c2} +tay +//FRAGMENT pbuc1_derefidx_vbuaa=vbuz1 +tay +lda {z1} +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuyy=vbuz1 +lda {z1} +sta {c1},y +//FRAGMENT pbuc1_derefidx_vbuaa=vbuaa +tax +sta {c1},x +//FRAGMENT vwuz1=_word_vbuaa +sta {z1} +lda #0 +sta {z1}+1 +//FRAGMENT vbuz1_lt_vbuaa_then_la1 +cmp {z1} +beq !+ +bcs {la1} +!: +//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuaa +tay +lda {c1},y +ldy #0 +sta ({z1}),y +//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuxx +lda {c1},x +ldy #0 +sta ({z1}),y +//FRAGMENT _deref_pbuz1=pbuc1_derefidx_vbuyy +lda {c1},y +ldy #0 +sta ({z1}),y +//FRAGMENT vbuaa=pbuz1_derefidx_vbuz2 +ldy {z2} +lda ({z1}),y +//FRAGMENT vbuxx=pbuz1_derefidx_vbuz2 +ldy {z2} +lda ({z1}),y +tax +//FRAGMENT vbuyy=pbuz1_derefidx_vbuz2 +ldy {z2} +lda ({z1}),y +tay +//FRAGMENT vbuz1=pbuz2_derefidx_vbuaa +tay +lda ({z2}),y +sta {z1} +//FRAGMENT vbuaa=pbuz1_derefidx_vbuaa +tay +lda ({z1}),y +//FRAGMENT vbuxx=pbuz1_derefidx_vbuaa +tay +lda ({z1}),y +tax +//FRAGMENT vbuyy=pbuz1_derefidx_vbuaa +tay +lda ({z1}),y +tay +//FRAGMENT vbuz1=pbuz2_derefidx_vbuxx +txa +tay +lda ({z2}),y +sta {z1} +//FRAGMENT vbuaa=pbuz1_derefidx_vbuxx +txa +tay +lda ({z1}),y +//FRAGMENT vbuxx=pbuz1_derefidx_vbuxx +txa +tay +lda ({z1}),y +tax +//FRAGMENT vbuyy=pbuz1_derefidx_vbuxx +txa +tay +lda ({z1}),y +tay +//FRAGMENT vbuz1=pbuz2_derefidx_vbuyy +lda ({z2}),y +sta {z1} +//FRAGMENT vbuaa=pbuz1_derefidx_vbuyy +lda ({z1}),y +//FRAGMENT vbuxx=pbuz1_derefidx_vbuyy +lda ({z1}),y +tax +//FRAGMENT vbuyy=pbuz1_derefidx_vbuyy +lda ({z1}),y +tay +//FRAGMENT vbuxx_ge_vbuz1_then_la1 +cpx {z1} +bcs {la1} +//FRAGMENT vbuaa_ge_vbuz1_then_la1 +cmp {z1} +bcs {la1} +//FRAGMENT vbuxx=vbuxx_minus_vbuz1 +txa +sec +sbc {z1} +tax +//FRAGMENT vbuz1=vbuz1_minus_vbuaa +eor #$ff +sec +adc {z1} +sta {z1} +//FRAGMENT vbuxx=vbuxx_minus_vbuaa +sta $ff +txa +sec +sbc $ff +tax +//FRAGMENT vbuz1=vbuz1_minus_vbuxx +txa +eor #$ff +sec +adc {z1} +sta {z1} +//FRAGMENT vbuxx=vbuxx_minus_vbuxx +lda #0 +tax +//FRAGMENT vbuz1=vbuz1_minus_vbuyy +tya +eor #$ff +sec +adc {z1} +sta {z1} +//FRAGMENT vbuxx=vbuxx_minus_vbuyy +txa +sty $ff +sec +sbc $ff +tax +//FRAGMENT vbuyy=_byte1_pbuz1 +ldy {z1}+1 +//FRAGMENT vbuz1_ge_vbuxx_then_la1 +lda {z1} +stx $ff +cmp $ff +bcs {la1} +//FRAGMENT vbuz1_ge_vbuyy_then_la1 +lda {z1} +sty $ff +cmp $ff +bcs {la1} +//FRAGMENT vbuxx_ge_vbuyy_then_la1 +sty $ff +cpx $ff +bcs {la1} +//FRAGMENT vbuz1_lt_vbuxx_then_la1 +cpx {z1} +beq !+ +bcs {la1} +!: +//FRAGMENT vbuz1_lt_vbuyy_then_la1 +cpy {z1} +beq !+ +bcs {la1} +!: +//FRAGMENT isr_rom_sys_cx16_entry + +//FRAGMENT vwuz1_neq_vbuc1_then_la1 +lda {z1}+1 +bne {la1} +lda {z1} +cmp #{c1} +bne {la1} +//FRAGMENT isr_rom_sys_cx16_exit +jmp $e034 +//FRAGMENT _deref_pwuc1=_deref_pwuz1 +ldy #0 +lda ({z1}),y +sta {c1} +iny +lda ({z1}),y +sta {c1}+1 +//FRAGMENT vwuz1=vwuz1_plus_vbuc1 +lda #{c1} +clc +adc {z1} +sta {z1} +bcc !+ +inc {z1}+1 +!: +//FRAGMENT vwuz1_lt_vbuc1_then_la1 +lda {z1}+1 +bne !+ +lda {z1} +cmp #{c1} +bcc {la1} +!: +//FRAGMENT vwuz1=vwuz1_minus_vbuc1 +sec +lda {z1} +sbc #{c1} +sta {z1} +lda {z1}+1 +sbc #0 +sta {z1}+1 +//FRAGMENT _deref_pwuc1=_deref_pwuc1_plus_vbuc2 +lda #{c2} +clc +adc {c1} +sta {c1} +bcc !+ +inc {c1}+1 +!: +//FRAGMENT pbuz1_neq_pbuz2_then_la1 +lda {z1}+1 +cmp {z2}+1 +bne {la1} +lda {z1} +cmp {z2} +bne {la1} +//FRAGMENT vwsm1=vwsc1 +lda #<{c1} +sta {m1} +lda #>{c1} +sta {m1}+1 +//FRAGMENT vwsz1=vwsc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT vwsm1=vwsm1_plus_vwsz2 +clc +lda {m1} +adc {z2} +sta {m1} +lda {m1}+1 +adc {z2}+1 +sta {m1}+1 +//FRAGMENT vwsm1=vwsm1_plus_vwsm2 +clc +lda {m1} +adc {m2} +sta {m1} +lda {m1}+1 +adc {m2}+1 +sta {m1}+1 +//FRAGMENT vwsm1_le_vwsc1_then_la1 +lda #<{c1} +cmp {m1} +lda #>{c1} +sbc {m1}+1 +bvc !+ +eor #$80 +!: +bpl {la1} +//FRAGMENT vwsz1=vbsc1 +lda #<{c1} +sta {z1} +lda #>{c1} +sta {z1}+1 +//FRAGMENT vwsm1=vwsm2 +lda {m2} +sta {m1} +lda {m2}+1 +sta {m1}+1 +//FRAGMENT vwsm1=_neg_vwsm2 +sec +lda #0 +sbc {m2} +sta {m1} +lda #0 +sbc {m2}+1 +sta {m1}+1 +//FRAGMENT vwsz1=vwsm2 +lda {m2} +sta {z1} +lda {m2}+1 +sta {z1}+1 +//FRAGMENT vwsm1=vbsc1 +lda #<{c1} +sta {m1} +lda #>{c1} +sta {m1}+1 +//FRAGMENT vwsm1_ge_0_then_la1 +lda {m1}+1 +bpl {la1} +//FRAGMENT vbum1=_byte0_vwum2 +lda {m2} +sta {m1} +//FRAGMENT _deref_(_deref_qbuc1)=vbum1 +lda {m1} +ldy {c1} +sty $fe +ldy {c1}+1 +sty $ff +ldy #0 +sta ($fe),y +//FRAGMENT vbum1=_byte1_vwum2 +lda {m2}+1 +sta {m1} +//FRAGMENT vduz1=vdum2 +lda {m2} +sta {z1} +lda {m2}+1 +sta {z1}+1 +lda {m2}+2 +sta {z1}+2 +lda {m2}+3 +sta {z1}+3 +//FRAGMENT pbuc1_derefidx_vbuz1=vbum2 +lda {m2} +ldy {z1} +sta {c1},y +//FRAGMENT vbum1=_deref_(_deref_qbuc1) +ldy {c1} +sty $fe +ldy {c1}+1 +sty $ff +ldy #0 +lda ($fe),y +sta {m1} +//FRAGMENT vduz1=_dword_vbum2 +lda {m2} +sta {z1} +lda #0 +sta {z1}+1 +sta {z1}+2 +sta {z1}+3 +//FRAGMENT vduz1=vduz2_band_vbuc1 +NO_SYNTHESIS +//FRAGMENT vduz1=vduz2_band_vwuc1 +NO_SYNTHESIS +//FRAGMENT vduz1=vduz2_band_vwsc1 +NO_SYNTHESIS +//FRAGMENT vduz1=vduz2_band_vduc1 +lda {z2} +and #<{c1} +sta {z1} +lda {z2}+1 +and #>{c1} +sta {z1}+1 +lda {z2}+2 +and #<{c1}>>$10 +sta {z1}+2 +lda {z2}+3 +and #>{c1}>>$10 +sta {z1}+3 +//FRAGMENT vduz1=vduz2_rol_8 +lda #0 +sta {z1} +lda {z2} +sta {z1}+1 +lda {z2}+1 +sta {z1}+2 +lda {z2}+2 +sta {z1}+3 +//FRAGMENT vdum1=vduz2_rol_1 +lda {z2} +asl +sta {m1} +lda {z2}+1 +rol +sta {m1}+1 +lda {z2}+2 +rol +sta {m1}+2 +lda {z2}+3 +rol +sta {m1}+3 +//FRAGMENT vbuz1=vbuz2_ror_vbuz3 +lda {z2} +ldy {z3} +cpy #0 +beq !e+ +!: +lsr +dey +bne !- +!e: +sta {z1} +//FRAGMENT vduz1=vduz1_plus_vbuc1 +lda {z1} +clc +adc #{c1} +sta {z1} +bcc !+ +inc {z1}+1 +bne !+ +inc {z1}+2 +bne !+ +inc {z1}+3 +!: +//FRAGMENT vduz1=vduz1_plus_1 +lda {z1} +clc +adc #1 +sta {z1} +lda {z1}+1 +adc #0 +sta {z1}+1 +lda {z1}+2 +adc #0 +sta {z1}+2 +lda {z1}+3 +adc #0 +sta {z1}+3 +//FRAGMENT vbuaa=_byte0_vwum1 +lda {m1} +//FRAGMENT vbuxx=_byte0_vwum1 +ldx {m1} +//FRAGMENT _deref_(_deref_qbuc1)=vbuaa +ldy {c1} +sty $fe +ldy {c1}+1 +sty $ff +ldy #0 +sta ($fe),y +//FRAGMENT _deref_(_deref_qbuc1)=vbuxx +txa +ldy {c1} +sty $fe +ldy {c1}+1 +sty $ff +ldy #0 +sta ($fe),y +//FRAGMENT _deref_(_deref_qbuc1)=vbuyy +tya +ldy {c1} +sty $fe +ldy {c1}+1 +sty $ff +ldy #0 +sta ($fe),y +//FRAGMENT vbuaa=_byte1_vwum1 +lda {m1}+1 +//FRAGMENT vbuxx=_byte1_vwum1 +ldx {m1}+1 +//FRAGMENT vbuaa=_deref_(_deref_qbuc1) +ldy {c1} +sty $fe +ldy {c1}+1 +sty $ff +ldy #0 +lda ($fe),y +//FRAGMENT vbuxx=_deref_(_deref_qbuc1) +ldy {c1} +sty $fe +ldy {c1}+1 +sty $ff +ldy #0 +lda ($fe),y +tax +//FRAGMENT vbuyy=_deref_(_deref_qbuc1) +ldy {c1} +sty $fe +ldy {c1}+1 +sty $ff +ldy #0 +lda ($fe),y +tay +//FRAGMENT vduz1=_dword_vbuaa +sta {z1} +lda #0 +sta {z1}+1 +sta {z1}+2 +sta {z1}+3 +//FRAGMENT vduz1=_dword_vbuxx +txa +sta {z1} +lda #0 +sta {z1}+1 +sta {z1}+2 +sta {z1}+3 +//FRAGMENT vduz1=_dword_vbuyy +tya +sta {z1} +lda #0 +sta {z1}+1 +sta {z1}+2 +sta {z1}+3 +//FRAGMENT pduc1_derefidx_vbuxx=vduz1 +lda {z1} +sta {c1},x +lda {z1}+1 +sta {c1}+1,x +lda {z1}+2 +sta {c1}+2,x +lda {z1}+3 +sta {c1}+3,x +//FRAGMENT vbuaa=vbuz1_ror_vbuz2 +lda {z1} +ldy {z2} +cpy #0 +beq !e+ +!: +lsr +dey +bne !- +!e: +//FRAGMENT vbuxx=vbuz1_ror_vbuz2 +lda {z1} +ldx {z2} +cpx #0 +beq !e+ +!: +lsr +dex +bne !- +!e: +tax +//FRAGMENT vbuyy=vbuz1_ror_vbuz2 +lda {z1} +ldy {z2} +cpy #0 +beq !e+ +!: +lsr +dey +bne !- +!e: +tay +//FRAGMENT vbuz1=vbuz2_ror_vbuaa +tay +lda {z2} +cpy #0 +beq !e+ +!: +lsr +dey +bne !- +!e: +sta {z1} +//FRAGMENT vbuaa=vbuz1_ror_vbuaa +tay +lda {z1} +cpy #0 +beq !e+ +!: +lsr +dey +bne !- +!e: +//FRAGMENT vbuxx=vbuz1_ror_vbuaa +tax +lda {z1} +cpx #0 +beq !e+ +!: +lsr +dex +bne !- +!e: +tax +//FRAGMENT vbuyy=vbuz1_ror_vbuaa +tay +lda {z1} +cpy #0 +beq !e+ +!: +lsr +dey +bne !- +!e: +tay +//FRAGMENT vbuz1=vbuz2_ror_vbuxx +lda {z2} +cpx #0 +beq !e+ +!: +lsr +dex +bne !- +!e: +sta {z1} +//FRAGMENT vbuaa=vbuz1_ror_vbuxx +lda {z1} +cpx #0 +beq !e+ +!: +lsr +dex +bne !- +!e: +//FRAGMENT vbuxx=vbuz1_ror_vbuxx +lda {z1} +cpx #0 +beq !e+ +!: +lsr +dex +bne !- +!e: +tax +//FRAGMENT vbuyy=vbuz1_ror_vbuxx +lda {z1} +cpx #0 +beq !e+ +!: +lsr +dex +bne !- +!e: +tay +//FRAGMENT vbuz1=vbuz2_ror_vbuyy +lda {z2} +cpy #0 +beq !e+ +!: +lsr +dey +bne !- +!e: +sta {z1} +//FRAGMENT vbuaa=vbuz1_ror_vbuyy +lda {z1} +cpy #0 +beq !e+ +!: +lsr +dey +bne !- +!e: +//FRAGMENT vbuxx=vbuz1_ror_vbuyy +lda {z1} +cpy #0 +beq !e+ +!: +lsr +dey +bne !- +!e: +tax +//FRAGMENT vbuyy=vbuz1_ror_vbuyy +lda {z1} +cpy #0 +beq !e+ +!: +lsr +dey +bne !- +!e: +tay +//FRAGMENT vbuyy=_byte0_vwum1 +ldy {m1} +//FRAGMENT vbuyy=_byte1_vwum1 +ldy {m1}+1 +//FRAGMENT vduz1=vduz1_band_vbuc1 +NO_SYNTHESIS +//FRAGMENT vduz1=vduz1_band_vwuc1 +NO_SYNTHESIS +//FRAGMENT vduz1=vduz1_band_vwsc1 +NO_SYNTHESIS +//FRAGMENT vduz1=vduz1_band_vduc1 +lda {z1} +and #<{c1} +sta {z1} +lda {z1}+1 +and #>{c1} +sta {z1}+1 +lda {z1}+2 +and #<{c1}>>$10 +sta {z1}+2 +lda {z1}+3 +and #>{c1}>>$10 +sta {z1}+3 +//FRAGMENT vduz1=vduz1_rol_8 +lda {z1}+2 +sta {z1}+3 +lda {z1}+1 +sta {z1}+2 +lda {z1} +sta {z1}+1 +lda #0 +sta {z1} +//FRAGMENT vwsz1=vwsz1_plus_vwsz2 +clc +lda {z1} +adc {z2} +sta {z1} +lda {z1}+1 +adc {z2}+1 +sta {z1}+1 +//FRAGMENT vwsz1_le_vwsc1_then_la1 +lda #<{c1} +cmp {z1} +lda #>{c1} +sbc {z1}+1 +bvc !+ +eor #$80 +!: +bpl {la1} +//FRAGMENT vwsz1=vwsz2 +lda {z2} +sta {z1} +lda {z2}+1 +sta {z1}+1 +//FRAGMENT vwsz1=_neg_vwsz2 +sec +lda #0 +sbc {z2} +sta {z1} +lda #0 +sbc {z2}+1 +sta {z1}+1 +//FRAGMENT vwsz1_ge_0_then_la1 +lda {z1}+1 +bpl {la1} +//FRAGMENT vduz1=vduz2_rol_1 +lda {z2} +asl +sta {z1} +lda {z2}+1 +rol +sta {z1}+1 +lda {z2}+2 +rol +sta {z1}+2 +lda {z2}+3 +rol +sta {z1}+3 +//FRAGMENT 0_neq_pbuc1_derefidx_vbuaa_then_la1 +tay +lda {c1},y +cmp #0 +bne {la1} +//FRAGMENT 0_neq_pbuc1_derefidx_vbuxx_then_la1 +lda {c1},x +cmp #0 +bne {la1} +//FRAGMENT 0_neq_pbuc1_derefidx_vbuyy_then_la1 +lda {c1},y +cmp #0 +bne {la1} +//FRAGMENT vduz1_lt_vduc1_then_la1 +lda {z1}+3 +cmp #>{c1}>>$10 +bcc {la1} +bne !+ +lda {z1}+2 +cmp #<{c1}>>$10 +bcc {la1} +bne !+ +lda {z1}+1 +cmp #>{c1} +bcc {la1} +bne !+ +lda {z1} +cmp #<{c1} +bcc {la1} +!: +//FRAGMENT vduz1=vduz2_plus_vbuc1 +lda #{c1} +clc +adc {z2} +sta {z1} +lda {z2}+1 +adc #0 +sta {z1}+1 +lda {z2}+2 +adc #0 +sta {z1}+2 +lda {z2}+3 +adc #0 +sta {z1}+3 +//FRAGMENT vwuz1=vwuz2_plus_vwuc1 +lda {z2} +clc +adc #<{c1} +sta {z1} +lda {z2}+1 +adc #>{c1} +sta {z1}+1 +//FRAGMENT vduz1=vduz1_plus_vwuc1 +clc +lda {z1} +adc #<{c1} +sta {z1} +lda {z1}+1 +adc #>{c1} +sta {z1}+1 +lda {z1}+2 +adc #0 +sta {z1}+2 +lda {z1}+3 +adc #0 +sta {z1}+3 +//FRAGMENT vbuz1=_byte_vduz2 +lda {z2} +sta {z1} +//FRAGMENT vduz1=pduc1_derefidx_vbuz2 +ldy {z2} +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 +lda {c1}+2,y +sta {z1}+2 +lda {c1}+3,y +sta {z1}+3 +//FRAGMENT vduz1_ge_vduz2_then_la1 +lda {z1}+3 +cmp {z2}+3 +bcc !+ +bne {la1} +lda {z1}+2 +cmp {z2}+2 +bcc !+ +bne {la1} +lda {z1}+1 +cmp {z2}+1 +bcc !+ +bne {la1} +lda {z1} +cmp {z2} +bcs {la1} +!: +//FRAGMENT vduz1=vduz1_minus_vduz2 +lda {z1} +sec +sbc {z2} +sta {z1} +lda {z1}+1 +sbc {z2}+1 +sta {z1}+1 +lda {z1}+2 +sbc {z2}+2 +sta {z1}+2 +lda {z1}+3 +sbc {z2}+3 +sta {z1}+3 +//FRAGMENT vbuaa=_byte_vduz1 +lda {z1} +//FRAGMENT vbuxx=_byte_vduz1 +lda {z1} +tax +//FRAGMENT vbuyy=_byte_vduz1 +lda {z1} +tay +//FRAGMENT vbuz1=vbuaa_rol_2 +asl +asl +sta {z1} +//FRAGMENT vbuz1=vbuyy_rol_2 +tya +asl +asl +sta {z1} +//FRAGMENT vbuaa=vbuaa_rol_2 +asl +asl +//FRAGMENT vbuaa=vbuxx_rol_2 +txa +asl +asl +//FRAGMENT vbuaa=vbuyy_rol_2 +tya +asl +asl +//FRAGMENT vbuxx=vbuaa_rol_2 +asl +asl +tax +//FRAGMENT vbuxx=vbuyy_rol_2 +tya +asl +asl +tax +//FRAGMENT vbuyy=vbuz1_rol_2 +lda {z1} +asl +asl +tay +//FRAGMENT vbuyy=vbuaa_rol_2 +asl +asl +tay +//FRAGMENT vbuyy=vbuxx_rol_2 +txa +asl +asl +tay +//FRAGMENT vbuyy=vbuyy_rol_2 +tya +asl +asl +tay +//FRAGMENT vduz1=pduc1_derefidx_vbuaa +tay +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 +lda {c1}+2,y +sta {z1}+2 +lda {c1}+3,y +sta {z1}+3 +//FRAGMENT vduz1=pduc1_derefidx_vbuxx +lda {c1},x +sta {z1} +lda {c1}+1,x +sta {z1}+1 +lda {c1}+2,x +sta {z1}+2 +lda {c1}+3,x +sta {z1}+3 +//FRAGMENT vduz1=pduc1_derefidx_vbuyy +lda {c1},y +sta {z1} +lda {c1}+1,y +sta {z1}+1 +lda {c1}+2,y +sta {z1}+2 +lda {c1}+3,y +sta {z1}+3 +//FRAGMENT vbuaa=_byte_vwuz1 +lda {z1} +//FRAGMENT vbuxx=_byte_vwuz1 +ldx {z1} +//FRAGMENT vbuyy=_byte_vwuz1 +ldy {z1} +//FRAGMENT vbuyy_ge_vbuz1_then_la1 +cpy {z1} +bcs {la1} +//FRAGMENT vwuz1=vwuz1_plus_vwuc1 +lda {z1} +clc +adc #<{c1} +sta {z1} +lda {z1}+1 +adc #>{c1} +sta {z1}+1