1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2025-01-11 04:29:53 +00:00

update test reference

This commit is contained in:
Travis Fisher 2020-12-05 23:30:34 -05:00
parent 6f521cd197
commit b9b5baf2ea
16 changed files with 14728 additions and 14851 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,114 +1,114 @@
//KICKC FRAGMENT CACHE 12916116c7 12916134cc
//FRAGMENT vbuz1=vbuc1
//KICKC FRAGMENT CACHE 129160f8c2 12916116c7
//FRAGMENT vbuz1=vbuc1
lda #{c1}
sta {z1}
//FRAGMENT vbuz1_lt_vbuc1_then_la1
sta {z1}
//FRAGMENT vbuz1_lt_vbuc1_then_la1
lda {z1}
cmp #{c1}
bcc {la1}
//FRAGMENT pbuc1_derefidx_vbuz1=vbuc2
bcc {la1}
//FRAGMENT pbuc1_derefidx_vbuz1=vbuc2
lda #{c2}
ldy {z1}
sta {c1},y
//FRAGMENT vbuz1=vbuz2_band_vbuc1
sta {c1},y
//FRAGMENT vbuz1=vbuz2_band_vbuc1
lda #{c1}
and {z2}
sta {z1}
//FRAGMENT vbuz1_neq_0_then_la1
sta {z1}
//FRAGMENT vbuz1_neq_0_then_la1
lda {z1}
cmp #0
bne {la1}
//FRAGMENT vbuz1=vbuz1_plus_vbuc1
bne {la1}
//FRAGMENT vbuz1=vbuz1_plus_vbuc1
lda #{c1}
clc
adc {z1}
sta {z1}
//FRAGMENT vbuz1=_inc_vbuz1
inc {z1}
//FRAGMENT vbuaa_lt_vbuc1_then_la1
sta {z1}
//FRAGMENT vbuz1=_inc_vbuz1
inc {z1}
//FRAGMENT vbuaa_lt_vbuc1_then_la1
cmp #{c1}
bcc {la1}
//FRAGMENT pbuc1_derefidx_vbuaa=vbuc2
bcc {la1}
//FRAGMENT pbuc1_derefidx_vbuaa=vbuc2
tay
lda #{c2}
sta {c1},y
//FRAGMENT pbuc1_derefidx_vbuxx=vbuc2
sta {c1},y
//FRAGMENT pbuc1_derefidx_vbuxx=vbuc2
lda #{c2}
sta {c1},x
//FRAGMENT pbuc1_derefidx_vbuyy=vbuc2
sta {c1},x
//FRAGMENT pbuc1_derefidx_vbuyy=vbuc2
lda #{c2}
sta {c1},y
//FRAGMENT vbuaa=vbuz1_band_vbuc1
sta {c1},y
//FRAGMENT vbuaa=vbuz1_band_vbuc1
lda #{c1}
and {z1}
//FRAGMENT vbuxx=vbuz1_band_vbuc1
lda #{c1}
and {z1}
//FRAGMENT vbuxx=vbuz1_band_vbuc1
tax
//FRAGMENT vbuyy=vbuz1_band_vbuc1
lda #{c1}
and {z1}
tax
//FRAGMENT vbuyy=vbuz1_band_vbuc1
lda #{c1}
and {z1}
tay
//FRAGMENT vbuz1=vbuxx_band_vbuc1
tay
//FRAGMENT vbuz1=vbuxx_band_vbuc1
txa
and #{c1}
sta {z1}
//FRAGMENT vbuaa=vbuxx_band_vbuc1
sta {z1}
//FRAGMENT vbuaa=vbuxx_band_vbuc1
txa
and #{c1}
//FRAGMENT vbuxx=vbuxx_band_vbuc1
txa
and #{c1}
//FRAGMENT vbuxx=vbuxx_band_vbuc1
tax
//FRAGMENT vbuyy=vbuxx_band_vbuc1
txa
and #{c1}
tax
//FRAGMENT vbuyy=vbuxx_band_vbuc1
txa
and #{c1}
tay
//FRAGMENT vbuz1=vbuyy_band_vbuc1
tay
//FRAGMENT vbuz1=vbuyy_band_vbuc1
tya
and #{c1}
sta {z1}
//FRAGMENT vbuaa=vbuyy_band_vbuc1
sta {z1}
//FRAGMENT vbuaa=vbuyy_band_vbuc1
tya
and #{c1}
//FRAGMENT vbuxx=vbuyy_band_vbuc1
tya
and #{c1}
//FRAGMENT vbuxx=vbuyy_band_vbuc1
tax
//FRAGMENT vbuyy=vbuyy_band_vbuc1
tya
and #{c1}
tax
//FRAGMENT vbuyy=vbuyy_band_vbuc1
tya
and #{c1}
tay
//FRAGMENT vbuaa_neq_0_then_la1
tay
//FRAGMENT vbuaa_neq_0_then_la1
cmp #0
bne {la1}
//FRAGMENT vbuxx=vbuxx_plus_vbuc1
bne {la1}
//FRAGMENT vbuxx=vbuxx_plus_vbuc1
txa
clc
adc #{c1}
tax
//FRAGMENT vbuyy=vbuyy_plus_vbuc1
tax
//FRAGMENT vbuyy=vbuyy_plus_vbuc1
tya
clc
adc #{c1}
tay
//FRAGMENT vbuxx_lt_vbuc1_then_la1
tay
//FRAGMENT vbuxx_lt_vbuc1_then_la1
cpx #{c1}
bcc {la1}
//FRAGMENT vbuxx=vbuc1
ldx #{c1}
//FRAGMENT vbuxx=_inc_vbuxx
inx
//FRAGMENT vbuyy=vbuc1
ldy #{c1}
//FRAGMENT vbuyy_lt_vbuc1_then_la1
bcc {la1}
//FRAGMENT vbuxx=vbuc1
ldx #{c1}
//FRAGMENT vbuxx=_inc_vbuxx
inx
//FRAGMENT vbuyy=vbuc1
ldy #{c1}
//FRAGMENT vbuyy_lt_vbuc1_then_la1
cpy #{c1}
bcc {la1}
//FRAGMENT vbuyy=_inc_vbuyy
iny
//FRAGMENT vbuxx_neq_0_then_la1
bcc {la1}
//FRAGMENT vbuyy=_inc_vbuyy
iny
//FRAGMENT vbuxx_neq_0_then_la1
cpx #0
bne {la1}
//FRAGMENT vbuyy_neq_0_then_la1
bne {la1}
//FRAGMENT vbuyy_neq_0_then_la1
cpy #0
bne {la1}
bne {la1}

