1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-09-08 02:54:41 +00:00

Fixed tests

This commit is contained in:
jespergravgaard 2018-08-03 02:08:39 +02:00
parent ca55ac68cb
commit 18473295c9
6 changed files with 213 additions and 304 deletions

View File

@ -46,7 +46,7 @@ main: {
sta line1_pos
lda #>line1_xpos*$100+0
sta line1_pos+1
b2:
line1_b1:
lda line1_pos+1
clc
adc cur_line
@ -73,7 +73,7 @@ main: {
!:
inx
cpx #line1_ysize
bcc b2
bcc line1_b1
ldx #0
lda #<$400
sta cur_line
@ -83,7 +83,7 @@ main: {
sta line2_pos
lda #>line2_xpos*$100+0
sta line2_pos+1
b3:
line2_b1:
lda line2_pos+1
clc
adc cur_line
@ -110,6 +110,6 @@ main: {
!:
inx
cpx #line2_ysize
bcc b3
bcc line2_b1
rts
}

View File

@ -19,7 +19,7 @@ main::@1: scope:[main] from main main::@1
main::line1: scope:[main] from main::@1
[9] phi() [ ] ( main:2 [ ] )
to:main::line1_@1
main::line1_@1: scope:[main] from main::@4 main::line1 main::line1_@1
main::line1_@1: scope:[main] from main::@4 main::line1
[10] (byte) main::line1_i#2 ← phi( main::@4/(byte) main::line1_i#1 main::line1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] )
[10] (byte*) cur_line#13 ← phi( main::@4/(byte*) cur_line#1 main::line1/((byte*))(word/signed word/dword/signed dword) 1024 ) [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] )
[10] (word) main::line1_pos#2 ← phi( main::@4/(word) main::line1_pos#1 main::line1/(const byte) main::line1_xpos#0*(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] )
@ -38,7 +38,7 @@ main::@4: scope:[main] from main::plot1
main::line2: scope:[main] from main::@4
[18] phi() [ ] ( main:2 [ ] )
to:main::line2_@1
main::line2_@1: scope:[main] from main::@6 main::line2 main::line2_@1
main::line2_@1: scope:[main] from main::@6 main::line2
[19] (byte) main::line2_i#2 ← phi( main::@6/(byte) main::line2_i#1 main::line2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] )
[19] (byte*) cur_line#10 ← phi( main::@6/(byte*) cur_line#11 main::line2/((byte*))(word/signed word/dword/signed dword) 1024 ) [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] )
[19] (word) main::line2_pos#2 ← phi( main::@6/(word) main::line2_pos#1 main::line2/(const byte) main::line2_xpos#0*(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] )

View File

@ -174,13 +174,13 @@ main::line1: scope:[main] from main::@2
(word) main::line1_pos#0 ← { (byte) main::line1_xpos#1, (byte/signed byte/word/signed word/dword/signed dword) 0 }
(byte) main::line1_i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
to:main::line1_@1
main::line1_@1: scope:[main] from main::@4 main::line1 main::line1_@1
(byte) main::line1_ysize#3 ← phi( main::@4/(byte) main::line1_ysize#1 main::line1/(byte) main::line1_ysize#4 main::line1_@1/(byte) main::line1_ysize#3 )
(byte) main::line1_i#4 ← phi( main::@4/(byte) main::line1_i#1 main::line1/(byte) main::line1_i#0 main::line1_@1/(byte) main::line1_i#4 )
(byte) main::line1_xadd#3 ← phi( main::@4/(byte) main::line1_xadd#1 main::line1/(byte) main::line1_xadd#4 main::line1_@1/(byte) main::line1_xadd#3 )
(byte*) cur_line#13 ← phi( main::@4/(byte*) cur_line#1 main::line1/(byte*) cur_line#0 main::line1_@1/(byte*) cur_line#13 )
(byte) main::line1_ch#1 ← phi( main::@4/(byte) main::line1_ch#2 main::line1/(byte) main::line1_ch#3 main::line1_@1/(byte) main::line1_ch#1 )
(word) main::line1_pos#2 ← phi( main::@4/(word) main::line1_pos#1 main::line1/(word) main::line1_pos#0 main::line1_@1/(word) main::line1_pos#2 )
main::line1_@1: scope:[main] from main::@4 main::line1
(byte) main::line1_ysize#3 ← phi( main::@4/(byte) main::line1_ysize#1 main::line1/(byte) main::line1_ysize#4 )
(byte) main::line1_i#4 ← phi( main::@4/(byte) main::line1_i#1 main::line1/(byte) main::line1_i#0 )
(byte) main::line1_xadd#3 ← phi( main::@4/(byte) main::line1_xadd#1 main::line1/(byte) main::line1_xadd#4 )
(byte*) cur_line#13 ← phi( main::@4/(byte*) cur_line#1 main::line1/(byte*) cur_line#0 )
(byte) main::line1_ch#1 ← phi( main::@4/(byte) main::line1_ch#2 main::line1/(byte) main::line1_ch#3 )
(word) main::line1_pos#2 ← phi( main::@4/(word) main::line1_pos#1 main::line1/(word) main::line1_pos#0 )
(byte) main::line1_$0#0 ← > (word) main::line1_pos#2
(byte) main::plot1_xpos#0 ← (byte) main::line1_$0#0
(byte) main::plot1_ch#0 ← (byte) main::line1_ch#1
@ -225,13 +225,13 @@ main::line2: scope:[main] from main::@3
(word) main::line2_pos#0 ← { (byte) main::line2_xpos#1, (byte/signed byte/word/signed word/dword/signed dword) 0 }
(byte) main::line2_i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
to:main::line2_@1
main::line2_@1: scope:[main] from main::@6 main::line2 main::line2_@1
(byte) main::line2_ysize#3 ← phi( main::@6/(byte) main::line2_ysize#1 main::line2/(byte) main::line2_ysize#4 main::line2_@1/(byte) main::line2_ysize#3 )
(byte) main::line2_i#4 ← phi( main::@6/(byte) main::line2_i#1 main::line2/(byte) main::line2_i#0 main::line2_@1/(byte) main::line2_i#4 )
(byte) main::line2_xadd#3 ← phi( main::@6/(byte) main::line2_xadd#1 main::line2/(byte) main::line2_xadd#4 main::line2_@1/(byte) main::line2_xadd#3 )
(byte*) cur_line#14 ← phi( main::@6/(byte*) cur_line#3 main::line2/(byte*) cur_line#2 main::line2_@1/(byte*) cur_line#14 )
(byte) main::line2_ch#1 ← phi( main::@6/(byte) main::line2_ch#2 main::line2/(byte) main::line2_ch#3 main::line2_@1/(byte) main::line2_ch#1 )
(word) main::line2_pos#2 ← phi( main::@6/(word) main::line2_pos#1 main::line2/(word) main::line2_pos#0 main::line2_@1/(word) main::line2_pos#2 )
main::line2_@1: scope:[main] from main::@6 main::line2
(byte) main::line2_ysize#3 ← phi( main::@6/(byte) main::line2_ysize#1 main::line2/(byte) main::line2_ysize#4 )
(byte) main::line2_i#4 ← phi( main::@6/(byte) main::line2_i#1 main::line2/(byte) main::line2_i#0 )
(byte) main::line2_xadd#3 ← phi( main::@6/(byte) main::line2_xadd#1 main::line2/(byte) main::line2_xadd#4 )
(byte*) cur_line#14 ← phi( main::@6/(byte*) cur_line#3 main::line2/(byte*) cur_line#2 )
(byte) main::line2_ch#1 ← phi( main::@6/(byte) main::line2_ch#2 main::line2/(byte) main::line2_ch#3 )
(word) main::line2_pos#2 ← phi( main::@6/(word) main::line2_pos#1 main::line2/(word) main::line2_pos#0 )
(byte) main::line2_$0#0 ← > (word) main::line2_pos#2
(byte) main::plot2_xpos#0 ← (byte) main::line2_$0#0
(byte) main::plot2_ch#0 ← (byte) main::line2_ch#1
@ -447,23 +447,11 @@ Not aliassing identity: main::line2_ch#1 main::line2_ch#1
Not aliassing identity: main::line2_xadd#1 main::line2_xadd#1
Not aliassing identity: main::line2_ysize#1 main::line2_ysize#1
Not aliassing across scopes: cur_line#12 cur_line#11
Self Phi Eliminated (word) main::line1_pos#2
Self Phi Eliminated (byte) main::line1_ch#1
Self Phi Eliminated (byte) main::line1_ch#1
Self Phi Eliminated (byte*) cur_line#13
Self Phi Eliminated (byte) main::line1_xadd#1
Self Phi Eliminated (byte) main::line1_xadd#1
Self Phi Eliminated (byte) main::line1_i#2
Self Phi Eliminated (byte) main::line1_ysize#1
Self Phi Eliminated (byte) main::line1_ysize#1
Self Phi Eliminated (word) main::line2_pos#2
Self Phi Eliminated (byte) main::line2_ch#1
Self Phi Eliminated (byte) main::line2_ch#1
Self Phi Eliminated (byte*) cur_line#10
Self Phi Eliminated (byte) main::line2_xadd#1
Self Phi Eliminated (byte) main::line2_xadd#1
Self Phi Eliminated (byte) main::line2_i#2
Self Phi Eliminated (byte) main::line2_ysize#1
Self Phi Eliminated (byte) main::line2_ysize#1
Succesful SSA optimization Pass2SelfPhiElimination
Redundant Phi (byte) main::line1_ch#1 (byte) main::line1_ch#0
@ -610,7 +598,7 @@ main::@1: scope:[main] from main main::@1
main::line1: scope:[main] from main::@1
[9] phi() [ ] ( main:2 [ ] )
to:main::line1_@1
main::line1_@1: scope:[main] from main::@4 main::line1 main::line1_@1
main::line1_@1: scope:[main] from main::@4 main::line1
[10] (byte) main::line1_i#2 ← phi( main::@4/(byte) main::line1_i#1 main::line1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] )
[10] (byte*) cur_line#13 ← phi( main::@4/(byte*) cur_line#1 main::line1/((byte*))(word/signed word/dword/signed dword) 1024 ) [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] )
[10] (word) main::line1_pos#2 ← phi( main::@4/(word) main::line1_pos#1 main::line1/(const byte) main::line1_xpos#0*(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] )
@ -629,7 +617,7 @@ main::@4: scope:[main] from main::plot1
main::line2: scope:[main] from main::@4
[18] phi() [ ] ( main:2 [ ] )
to:main::line2_@1
main::line2_@1: scope:[main] from main::@6 main::line2 main::line2_@1
main::line2_@1: scope:[main] from main::@6 main::line2
[19] (byte) main::line2_i#2 ← phi( main::@6/(byte) main::line2_i#1 main::line2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] )
[19] (byte*) cur_line#10 ← phi( main::@6/(byte*) cur_line#11 main::line2/((byte*))(word/signed word/dword/signed dword) 1024 ) [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] )
[19] (word) main::line2_pos#2 ← phi( main::@6/(word) main::line2_pos#1 main::line2/(const byte) main::line2_xpos#0*(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] )
@ -667,33 +655,23 @@ main::@return dominated by main::@return @begin main::line1 main::line1_@1 main
NATURAL LOOPS
Found back edge: Loop head: main::@1 tails: main::@1 blocks: null
Found back edge: Loop head: main::line1_@1 tails: main::line1_@1 blocks: null
Found back edge: Loop head: main::line1_@1 tails: main::@4 blocks: null
Found back edge: Loop head: main::line2_@1 tails: main::line2_@1 blocks: null
Found back edge: Loop head: main::line2_@1 tails: main::@6 blocks: null
Populated: Loop head: main::@1 tails: main::@1 blocks: main::@1
Populated: Loop head: main::line1_@1 tails: main::line1_@1 blocks: main::line1_@1
Populated: Loop head: main::line1_@1 tails: main::@4 blocks: main::@4 main::plot1 main::line1_@1
Populated: Loop head: main::line2_@1 tails: main::line2_@1 blocks: main::line2_@1
Populated: Loop head: main::line2_@1 tails: main::@6 blocks: main::@6 main::plot2 main::line2_@1
Loop head: main::@1 tails: main::@1 blocks: main::@1
Loop head: main::line1_@1 tails: main::line1_@1 blocks: main::line1_@1
Loop head: main::line1_@1 tails: main::@4 blocks: main::@4 main::plot1 main::line1_@1
Loop head: main::line2_@1 tails: main::line2_@1 blocks: main::line2_@1
Loop head: main::line2_@1 tails: main::@6 blocks: main::@6 main::plot2 main::line2_@1
NATURAL LOOPS WITH DEPTH
Found 0 loops in scope []
Found 5 loops in scope [main]
Found 3 loops in scope [main]
Loop head: main::@1 tails: main::@1 blocks: main::@1
Loop head: main::line1_@1 tails: main::line1_@1 blocks: main::line1_@1
Loop head: main::line1_@1 tails: main::@4 blocks: main::@4 main::plot1 main::line1_@1
Loop head: main::line2_@1 tails: main::line2_@1 blocks: main::line2_@1
Loop head: main::line2_@1 tails: main::@6 blocks: main::@6 main::plot2 main::line2_@1
Loop head: main::@1 tails: main::@1 blocks: main::@1 depth: 1
Loop head: main::line1_@1 tails: main::line1_@1 blocks: main::line1_@1 depth: 2
Loop head: main::line1_@1 tails: main::@4 blocks: main::@4 main::plot1 main::line1_@1 depth: 1
Loop head: main::line2_@1 tails: main::line2_@1 blocks: main::line2_@1 depth: 2
Loop head: main::line2_@1 tails: main::@6 blocks: main::@6 main::plot2 main::line2_@1 depth: 1
@ -712,7 +690,7 @@ VARIABLE REGISTER WEIGHTS
(byte) main::line1_i#2 3.6666666666666665
(word) main::line1_pos
(word) main::line1_pos#1 5.5
(word) main::line1_pos#2 30.75
(word) main::line1_pos#2 8.25
(byte) main::line1_xadd
(byte) main::line1_xpos
(byte) main::line1_ysize
@ -724,7 +702,7 @@ VARIABLE REGISTER WEIGHTS
(byte) main::line2_i#2 3.6666666666666665
(word) main::line2_pos
(word) main::line2_pos#1 5.5
(word) main::line2_pos#2 30.75
(word) main::line2_pos#2 8.25
(byte) main::line2_xadd
(byte) main::line2_xpos
(byte) main::line2_ysize
@ -732,12 +710,12 @@ VARIABLE REGISTER WEIGHTS
(byte*) main::plot1_$0#0 22.0
(byte) main::plot1_ch
(byte) main::plot1_xpos
(byte) main::plot1_xpos#0 112.0
(byte) main::plot1_xpos#0 22.0
(byte*~) main::plot2_$0
(byte*) main::plot2_$0#0 22.0
(byte) main::plot2_ch
(byte) main::plot2_xpos
(byte) main::plot2_xpos#0 112.0
(byte) main::plot2_xpos#0 22.0
(byte*) main::sc
(byte*) main::sc#1 16.5
(byte*) main::sc#2 16.5
@ -881,18 +859,15 @@ main: {
//SEG26 [10] phi (byte*) cur_line#13 = (byte*) cur_line#1 [phi:main::@4->main::line1_@1#1] -- register_copy
//SEG27 [10] phi (word) main::line1_pos#2 = (word) main::line1_pos#1 [phi:main::@4->main::line1_@1#2] -- register_copy
jmp line1_b1
//SEG28 [10] phi from main::line1_@1 to main::line1_@1 [phi:main::line1_@1->main::line1_@1]
line1_b1_from_line1_b1:
jmp line1_b1
//SEG29 main::line1_@1
//SEG28 main::line1_@1
line1_b1:
//SEG30 [11] (byte) main::plot1_xpos#0 ← > (word) main::line1_pos#2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_xpos#0 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_xpos#0 ] ) -- vbuz1=_hi_vwuz2
//SEG29 [11] (byte) main::plot1_xpos#0 ← > (word) main::line1_pos#2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_xpos#0 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_xpos#0 ] ) -- vbuz1=_hi_vwuz2
lda line1_pos+1
sta plot1_xpos
jmp plot1
//SEG31 main::plot1
//SEG30 main::plot1
plot1:
//SEG32 [12] (byte*) main::plot1_$0#0 ← (byte*) cur_line#13 + (byte) main::plot1_xpos#0 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_$0#0 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_$0#0 ] ) -- pbuz1=pbuz2_plus_vbuz3
//SEG31 [12] (byte*) main::plot1_$0#0 ← (byte*) cur_line#13 + (byte) main::plot1_xpos#0 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_$0#0 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_$0#0 ] ) -- pbuz1=pbuz2_plus_vbuz3
lda plot1_xpos
clc
adc cur_line
@ -900,14 +875,14 @@ main: {
lda #0
adc cur_line+1
sta plot1__0+1
//SEG33 [13] *((byte*) main::plot1_$0#0) ← (const byte) main::line1_ch#0 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ) -- _deref_pbuz1=vbuc1
//SEG32 [13] *((byte*) main::plot1_$0#0) ← (const byte) main::line1_ch#0 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ) -- _deref_pbuz1=vbuc1
lda #line1_ch
ldy #0
sta (plot1__0),y
jmp b4
//SEG34 main::@4
//SEG33 main::@4
b4:
//SEG35 [14] (word) main::line1_pos#1 ← (word) main::line1_pos#2 + (const byte) main::line1_xadd#0 [ cur_line#13 main::line1_i#2 main::line1_pos#1 ] ( main:2 [ cur_line#13 main::line1_i#2 main::line1_pos#1 ] ) -- vwuz1=vwuz1_plus_vbuc1
//SEG34 [14] (word) main::line1_pos#1 ← (word) main::line1_pos#2 + (const byte) main::line1_xadd#0 [ cur_line#13 main::line1_i#2 main::line1_pos#1 ] ( main:2 [ cur_line#13 main::line1_i#2 main::line1_pos#1 ] ) -- vwuz1=vwuz1_plus_vbuc1
clc
lda line1_pos
adc #<line1_xadd
@ -915,7 +890,7 @@ main: {
lda line1_pos+1
adc #>line1_xadd
sta line1_pos+1
//SEG36 [15] (byte*) cur_line#1 ← (byte*) cur_line#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::line1_i#2 main::line1_pos#1 cur_line#1 ] ( main:2 [ main::line1_i#2 main::line1_pos#1 cur_line#1 ] ) -- pbuz1=pbuz1_plus_vbuc1
//SEG35 [15] (byte*) cur_line#1 ← (byte*) cur_line#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::line1_i#2 main::line1_pos#1 cur_line#1 ] ( main:2 [ main::line1_i#2 main::line1_pos#1 cur_line#1 ] ) -- pbuz1=pbuz1_plus_vbuc1
lda cur_line
clc
adc #$28
@ -923,51 +898,48 @@ main: {
bcc !+
inc cur_line+1
!:
//SEG37 [16] (byte) main::line1_i#1 ← ++ (byte) main::line1_i#2 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ( main:2 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ) -- vbuz1=_inc_vbuz1
//SEG36 [16] (byte) main::line1_i#1 ← ++ (byte) main::line1_i#2 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ( main:2 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ) -- vbuz1=_inc_vbuz1
inc line1_i
//SEG38 [17] if((byte) main::line1_i#1<(const byte) main::line1_ysize#0) goto main::line1_@1 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ( main:2 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ) -- vbuz1_lt_vbuc1_then_la1
//SEG37 [17] if((byte) main::line1_i#1<(const byte) main::line1_ysize#0) goto main::line1_@1 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ( main:2 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ) -- vbuz1_lt_vbuc1_then_la1
lda line1_i
cmp #line1_ysize
bcc line1_b1_from_b4
//SEG39 [18] phi from main::@4 to main::line2 [phi:main::@4->main::line2]
//SEG38 [18] phi from main::@4 to main::line2 [phi:main::@4->main::line2]
line2_from_b4:
jmp line2
//SEG40 main::line2
//SEG39 main::line2
line2:
//SEG41 [19] phi from main::line2 to main::line2_@1 [phi:main::line2->main::line2_@1]
//SEG40 [19] phi from main::line2 to main::line2_@1 [phi:main::line2->main::line2_@1]
line2_b1_from_line2:
//SEG42 [19] phi (byte) main::line2_i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::line2->main::line2_@1#0] -- vbuz1=vbuc1
//SEG41 [19] phi (byte) main::line2_i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::line2->main::line2_@1#0] -- vbuz1=vbuc1
lda #0
sta line2_i
//SEG43 [19] phi (byte*) cur_line#10 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::line2->main::line2_@1#1] -- pbuz1=pbuc1
//SEG42 [19] phi (byte*) cur_line#10 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::line2->main::line2_@1#1] -- pbuz1=pbuc1
lda #<$400
sta cur_line_10
lda #>$400
sta cur_line_10+1
//SEG44 [19] phi (word) main::line2_pos#2 = (const byte) main::line2_xpos#0*(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::line2->main::line2_@1#2] -- vwuz1=vwuc1
//SEG43 [19] phi (word) main::line2_pos#2 = (const byte) main::line2_xpos#0*(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::line2->main::line2_@1#2] -- vwuz1=vwuc1
lda #<line2_xpos*$100+0
sta line2_pos
lda #>line2_xpos*$100+0
sta line2_pos+1
jmp line2_b1
//SEG45 [19] phi from main::@6 to main::line2_@1 [phi:main::@6->main::line2_@1]
//SEG44 [19] phi from main::@6 to main::line2_@1 [phi:main::@6->main::line2_@1]
line2_b1_from_b6:
//SEG46 [19] phi (byte) main::line2_i#2 = (byte) main::line2_i#1 [phi:main::@6->main::line2_@1#0] -- register_copy
//SEG47 [19] phi (byte*) cur_line#10 = (byte*) cur_line#11 [phi:main::@6->main::line2_@1#1] -- register_copy
//SEG48 [19] phi (word) main::line2_pos#2 = (word) main::line2_pos#1 [phi:main::@6->main::line2_@1#2] -- register_copy
//SEG45 [19] phi (byte) main::line2_i#2 = (byte) main::line2_i#1 [phi:main::@6->main::line2_@1#0] -- register_copy
//SEG46 [19] phi (byte*) cur_line#10 = (byte*) cur_line#11 [phi:main::@6->main::line2_@1#1] -- register_copy
//SEG47 [19] phi (word) main::line2_pos#2 = (word) main::line2_pos#1 [phi:main::@6->main::line2_@1#2] -- register_copy
jmp line2_b1
//SEG49 [19] phi from main::line2_@1 to main::line2_@1 [phi:main::line2_@1->main::line2_@1]
line2_b1_from_line2_b1:
jmp line2_b1
//SEG50 main::line2_@1
//SEG48 main::line2_@1
line2_b1:
//SEG51 [20] (byte) main::plot2_xpos#0 ← > (word) main::line2_pos#2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_xpos#0 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_xpos#0 ] ) -- vbuz1=_hi_vwuz2
//SEG49 [20] (byte) main::plot2_xpos#0 ← > (word) main::line2_pos#2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_xpos#0 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_xpos#0 ] ) -- vbuz1=_hi_vwuz2
lda line2_pos+1
sta plot2_xpos
jmp plot2
//SEG52 main::plot2
//SEG50 main::plot2
plot2:
//SEG53 [21] (byte*) main::plot2_$0#0 ← (byte*) cur_line#10 + (byte) main::plot2_xpos#0 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_$0#0 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_$0#0 ] ) -- pbuz1=pbuz2_plus_vbuz3
//SEG51 [21] (byte*) main::plot2_$0#0 ← (byte*) cur_line#10 + (byte) main::plot2_xpos#0 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_$0#0 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_$0#0 ] ) -- pbuz1=pbuz2_plus_vbuz3
lda plot2_xpos
clc
adc cur_line_10
@ -975,14 +947,14 @@ main: {
lda #0
adc cur_line_10+1
sta plot2__0+1
//SEG54 [22] *((byte*) main::plot2_$0#0) ← (const byte) main::line2_ch#0 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ) -- _deref_pbuz1=vbuc1
//SEG52 [22] *((byte*) main::plot2_$0#0) ← (const byte) main::line2_ch#0 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ) -- _deref_pbuz1=vbuc1
lda #line2_ch
ldy #0
sta (plot2__0),y
jmp b6
//SEG55 main::@6
//SEG53 main::@6
b6:
//SEG56 [23] (word) main::line2_pos#1 ← (word) main::line2_pos#2 + (const byte) main::line2_xadd#0 [ cur_line#10 main::line2_i#2 main::line2_pos#1 ] ( main:2 [ cur_line#10 main::line2_i#2 main::line2_pos#1 ] ) -- vwuz1=vwuz1_plus_vbuc1
//SEG54 [23] (word) main::line2_pos#1 ← (word) main::line2_pos#2 + (const byte) main::line2_xadd#0 [ cur_line#10 main::line2_i#2 main::line2_pos#1 ] ( main:2 [ cur_line#10 main::line2_i#2 main::line2_pos#1 ] ) -- vwuz1=vwuz1_plus_vbuc1
clc
lda line2_pos
adc #<line2_xadd
@ -990,7 +962,7 @@ main: {
lda line2_pos+1
adc #>line2_xadd
sta line2_pos+1
//SEG57 [24] (byte*) cur_line#11 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::line2_i#2 main::line2_pos#1 cur_line#11 ] ( main:2 [ main::line2_i#2 main::line2_pos#1 cur_line#11 ] ) -- pbuz1=pbuz1_plus_vbuc1
//SEG55 [24] (byte*) cur_line#11 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::line2_i#2 main::line2_pos#1 cur_line#11 ] ( main:2 [ main::line2_i#2 main::line2_pos#1 cur_line#11 ] ) -- pbuz1=pbuz1_plus_vbuc1
lda cur_line_11
clc
adc #$28
@ -998,16 +970,16 @@ main: {
bcc !+
inc cur_line_11+1
!:
//SEG58 [25] (byte) main::line2_i#1 ← ++ (byte) main::line2_i#2 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ( main:2 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ) -- vbuz1=_inc_vbuz1
//SEG56 [25] (byte) main::line2_i#1 ← ++ (byte) main::line2_i#2 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ( main:2 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ) -- vbuz1=_inc_vbuz1
inc line2_i
//SEG59 [26] if((byte) main::line2_i#1<(const byte) main::line2_ysize#0) goto main::line2_@1 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ( main:2 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ) -- vbuz1_lt_vbuc1_then_la1
//SEG57 [26] if((byte) main::line2_i#1<(const byte) main::line2_ysize#0) goto main::line2_@1 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ( main:2 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ) -- vbuz1_lt_vbuc1_then_la1
lda line2_i
cmp #line2_ysize
bcc line2_b1_from_b6
jmp breturn
//SEG60 main::@return
//SEG58 main::@return
breturn:
//SEG61 [27] return [ ] ( main:2 [ ] )
//SEG59 [27] return [ ] ( main:2 [ ] )
rts
}
@ -1053,11 +1025,11 @@ Potential registers zp ZP_BYTE:17 [ main::plot2_xpos#0 ] : zp ZP_BYTE:17 , reg b
Potential registers zp ZP_WORD:18 [ main::plot2_$0#0 ] : zp ZP_WORD:18 ,
REGISTER UPLIFT SCOPES
Uplift Scope [main] 112: zp ZP_BYTE:14 [ main::plot1_xpos#0 ] 112: zp ZP_BYTE:17 [ main::plot2_xpos#0 ] 36.25: zp ZP_WORD:4 [ main::line1_pos#2 main::line1_pos#1 ] 36.25: zp ZP_WORD:9 [ main::line2_pos#2 main::line2_pos#1 ] 33: zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] 22: zp ZP_WORD:15 [ main::plot1_$0#0 ] 22: zp ZP_WORD:18 [ main::plot2_$0#0 ] 20.17: zp ZP_BYTE:8 [ main::line1_i#2 main::line1_i#1 ] 20.17: zp ZP_BYTE:13 [ main::line2_i#2 main::line2_i#1 ]
Uplift Scope [main] 33: zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] 22: zp ZP_BYTE:14 [ main::plot1_xpos#0 ] 22: zp ZP_WORD:15 [ main::plot1_$0#0 ] 22: zp ZP_BYTE:17 [ main::plot2_xpos#0 ] 22: zp ZP_WORD:18 [ main::plot2_$0#0 ] 20.17: zp ZP_BYTE:8 [ main::line1_i#2 main::line1_i#1 ] 20.17: zp ZP_BYTE:13 [ main::line2_i#2 main::line2_i#1 ] 13.75: zp ZP_WORD:4 [ main::line1_pos#2 main::line1_pos#1 ] 13.75: zp ZP_WORD:9 [ main::line2_pos#2 main::line2_pos#1 ]
Uplift Scope [] 13.93: zp ZP_WORD:6 [ cur_line#13 cur_line#1 ] 13.93: zp ZP_WORD:11 [ cur_line#10 cur_line#11 ]
Uplifting [main] best 9434 combination reg byte a [ main::plot1_xpos#0 ] reg byte a [ main::plot2_xpos#0 ] zp ZP_WORD:4 [ main::line1_pos#2 main::line1_pos#1 ] zp ZP_WORD:9 [ main::line2_pos#2 main::line2_pos#1 ] zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] zp ZP_WORD:15 [ main::plot1_$0#0 ] zp ZP_WORD:18 [ main::plot2_$0#0 ] reg byte x [ main::line1_i#2 main::line1_i#1 ] reg byte x [ main::line2_i#2 main::line2_i#1 ]
Uplifting [] best 9434 combination zp ZP_WORD:6 [ cur_line#13 cur_line#1 ] zp ZP_WORD:11 [ cur_line#10 cur_line#11 ]
Uplifting [main] best 2714 combination zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] reg byte a [ main::plot1_xpos#0 ] zp ZP_WORD:15 [ main::plot1_$0#0 ] reg byte a [ main::plot2_xpos#0 ] zp ZP_WORD:18 [ main::plot2_$0#0 ] reg byte x [ main::line1_i#2 main::line1_i#1 ] reg byte x [ main::line2_i#2 main::line2_i#1 ] zp ZP_WORD:4 [ main::line1_pos#2 main::line1_pos#1 ] zp ZP_WORD:9 [ main::line2_pos#2 main::line2_pos#1 ]
Uplifting [] best 2714 combination zp ZP_WORD:6 [ cur_line#13 cur_line#1 ] zp ZP_WORD:11 [ cur_line#10 cur_line#11 ]
Coalescing zero page register [ zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] ] with [ zp ZP_WORD:4 [ main::line1_pos#2 main::line1_pos#1 ] ]
Coalescing zero page register [ zp ZP_WORD:2 [ main::sc#2 main::sc#1 main::line1_pos#2 main::line1_pos#1 ] ] with [ zp ZP_WORD:9 [ main::line2_pos#2 main::line2_pos#1 ] ]
Coalescing zero page register [ zp ZP_WORD:6 [ cur_line#13 cur_line#1 ] ] with [ zp ZP_WORD:11 [ cur_line#10 cur_line#11 ] ]
@ -1161,31 +1133,28 @@ main: {
//SEG26 [10] phi (byte*) cur_line#13 = (byte*) cur_line#1 [phi:main::@4->main::line1_@1#1] -- register_copy
//SEG27 [10] phi (word) main::line1_pos#2 = (word) main::line1_pos#1 [phi:main::@4->main::line1_@1#2] -- register_copy
jmp line1_b1
//SEG28 [10] phi from main::line1_@1 to main::line1_@1 [phi:main::line1_@1->main::line1_@1]
line1_b1_from_line1_b1:
jmp line1_b1
//SEG29 main::line1_@1
//SEG28 main::line1_@1
line1_b1:
//SEG30 [11] (byte) main::plot1_xpos#0 ← > (word) main::line1_pos#2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_xpos#0 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_xpos#0 ] ) -- vbuaa=_hi_vwuz1
//SEG29 [11] (byte) main::plot1_xpos#0 ← > (word) main::line1_pos#2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_xpos#0 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_xpos#0 ] ) -- vbuaa=_hi_vwuz1
lda line1_pos+1
jmp plot1
//SEG31 main::plot1
//SEG30 main::plot1
plot1:
//SEG32 [12] (byte*) main::plot1_$0#0 ← (byte*) cur_line#13 + (byte) main::plot1_xpos#0 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_$0#0 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_$0#0 ] ) -- pbuz1=pbuz2_plus_vbuaa
//SEG31 [12] (byte*) main::plot1_$0#0 ← (byte*) cur_line#13 + (byte) main::plot1_xpos#0 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_$0#0 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_$0#0 ] ) -- pbuz1=pbuz2_plus_vbuaa
clc
adc cur_line
sta plot1__0
lda #0
adc cur_line+1
sta plot1__0+1
//SEG33 [13] *((byte*) main::plot1_$0#0) ← (const byte) main::line1_ch#0 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ) -- _deref_pbuz1=vbuc1
//SEG32 [13] *((byte*) main::plot1_$0#0) ← (const byte) main::line1_ch#0 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ) -- _deref_pbuz1=vbuc1
lda #line1_ch
ldy #0
sta (plot1__0),y
jmp b4
//SEG34 main::@4
//SEG33 main::@4
b4:
//SEG35 [14] (word) main::line1_pos#1 ← (word) main::line1_pos#2 + (const byte) main::line1_xadd#0 [ cur_line#13 main::line1_i#2 main::line1_pos#1 ] ( main:2 [ cur_line#13 main::line1_i#2 main::line1_pos#1 ] ) -- vwuz1=vwuz1_plus_vbuc1
//SEG34 [14] (word) main::line1_pos#1 ← (word) main::line1_pos#2 + (const byte) main::line1_xadd#0 [ cur_line#13 main::line1_i#2 main::line1_pos#1 ] ( main:2 [ cur_line#13 main::line1_i#2 main::line1_pos#1 ] ) -- vwuz1=vwuz1_plus_vbuc1
clc
lda line1_pos
adc #<line1_xadd
@ -1193,7 +1162,7 @@ main: {
lda line1_pos+1
adc #>line1_xadd
sta line1_pos+1
//SEG36 [15] (byte*) cur_line#1 ← (byte*) cur_line#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::line1_i#2 main::line1_pos#1 cur_line#1 ] ( main:2 [ main::line1_i#2 main::line1_pos#1 cur_line#1 ] ) -- pbuz1=pbuz1_plus_vbuc1
//SEG35 [15] (byte*) cur_line#1 ← (byte*) cur_line#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::line1_i#2 main::line1_pos#1 cur_line#1 ] ( main:2 [ main::line1_i#2 main::line1_pos#1 cur_line#1 ] ) -- pbuz1=pbuz1_plus_vbuc1
lda cur_line
clc
adc #$28
@ -1201,62 +1170,59 @@ main: {
bcc !+
inc cur_line+1
!:
//SEG37 [16] (byte) main::line1_i#1 ← ++ (byte) main::line1_i#2 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ( main:2 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ) -- vbuxx=_inc_vbuxx
//SEG36 [16] (byte) main::line1_i#1 ← ++ (byte) main::line1_i#2 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ( main:2 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ) -- vbuxx=_inc_vbuxx
inx
//SEG38 [17] if((byte) main::line1_i#1<(const byte) main::line1_ysize#0) goto main::line1_@1 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ( main:2 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ) -- vbuxx_lt_vbuc1_then_la1
//SEG37 [17] if((byte) main::line1_i#1<(const byte) main::line1_ysize#0) goto main::line1_@1 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ( main:2 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ) -- vbuxx_lt_vbuc1_then_la1
cpx #line1_ysize
bcc line1_b1_from_b4
//SEG39 [18] phi from main::@4 to main::line2 [phi:main::@4->main::line2]
//SEG38 [18] phi from main::@4 to main::line2 [phi:main::@4->main::line2]
line2_from_b4:
jmp line2
//SEG40 main::line2
//SEG39 main::line2
line2:
//SEG41 [19] phi from main::line2 to main::line2_@1 [phi:main::line2->main::line2_@1]
//SEG40 [19] phi from main::line2 to main::line2_@1 [phi:main::line2->main::line2_@1]
line2_b1_from_line2:
//SEG42 [19] phi (byte) main::line2_i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::line2->main::line2_@1#0] -- vbuxx=vbuc1
//SEG41 [19] phi (byte) main::line2_i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::line2->main::line2_@1#0] -- vbuxx=vbuc1
ldx #0
//SEG43 [19] phi (byte*) cur_line#10 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::line2->main::line2_@1#1] -- pbuz1=pbuc1
//SEG42 [19] phi (byte*) cur_line#10 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::line2->main::line2_@1#1] -- pbuz1=pbuc1
lda #<$400
sta cur_line
lda #>$400
sta cur_line+1
//SEG44 [19] phi (word) main::line2_pos#2 = (const byte) main::line2_xpos#0*(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::line2->main::line2_@1#2] -- vwuz1=vwuc1
//SEG43 [19] phi (word) main::line2_pos#2 = (const byte) main::line2_xpos#0*(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::line2->main::line2_@1#2] -- vwuz1=vwuc1
lda #<line2_xpos*$100+0
sta line2_pos
lda #>line2_xpos*$100+0
sta line2_pos+1
jmp line2_b1
//SEG45 [19] phi from main::@6 to main::line2_@1 [phi:main::@6->main::line2_@1]
//SEG44 [19] phi from main::@6 to main::line2_@1 [phi:main::@6->main::line2_@1]
line2_b1_from_b6:
//SEG46 [19] phi (byte) main::line2_i#2 = (byte) main::line2_i#1 [phi:main::@6->main::line2_@1#0] -- register_copy
//SEG47 [19] phi (byte*) cur_line#10 = (byte*) cur_line#11 [phi:main::@6->main::line2_@1#1] -- register_copy
//SEG48 [19] phi (word) main::line2_pos#2 = (word) main::line2_pos#1 [phi:main::@6->main::line2_@1#2] -- register_copy
//SEG45 [19] phi (byte) main::line2_i#2 = (byte) main::line2_i#1 [phi:main::@6->main::line2_@1#0] -- register_copy
//SEG46 [19] phi (byte*) cur_line#10 = (byte*) cur_line#11 [phi:main::@6->main::line2_@1#1] -- register_copy
//SEG47 [19] phi (word) main::line2_pos#2 = (word) main::line2_pos#1 [phi:main::@6->main::line2_@1#2] -- register_copy
jmp line2_b1
//SEG49 [19] phi from main::line2_@1 to main::line2_@1 [phi:main::line2_@1->main::line2_@1]
line2_b1_from_line2_b1:
jmp line2_b1
//SEG50 main::line2_@1
//SEG48 main::line2_@1
line2_b1:
//SEG51 [20] (byte) main::plot2_xpos#0 ← > (word) main::line2_pos#2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_xpos#0 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_xpos#0 ] ) -- vbuaa=_hi_vwuz1
//SEG49 [20] (byte) main::plot2_xpos#0 ← > (word) main::line2_pos#2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_xpos#0 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_xpos#0 ] ) -- vbuaa=_hi_vwuz1
lda line2_pos+1
jmp plot2
//SEG52 main::plot2
//SEG50 main::plot2
plot2:
//SEG53 [21] (byte*) main::plot2_$0#0 ← (byte*) cur_line#10 + (byte) main::plot2_xpos#0 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_$0#0 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_$0#0 ] ) -- pbuz1=pbuz2_plus_vbuaa
//SEG51 [21] (byte*) main::plot2_$0#0 ← (byte*) cur_line#10 + (byte) main::plot2_xpos#0 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_$0#0 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_$0#0 ] ) -- pbuz1=pbuz2_plus_vbuaa
clc
adc cur_line
sta plot2__0
lda #0
adc cur_line+1
sta plot2__0+1
//SEG54 [22] *((byte*) main::plot2_$0#0) ← (const byte) main::line2_ch#0 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ) -- _deref_pbuz1=vbuc1
//SEG52 [22] *((byte*) main::plot2_$0#0) ← (const byte) main::line2_ch#0 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ) -- _deref_pbuz1=vbuc1
lda #line2_ch
ldy #0
sta (plot2__0),y
jmp b6
//SEG55 main::@6
//SEG53 main::@6
b6:
//SEG56 [23] (word) main::line2_pos#1 ← (word) main::line2_pos#2 + (const byte) main::line2_xadd#0 [ cur_line#10 main::line2_i#2 main::line2_pos#1 ] ( main:2 [ cur_line#10 main::line2_i#2 main::line2_pos#1 ] ) -- vwuz1=vwuz1_plus_vbuc1
//SEG54 [23] (word) main::line2_pos#1 ← (word) main::line2_pos#2 + (const byte) main::line2_xadd#0 [ cur_line#10 main::line2_i#2 main::line2_pos#1 ] ( main:2 [ cur_line#10 main::line2_i#2 main::line2_pos#1 ] ) -- vwuz1=vwuz1_plus_vbuc1
clc
lda line2_pos
adc #<line2_xadd
@ -1264,7 +1230,7 @@ main: {
lda line2_pos+1
adc #>line2_xadd
sta line2_pos+1
//SEG57 [24] (byte*) cur_line#11 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::line2_i#2 main::line2_pos#1 cur_line#11 ] ( main:2 [ main::line2_i#2 main::line2_pos#1 cur_line#11 ] ) -- pbuz1=pbuz1_plus_vbuc1
//SEG55 [24] (byte*) cur_line#11 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::line2_i#2 main::line2_pos#1 cur_line#11 ] ( main:2 [ main::line2_i#2 main::line2_pos#1 cur_line#11 ] ) -- pbuz1=pbuz1_plus_vbuc1
lda cur_line
clc
adc #$28
@ -1272,15 +1238,15 @@ main: {
bcc !+
inc cur_line+1
!:
//SEG58 [25] (byte) main::line2_i#1 ← ++ (byte) main::line2_i#2 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ( main:2 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ) -- vbuxx=_inc_vbuxx
//SEG56 [25] (byte) main::line2_i#1 ← ++ (byte) main::line2_i#2 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ( main:2 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ) -- vbuxx=_inc_vbuxx
inx
//SEG59 [26] if((byte) main::line2_i#1<(const byte) main::line2_ysize#0) goto main::line2_@1 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ( main:2 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ) -- vbuxx_lt_vbuc1_then_la1
//SEG57 [26] if((byte) main::line2_i#1<(const byte) main::line2_ysize#0) goto main::line2_@1 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ( main:2 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ) -- vbuxx_lt_vbuc1_then_la1
cpx #line2_ysize
bcc line2_b1_from_b6
jmp breturn
//SEG60 main::@return
//SEG58 main::@return
breturn:
//SEG61 [27] return [ ] ( main:2 [ ] )
//SEG59 [27] return [ ] ( main:2 [ ] )
rts
}
@ -1300,6 +1266,8 @@ Removing instruction jmp breturn
Succesful ASM optimization Pass5NextJumpElimination
Replacing label b1_from_b1 with b1
Replacing label b1_from_b1 with b1
Replacing label line1_b1_from_b4 with line1_b1
Replacing label line2_b1_from_b6 with line2_b1
Removing instruction bbegin:
Removing instruction b3_from_bbegin:
Removing instruction main_from_b3:
@ -1307,10 +1275,10 @@ Removing instruction bend_from_b3:
Removing instruction b1_from_b1:
Removing instruction line1_from_b1:
Removing instruction line1_b1_from_line1:
Removing instruction line1_b1_from_line1_b1:
Removing instruction line1_b1_from_b4:
Removing instruction line2_from_b4:
Removing instruction line2_b1_from_line2:
Removing instruction line2_b1_from_line2_b1:
Removing instruction line2_b1_from_b6:
Succesful ASM optimization Pass5RedundantLabelElimination
Removing instruction b3:
Removing instruction bend:
@ -1323,26 +1291,10 @@ Removing instruction plot2:
Removing instruction b6:
Removing instruction breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
Skipping double jump to line1_b1 in bcc line1_b1_from_b4
Skipping double jump to line2_b1 in bcc line2_b1_from_b6
Succesful ASM optimization Pass5DoubleJumpElimination
Relabelling long label line1_b1_from_b4 to b2
Relabelling long label line2_b1_from_b6 to b3
Succesful ASM optimization Pass5RelabelLongLabels
Removing instruction jmp b1
Removing instruction jmp line1_b1
Removing instruction jmp line2_b1
Succesful ASM optimization Pass5NextJumpElimination
Replacing label line1_b1 with b2
Replacing label line1_b1 with b2
Replacing label line2_b1 with b3
Replacing label line2_b1 with b3
Removing instruction line1_b1:
Removing instruction line2_b1:
Succesful ASM optimization Pass5RedundantLabelElimination
Removing instruction jmp b2
Removing instruction jmp b3
Succesful ASM optimization Pass5NextJumpElimination
FINAL SYMBOL TABLE
(label) @3
@ -1369,7 +1321,7 @@ FINAL SYMBOL TABLE
(byte) main::line1_i#2 reg byte x 3.6666666666666665
(word) main::line1_pos
(word) main::line1_pos#1 line1_pos zp ZP_WORD:2 5.5
(word) main::line1_pos#2 line1_pos zp ZP_WORD:2 30.75
(word) main::line1_pos#2 line1_pos zp ZP_WORD:2 8.25
(byte) main::line1_xadd
(const byte) main::line1_xadd#0 line1_xadd = (byte/signed byte/word/signed word/dword/signed dword) 64
(byte) main::line1_xpos
@ -1387,7 +1339,7 @@ FINAL SYMBOL TABLE
(byte) main::line2_i#2 reg byte x 3.6666666666666665
(word) main::line2_pos
(word) main::line2_pos#1 line2_pos zp ZP_WORD:2 5.5
(word) main::line2_pos#2 line2_pos zp ZP_WORD:2 30.75
(word) main::line2_pos#2 line2_pos zp ZP_WORD:2 8.25
(byte) main::line2_xadd
(const byte) main::line2_xadd#0 line2_xadd = (byte/word/signed word/dword/signed dword) 128
(byte) main::line2_xpos
@ -1399,13 +1351,13 @@ FINAL SYMBOL TABLE
(byte*) main::plot1_$0#0 plot1_$0 zp ZP_WORD:6 22.0
(byte) main::plot1_ch
(byte) main::plot1_xpos
(byte) main::plot1_xpos#0 reg byte a 112.0
(byte) main::plot1_xpos#0 reg byte a 22.0
(label) main::plot2
(byte*~) main::plot2_$0
(byte*) main::plot2_$0#0 plot2_$0 zp ZP_WORD:6 22.0
(byte) main::plot2_ch
(byte) main::plot2_xpos
(byte) main::plot2_xpos#0 reg byte a 112.0
(byte) main::plot2_xpos#0 reg byte a 22.0
(byte*) main::sc
(byte*) main::sc#1 sc zp ZP_WORD:2 16.5
(byte*) main::sc#2 sc zp ZP_WORD:2 16.5
@ -1420,7 +1372,7 @@ reg byte a [ main::plot2_xpos#0 ]
FINAL ASSEMBLER
Score: 6872
Score: 2372
//SEG0 Basic Upstart
.pc = $801 "Basic"
@ -1495,28 +1447,27 @@ main: {
lda #>line1_xpos*$100+0
sta line1_pos+1
//SEG24 [10] phi from main::@4 to main::line1_@1 [phi:main::@4->main::line1_@1]
b2:
//SEG25 [10] phi (byte) main::line1_i#2 = (byte) main::line1_i#1 [phi:main::@4->main::line1_@1#0] -- register_copy
//SEG26 [10] phi (byte*) cur_line#13 = (byte*) cur_line#1 [phi:main::@4->main::line1_@1#1] -- register_copy
//SEG27 [10] phi (word) main::line1_pos#2 = (word) main::line1_pos#1 [phi:main::@4->main::line1_@1#2] -- register_copy
//SEG28 [10] phi from main::line1_@1 to main::line1_@1 [phi:main::line1_@1->main::line1_@1]
//SEG29 main::line1_@1
//SEG30 [11] (byte) main::plot1_xpos#0 ← > (word) main::line1_pos#2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_xpos#0 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_xpos#0 ] ) -- vbuaa=_hi_vwuz1
//SEG28 main::line1_@1
line1_b1:
//SEG29 [11] (byte) main::plot1_xpos#0 ← > (word) main::line1_pos#2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_xpos#0 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_xpos#0 ] ) -- vbuaa=_hi_vwuz1
lda line1_pos+1
//SEG31 main::plot1
//SEG32 [12] (byte*) main::plot1_$0#0 ← (byte*) cur_line#13 + (byte) main::plot1_xpos#0 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_$0#0 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_$0#0 ] ) -- pbuz1=pbuz2_plus_vbuaa
//SEG30 main::plot1
//SEG31 [12] (byte*) main::plot1_$0#0 ← (byte*) cur_line#13 + (byte) main::plot1_xpos#0 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_$0#0 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_$0#0 ] ) -- pbuz1=pbuz2_plus_vbuaa
clc
adc cur_line
sta plot1__0
lda #0
adc cur_line+1
sta plot1__0+1
//SEG33 [13] *((byte*) main::plot1_$0#0) ← (const byte) main::line1_ch#0 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ) -- _deref_pbuz1=vbuc1
//SEG32 [13] *((byte*) main::plot1_$0#0) ← (const byte) main::line1_ch#0 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ) -- _deref_pbuz1=vbuc1
lda #line1_ch
ldy #0
sta (plot1__0),y
//SEG34 main::@4
//SEG35 [14] (word) main::line1_pos#1 ← (word) main::line1_pos#2 + (const byte) main::line1_xadd#0 [ cur_line#13 main::line1_i#2 main::line1_pos#1 ] ( main:2 [ cur_line#13 main::line1_i#2 main::line1_pos#1 ] ) -- vwuz1=vwuz1_plus_vbuc1
//SEG33 main::@4
//SEG34 [14] (word) main::line1_pos#1 ← (word) main::line1_pos#2 + (const byte) main::line1_xadd#0 [ cur_line#13 main::line1_i#2 main::line1_pos#1 ] ( main:2 [ cur_line#13 main::line1_i#2 main::line1_pos#1 ] ) -- vwuz1=vwuz1_plus_vbuc1
clc
lda line1_pos
adc #<line1_xadd
@ -1524,7 +1475,7 @@ main: {
lda line1_pos+1
adc #>line1_xadd
sta line1_pos+1
//SEG36 [15] (byte*) cur_line#1 ← (byte*) cur_line#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::line1_i#2 main::line1_pos#1 cur_line#1 ] ( main:2 [ main::line1_i#2 main::line1_pos#1 cur_line#1 ] ) -- pbuz1=pbuz1_plus_vbuc1
//SEG35 [15] (byte*) cur_line#1 ← (byte*) cur_line#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::line1_i#2 main::line1_pos#1 cur_line#1 ] ( main:2 [ main::line1_i#2 main::line1_pos#1 cur_line#1 ] ) -- pbuz1=pbuz1_plus_vbuc1
lda cur_line
clc
adc #$28
@ -1532,49 +1483,48 @@ main: {
bcc !+
inc cur_line+1
!:
//SEG37 [16] (byte) main::line1_i#1 ← ++ (byte) main::line1_i#2 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ( main:2 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ) -- vbuxx=_inc_vbuxx
//SEG36 [16] (byte) main::line1_i#1 ← ++ (byte) main::line1_i#2 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ( main:2 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ) -- vbuxx=_inc_vbuxx
inx
//SEG38 [17] if((byte) main::line1_i#1<(const byte) main::line1_ysize#0) goto main::line1_@1 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ( main:2 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ) -- vbuxx_lt_vbuc1_then_la1
//SEG37 [17] if((byte) main::line1_i#1<(const byte) main::line1_ysize#0) goto main::line1_@1 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ( main:2 [ main::line1_pos#1 cur_line#1 main::line1_i#1 ] ) -- vbuxx_lt_vbuc1_then_la1
cpx #line1_ysize
bcc b2
//SEG39 [18] phi from main::@4 to main::line2 [phi:main::@4->main::line2]
//SEG40 main::line2
//SEG41 [19] phi from main::line2 to main::line2_@1 [phi:main::line2->main::line2_@1]
//SEG42 [19] phi (byte) main::line2_i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::line2->main::line2_@1#0] -- vbuxx=vbuc1
bcc line1_b1
//SEG38 [18] phi from main::@4 to main::line2 [phi:main::@4->main::line2]
//SEG39 main::line2
//SEG40 [19] phi from main::line2 to main::line2_@1 [phi:main::line2->main::line2_@1]
//SEG41 [19] phi (byte) main::line2_i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::line2->main::line2_@1#0] -- vbuxx=vbuc1
ldx #0
//SEG43 [19] phi (byte*) cur_line#10 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::line2->main::line2_@1#1] -- pbuz1=pbuc1
//SEG42 [19] phi (byte*) cur_line#10 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::line2->main::line2_@1#1] -- pbuz1=pbuc1
lda #<$400
sta cur_line
lda #>$400
sta cur_line+1
//SEG44 [19] phi (word) main::line2_pos#2 = (const byte) main::line2_xpos#0*(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::line2->main::line2_@1#2] -- vwuz1=vwuc1
//SEG43 [19] phi (word) main::line2_pos#2 = (const byte) main::line2_xpos#0*(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::line2->main::line2_@1#2] -- vwuz1=vwuc1
lda #<line2_xpos*$100+0
sta line2_pos
lda #>line2_xpos*$100+0
sta line2_pos+1
//SEG45 [19] phi from main::@6 to main::line2_@1 [phi:main::@6->main::line2_@1]
b3:
//SEG46 [19] phi (byte) main::line2_i#2 = (byte) main::line2_i#1 [phi:main::@6->main::line2_@1#0] -- register_copy
//SEG47 [19] phi (byte*) cur_line#10 = (byte*) cur_line#11 [phi:main::@6->main::line2_@1#1] -- register_copy
//SEG48 [19] phi (word) main::line2_pos#2 = (word) main::line2_pos#1 [phi:main::@6->main::line2_@1#2] -- register_copy
//SEG49 [19] phi from main::line2_@1 to main::line2_@1 [phi:main::line2_@1->main::line2_@1]
//SEG50 main::line2_@1
//SEG51 [20] (byte) main::plot2_xpos#0 ← > (word) main::line2_pos#2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_xpos#0 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_xpos#0 ] ) -- vbuaa=_hi_vwuz1
//SEG44 [19] phi from main::@6 to main::line2_@1 [phi:main::@6->main::line2_@1]
//SEG45 [19] phi (byte) main::line2_i#2 = (byte) main::line2_i#1 [phi:main::@6->main::line2_@1#0] -- register_copy
//SEG46 [19] phi (byte*) cur_line#10 = (byte*) cur_line#11 [phi:main::@6->main::line2_@1#1] -- register_copy
//SEG47 [19] phi (word) main::line2_pos#2 = (word) main::line2_pos#1 [phi:main::@6->main::line2_@1#2] -- register_copy
//SEG48 main::line2_@1
line2_b1:
//SEG49 [20] (byte) main::plot2_xpos#0 ← > (word) main::line2_pos#2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_xpos#0 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_xpos#0 ] ) -- vbuaa=_hi_vwuz1
lda line2_pos+1
//SEG52 main::plot2
//SEG53 [21] (byte*) main::plot2_$0#0 ← (byte*) cur_line#10 + (byte) main::plot2_xpos#0 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_$0#0 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_$0#0 ] ) -- pbuz1=pbuz2_plus_vbuaa
//SEG50 main::plot2
//SEG51 [21] (byte*) main::plot2_$0#0 ← (byte*) cur_line#10 + (byte) main::plot2_xpos#0 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_$0#0 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_$0#0 ] ) -- pbuz1=pbuz2_plus_vbuaa
clc
adc cur_line
sta plot2__0
lda #0
adc cur_line+1
sta plot2__0+1
//SEG54 [22] *((byte*) main::plot2_$0#0) ← (const byte) main::line2_ch#0 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ) -- _deref_pbuz1=vbuc1
//SEG52 [22] *((byte*) main::plot2_$0#0) ← (const byte) main::line2_ch#0 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ) -- _deref_pbuz1=vbuc1
lda #line2_ch
ldy #0
sta (plot2__0),y
//SEG55 main::@6
//SEG56 [23] (word) main::line2_pos#1 ← (word) main::line2_pos#2 + (const byte) main::line2_xadd#0 [ cur_line#10 main::line2_i#2 main::line2_pos#1 ] ( main:2 [ cur_line#10 main::line2_i#2 main::line2_pos#1 ] ) -- vwuz1=vwuz1_plus_vbuc1
//SEG53 main::@6
//SEG54 [23] (word) main::line2_pos#1 ← (word) main::line2_pos#2 + (const byte) main::line2_xadd#0 [ cur_line#10 main::line2_i#2 main::line2_pos#1 ] ( main:2 [ cur_line#10 main::line2_i#2 main::line2_pos#1 ] ) -- vwuz1=vwuz1_plus_vbuc1
clc
lda line2_pos
adc #<line2_xadd
@ -1582,7 +1532,7 @@ main: {
lda line2_pos+1
adc #>line2_xadd
sta line2_pos+1
//SEG57 [24] (byte*) cur_line#11 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::line2_i#2 main::line2_pos#1 cur_line#11 ] ( main:2 [ main::line2_i#2 main::line2_pos#1 cur_line#11 ] ) -- pbuz1=pbuz1_plus_vbuc1
//SEG55 [24] (byte*) cur_line#11 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::line2_i#2 main::line2_pos#1 cur_line#11 ] ( main:2 [ main::line2_i#2 main::line2_pos#1 cur_line#11 ] ) -- pbuz1=pbuz1_plus_vbuc1
lda cur_line
clc
adc #$28
@ -1590,13 +1540,13 @@ main: {
bcc !+
inc cur_line+1
!:
//SEG58 [25] (byte) main::line2_i#1 ← ++ (byte) main::line2_i#2 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ( main:2 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ) -- vbuxx=_inc_vbuxx
//SEG56 [25] (byte) main::line2_i#1 ← ++ (byte) main::line2_i#2 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ( main:2 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ) -- vbuxx=_inc_vbuxx
inx
//SEG59 [26] if((byte) main::line2_i#1<(const byte) main::line2_ysize#0) goto main::line2_@1 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ( main:2 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ) -- vbuxx_lt_vbuc1_then_la1
//SEG57 [26] if((byte) main::line2_i#1<(const byte) main::line2_ysize#0) goto main::line2_@1 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ( main:2 [ main::line2_pos#1 cur_line#11 main::line2_i#1 ] ) -- vbuxx_lt_vbuc1_then_la1
cpx #line2_ysize
bcc b3
//SEG60 main::@return
//SEG61 [27] return [ ] ( main:2 [ ] )
bcc line2_b1
//SEG58 main::@return
//SEG59 [27] return [ ] ( main:2 [ ] )
rts
}

View File

@ -22,7 +22,7 @@
(byte) main::line1_i#2 reg byte x 3.6666666666666665
(word) main::line1_pos
(word) main::line1_pos#1 line1_pos zp ZP_WORD:2 5.5
(word) main::line1_pos#2 line1_pos zp ZP_WORD:2 30.75
(word) main::line1_pos#2 line1_pos zp ZP_WORD:2 8.25
(byte) main::line1_xadd
(const byte) main::line1_xadd#0 line1_xadd = (byte/signed byte/word/signed word/dword/signed dword) 64
(byte) main::line1_xpos
@ -40,7 +40,7 @@
(byte) main::line2_i#2 reg byte x 3.6666666666666665
(word) main::line2_pos
(word) main::line2_pos#1 line2_pos zp ZP_WORD:2 5.5
(word) main::line2_pos#2 line2_pos zp ZP_WORD:2 30.75
(word) main::line2_pos#2 line2_pos zp ZP_WORD:2 8.25
(byte) main::line2_xadd
(const byte) main::line2_xadd#0 line2_xadd = (byte/word/signed word/dword/signed dword) 128
(byte) main::line2_xpos
@ -52,13 +52,13 @@
(byte*) main::plot1_$0#0 plot1_$0 zp ZP_WORD:6 22.0
(byte) main::plot1_ch
(byte) main::plot1_xpos
(byte) main::plot1_xpos#0 reg byte a 112.0
(byte) main::plot1_xpos#0 reg byte a 22.0
(label) main::plot2
(byte*~) main::plot2_$0
(byte*) main::plot2_$0#0 plot2_$0 zp ZP_WORD:6 22.0
(byte) main::plot2_ch
(byte) main::plot2_xpos
(byte) main::plot2_xpos#0 reg byte a 112.0
(byte) main::plot2_xpos#0 reg byte a 22.0
(byte*) main::sc
(byte*) main::sc#1 sc zp ZP_WORD:2 16.5
(byte*) main::sc#2 sc zp ZP_WORD:2 16.5

View File

@ -107,7 +107,7 @@ point_init::@2: scope:[point_init] from point_init::@10 point_init::@11
point_init::@return: scope:[point_init] from point_init::@2
[53] return [ ] ( main:2::point_init:20 [ main::i#2 ] )
to:@return
point_init::@1: scope:[point_init] from point_init point_init::@10
point_init::@1: scope:[point_init] from point_init::@10
[54] if((signed word) point_init::x_diff#1<(byte/signed byte/word/signed word/dword/signed dword) 0) goto point_init::@3 [ point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] )
to:point_init::@7
point_init::@7: scope:[point_init] from point_init::@1

View File

@ -1735,6 +1735,7 @@ Completing Phi functions...
Completing Phi functions...
Completing Phi functions...
Completing Phi functions...
Completing Phi functions...
CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN
@begin: scope:[] from
@ -2080,7 +2081,7 @@ point_init: scope:[point_init] from main::@1
point_init::abs16s1: scope:[point_init] from point_init
(byte) point_init::point_idx1#16 ← phi( point_init/(byte) point_init::point_idx1#0 )
(byte) point_init::point_idx#17 ← phi( point_init/(byte) point_init::point_idx#1 )
(signed word) point_init::x_diff#13 ← phi( point_init/(signed word) point_init::x_diff#0 )
(signed word) point_init::x_diff#14 ← phi( point_init/(signed word) point_init::x_diff#0 )
(signed word) point_init::y_diff#9 ← phi( point_init/(signed word) point_init::y_diff#0 )
(signed word) point_init::abs16s1_w#1 ← phi( point_init/(signed word) point_init::abs16s1_w#0 )
(bool) point_init::abs16s1_$0#0 ← (signed word) point_init::abs16s1_w#1 < (byte/signed byte/word/signed word/dword/signed dword) 0
@ -2088,8 +2089,8 @@ point_init::abs16s1: scope:[point_init] from point_init
to:point_init::abs16s1_@3
point_init::abs16s1_@1: scope:[point_init] from point_init::abs16s1
(byte) point_init::point_idx1#14 ← phi( point_init::abs16s1/(byte) point_init::point_idx1#16 )
(byte) point_init::point_idx#14 ← phi( point_init::abs16s1/(byte) point_init::point_idx#17 )
(signed word) point_init::x_diff#9 ← phi( point_init::abs16s1/(signed word) point_init::x_diff#13 )
(byte) point_init::point_idx#15 ← phi( point_init::abs16s1/(byte) point_init::point_idx#17 )
(signed word) point_init::x_diff#12 ← phi( point_init::abs16s1/(signed word) point_init::x_diff#14 )
(signed word) point_init::y_diff#6 ← phi( point_init::abs16s1/(signed word) point_init::y_diff#9 )
(signed word) point_init::abs16s1_w#2 ← phi( point_init::abs16s1/(signed word) point_init::abs16s1_w#1 )
(signed word) point_init::abs16s1_$2#0 ← - (signed word) point_init::abs16s1_w#2
@ -2098,8 +2099,8 @@ point_init::abs16s1_@1: scope:[point_init] from point_init::abs16s1
to:point_init::abs16s1_@return
point_init::abs16s1_@3: scope:[point_init] from point_init::abs16s1
(byte) point_init::point_idx1#15 ← phi( point_init::abs16s1/(byte) point_init::point_idx1#16 )
(byte) point_init::point_idx#15 ← phi( point_init::abs16s1/(byte) point_init::point_idx#17 )
(signed word) point_init::x_diff#10 ← phi( point_init::abs16s1/(signed word) point_init::x_diff#13 )
(byte) point_init::point_idx#16 ← phi( point_init::abs16s1/(byte) point_init::point_idx#17 )
(signed word) point_init::x_diff#13 ← phi( point_init::abs16s1/(signed word) point_init::x_diff#14 )
(signed word) point_init::y_diff#7 ← phi( point_init::abs16s1/(signed word) point_init::y_diff#9 )
(signed word) point_init::abs16s1_w#3 ← phi( point_init::abs16s1/(signed word) point_init::abs16s1_w#1 )
(word) point_init::abs16s1_$1#0 ← ((word)) (signed word) point_init::abs16s1_w#3
@ -2107,16 +2108,16 @@ point_init::abs16s1_@3: scope:[point_init] from point_init::abs16s1
to:point_init::abs16s1_@return
point_init::abs16s1_@return: scope:[point_init] from point_init::abs16s1_@1 point_init::abs16s1_@3
(byte) point_init::point_idx1#13 ← phi( point_init::abs16s1_@1/(byte) point_init::point_idx1#14 point_init::abs16s1_@3/(byte) point_init::point_idx1#15 )
(byte) point_init::point_idx#11 ← phi( point_init::abs16s1_@1/(byte) point_init::point_idx#14 point_init::abs16s1_@3/(byte) point_init::point_idx#15 )
(signed word) point_init::x_diff#7 ← phi( point_init::abs16s1_@1/(signed word) point_init::x_diff#9 point_init::abs16s1_@3/(signed word) point_init::x_diff#10 )
(byte) point_init::point_idx#14 ← phi( point_init::abs16s1_@1/(byte) point_init::point_idx#15 point_init::abs16s1_@3/(byte) point_init::point_idx#16 )
(signed word) point_init::x_diff#11 ← phi( point_init::abs16s1_@1/(signed word) point_init::x_diff#12 point_init::abs16s1_@3/(signed word) point_init::x_diff#13 )
(signed word) point_init::y_diff#3 ← phi( point_init::abs16s1_@1/(signed word) point_init::y_diff#6 point_init::abs16s1_@3/(signed word) point_init::y_diff#7 )
(word) point_init::abs16s1_return#3 ← phi( point_init::abs16s1_@1/(word) point_init::abs16s1_return#0 point_init::abs16s1_@3/(word) point_init::abs16s1_return#1 )
(word) point_init::abs16s1_return#2 ← (word) point_init::abs16s1_return#3
to:point_init::@9
point_init::@9: scope:[point_init] from point_init::abs16s1_@return
(byte) point_init::point_idx1#12 ← phi( point_init::abs16s1_@return/(byte) point_init::point_idx1#13 )
(byte) point_init::point_idx#9 ← phi( point_init::abs16s1_@return/(byte) point_init::point_idx#11 )
(signed word) point_init::x_diff#4 ← phi( point_init::abs16s1_@return/(signed word) point_init::x_diff#7 )
(byte) point_init::point_idx#13 ← phi( point_init::abs16s1_@return/(byte) point_init::point_idx#14 )
(signed word) point_init::x_diff#10 ← phi( point_init::abs16s1_@return/(signed word) point_init::x_diff#11 )
(signed word) point_init::y_diff#1 ← phi( point_init::abs16s1_@return/(signed word) point_init::y_diff#3 )
(word) point_init::abs16s1_return#4 ← phi( point_init::abs16s1_@return/(word) point_init::abs16s1_return#2 )
(word~) point_init::$7 ← (word) point_init::abs16s1_return#4
@ -2125,8 +2126,8 @@ point_init::@9: scope:[point_init] from point_init::abs16s1_@return
point_init::abs16s2: scope:[point_init] from point_init::@9
(signed word) point_init::y_diff#14 ← phi( point_init::@9/(signed word) point_init::y_diff#1 )
(byte) point_init::point_idx1#11 ← phi( point_init::@9/(byte) point_init::point_idx1#12 )
(byte) point_init::point_idx#16 ← phi( point_init::@9/(byte) point_init::point_idx#9 )
(signed word) point_init::x_diff#14 ← phi( point_init::@9/(signed word) point_init::x_diff#4 )
(byte) point_init::point_idx#12 ← phi( point_init::@9/(byte) point_init::point_idx#13 )
(signed word) point_init::x_diff#9 ← phi( point_init::@9/(signed word) point_init::x_diff#10 )
(signed word) point_init::abs16s2_w#1 ← phi( point_init::@9/(signed word) point_init::abs16s2_w#0 )
(bool) point_init::abs16s2_$0#0 ← (signed word) point_init::abs16s2_w#1 < (byte/signed byte/word/signed word/dword/signed dword) 0
if((bool) point_init::abs16s2_$0#0) goto point_init::abs16s2_@1
@ -2134,8 +2135,8 @@ point_init::abs16s2: scope:[point_init] from point_init::@9
point_init::abs16s2_@1: scope:[point_init] from point_init::abs16s2
(signed word) point_init::y_diff#12 ← phi( point_init::abs16s2/(signed word) point_init::y_diff#14 )
(byte) point_init::point_idx1#8 ← phi( point_init::abs16s2/(byte) point_init::point_idx1#11 )
(byte) point_init::point_idx#12 ← phi( point_init::abs16s2/(byte) point_init::point_idx#16 )
(signed word) point_init::x_diff#11 ← phi( point_init::abs16s2/(signed word) point_init::x_diff#14 )
(byte) point_init::point_idx#10 ← phi( point_init::abs16s2/(byte) point_init::point_idx#12 )
(signed word) point_init::x_diff#7 ← phi( point_init::abs16s2/(signed word) point_init::x_diff#9 )
(signed word) point_init::abs16s2_w#2 ← phi( point_init::abs16s2/(signed word) point_init::abs16s2_w#1 )
(signed word) point_init::abs16s2_$2#0 ← - (signed word) point_init::abs16s2_w#2
(word) point_init::abs16s2_$3#0 ← ((word)) (signed word) point_init::abs16s2_$2#0
@ -2144,8 +2145,8 @@ point_init::abs16s2_@1: scope:[point_init] from point_init::abs16s2
point_init::abs16s2_@3: scope:[point_init] from point_init::abs16s2
(signed word) point_init::y_diff#13 ← phi( point_init::abs16s2/(signed word) point_init::y_diff#14 )
(byte) point_init::point_idx1#9 ← phi( point_init::abs16s2/(byte) point_init::point_idx1#11 )
(byte) point_init::point_idx#13 ← phi( point_init::abs16s2/(byte) point_init::point_idx#16 )
(signed word) point_init::x_diff#12 ← phi( point_init::abs16s2/(signed word) point_init::x_diff#14 )
(byte) point_init::point_idx#11 ← phi( point_init::abs16s2/(byte) point_init::point_idx#12 )
(signed word) point_init::x_diff#8 ← phi( point_init::abs16s2/(signed word) point_init::x_diff#9 )
(signed word) point_init::abs16s2_w#3 ← phi( point_init::abs16s2/(signed word) point_init::abs16s2_w#1 )
(word) point_init::abs16s2_$1#0 ← ((word)) (signed word) point_init::abs16s2_w#3
(word) point_init::abs16s2_return#1 ← (word) point_init::abs16s2_$1#0
@ -2153,8 +2154,8 @@ point_init::abs16s2_@3: scope:[point_init] from point_init::abs16s2
point_init::abs16s2_@return: scope:[point_init] from point_init::abs16s2_@1 point_init::abs16s2_@3
(signed word) point_init::y_diff#11 ← phi( point_init::abs16s2_@1/(signed word) point_init::y_diff#12 point_init::abs16s2_@3/(signed word) point_init::y_diff#13 )
(byte) point_init::point_idx1#5 ← phi( point_init::abs16s2_@1/(byte) point_init::point_idx1#8 point_init::abs16s2_@3/(byte) point_init::point_idx1#9 )
(byte) point_init::point_idx#8 ← phi( point_init::abs16s2_@1/(byte) point_init::point_idx#12 point_init::abs16s2_@3/(byte) point_init::point_idx#13 )
(signed word) point_init::x_diff#8 ← phi( point_init::abs16s2_@1/(signed word) point_init::x_diff#11 point_init::abs16s2_@3/(signed word) point_init::x_diff#12 )
(byte) point_init::point_idx#8 ← phi( point_init::abs16s2_@1/(byte) point_init::point_idx#10 point_init::abs16s2_@3/(byte) point_init::point_idx#11 )
(signed word) point_init::x_diff#6 ← phi( point_init::abs16s2_@1/(signed word) point_init::x_diff#7 point_init::abs16s2_@3/(signed word) point_init::x_diff#8 )
(word) point_init::abs16s2_return#3 ← phi( point_init::abs16s2_@1/(word) point_init::abs16s2_return#0 point_init::abs16s2_@3/(word) point_init::abs16s2_return#1 )
(word) point_init::abs16s2_return#2 ← (word) point_init::abs16s2_return#3
to:point_init::@10
@ -2162,17 +2163,17 @@ point_init::@10: scope:[point_init] from point_init::abs16s2_@return
(signed word) point_init::y_diff#10 ← phi( point_init::abs16s2_@return/(signed word) point_init::y_diff#11 )
(byte) point_init::point_idx1#3 ← phi( point_init::abs16s2_@return/(byte) point_init::point_idx1#5 )
(byte) point_init::point_idx#5 ← phi( point_init::abs16s2_@return/(byte) point_init::point_idx#8 )
(signed word) point_init::x_diff#3 ← phi( point_init::abs16s2_@return/(signed word) point_init::x_diff#8 )
(signed word) point_init::x_diff#3 ← phi( point_init::abs16s2_@return/(signed word) point_init::x_diff#6 )
(word) point_init::abs16s2_return#4 ← phi( point_init::abs16s2_@return/(word) point_init::abs16s2_return#2 )
(word~) point_init::$8 ← (word) point_init::abs16s2_return#4
(bool~) point_init::$9 ← (word~) point_init::$7 > (word~) point_init::$8
if((bool~) point_init::$9) goto point_init::@1
to:point_init::@2
point_init::@1: scope:[point_init] from point_init point_init::@10 point_init::@9
(byte) point_init::point_idx1#10 ← phi( point_init/(byte) point_init::point_idx1#0 point_init::@10/(byte) point_init::point_idx1#3 point_init::@9/(byte) point_init::point_idx1#12 )
(signed word) point_init::y_diff#8 ← phi( point_init/(signed word) point_init::y_diff#0 point_init::@10/(signed word) point_init::y_diff#10 point_init::@9/(signed word) point_init::y_diff#1 )
(byte) point_init::point_idx#7 ← phi( point_init/(byte) point_init::point_idx#1 point_init::@10/(byte) point_init::point_idx#5 point_init::@9/(byte) point_init::point_idx#9 )
(signed word) point_init::x_diff#1 ← phi( point_init/(signed word) point_init::x_diff#0 point_init::@10/(signed word) point_init::x_diff#3 point_init::@9/(signed word) point_init::x_diff#4 )
point_init::@1: scope:[point_init] from point_init::@10
(byte) point_init::point_idx1#10 ← phi( point_init::@10/(byte) point_init::point_idx1#3 )
(signed word) point_init::y_diff#8 ← phi( point_init::@10/(signed word) point_init::y_diff#10 )
(byte) point_init::point_idx#7 ← phi( point_init::@10/(byte) point_init::point_idx#5 )
(signed word) point_init::x_diff#1 ← phi( point_init::@10/(signed word) point_init::x_diff#3 )
(bool~) point_init::$10 ← (signed word) point_init::x_diff#1 < (byte/signed byte/word/signed word/dword/signed dword) 0
if((bool~) point_init::$10) goto point_init::@3
to:point_init::@7
@ -2189,7 +2190,7 @@ point_init::@2: scope:[point_init] from point_init::@10 point_init::@11
point_init::@3: scope:[point_init] from point_init::@1
(byte) point_init::point_idx1#6 ← phi( point_init::@1/(byte) point_init::point_idx1#10 )
(signed word) point_init::y_diff#4 ← phi( point_init::@1/(signed word) point_init::y_diff#8 )
(signed word) point_init::x_diff#5 ← phi( point_init::@1/(signed word) point_init::x_diff#1 )
(signed word) point_init::x_diff#4 ← phi( point_init::@1/(signed word) point_init::x_diff#1 )
(byte) point_init::point_idx#3 ← phi( point_init::@1/(byte) point_init::point_idx#7 )
(signed byte/signed word/signed dword~) point_init::$11 ← - (byte/signed byte/word/signed word/dword/signed dword) 16
*((signed byte[4]) x_add#0 + (byte) point_init::point_idx#3) ← (signed byte/signed word/signed dword~) point_init::$11
@ -2197,15 +2198,15 @@ point_init::@3: scope:[point_init] from point_init::@1
point_init::@7: scope:[point_init] from point_init::@1
(byte) point_init::point_idx1#7 ← phi( point_init::@1/(byte) point_init::point_idx1#10 )
(signed word) point_init::y_diff#5 ← phi( point_init::@1/(signed word) point_init::y_diff#8 )
(signed word) point_init::x_diff#6 ← phi( point_init::@1/(signed word) point_init::x_diff#1 )
(signed word) point_init::x_diff#5 ← phi( point_init::@1/(signed word) point_init::x_diff#1 )
(byte) point_init::point_idx#4 ← phi( point_init::@1/(byte) point_init::point_idx#7 )
*((signed byte[4]) x_add#0 + (byte) point_init::point_idx#4) ← (byte/signed byte/word/signed word/dword/signed dword) 16
to:point_init::@4
point_init::@4: scope:[point_init] from point_init::@3 point_init::@7
(byte) point_init::point_idx#10 ← phi( point_init::@3/(byte) point_init::point_idx#3 point_init::@7/(byte) point_init::point_idx#4 )
(byte) point_init::point_idx#9 ← phi( point_init::@3/(byte) point_init::point_idx#3 point_init::@7/(byte) point_init::point_idx#4 )
(byte) point_init::point_idx1#4 ← phi( point_init::@3/(byte) point_init::point_idx1#6 point_init::@7/(byte) point_init::point_idx1#7 )
(signed word) point_init::y_diff#2 ← phi( point_init::@3/(signed word) point_init::y_diff#4 point_init::@7/(signed word) point_init::y_diff#5 )
(signed word) point_init::x_diff#2 ← phi( point_init::@3/(signed word) point_init::x_diff#5 point_init::@7/(signed word) point_init::x_diff#6 )
(signed word) point_init::x_diff#2 ← phi( point_init::@3/(signed word) point_init::x_diff#4 point_init::@7/(signed word) point_init::x_diff#5 )
(signed word) divr16s::dividend#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
(signed word) divr16s::divisor#0 ← (signed word) point_init::x_diff#2
(signed word) divr16s::rem#0 ← (signed word) point_init::y_diff#2
@ -2213,7 +2214,7 @@ point_init::@4: scope:[point_init] from point_init::@3 point_init::@7
(signed word) divr16s::return#3 ← (signed word) divr16s::return#2
to:point_init::@11
point_init::@11: scope:[point_init] from point_init::@4
(byte) point_init::point_idx#6 ← phi( point_init::@4/(byte) point_init::point_idx#10 )
(byte) point_init::point_idx#6 ← phi( point_init::@4/(byte) point_init::point_idx#9 )
(byte) point_init::point_idx1#2 ← phi( point_init::@4/(byte) point_init::point_idx1#4 )
(signed word) divr16s::return#5 ← phi( point_init::@4/(signed word) divr16s::return#3 )
(signed word~) point_init::$12 ← (signed word) divr16s::return#5
@ -3065,30 +3066,26 @@ Alias (byte*) main::toD0181_gfx#0 = (byte*) main::toD0181_gfx#1
Alias (byte) main::toD0181_return#0 = (byte) main::toD0181_$8#0 (byte) main::toD0181_return#2 (byte) main::toD0181_return#1 (byte) main::toD0181_return#3 (byte~) main::$4
Alias (byte) main::i#2 = (byte) main::i#3 (byte) main::i#4
Alias (byte) point_init::point_idx1#0 = (byte~) point_init::$0 (byte) point_init::point_idx1#16 (byte) point_init::point_idx1#14 (byte) point_init::point_idx1#15
Alias (signed word) point_init::abs16s1_w#0 = (signed word) point_init::x_diff#0 (signed word~) point_init::$3 (signed word) point_init::abs16s1_w#1 (signed word) point_init::x_diff#13 (signed word) point_init::abs16s1_w#2 (signed word) point_init::x_diff#9 (signed word) point_init::abs16s1_w#3 (signed word) point_init::x_diff#10
Alias (signed word) point_init::abs16s1_w#0 = (signed word) point_init::x_diff#0 (signed word~) point_init::$3 (signed word) point_init::abs16s1_w#1 (signed word) point_init::x_diff#14 (signed word) point_init::abs16s1_w#2 (signed word) point_init::x_diff#12 (signed word) point_init::abs16s1_w#3 (signed word) point_init::x_diff#13
Alias (signed word) point_init::y_diff#0 = (signed word~) point_init::$6 (signed word) point_init::y_diff#9 (signed word) point_init::y_diff#6 (signed word) point_init::y_diff#7
Alias (byte) point_init::point_idx#1 = (byte) point_init::point_idx#17 (byte) point_init::point_idx#14 (byte) point_init::point_idx#15
Alias (byte) point_init::point_idx#1 = (byte) point_init::point_idx#17 (byte) point_init::point_idx#15 (byte) point_init::point_idx#16
Alias (word) point_init::abs16s1_return#0 = (word) point_init::abs16s1_$3#0
Alias (word) point_init::abs16s1_return#1 = (word) point_init::abs16s1_$1#0
Alias (word) point_init::abs16s1_return#2 = (word) point_init::abs16s1_return#3 (word) point_init::abs16s1_return#4 (word~) point_init::$7
Alias (signed word) point_init::y_diff#1 = (signed word) point_init::y_diff#3 (signed word) point_init::abs16s2_w#0 (signed word) point_init::abs16s2_w#1 (signed word) point_init::y_diff#14 (signed word) point_init::abs16s2_w#2 (signed word) point_init::y_diff#12 (signed word) point_init::abs16s2_w#3 (signed word) point_init::y_diff#13
Alias (signed word) point_init::x_diff#11 = (signed word) point_init::x_diff#4 (signed word) point_init::x_diff#7 (signed word) point_init::x_diff#14 (signed word) point_init::x_diff#12
Alias (byte) point_init::point_idx#11 = (byte) point_init::point_idx#9 (byte) point_init::point_idx#16 (byte) point_init::point_idx#12 (byte) point_init::point_idx#13
Alias (signed word) point_init::x_diff#10 = (signed word) point_init::x_diff#11 (signed word) point_init::x_diff#9 (signed word) point_init::x_diff#7 (signed word) point_init::x_diff#8
Alias (byte) point_init::point_idx#10 = (byte) point_init::point_idx#13 (byte) point_init::point_idx#14 (byte) point_init::point_idx#12 (byte) point_init::point_idx#11
Alias (byte) point_init::point_idx1#11 = (byte) point_init::point_idx1#12 (byte) point_init::point_idx1#13 (byte) point_init::point_idx1#8 (byte) point_init::point_idx1#9
Alias (word) point_init::abs16s2_return#0 = (word) point_init::abs16s2_$3#0
Alias (word) point_init::abs16s2_return#1 = (word) point_init::abs16s2_$1#0
Alias (word) point_init::abs16s2_return#2 = (word) point_init::abs16s2_return#3 (word) point_init::abs16s2_return#4 (word~) point_init::$8
Alias (signed word) point_init::x_diff#3 = (signed word) point_init::x_diff#8
Alias (byte) point_init::point_idx#5 = (byte) point_init::point_idx#8
Alias (byte) point_init::point_idx1#3 = (byte) point_init::point_idx1#5
Alias (signed word) point_init::y_diff#10 = (signed word) point_init::y_diff#11
Alias (byte) point_init::point_idx#3 = (byte) point_init::point_idx#7 (byte) point_init::point_idx#4
Alias (signed word) point_init::x_diff#1 = (signed word) point_init::x_diff#5 (signed word) point_init::x_diff#6
Alias (signed word) point_init::y_diff#4 = (signed word) point_init::y_diff#8 (signed word) point_init::y_diff#5
Alias (byte) point_init::point_idx1#10 = (byte) point_init::point_idx1#6 (byte) point_init::point_idx1#7
Alias (signed word) point_init::x_diff#1 = (signed word) point_init::x_diff#3 (signed word) point_init::x_diff#6 (signed word) point_init::x_diff#4 (signed word) point_init::x_diff#5
Alias (byte) point_init::point_idx#3 = (byte) point_init::point_idx#5 (byte) point_init::point_idx#8 (byte) point_init::point_idx#7 (byte) point_init::point_idx#4
Alias (byte) point_init::point_idx1#10 = (byte) point_init::point_idx1#3 (byte) point_init::point_idx1#5 (byte) point_init::point_idx1#6 (byte) point_init::point_idx1#7
Alias (signed word) point_init::y_diff#10 = (signed word) point_init::y_diff#11 (signed word) point_init::y_diff#8 (signed word) point_init::y_diff#4 (signed word) point_init::y_diff#5
Alias (signed word) divr16s::return#3 = (signed word) divr16s::return#5
Alias (byte) point_init::point_idx1#2 = (byte) point_init::point_idx1#4
Alias (byte) point_init::point_idx#10 = (byte) point_init::point_idx#6
Alias (byte) point_init::point_idx#6 = (byte) point_init::point_idx#9
Alias (signed word) point_init::x_stepf#0 = (signed word~) point_init::$12
Alias (byte) screen_fill::y#2 = (byte) screen_fill::y#3
Alias (byte) screen_fill::ch#1 = (byte) screen_fill::ch#4
@ -3143,14 +3140,10 @@ Alias (word) divr16u::dividend#0 = (word) divr16u::dividend#5
Alias (signed word) divr16s::divisor#1 = (signed word) divr16s::divisor#4
Alias (word) divr16s::dividendu#3 = (word) divr16s::dividendu#4
Alias (word) divr16s::remu#3 = (word) divr16s::remu#4
Alias (signed word) point_init::y_diff#0 = (signed word) point_init::y_diff#1 (signed word) point_init::y_diff#10
Alias (signed word) point_init::x_diff#11 = (signed word) point_init::abs16s1_w#0 (signed word) point_init::x_diff#3
Alias (byte) point_init::point_idx#1 = (byte) point_init::point_idx#11 (byte) point_init::point_idx#5
Alias (byte) point_init::point_idx1#0 = (byte) point_init::point_idx1#11 (byte) point_init::point_idx1#3
Alias (signed word) point_init::x_diff#1 = (signed word) point_init::x_diff#2
Alias (signed word) point_init::y_diff#2 = (signed word) point_init::y_diff#4
Alias (byte) point_init::point_idx1#10 = (byte) point_init::point_idx1#2
Alias (byte) point_init::point_idx#10 = (byte) point_init::point_idx#3
Alias (signed word) point_init::y_diff#0 = (signed word) point_init::y_diff#1 (signed word) point_init::y_diff#10 (signed word) point_init::y_diff#2
Alias (signed word) point_init::x_diff#1 = (signed word) point_init::x_diff#10 (signed word) point_init::abs16s1_w#0 (signed word) point_init::x_diff#2
Alias (byte) point_init::point_idx#1 = (byte) point_init::point_idx#10 (byte) point_init::point_idx#3 (byte) point_init::point_idx#6
Alias (byte) point_init::point_idx1#0 = (byte) point_init::point_idx1#11 (byte) point_init::point_idx1#10 (byte) point_init::point_idx1#2
Alias (byte) bitmap_init::x#2 = (byte) bitmap_init::x#3
Alias (byte*) bitmap_init::bitmap#1 = (byte*) bitmap_init::bitmap#3
Alias (byte) bitmap_init::y#2 = (byte) bitmap_init::y#3
@ -3176,40 +3169,6 @@ Not aliassing across scopes: screen_fill::screen#0 SCREEN#1
Not aliassing across scopes: point_init::point_idx#0 main::i#2
Not aliassing across scopes: point_init::point_idx#1 point_init::point_idx#0
Not aliassing across scopes: divr16s::divisor#0 point_init::x_diff#1
Not aliassing across scopes: divr16s::rem#0 point_init::y_diff#2
Not aliassing across scopes: divr16s::return#3 divr16s::return#2
Not aliassing across scopes: point_init::x_stepf#0 divr16s::return#3
Not aliassing across scopes: screen_fill::ch#3 screen_fill::ch#0
Not aliassing across scopes: screen_fill::screen#4 screen_fill::screen#0
Not aliassing across scopes: bitmap_init::bitmap#5 bitmap_init::bitmap#0
Not aliassing across scopes: bitmap_plot::y#1 bitmap_plot::y#0
Not aliassing across scopes: bitmap_plot::x#1 bitmap_plot::x#0
Alias (signed word) point_init::x_diff#1 = (signed word) point_init::x_diff#11
Alias (byte) point_init::point_idx#1 = (byte) point_init::point_idx#10
Alias (signed word) point_init::y_diff#0 = (signed word) point_init::y_diff#2
Alias (byte) point_init::point_idx1#0 = (byte) point_init::point_idx1#10
Succesful SSA optimization Pass2AliasElimination
Not aliassing across scopes: divr16u::rem#8 divr16u::rem#3
Not aliassing across scopes: divr16u::dividend#4 divr16u::dividend#1
Not aliassing across scopes: divr16u::divisor#5 divr16u::divisor#0
Not aliassing across scopes: divr16s::dividend#1 divr16s::dividend#0
Not aliassing across scopes: divr16s::rem#1 divr16s::rem#0
Not aliassing across scopes: divr16s::divisor#1 divr16s::divisor#0
Not aliassing across scopes: divr16u::dividend#1 divr16s::dividendu#3
Not aliassing across scopes: divr16u::divisor#0 divr16s::divisoru#3
Not aliassing across scopes: divr16u::rem#3 divr16s::remu#3
Not aliassing across scopes: divr16u::return#2 divr16u::return#0
Not aliassing across scopes: divr16s::resultu#0 divr16u::return#2
Not aliassing across scopes: SCREEN#1 SCREEN#0
Not aliassing across scopes: BITMAP#1 BITMAP#0
Not aliassing across scopes: main::vicSelectGfxBank1_gfx#0 SCREEN#1
Not aliassing across scopes: main::toD0181_screen#0 SCREEN#1
Not aliassing across scopes: main::toD0181_gfx#0 BITMAP#1
Not aliassing across scopes: bitmap_init::bitmap#0 BITMAP#1
Not aliassing across scopes: screen_fill::screen#0 SCREEN#1
Not aliassing across scopes: point_init::point_idx#0 main::i#2
Not aliassing across scopes: point_init::point_idx#1 point_init::point_idx#0
Not aliassing across scopes: divr16s::divisor#0 point_init::x_diff#1
Not aliassing across scopes: divr16s::rem#0 point_init::y_diff#0
Not aliassing across scopes: divr16s::return#3 divr16s::return#2
Not aliassing across scopes: point_init::x_stepf#0 divr16s::return#3
@ -3792,7 +3751,7 @@ point_init::@2: scope:[point_init] from point_init::@10 point_init::@11
point_init::@return: scope:[point_init] from point_init::@2
[53] return [ ] ( main:2::point_init:20 [ main::i#2 ] )
to:@return
point_init::@1: scope:[point_init] from point_init point_init::@10
point_init::@1: scope:[point_init] from point_init::@10
[54] if((signed word) point_init::x_diff#1<(byte/signed byte/word/signed word/dword/signed dword) 0) goto point_init::@3 [ point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] )
to:point_init::@7
point_init::@7: scope:[point_init] from point_init::@1
@ -4020,34 +3979,34 @@ point_init::abs16s2 dominated by main::toD0181 main::vicSelectGfxBank1 main mai
point_init::@13 dominated by main::toD0181 main::vicSelectGfxBank1 main main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@13 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
point_init::abs16s2_@return dominated by main::toD0181 main::vicSelectGfxBank1 main point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
point_init::@10 dominated by main::toD0181 main::vicSelectGfxBank1 main point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
point_init::@2 dominated by main::toD0181 point_init::@2 main::vicSelectGfxBank1 main main::@1 @begin point_init main::vicSelectGfxBank1_@1 @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
point_init::@return dominated by main::toD0181 point_init::@2 main::vicSelectGfxBank1 main main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@return @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
point_init::@1 dominated by main::toD0181 main::vicSelectGfxBank1 point_init::@1 main main::@1 @begin point_init main::vicSelectGfxBank1_@1 @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
point_init::@7 dominated by main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@7 main::@1 @begin point_init main::vicSelectGfxBank1_@1 @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
point_init::@4 dominated by main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 main::@1 @begin point_init main::vicSelectGfxBank1_@1 @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
point_init::@11 dominated by main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 main::@1 @begin point_init point_init::@11 main::vicSelectGfxBank1_@1 @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
point_init::@3 dominated by main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@3 main::@1 @begin point_init main::vicSelectGfxBank1_@1 @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
point_init::@2 dominated by main::toD0181 point_init::@2 main::vicSelectGfxBank1 main point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
point_init::@return dominated by main::toD0181 point_init::@2 main::vicSelectGfxBank1 main point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 point_init::abs16s1 point_init::abs16s2 point_init::@return point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
point_init::@1 dominated by main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
point_init::@7 dominated by main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@7 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
point_init::@4 dominated by main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
point_init::@11 dominated by main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 point_init::abs16s2_@return main::@1 @begin point_init point_init::@11 main::vicSelectGfxBank1_@1 point_init::@10 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
point_init::@3 dominated by main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@3 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
point_init::abs16s2_@1 dominated by main::toD0181 main::vicSelectGfxBank1 main main::@1 point_init::abs16s2_@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
point_init::abs16s1_@1 dominated by main::toD0181 main::vicSelectGfxBank1 main main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::abs16s1 @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001 point_init::abs16s1_@1
divr16s dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 main::@1 @begin point_init main::vicSelectGfxBank1_@1 @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
divr16s::@16 dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 main::@1 @begin point_init main::vicSelectGfxBank1_@1 divr16s::@16 @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
divr16s::@17 dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 main::@1 @begin point_init main::vicSelectGfxBank1_@1 divr16s::@17 divr16s::@16 @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
divr16s::@2 dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 divr16s::@2 main::@1 @begin point_init main::vicSelectGfxBank1_@1 divr16s::@16 @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
divr16s::@18 dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 divr16s::@2 main::@1 @begin point_init main::vicSelectGfxBank1_@1 divr16s::@16 divr16s::@18 @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
divr16s::@4 dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 divr16s::@2 main::@1 @begin point_init main::vicSelectGfxBank1_@1 divr16s::@16 @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16s::@15 dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 divr16s::@2 main::@1 @begin point_init main::vicSelectGfxBank1_@1 divr16s::@16 divr16s::@15 @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16s::@11 dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 divr16s::@2 main::@1 @begin point_init main::vicSelectGfxBank1_@1 divr16s::@16 divr16s::@11 divr16s::@15 @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16s::@return dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 divr16s::@2 main::@1 @begin divr16s::@return point_init main::vicSelectGfxBank1_@1 divr16s::@16 divr16s::@15 @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16s::@19 dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 divr16s::@2 main::@1 @begin point_init main::vicSelectGfxBank1_@1 divr16s::@16 divr16s::@19 divr16s::@15 @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16s::@3 dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 divr16s::@2 main::@1 @begin point_init main::vicSelectGfxBank1_@1 divr16s::@16 @18 main::@17 main::@16 main::@18 divr16s::@3 main::vicSelectGfxBank1_toDd001
divr16s::@1 dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 divr16s::@1 main::@1 @begin point_init main::vicSelectGfxBank1_@1 divr16s::@16 @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
divr16u dominated by divr16u divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 divr16s::@2 main::@1 @begin point_init main::vicSelectGfxBank1_@1 divr16s::@16 @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16u::@1 dominated by divr16u divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 divr16u::@1 main point_init::@4 divr16s::@2 main::@1 @begin point_init main::vicSelectGfxBank1_@1 divr16s::@16 @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16u::@4 dominated by divr16u divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 divr16u::@1 main point_init::@4 divr16u::@4 divr16s::@2 main::@1 @begin point_init main::vicSelectGfxBank1_@1 divr16s::@16 @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16u::@2 dominated by divr16u divr16s main::toD0181 divr16u::@2 main::vicSelectGfxBank1 point_init::@1 divr16u::@1 main point_init::@4 divr16s::@2 main::@1 @begin point_init main::vicSelectGfxBank1_@1 divr16s::@16 @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16u::@5 dominated by divr16u divr16s main::toD0181 divr16u::@2 main::vicSelectGfxBank1 point_init::@1 divr16u::@1 main point_init::@4 divr16u::@5 divr16s::@2 main::@1 @begin point_init main::vicSelectGfxBank1_@1 divr16s::@16 @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16u::@3 dominated by divr16u divr16s main::toD0181 divr16u::@2 main::vicSelectGfxBank1 point_init::@1 divr16u::@1 main point_init::@4 divr16u::@3 divr16s::@2 main::@1 @begin point_init main::vicSelectGfxBank1_@1 divr16s::@16 @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16u::@return dominated by divr16u divr16s main::toD0181 divr16u::@2 main::vicSelectGfxBank1 point_init::@1 divr16u::@1 main point_init::@4 divr16u::@3 divr16s::@2 main::@1 @begin point_init main::vicSelectGfxBank1_@1 divr16s::@16 @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001 divr16u::@return
divr16s dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
divr16s::@16 dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 divr16s::@16 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
divr16s::@17 dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 divr16s::@17 divr16s::@16 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
divr16s::@2 dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 divr16s::@2 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 divr16s::@16 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
divr16s::@18 dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 divr16s::@2 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 divr16s::@16 divr16s::@18 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
divr16s::@4 dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 divr16s::@2 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 divr16s::@16 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16s::@15 dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 divr16s::@2 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 divr16s::@16 divr16s::@15 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16s::@11 dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 divr16s::@2 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 divr16s::@16 divr16s::@11 divr16s::@15 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16s::@return dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 divr16s::@2 point_init::abs16s2_@return main::@1 @begin divr16s::@return point_init main::vicSelectGfxBank1_@1 point_init::@10 divr16s::@16 divr16s::@15 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16s::@19 dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 divr16s::@2 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 divr16s::@16 divr16s::@19 divr16s::@15 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16s::@3 dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 divr16s::@2 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 divr16s::@16 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 divr16s::@3 main::vicSelectGfxBank1_toDd001
divr16s::@1 dominated by divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 divr16s::@1 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 divr16s::@16 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
divr16u dominated by divr16u divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 main point_init::@4 divr16s::@2 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 divr16s::@16 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16u::@1 dominated by divr16u divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 divr16u::@1 main point_init::@4 divr16s::@2 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 divr16s::@16 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16u::@4 dominated by divr16u divr16s main::toD0181 main::vicSelectGfxBank1 point_init::@1 divr16u::@1 main point_init::@4 divr16u::@4 divr16s::@2 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 divr16s::@16 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16u::@2 dominated by divr16u divr16s main::toD0181 divr16u::@2 main::vicSelectGfxBank1 point_init::@1 divr16u::@1 main point_init::@4 divr16s::@2 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 divr16s::@16 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16u::@5 dominated by divr16u divr16s main::toD0181 divr16u::@2 main::vicSelectGfxBank1 point_init::@1 divr16u::@1 main point_init::@4 divr16u::@5 divr16s::@2 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 divr16s::@16 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16u::@3 dominated by divr16u divr16s main::toD0181 divr16u::@2 main::vicSelectGfxBank1 point_init::@1 divr16u::@1 main point_init::@4 divr16u::@3 divr16s::@2 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 divr16s::@16 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001
divr16u::@return dominated by divr16u divr16s main::toD0181 divr16u::@2 main::vicSelectGfxBank1 point_init::@1 divr16u::@1 main point_init::@4 divr16u::@3 divr16s::@2 point_init::abs16s2_@return main::@1 @begin point_init main::vicSelectGfxBank1_@1 point_init::@10 divr16s::@16 point_init::abs16s1 point_init::abs16s2 point_init::abs16s1_@return @18 main::@17 main::@16 main::@18 divr16s::@4 main::vicSelectGfxBank1_toDd001 divr16u::@return
screen_fill dominated by main::toD0181 main::vicSelectGfxBank1 main screen_fill @begin main::vicSelectGfxBank1_@1 @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
screen_fill::@1 dominated by main::toD0181 main::vicSelectGfxBank1 main screen_fill @begin main::vicSelectGfxBank1_@1 screen_fill::@1 @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001
screen_fill::@2 dominated by main::toD0181 main::vicSelectGfxBank1 main screen_fill @begin main::vicSelectGfxBank1_@1 screen_fill::@1 screen_fill::@2 @18 main::@17 main::@16 main::@18 main::vicSelectGfxBank1_toDd001