
CONTROL FLOW GRAPH SSA
@begin: scope:[]  from
  (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
  to:@2
main: scope:[main]  from @2
  (byte*) SCREEN#1 ← phi( @2/(byte*) SCREEN#3 )
  (byte) main::c#0 ← *((byte*) SCREEN#1)
  (byte) fillscreen::c#0 ← (byte) main::c#0
  call fillscreen 
  to:main::@1
main::@1: scope:[main]  from main
  to:main::@return
main::@return: scope:[main]  from main::@1
  return 
  to:@return
fillscreen: scope:[fillscreen]  from main
  (byte) fillscreen::c#2 ← phi( main/(byte) fillscreen::c#0 )
  (byte*) SCREEN#4 ← phi( main/(byte*) SCREEN#1 )
  (byte) fillscreen::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
  to:fillscreen::@1
fillscreen::@1: scope:[fillscreen]  from fillscreen fillscreen::@1
  (byte) fillscreen::j#2 ← phi( fillscreen/(byte) fillscreen::j#0 fillscreen::@1/(byte) fillscreen::j#1 )
  (byte) fillscreen::c#1 ← phi( fillscreen/(byte) fillscreen::c#2 fillscreen::@1/(byte) fillscreen::c#1 )
  (byte*) SCREEN#2 ← phi( fillscreen/(byte*) SCREEN#4 fillscreen::@1/(byte*) SCREEN#2 )
  (byte*~) fillscreen::$0 ← (byte*) SCREEN#2 + (word/signed word/dword/signed dword) 256
  (byte*) fillscreen::SCREEN2#0 ← (byte*~) fillscreen::$0
  (byte*~) fillscreen::$1 ← (byte*) SCREEN#2 + (word/signed word/dword/signed dword) 512
  (byte*) fillscreen::SCREEN3#0 ← (byte*~) fillscreen::$1
  (byte*~) fillscreen::$2 ← (byte*) SCREEN#2 + (word/signed word/dword/signed dword) 1000
  (byte*) fillscreen::SCREEN4#0 ← (byte*~) fillscreen::$2
  *((byte*) SCREEN#2 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#1
  *((byte*) fillscreen::SCREEN2#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#1
  *((byte*) fillscreen::SCREEN3#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#1
  *((byte*) fillscreen::SCREEN4#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#1
  (byte) fillscreen::j#1 ← (byte) fillscreen::j#2 + rangenext(0,255)
  (bool~) fillscreen::$3 ← (byte) fillscreen::j#1 != rangelast(0,255)
  if((bool~) fillscreen::$3) goto fillscreen::@1
  to:fillscreen::@return
fillscreen::@return: scope:[fillscreen]  from fillscreen::@1
  return 
  to:@return
@2: scope:[]  from @begin
  (byte*) SCREEN#3 ← phi( @begin/(byte*) SCREEN#0 )
  call main 
  to:@3
@3: scope:[]  from @2
  to:@end
@end: scope:[]  from @3

SYMBOL TABLE SSA
(label) @2
(label) @3
(label) @begin
(label) @end
(byte*) SCREEN
(byte*) SCREEN#0
(byte*) SCREEN#1
(byte*) SCREEN#2
(byte*) SCREEN#3
(byte*) SCREEN#4
(void()) fillscreen((byte) fillscreen::c)
(byte*~) fillscreen::$0
(byte*~) fillscreen::$1
(byte*~) fillscreen::$2
(bool~) fillscreen::$3
(label) fillscreen::@1
(label) fillscreen::@return
(byte*) fillscreen::SCREEN2
(byte*) fillscreen::SCREEN2#0
(byte*) fillscreen::SCREEN3
(byte*) fillscreen::SCREEN3#0
(byte*) fillscreen::SCREEN4
(byte*) fillscreen::SCREEN4#0
(byte) fillscreen::c
(byte) fillscreen::c#0
(byte) fillscreen::c#1
(byte) fillscreen::c#2
(byte) fillscreen::j
(byte) fillscreen::j#0
(byte) fillscreen::j#1
(byte) fillscreen::j#2
(void()) main()
(label) main::@1
(label) main::@return
(byte) main::c
(byte) main::c#0

Culled Empty Block (label) main::@1
Culled Empty Block (label) @3
Successful SSA optimization Pass2CullEmptyBlocks
Alias (byte*) fillscreen::SCREEN2#0 = (byte*~) fillscreen::$0 
Alias (byte*) fillscreen::SCREEN3#0 = (byte*~) fillscreen::$1 
Alias (byte*) fillscreen::SCREEN4#0 = (byte*~) fillscreen::$2 
Alias (byte*) SCREEN#0 = (byte*) SCREEN#3 
Successful SSA optimization Pass2AliasElimination
Self Phi Eliminated (byte*) SCREEN#2
Self Phi Eliminated (byte) fillscreen::c#1
Successful SSA optimization Pass2SelfPhiElimination
Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#0
Redundant Phi (byte*) SCREEN#4 (byte*) SCREEN#1
Redundant Phi (byte) fillscreen::c#2 (byte) fillscreen::c#0
Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#4
Redundant Phi (byte) fillscreen::c#1 (byte) fillscreen::c#2
Successful SSA optimization Pass2RedundantPhiElimination
Simple Condition (bool~) fillscreen::$3 [21] if((byte) fillscreen::j#1!=rangelast(0,255)) goto fillscreen::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte*) SCREEN#0 = ((byte*))1024
Constant (const byte) fillscreen::j#0 = 0
Successful SSA optimization Pass2ConstantIdentification
Constant (const byte*) fillscreen::SCREEN2#0 = SCREEN#0+256
Constant (const byte*) fillscreen::SCREEN3#0 = SCREEN#0+512
Constant (const byte*) fillscreen::SCREEN4#0 = SCREEN#0+1000
Successful SSA optimization Pass2ConstantIdentification
Resolved ranged next value fillscreen::j#1 ← ++ fillscreen::j#2 to ++
Resolved ranged comparison value if(fillscreen::j#1!=rangelast(0,255)) goto fillscreen::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0
Inlining constant with var siblings (const byte) fillscreen::j#0
Constant inlined fillscreen::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
Successful SSA optimization Pass2ConstantInlining
Added new block during phi lifting fillscreen::@3(between fillscreen::@1 and fillscreen::@1)
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @2
Adding NOP phi() at start of @end
Adding NOP phi() at start of fillscreen
CALL GRAPH
Calls in [] to main:2 
Calls in [main] to fillscreen:6 

Created 1 initial phi equivalence classes
Coalesced [17] fillscreen::j#3 ← fillscreen::j#1
Coalesced down to 1 phi equivalence classes
Culled Empty Block (label) fillscreen::@3
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @2
Adding NOP phi() at start of @end
Adding NOP phi() at start of fillscreen

FINAL CONTROL FLOW GRAPH
@begin: scope:[]  from
  [0] phi()
  to:@2
@2: scope:[]  from @begin
  [1] phi()
  [2] call main 
  to:@end
@end: scope:[]  from @2
  [3] phi()
main: scope:[main]  from @2
  [4] (byte) main::c#0 ← *((const byte*) SCREEN#0)
  [5] (byte) fillscreen::c#0 ← (byte) main::c#0
  [6] call fillscreen 
  to:main::@return
main::@return: scope:[main]  from main
  [7] return 
  to:@return
fillscreen: scope:[fillscreen]  from main
  [8] phi()
  to:fillscreen::@1
fillscreen::@1: scope:[fillscreen]  from fillscreen fillscreen::@1
  [9] (byte) fillscreen::j#2 ← phi( fillscreen/(byte/signed byte/word/signed word/dword/signed dword) 0 fillscreen::@1/(byte) fillscreen::j#1 )
  [10] *((const byte*) SCREEN#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#0
  [11] *((const byte*) fillscreen::SCREEN2#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#0
  [12] *((const byte*) fillscreen::SCREEN3#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#0
  [13] *((const byte*) fillscreen::SCREEN4#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#0
  [14] (byte) fillscreen::j#1 ← ++ (byte) fillscreen::j#2
  [15] if((byte) fillscreen::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto fillscreen::@1
  to:fillscreen::@return
fillscreen::@return: scope:[fillscreen]  from fillscreen::@1
  [16] return 
  to:@return


VARIABLE REGISTER WEIGHTS
(byte*) SCREEN
(void()) fillscreen((byte) fillscreen::c)
(byte*) fillscreen::SCREEN2
(byte*) fillscreen::SCREEN3
(byte*) fillscreen::SCREEN4
(byte) fillscreen::c
(byte) fillscreen::c#0 5.111111111111112
(byte) fillscreen::j
(byte) fillscreen::j#1 16.5
(byte) fillscreen::j#2 13.2
(void()) main()
(byte) main::c
(byte) main::c#0 4.0

Initial phi equivalence classes
[ fillscreen::j#2 fillscreen::j#1 ]
Added variable main::c#0 to zero page equivalence class [ main::c#0 ]
Added variable fillscreen::c#0 to zero page equivalence class [ fillscreen::c#0 ]
Complete equivalence classes
[ fillscreen::j#2 fillscreen::j#1 ]
[ main::c#0 ]
[ fillscreen::c#0 ]
Allocated zp ZP_BYTE:2 [ fillscreen::j#2 fillscreen::j#1 ]
Allocated zp ZP_BYTE:3 [ main::c#0 ]
Allocated zp ZP_BYTE:4 [ fillscreen::c#0 ]

INITIAL ASM
//SEG0 File Comments
//SEG1 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(bbegin)
.pc = $80d "Program"
//SEG2 Global Constants & labels
  .label SCREEN = $400
//SEG3 @begin
bbegin:
//SEG4 [1] phi from @begin to @2 [phi:@begin->@2]
b2_from_bbegin:
  jmp b2
//SEG5 @2
b2:
//SEG6 [2] call main 
  jsr main
//SEG7 [3] phi from @2 to @end [phi:@2->@end]
bend_from_b2:
  jmp bend
//SEG8 @end
bend:
//SEG9 main
main: {
    .label c = 3
  //SEG10 [4] (byte) main::c#0 ← *((const byte*) SCREEN#0) -- vbuz1=_deref_pbuc1 
    lda SCREEN
    sta c
  //SEG11 [5] (byte) fillscreen::c#0 ← (byte) main::c#0 -- vbuz1=vbuz2 
    lda c
    sta fillscreen.c
  //SEG12 [6] call fillscreen 
  //SEG13 [8] phi from main to fillscreen [phi:main->fillscreen]
  fillscreen_from_main:
    jsr fillscreen
    jmp breturn
  //SEG14 main::@return
  breturn:
  //SEG15 [7] return 
    rts
}
//SEG16 fillscreen
// fillscreen(byte zeropage(4) c)
fillscreen: {
    .label SCREEN2 = SCREEN+$100
    .label SCREEN3 = SCREEN+$200
    .label SCREEN4 = SCREEN+$3e8
    .label c = 4
    .label j = 2
  //SEG17 [9] phi from fillscreen to fillscreen::@1 [phi:fillscreen->fillscreen::@1]
  b1_from_fillscreen:
  //SEG18 [9] phi (byte) fillscreen::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:fillscreen->fillscreen::@1#0] -- vbuz1=vbuc1 
    lda #0
    sta j
    jmp b1
  //SEG19 [9] phi from fillscreen::@1 to fillscreen::@1 [phi:fillscreen::@1->fillscreen::@1]
  b1_from_b1:
  //SEG20 [9] phi (byte) fillscreen::j#2 = (byte) fillscreen::j#1 [phi:fillscreen::@1->fillscreen::@1#0] -- register_copy 
    jmp b1
  //SEG21 fillscreen::@1
  b1:
  //SEG22 [10] *((const byte*) SCREEN#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#0 -- pbuc1_derefidx_vbuz1=vbuz2 
    lda c
    ldy j
    sta SCREEN,y
  //SEG23 [11] *((const byte*) fillscreen::SCREEN2#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#0 -- pbuc1_derefidx_vbuz1=vbuz2 
    lda c
    ldy j
    sta SCREEN2,y
  //SEG24 [12] *((const byte*) fillscreen::SCREEN3#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#0 -- pbuc1_derefidx_vbuz1=vbuz2 
    lda c
    ldy j
    sta SCREEN3,y
  //SEG25 [13] *((const byte*) fillscreen::SCREEN4#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#0 -- pbuc1_derefidx_vbuz1=vbuz2 
    lda c
    ldy j
    sta SCREEN4,y
  //SEG26 [14] (byte) fillscreen::j#1 ← ++ (byte) fillscreen::j#2 -- vbuz1=_inc_vbuz1 
    inc j
  //SEG27 [15] if((byte) fillscreen::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto fillscreen::@1 -- vbuz1_neq_0_then_la1 
    lda j
    cmp #0
    bne b1_from_b1
    jmp breturn
  //SEG28 fillscreen::@return
  breturn:
  //SEG29 [16] return 
    rts
}

REGISTER UPLIFT POTENTIAL REGISTERS
Potential registers zp ZP_BYTE:2 [ fillscreen::j#2 fillscreen::j#1 ] : zp ZP_BYTE:2 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:3 [ main::c#0 ] : zp ZP_BYTE:3 , reg byte a , reg byte x , reg byte y , 
Potential registers zp ZP_BYTE:4 [ fillscreen::c#0 ] : zp ZP_BYTE:4 , reg byte a , reg byte x , reg byte y , 

REGISTER UPLIFT SCOPES
Uplift Scope [fillscreen] 29.7: zp ZP_BYTE:2 [ fillscreen::j#2 fillscreen::j#1 ] 5.11: zp ZP_BYTE:4 [ fillscreen::c#0 ] 
Uplift Scope [main] 4: zp ZP_BYTE:3 [ main::c#0 ] 
Uplift Scope [] 

Uplifting [fillscreen] best 418 combination reg byte x [ fillscreen::j#2 fillscreen::j#1 ] reg byte a [ fillscreen::c#0 ] 
Uplifting [main] best 412 combination reg byte a [ main::c#0 ] 
Uplifting [] best 412 combination 

ASSEMBLER BEFORE OPTIMIZATION
//SEG0 File Comments
//SEG1 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(bbegin)
.pc = $80d "Program"
//SEG2 Global Constants & labels
  .label SCREEN = $400
//SEG3 @begin
bbegin:
//SEG4 [1] phi from @begin to @2 [phi:@begin->@2]
b2_from_bbegin:
  jmp b2
//SEG5 @2
b2:
//SEG6 [2] call main 
  jsr main
//SEG7 [3] phi from @2 to @end [phi:@2->@end]
bend_from_b2:
  jmp bend
//SEG8 @end
bend:
//SEG9 main
main: {
  //SEG10 [4] (byte) main::c#0 ← *((const byte*) SCREEN#0) -- vbuaa=_deref_pbuc1 
    lda SCREEN
  //SEG11 [5] (byte) fillscreen::c#0 ← (byte) main::c#0
  //SEG12 [6] call fillscreen 
  //SEG13 [8] phi from main to fillscreen [phi:main->fillscreen]
  fillscreen_from_main:
    jsr fillscreen
    jmp breturn
  //SEG14 main::@return
  breturn:
  //SEG15 [7] return 
    rts
}
//SEG16 fillscreen
// fillscreen(byte register(A) c)
fillscreen: {
    .label SCREEN2 = SCREEN+$100
    .label SCREEN3 = SCREEN+$200
    .label SCREEN4 = SCREEN+$3e8
  //SEG17 [9] phi from fillscreen to fillscreen::@1 [phi:fillscreen->fillscreen::@1]
  b1_from_fillscreen:
  //SEG18 [9] phi (byte) fillscreen::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:fillscreen->fillscreen::@1#0] -- vbuxx=vbuc1 
    ldx #0
    jmp b1
  //SEG19 [9] phi from fillscreen::@1 to fillscreen::@1 [phi:fillscreen::@1->fillscreen::@1]
  b1_from_b1:
  //SEG20 [9] phi (byte) fillscreen::j#2 = (byte) fillscreen::j#1 [phi:fillscreen::@1->fillscreen::@1#0] -- register_copy 
    jmp b1
  //SEG21 fillscreen::@1
  b1:
  //SEG22 [10] *((const byte*) SCREEN#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#0 -- pbuc1_derefidx_vbuxx=vbuaa 
    sta SCREEN,x
  //SEG23 [11] *((const byte*) fillscreen::SCREEN2#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#0 -- pbuc1_derefidx_vbuxx=vbuaa 
    sta SCREEN2,x
  //SEG24 [12] *((const byte*) fillscreen::SCREEN3#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#0 -- pbuc1_derefidx_vbuxx=vbuaa 
    sta SCREEN3,x
  //SEG25 [13] *((const byte*) fillscreen::SCREEN4#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#0 -- pbuc1_derefidx_vbuxx=vbuaa 
    sta SCREEN4,x
  //SEG26 [14] (byte) fillscreen::j#1 ← ++ (byte) fillscreen::j#2 -- vbuxx=_inc_vbuxx 
    inx
  //SEG27 [15] if((byte) fillscreen::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto fillscreen::@1 -- vbuxx_neq_0_then_la1 
    cpx #0
    bne b1_from_b1
    jmp breturn
  //SEG28 fillscreen::@return
  breturn:
  //SEG29 [16] return 
    rts
}

ASSEMBLER OPTIMIZATIONS
Removing instruction jmp b2
Removing instruction jmp bend
Removing instruction jmp breturn
Removing instruction jmp b1
Removing instruction jmp breturn
Succesful ASM optimization Pass5NextJumpElimination
Replacing label b1_from_b1 with b1
Removing instruction b2_from_bbegin:
Removing instruction b2:
Removing instruction bend_from_b2:
Removing instruction b1_from_b1:
Succesful ASM optimization Pass5RedundantLabelElimination
Removing instruction bend:
Removing instruction fillscreen_from_main:
Removing instruction breturn:
Removing instruction b1_from_fillscreen:
Removing instruction breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
Updating BasicUpstart to call main directly
Removing instruction jsr main
Succesful ASM optimization Pass5SkipBegin
Removing instruction jmp b1
Succesful ASM optimization Pass5NextJumpElimination
Removing instruction bbegin:
Succesful ASM optimization Pass5UnusedLabelElimination

FINAL SYMBOL TABLE
(label) @2
(label) @begin
(label) @end
(byte*) SCREEN
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
(void()) fillscreen((byte) fillscreen::c)
(label) fillscreen::@1
(label) fillscreen::@return
(byte*) fillscreen::SCREEN2
(const byte*) fillscreen::SCREEN2#0 SCREEN2 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 256
(byte*) fillscreen::SCREEN3
(const byte*) fillscreen::SCREEN3#0 SCREEN3 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 512
(byte*) fillscreen::SCREEN4
(const byte*) fillscreen::SCREEN4#0 SCREEN4 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000
(byte) fillscreen::c
(byte) fillscreen::c#0 reg byte a 5.111111111111112
(byte) fillscreen::j
(byte) fillscreen::j#1 reg byte x 16.5
(byte) fillscreen::j#2 reg byte x 13.2
(void()) main()
(label) main::@return
(byte) main::c
(byte) main::c#0 reg byte a 4.0

reg byte x [ fillscreen::j#2 fillscreen::j#1 ]
reg byte a [ main::c#0 ]
reg byte a [ fillscreen::c#0 ]


FINAL ASSEMBLER
Score: 307

//SEG0 File Comments
//SEG1 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
//SEG2 Global Constants & labels
  .label SCREEN = $400
//SEG3 @begin
//SEG4 [1] phi from @begin to @2 [phi:@begin->@2]
//SEG5 @2
//SEG6 [2] call main 
//SEG7 [3] phi from @2 to @end [phi:@2->@end]
//SEG8 @end
//SEG9 main
main: {
  //SEG10 [4] (byte) main::c#0 ← *((const byte*) SCREEN#0) -- vbuaa=_deref_pbuc1 
    lda SCREEN
  //SEG11 [5] (byte) fillscreen::c#0 ← (byte) main::c#0
  //SEG12 [6] call fillscreen 
  //SEG13 [8] phi from main to fillscreen [phi:main->fillscreen]
    jsr fillscreen
  //SEG14 main::@return
  //SEG15 [7] return 
    rts
}
//SEG16 fillscreen
// fillscreen(byte register(A) c)
fillscreen: {
    .label SCREEN2 = SCREEN+$100
    .label SCREEN3 = SCREEN+$200
    .label SCREEN4 = SCREEN+$3e8
  //SEG17 [9] phi from fillscreen to fillscreen::@1 [phi:fillscreen->fillscreen::@1]
  //SEG18 [9] phi (byte) fillscreen::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:fillscreen->fillscreen::@1#0] -- vbuxx=vbuc1 
    ldx #0
  //SEG19 [9] phi from fillscreen::@1 to fillscreen::@1 [phi:fillscreen::@1->fillscreen::@1]
  //SEG20 [9] phi (byte) fillscreen::j#2 = (byte) fillscreen::j#1 [phi:fillscreen::@1->fillscreen::@1#0] -- register_copy 
  //SEG21 fillscreen::@1
  b1:
  //SEG22 [10] *((const byte*) SCREEN#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#0 -- pbuc1_derefidx_vbuxx=vbuaa 
    sta SCREEN,x
  //SEG23 [11] *((const byte*) fillscreen::SCREEN2#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#0 -- pbuc1_derefidx_vbuxx=vbuaa 
    sta SCREEN2,x
  //SEG24 [12] *((const byte*) fillscreen::SCREEN3#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#0 -- pbuc1_derefidx_vbuxx=vbuaa 
    sta SCREEN3,x
  //SEG25 [13] *((const byte*) fillscreen::SCREEN4#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#0 -- pbuc1_derefidx_vbuxx=vbuaa 
    sta SCREEN4,x
  //SEG26 [14] (byte) fillscreen::j#1 ← ++ (byte) fillscreen::j#2 -- vbuxx=_inc_vbuxx 
    inx
  //SEG27 [15] if((byte) fillscreen::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto fillscreen::@1 -- vbuxx_neq_0_then_la1 
    cpx #0
    bne b1
  //SEG28 fillscreen::@return
  //SEG29 [16] return 
    rts
}