File diff suppressed because it is too large Load Diff

View File

@ -1,67 +1,67 @@
//KICKC FRAGMENT CACHE 12916116c7 12916134cc
//FRAGMENT vbuz1=_deref_pbuc1
//KICKC FRAGMENT CACHE 129160f8c2 12916116c7
//FRAGMENT vbuz1=_deref_pbuc1
lda {c1}
sta {z1}
//FRAGMENT vbuz1=vbuz2_plus_1
sta {z1}
//FRAGMENT vbuz1=vbuz2_plus_1
lda {z2}
inc
sta {z1}
//FRAGMENT _deref_pbuc1=vbuz1
sta {z1}
//FRAGMENT _deref_pbuc1=vbuz1
lda {z1}
sta {c1}
//FRAGMENT vbuaa=_deref_pbuc1
lda {c1}
//FRAGMENT vbuxx=_deref_pbuc1
ldx {c1}
//FRAGMENT vbuz1=vbuaa_plus_1
sta {c1}
//FRAGMENT vbuaa=_deref_pbuc1
lda {c1}
//FRAGMENT vbuxx=_deref_pbuc1
ldx {c1}
//FRAGMENT vbuz1=vbuaa_plus_1
inc
sta {z1}
//FRAGMENT vbuz1=vbuxx_plus_1
sta {z1}
//FRAGMENT vbuz1=vbuxx_plus_1
inx
stx {z1}
//FRAGMENT _deref_pbuc1=vbuaa
sta {c1}
//FRAGMENT vbuyy=_deref_pbuc1
ldy {c1}
//FRAGMENT vbuz1=vbuyy_plus_1
stx {z1}
//FRAGMENT _deref_pbuc1=vbuaa
sta {c1}
//FRAGMENT vbuyy=_deref_pbuc1
ldy {c1}
//FRAGMENT vbuz1=vbuyy_plus_1
iny
sty {z1}
//FRAGMENT vbuaa=vbuz1_plus_1
sty {z1}
//FRAGMENT vbuaa=vbuz1_plus_1
lda {z1}
inc
//FRAGMENT vbuaa=vbuaa_plus_1
inc
//FRAGMENT vbuaa=vbuxx_plus_1
inc
//FRAGMENT vbuaa=vbuaa_plus_1
inc
//FRAGMENT vbuaa=vbuxx_plus_1
txa
inc
//FRAGMENT vbuaa=vbuyy_plus_1
inc
//FRAGMENT vbuaa=vbuyy_plus_1
tya
inc
//FRAGMENT vbuxx=vbuz1_plus_1
inc
//FRAGMENT vbuxx=vbuz1_plus_1
ldx {z1}
inx
//FRAGMENT _deref_pbuc1=vbuxx
stx {c1}
//FRAGMENT vbuxx=vbuaa_plus_1
inx
//FRAGMENT _deref_pbuc1=vbuxx
stx {c1}
//FRAGMENT vbuxx=vbuaa_plus_1
tax
inx
//FRAGMENT vbuxx=vbuxx_plus_1
inx
//FRAGMENT vbuxx=vbuyy_plus_1
inx
//FRAGMENT vbuxx=vbuxx_plus_1
inx
//FRAGMENT vbuxx=vbuyy_plus_1
tya
inc
tax
//FRAGMENT vbuyy=vbuz1_plus_1
tax
//FRAGMENT vbuyy=vbuz1_plus_1
ldy {z1}
iny
//FRAGMENT _deref_pbuc1=vbuyy
sty {c1}
//FRAGMENT vbuyy=vbuaa_plus_1
iny
//FRAGMENT _deref_pbuc1=vbuyy
sty {c1}
//FRAGMENT vbuyy=vbuaa_plus_1
tay
iny
//FRAGMENT vbuyy=vbuxx_plus_1
iny
//FRAGMENT vbuyy=vbuxx_plus_1
txa
inc
tay
//FRAGMENT vbuyy=vbuyy_plus_1
iny
tay
//FRAGMENT vbuyy=vbuyy_plus_1
iny

View File

@ -590,7 +590,7 @@ newline::@4: scope:[newline] from newline::@2
[281] call memset
to:newline::@5
newline::@5: scope:[newline] from newline::@4
[282] *ROWCRS = (byte)$18-1
[282] *ROWCRS = $18-1
to:newline::@1
newline::@1: scope:[newline] from newline newline::@5
[283] phi()

File diff suppressed because one or more lines are too long

View File

@ -27,7 +27,7 @@ conio_c64_init::@2: scope:[conio_c64_init] from conio_c64_init
[11] phi()
to:conio_c64_init::@1
conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2
[12] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/(byte)$19-1 )
[12] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 )
[13] gotoxy::y#2 = conio_c64_init::line#2
[14] call gotoxy
to:conio_c64_init::@return

View File

@ -3540,6 +3540,28 @@ Alias candidate removed (volatile)conio_line_text = gotoxy::$5
Alias candidate removed (volatile)conio_line_color = gotoxy::$6
Alias candidate removed (volatile)conio_line_text = gotoxy::$5
Alias candidate removed (volatile)conio_line_color = gotoxy::$6
Finalized unsigned number type 2
Finalized unsigned number type 8
Finalized unsigned number type $a
Finalized unsigned number type $10
Finalized unsigned number type $b
Finalized unsigned number type $b
Finalized unsigned number type $19
Finalized unsigned number type $28
Finalized unsigned number type $28
Finalized unsigned number type $19
Finalized unsigned number type $28
Finalized unsigned number type $19
Finalized unsigned number type $28
Finalized unsigned number type $19
Finalized unsigned number type 1
Successful SSA optimization Pass2FinalizeAllNumbers
Simplifying constant integer cast $19-1
Successful SSA optimization PassNCastSimplification
Alias candidate removed (volatile)conio_line_text = gotoxy::$5
Alias candidate removed (volatile)conio_line_color = gotoxy::$6
Alias candidate removed (volatile)conio_line_text = gotoxy::$5
Alias candidate removed (volatile)conio_line_color = gotoxy::$6
Added new block during phi lifting utoa::@17(between utoa::@16 and utoa::@13)
Added new block during phi lifting gotoxy::@5(between gotoxy and gotoxy::@1)
Added new block during phi lifting conio_c64_init::@4(between conio_c64_init and conio_c64_init::@1)
@ -3774,7 +3796,7 @@ conio_c64_init::@2: scope:[conio_c64_init] from conio_c64_init
[11] phi()
to:conio_c64_init::@1
conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2
[12] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/(byte)$19-1 )
[12] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 )
[13] gotoxy::y#2 = conio_c64_init::line#2
[14] call gotoxy
to:conio_c64_init::@return
@ -5118,7 +5140,7 @@ conio_c64_init: {
bcc __b2_from_conio_c64_init
// [12] phi from conio_c64_init to conio_c64_init::@1 [phi:conio_c64_init->conio_c64_init::@1]
__b1_from_conio_c64_init:
// [12] phi conio_c64_init::line#2 = (byte)$19-1 [phi:conio_c64_init->conio_c64_init::@1#0] -- vbuxx=vbuc1
// [12] phi conio_c64_init::line#2 = $19-1 [phi:conio_c64_init->conio_c64_init::@1#0] -- vbuxx=vbuc1
ldx #$19-1
jmp __b1
// [11] phi from conio_c64_init to conio_c64_init::@2 [phi:conio_c64_init->conio_c64_init::@2]
@ -7144,7 +7166,7 @@ conio_c64_init: {
cpx #$19
bcc __b1
// [12] phi from conio_c64_init to conio_c64_init::@1 [phi:conio_c64_init->conio_c64_init::@1]
// [12] phi conio_c64_init::line#2 = (byte)$19-1 [phi:conio_c64_init->conio_c64_init::@1#0] -- vbuxx=vbuc1
// [12] phi conio_c64_init::line#2 = $19-1 [phi:conio_c64_init->conio_c64_init::@1#0] -- vbuxx=vbuc1
ldx #$19-1
// [11] phi from conio_c64_init to conio_c64_init::@2 [phi:conio_c64_init->conio_c64_init::@2]
// conio_c64_init::@2

View File

@ -400,7 +400,7 @@ newline::@4: scope:[newline] from newline::@2
[185] call memset
to:newline::@5
newline::@5: scope:[newline] from newline::@4
[186] *ROWCRS = (byte)$18-1
[186] *ROWCRS = $18-1
to:newline::@1
newline::@1: scope:[newline] from newline newline::@5
[187] phi()

File diff suppressed because one or more lines are too long

View File

@ -377,7 +377,7 @@ newline::@4: scope:[newline] from newline::@2
[160] call memset
to:newline::@5
newline::@5: scope:[newline] from newline::@4
[161] *ROWCRS = (byte)$18-1
[161] *ROWCRS = $18-1
to:newline::@1
newline::@1: scope:[newline] from newline newline::@5
[162] phi()

View File

@ -4223,6 +4223,30 @@ Removing unused block printf_number_buffer::@16
Successful SSA optimization Pass2EliminateUnusedBlocks
Constant inlined utoa::$4 = 5-1
Successful SSA optimization Pass2ConstantInlining
Finalized unsigned number type $28
Finalized unsigned number type $17
Finalized unsigned number type 2
Finalized unsigned number type 8
Finalized unsigned number type $a
Finalized unsigned number type $10
Finalized unsigned number type $a
Finalized unsigned number type $a
Finalized unsigned number type 2
Finalized unsigned number type 2
Finalized unsigned number type $100
Finalized unsigned number type $b
Finalized unsigned number type $b
Finalized unsigned number type 7
Finalized unsigned number type 7
Finalized unsigned number type $28
Finalized unsigned number type $18
Finalized unsigned number type $28
Finalized unsigned number type $17
Finalized unsigned number type $18
Finalized unsigned number type 1
Successful SSA optimization Pass2FinalizeAllNumbers
Simplifying constant integer cast $18-1
Successful SSA optimization PassNCastSimplification
Added new block during phi lifting utoa::@17(between utoa::@16 and utoa::@13)
Added new block during phi lifting main::@40(between main::@24 and main::@1)
Added new block during phi lifting main::@41(between main::@27 and main::@1)
@ -4816,7 +4840,7 @@ newline::@4: scope:[newline] from newline::@2
[160] call memset
to:newline::@5
newline::@5: scope:[newline] from newline::@4
[161] *ROWCRS = (byte)$18-1
[161] *ROWCRS = $18-1
to:newline::@1
newline::@1: scope:[newline] from newline newline::@5
[162] phi()
@ -5306,7 +5330,7 @@ Statement [155] memcpy::source#0 = newline::start#0 + $28 [ newline::start#0 mem
Statement [156] memcpy::destination#0 = (void*)newline::start#0 [ newline::start#0 memcpy::source#0 memcpy::destination#0 ] ( cputs:5::cputc:65::newline:98 [ main::valid#10 main::total#10 printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { cputs::c#1 = cputc::c } } cputs:9::cputc:65::newline:98 [ main::total#10 printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { cputs::c#1 = cputc::c } } cputs:13::cputc:65::newline:98 [ cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { cputs::c#1 = cputc::c } } cputs:25::cputc:65::newline:98 [ main::valid#10 main::total#10 main::pass#3 printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { cputs::c#1 = cputc::c } } cputs:29::cputc:65::newline:98 [ main::total#10 main::pass#3 main::valid#1 printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputs:129::cputc:65::newline:98 [ main::total#10 printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { cputs::c#1 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputs:129::cputc:65::newline:98 [ printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputc:127::newline:98 [ main::total#10 printf_buffer newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputc:127::newline:98 [ printf_buffer newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } cputs:5::cputc:65::newline:100 [ main::valid#10 main::total#10 printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { cputs::c#1 = cputc::c } } cputs:9::cputc:65::newline:100 [ main::total#10 printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { cputs::c#1 = cputc::c } } cputs:13::cputc:65::newline:100 [ cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { cputs::c#1 = cputc::c } } cputs:25::cputc:65::newline:100 [ main::valid#10 main::total#10 main::pass#3 printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { cputs::c#1 = cputc::c } } cputs:29::cputc:65::newline:100 [ main::total#10 main::pass#3 main::valid#1 printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputs:129::cputc:65::newline:100 [ main::total#10 printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { cputs::c#1 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputs:129::cputc:65::newline:100 [ printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputc:127::newline:100 [ main::total#10 printf_buffer newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputc:127::newline:100 [ printf_buffer newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } ) always clobbers reg byte a
Statement [158] memset::str#0 = newline::start#0 + (word)$28*$17 [ memset::str#0 ] ( cputs:5::cputc:65::newline:98 [ main::valid#10 main::total#10 printf_buffer cputs::s#0 memset::str#0 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:9::cputc:65::newline:98 [ main::total#10 printf_buffer cputs::s#0 memset::str#0 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:13::cputc:65::newline:98 [ cputs::s#0 memset::str#0 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:25::cputc:65::newline:98 [ main::valid#10 main::total#10 main::pass#3 printf_buffer cputs::s#0 memset::str#0 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:29::cputc:65::newline:98 [ main::total#10 main::pass#3 main::valid#1 printf_buffer cputs::s#0 memset::str#0 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:7::printf_number_buffer:71::cputs:129::cputc:65::newline:98 [ main::total#10 printf_buffer cputs::s#0 memset::str#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:11::printf_number_buffer:71::cputs:129::cputc:65::newline:98 [ printf_buffer cputs::s#0 memset::str#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:7::printf_number_buffer:71::cputc:127::newline:98 [ main::total#10 printf_buffer memset::str#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:11::printf_number_buffer:71::cputc:127::newline:98 [ printf_buffer memset::str#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:5::cputc:65::newline:100 [ main::valid#10 main::total#10 printf_buffer cputs::s#0 memset::str#0 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:9::cputc:65::newline:100 [ main::total#10 printf_buffer cputs::s#0 memset::str#0 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:13::cputc:65::newline:100 [ cputs::s#0 memset::str#0 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:25::cputc:65::newline:100 [ main::valid#10 main::total#10 main::pass#3 printf_buffer cputs::s#0 memset::str#0 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:29::cputc:65::newline:100 [ main::total#10 main::pass#3 main::valid#1 printf_buffer cputs::s#0 memset::str#0 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:7::printf_number_buffer:71::cputs:129::cputc:65::newline:100 [ main::total#10 printf_buffer cputs::s#0 memset::str#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:11::printf_number_buffer:71::cputs:129::cputc:65::newline:100 [ printf_buffer cputs::s#0 memset::str#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:7::printf_number_buffer:71::cputc:127::newline:100 [ main::total#10 printf_buffer memset::str#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:11::printf_number_buffer:71::cputc:127::newline:100 [ printf_buffer memset::str#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } { memset::str#3 = memset::str#8 } } ) always clobbers reg byte a
Statement [159] memset::str#8 = (void*)memset::str#0 [ memset::str#8 ] ( cputs:5::cputc:65::newline:98 [ main::valid#10 main::total#10 printf_buffer cputs::s#0 memset::str#8 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:9::cputc:65::newline:98 [ main::total#10 printf_buffer cputs::s#0 memset::str#8 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:13::cputc:65::newline:98 [ cputs::s#0 memset::str#8 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:25::cputc:65::newline:98 [ main::valid#10 main::total#10 main::pass#3 printf_buffer cputs::s#0 memset::str#8 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:29::cputc:65::newline:98 [ main::total#10 main::pass#3 main::valid#1 printf_buffer cputs::s#0 memset::str#8 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:7::printf_number_buffer:71::cputs:129::cputc:65::newline:98 [ main::total#10 printf_buffer cputs::s#0 memset::str#8 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:11::printf_number_buffer:71::cputs:129::cputc:65::newline:98 [ printf_buffer cputs::s#0 memset::str#8 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:7::printf_number_buffer:71::cputc:127::newline:98 [ main::total#10 printf_buffer memset::str#8 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:11::printf_number_buffer:71::cputc:127::newline:98 [ printf_buffer memset::str#8 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:5::cputc:65::newline:100 [ main::valid#10 main::total#10 printf_buffer cputs::s#0 memset::str#8 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:9::cputc:65::newline:100 [ main::total#10 printf_buffer cputs::s#0 memset::str#8 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:13::cputc:65::newline:100 [ cputs::s#0 memset::str#8 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:25::cputc:65::newline:100 [ main::valid#10 main::total#10 main::pass#3 printf_buffer cputs::s#0 memset::str#8 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:29::cputc:65::newline:100 [ main::total#10 main::pass#3 main::valid#1 printf_buffer cputs::s#0 memset::str#8 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:7::printf_number_buffer:71::cputs:129::cputc:65::newline:100 [ main::total#10 printf_buffer cputs::s#0 memset::str#8 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:11::printf_number_buffer:71::cputs:129::cputc:65::newline:100 [ printf_buffer cputs::s#0 memset::str#8 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:7::printf_number_buffer:71::cputc:127::newline:100 [ main::total#10 printf_buffer memset::str#8 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:11::printf_number_buffer:71::cputc:127::newline:100 [ printf_buffer memset::str#8 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } { memset::str#3 = memset::str#8 } } ) always clobbers reg byte a
Statement [161] *ROWCRS = (byte)$18-1 [ ] ( cputs:5::cputc:65::newline:98 [ main::valid#10 main::total#10 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:9::cputc:65::newline:98 [ main::total#10 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:13::cputc:65::newline:98 [ cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:25::cputc:65::newline:98 [ main::valid#10 main::total#10 main::pass#3 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:29::cputc:65::newline:98 [ main::total#10 main::pass#3 main::valid#1 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputs:129::cputc:65::newline:98 [ main::total#10 printf_buffer cputs::s#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { cputs::c#1 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputs:129::cputc:65::newline:98 [ printf_buffer cputs::s#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputc:127::newline:98 [ main::total#10 printf_buffer ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputc:127::newline:98 [ printf_buffer ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } cputs:5::cputc:65::newline:100 [ main::valid#10 main::total#10 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:9::cputc:65::newline:100 [ main::total#10 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:13::cputc:65::newline:100 [ cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:25::cputc:65::newline:100 [ main::valid#10 main::total#10 main::pass#3 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:29::cputc:65::newline:100 [ main::total#10 main::pass#3 main::valid#1 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputs:129::cputc:65::newline:100 [ main::total#10 printf_buffer cputs::s#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { cputs::c#1 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputs:129::cputc:65::newline:100 [ printf_buffer cputs::s#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputc:127::newline:100 [ main::total#10 printf_buffer ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputc:127::newline:100 [ printf_buffer ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } ) always clobbers reg byte a
Statement [161] *ROWCRS = $18-1 [ ] ( cputs:5::cputc:65::newline:98 [ main::valid#10 main::total#10 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:9::cputc:65::newline:98 [ main::total#10 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:13::cputc:65::newline:98 [ cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:25::cputc:65::newline:98 [ main::valid#10 main::total#10 main::pass#3 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:29::cputc:65::newline:98 [ main::total#10 main::pass#3 main::valid#1 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputs:129::cputc:65::newline:98 [ main::total#10 printf_buffer cputs::s#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { cputs::c#1 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputs:129::cputc:65::newline:98 [ printf_buffer cputs::s#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputc:127::newline:98 [ main::total#10 printf_buffer ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputc:127::newline:98 [ printf_buffer ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } cputs:5::cputc:65::newline:100 [ main::valid#10 main::total#10 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:9::cputc:65::newline:100 [ main::total#10 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:13::cputc:65::newline:100 [ cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:25::cputc:65::newline:100 [ main::valid#10 main::total#10 main::pass#3 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:29::cputc:65::newline:100 [ main::total#10 main::pass#3 main::valid#1 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputs:129::cputc:65::newline:100 [ main::total#10 printf_buffer cputs::s#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { cputs::c#1 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputs:129::cputc:65::newline:100 [ printf_buffer cputs::s#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputc:127::newline:100 [ main::total#10 printf_buffer ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputc:127::newline:100 [ printf_buffer ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } ) always clobbers reg byte a
Statement [167] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( printf_uint:7::utoa:69::utoa_append:120 [ main::total#10 printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 utoa::value#1 } { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } printf_uint:11::utoa:69::utoa_append:120 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 utoa::value#1 } { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a
Removing always clobbered register reg byte a as potential for zp[1]:159 [ utoa_append::digit#2 utoa_append::digit#1 ]
Statement [168] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] [ utoa_append::value#2 ] ( printf_uint:7::utoa:69::utoa_append:120 [ main::total#10 printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::value#2 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 utoa::value#1 } { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } printf_uint:11::utoa:69::utoa_append:120 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::value#2 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 utoa::value#1 } { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y
@ -5396,7 +5420,7 @@ Statement [155] memcpy::source#0 = newline::start#0 + $28 [ newline::start#0 mem
Statement [156] memcpy::destination#0 = (void*)newline::start#0 [ newline::start#0 memcpy::source#0 memcpy::destination#0 ] ( cputs:5::cputc:65::newline:98 [ main::valid#10 main::total#10 printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { cputs::c#1 = cputc::c } } cputs:9::cputc:65::newline:98 [ main::total#10 printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { cputs::c#1 = cputc::c } } cputs:13::cputc:65::newline:98 [ cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { cputs::c#1 = cputc::c } } cputs:25::cputc:65::newline:98 [ main::valid#10 main::total#10 main::pass#3 printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { cputs::c#1 = cputc::c } } cputs:29::cputc:65::newline:98 [ main::total#10 main::pass#3 main::valid#1 printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputs:129::cputc:65::newline:98 [ main::total#10 printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { cputs::c#1 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputs:129::cputc:65::newline:98 [ printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputc:127::newline:98 [ main::total#10 printf_buffer newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputc:127::newline:98 [ printf_buffer newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } cputs:5::cputc:65::newline:100 [ main::valid#10 main::total#10 printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { cputs::c#1 = cputc::c } } cputs:9::cputc:65::newline:100 [ main::total#10 printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { cputs::c#1 = cputc::c } } cputs:13::cputc:65::newline:100 [ cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { cputs::c#1 = cputc::c } } cputs:25::cputc:65::newline:100 [ main::valid#10 main::total#10 main::pass#3 printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { cputs::c#1 = cputc::c } } cputs:29::cputc:65::newline:100 [ main::total#10 main::pass#3 main::valid#1 printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputs:129::cputc:65::newline:100 [ main::total#10 printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { cputs::c#1 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputs:129::cputc:65::newline:100 [ printf_buffer cputs::s#0 newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputc:127::newline:100 [ main::total#10 printf_buffer newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputc:127::newline:100 [ printf_buffer newline::start#0 memcpy::source#0 memcpy::destination#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } ) always clobbers reg byte a
Statement [158] memset::str#0 = newline::start#0 + (word)$28*$17 [ memset::str#0 ] ( cputs:5::cputc:65::newline:98 [ main::valid#10 main::total#10 printf_buffer cputs::s#0 memset::str#0 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:9::cputc:65::newline:98 [ main::total#10 printf_buffer cputs::s#0 memset::str#0 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:13::cputc:65::newline:98 [ cputs::s#0 memset::str#0 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:25::cputc:65::newline:98 [ main::valid#10 main::total#10 main::pass#3 printf_buffer cputs::s#0 memset::str#0 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:29::cputc:65::newline:98 [ main::total#10 main::pass#3 main::valid#1 printf_buffer cputs::s#0 memset::str#0 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:7::printf_number_buffer:71::cputs:129::cputc:65::newline:98 [ main::total#10 printf_buffer cputs::s#0 memset::str#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:11::printf_number_buffer:71::cputs:129::cputc:65::newline:98 [ printf_buffer cputs::s#0 memset::str#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:7::printf_number_buffer:71::cputc:127::newline:98 [ main::total#10 printf_buffer memset::str#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:11::printf_number_buffer:71::cputc:127::newline:98 [ printf_buffer memset::str#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:5::cputc:65::newline:100 [ main::valid#10 main::total#10 printf_buffer cputs::s#0 memset::str#0 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:9::cputc:65::newline:100 [ main::total#10 printf_buffer cputs::s#0 memset::str#0 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:13::cputc:65::newline:100 [ cputs::s#0 memset::str#0 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:25::cputc:65::newline:100 [ main::valid#10 main::total#10 main::pass#3 printf_buffer cputs::s#0 memset::str#0 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:29::cputc:65::newline:100 [ main::total#10 main::pass#3 main::valid#1 printf_buffer cputs::s#0 memset::str#0 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:7::printf_number_buffer:71::cputs:129::cputc:65::newline:100 [ main::total#10 printf_buffer cputs::s#0 memset::str#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:11::printf_number_buffer:71::cputs:129::cputc:65::newline:100 [ printf_buffer cputs::s#0 memset::str#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:7::printf_number_buffer:71::cputc:127::newline:100 [ main::total#10 printf_buffer memset::str#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:11::printf_number_buffer:71::cputc:127::newline:100 [ printf_buffer memset::str#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } { memset::str#3 = memset::str#8 } } ) always clobbers reg byte a
Statement [159] memset::str#8 = (void*)memset::str#0 [ memset::str#8 ] ( cputs:5::cputc:65::newline:98 [ main::valid#10 main::total#10 printf_buffer cputs::s#0 memset::str#8 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:9::cputc:65::newline:98 [ main::total#10 printf_buffer cputs::s#0 memset::str#8 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:13::cputc:65::newline:98 [ cputs::s#0 memset::str#8 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:25::cputc:65::newline:98 [ main::valid#10 main::total#10 main::pass#3 printf_buffer cputs::s#0 memset::str#8 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:29::cputc:65::newline:98 [ main::total#10 main::pass#3 main::valid#1 printf_buffer cputs::s#0 memset::str#8 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:7::printf_number_buffer:71::cputs:129::cputc:65::newline:98 [ main::total#10 printf_buffer cputs::s#0 memset::str#8 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:11::printf_number_buffer:71::cputs:129::cputc:65::newline:98 [ printf_buffer cputs::s#0 memset::str#8 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:7::printf_number_buffer:71::cputc:127::newline:98 [ main::total#10 printf_buffer memset::str#8 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:11::printf_number_buffer:71::cputc:127::newline:98 [ printf_buffer memset::str#8 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:5::cputc:65::newline:100 [ main::valid#10 main::total#10 printf_buffer cputs::s#0 memset::str#8 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:9::cputc:65::newline:100 [ main::total#10 printf_buffer cputs::s#0 memset::str#8 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:13::cputc:65::newline:100 [ cputs::s#0 memset::str#8 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:25::cputc:65::newline:100 [ main::valid#10 main::total#10 main::pass#3 printf_buffer cputs::s#0 memset::str#8 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } cputs:29::cputc:65::newline:100 [ main::total#10 main::pass#3 main::valid#1 printf_buffer cputs::s#0 memset::str#8 ] { { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:7::printf_number_buffer:71::cputs:129::cputc:65::newline:100 [ main::total#10 printf_buffer cputs::s#0 memset::str#8 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:11::printf_number_buffer:71::cputs:129::cputc:65::newline:100 [ printf_buffer cputs::s#0 memset::str#8 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { cputs::c#1 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:7::printf_number_buffer:71::cputc:127::newline:100 [ main::total#10 printf_buffer memset::str#8 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } { memset::str#3 = memset::str#8 } } printf_uint:11::printf_number_buffer:71::cputc:127::newline:100 [ printf_buffer memset::str#8 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } { memset::str#3 = memset::str#8 } } ) always clobbers reg byte a
Statement [161] *ROWCRS = (byte)$18-1 [ ] ( cputs:5::cputc:65::newline:98 [ main::valid#10 main::total#10 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:9::cputc:65::newline:98 [ main::total#10 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:13::cputc:65::newline:98 [ cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:25::cputc:65::newline:98 [ main::valid#10 main::total#10 main::pass#3 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:29::cputc:65::newline:98 [ main::total#10 main::pass#3 main::valid#1 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputs:129::cputc:65::newline:98 [ main::total#10 printf_buffer cputs::s#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { cputs::c#1 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputs:129::cputc:65::newline:98 [ printf_buffer cputs::s#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputc:127::newline:98 [ main::total#10 printf_buffer ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputc:127::newline:98 [ printf_buffer ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } cputs:5::cputc:65::newline:100 [ main::valid#10 main::total#10 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:9::cputc:65::newline:100 [ main::total#10 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:13::cputc:65::newline:100 [ cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:25::cputc:65::newline:100 [ main::valid#10 main::total#10 main::pass#3 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:29::cputc:65::newline:100 [ main::total#10 main::pass#3 main::valid#1 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputs:129::cputc:65::newline:100 [ main::total#10 printf_buffer cputs::s#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { cputs::c#1 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputs:129::cputc:65::newline:100 [ printf_buffer cputs::s#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputc:127::newline:100 [ main::total#10 printf_buffer ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputc:127::newline:100 [ printf_buffer ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } ) always clobbers reg byte a
Statement [161] *ROWCRS = $18-1 [ ] ( cputs:5::cputc:65::newline:98 [ main::valid#10 main::total#10 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:9::cputc:65::newline:98 [ main::total#10 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:13::cputc:65::newline:98 [ cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:25::cputc:65::newline:98 [ main::valid#10 main::total#10 main::pass#3 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:29::cputc:65::newline:98 [ main::total#10 main::pass#3 main::valid#1 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputs:129::cputc:65::newline:98 [ main::total#10 printf_buffer cputs::s#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { cputs::c#1 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputs:129::cputc:65::newline:98 [ printf_buffer cputs::s#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputc:127::newline:98 [ main::total#10 printf_buffer ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputc:127::newline:98 [ printf_buffer ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } cputs:5::cputc:65::newline:100 [ main::valid#10 main::total#10 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:9::cputc:65::newline:100 [ main::total#10 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:13::cputc:65::newline:100 [ cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:25::cputc:65::newline:100 [ main::valid#10 main::total#10 main::pass#3 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } cputs:29::cputc:65::newline:100 [ main::total#10 main::pass#3 main::valid#1 printf_buffer cputs::s#0 ] { { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputs:129::cputc:65::newline:100 [ main::total#10 printf_buffer cputs::s#0 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { cputs::c#1 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputs:129::cputc:65::newline:100 [ printf_buffer cputs::s#0 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { cputs::c#1 = cputc::c } } printf_uint:7::printf_number_buffer:71::cputc:127::newline:100 [ main::total#10 printf_buffer ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } printf_uint:11::printf_number_buffer:71::cputc:127::newline:100 [ printf_buffer ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 } { printf_number_buffer::buffer_sign#0 = cputc::c } } ) always clobbers reg byte a
Statement [167] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( printf_uint:7::utoa:69::utoa_append:120 [ main::total#10 printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 utoa::value#1 } { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } printf_uint:11::utoa:69::utoa_append:120 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 utoa::value#1 } { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a
Statement [168] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] [ utoa_append::value#2 ] ( printf_uint:7::utoa:69::utoa_append:120 [ main::total#10 printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::value#2 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 utoa::value#1 } { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } printf_uint:11::utoa:69::utoa_append:120 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::value#2 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 utoa::value#1 } { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y
Statement [171] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( printf_uint:7::utoa:69::utoa_append:120 [ main::total#10 printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { printf_uint::uvalue#0 = printf_uint::uvalue#2 main::valid#10 utoa::value#1 } { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } printf_uint:11::utoa:69::utoa_append:120 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { printf_uint::uvalue#1 = printf_uint::uvalue#2 main::total#10 utoa::value#1 } { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a
@ -6616,7 +6640,7 @@ newline: {
jmp __b5
// newline::@5
__b5:
// [161] *ROWCRS = (byte)$18-1 -- _deref_pbuc1=vbuc2
// [161] *ROWCRS = $18-1 -- _deref_pbuc1=vbuc2
lda #$18-1
sta ROWCRS
// [162] phi from newline newline::@5 to newline::@1 [phi:newline/newline::@5->newline::@1]
@ -9417,7 +9441,7 @@ newline: {
jsr memset
// newline::@5
// *ROWCRS = CONIO_HEIGHT - 1
// [161] *ROWCRS = (byte)$18-1 -- _deref_pbuc1=vbuc2
// [161] *ROWCRS = $18-1 -- _deref_pbuc1=vbuc2
lda #$18-1
sta ROWCRS
// [162] phi from newline newline::@5 to newline::@1 [phi:newline/newline::@5->newline::@1]

View File

@ -100,6 +100,8 @@ Removing unused procedure block __start::@return
Successful SSA optimization PassNEliminateEmptyStart
Consolidated array index constant in *(bar+foo::x#0)
Successful SSA optimization Pass2ConstantAdditionElimination
Finalized unsigned number type $a
Successful SSA optimization Pass2FinalizeAllNumbers
Adding NOP phi() at start of main
CALL GRAPH
Calls in [main] to foo:1

View File

@ -91,6 +91,7 @@ Constant inlined main::a#0 = 1
Successful SSA optimization Pass2ConstantInlining
Alias candidate removed (volatile)plus::return = plus::$0
Alias candidate removed (volatile)plus::return = plus::$0
Alias candidate removed (volatile)plus::return = plus::$0
CALL GRAPH
Calls in [main] to plus:6 plus:11

View File

@ -91,6 +91,7 @@ Constant inlined main::a#0 = $102
Successful SSA optimization Pass2ConstantInlining
Alias candidate removed (volatile)plus::return = plus::$0
Alias candidate removed (volatile)plus::return = plus::$0
Alias candidate removed (volatile)plus::return = plus::$0
CALL GRAPH
Calls in [main] to plus:6 plus:11