mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-11-25 20:32:25 +00:00
Optimized fragments for comparisons and signed byte pointers.
This commit is contained in:
parent
d12f29458e
commit
b8682bd770
496
src/main/fragment/cache/fragment-cache-csg65ce02.asm
vendored
496
src/main/fragment/cache/fragment-cache-csg65ce02.asm
vendored
@ -1,246 +1,4 @@
|
||||
//KICKC FRAGMENT CACHE 15e646b5c5
|
||||
//FRAGMENT vbuzz=vbuc1
|
||||
ldz #{c1}
|
||||
//FRAGMENT vbuzz_lt_vbuc1_then_la1
|
||||
cpz #{c1}
|
||||
bcc {la1}
|
||||
//FRAGMENT pbuc1_derefidx_vbuzz=vbuzz
|
||||
tza
|
||||
tax
|
||||
sta {c1},x
|
||||
//FRAGMENT vbuzz=_inc_vbuzz
|
||||
inz
|
||||
//FRAGMENT vbsz1=_deref_pbsc1
|
||||
lda {c1}
|
||||
sta {z1}
|
||||
//FRAGMENT vbsz1=_neg_vbsz2
|
||||
lda {z2}
|
||||
neg
|
||||
sta {z1}
|
||||
//FRAGMENT _deref_pbsc1=vbsz1
|
||||
lda {z1}
|
||||
sta {c1}
|
||||
//FRAGMENT vbsz1=vbsz2_ror_2
|
||||
lda {z2}
|
||||
asr
|
||||
asr
|
||||
sta {z1}
|
||||
//FRAGMENT vbsaa=_deref_pbsc1
|
||||
lda {c1}
|
||||
//FRAGMENT vbsxx=_deref_pbsc1
|
||||
ldx {c1}
|
||||
//FRAGMENT vbsz1=_neg_vbsaa
|
||||
neg
|
||||
sta {z1}
|
||||
//FRAGMENT vbsz1=_neg_vbsxx
|
||||
txa
|
||||
neg
|
||||
sta {z1}
|
||||
//FRAGMENT vbsz1=_neg_vbsyy
|
||||
tya
|
||||
neg
|
||||
sta {z1}
|
||||
//FRAGMENT vbsz1=_neg_vbszz
|
||||
tza
|
||||
neg
|
||||
sta {z1}
|
||||
//FRAGMENT vbsaa=_neg_vbsz1
|
||||
lda {z1}
|
||||
neg
|
||||
//FRAGMENT vbsaa=_neg_vbsaa
|
||||
neg
|
||||
//FRAGMENT vbsaa=_neg_vbsxx
|
||||
txa
|
||||
neg
|
||||
//FRAGMENT vbsaa=_neg_vbsyy
|
||||
tya
|
||||
neg
|
||||
//FRAGMENT vbsaa=_neg_vbszz
|
||||
tza
|
||||
neg
|
||||
//FRAGMENT vbsxx=_neg_vbsz1
|
||||
lda {z1}
|
||||
neg
|
||||
tax
|
||||
//FRAGMENT vbsxx=_neg_vbsaa
|
||||
neg
|
||||
tax
|
||||
//FRAGMENT vbsxx=_neg_vbsxx
|
||||
txa
|
||||
neg
|
||||
tax
|
||||
//FRAGMENT vbsxx=_neg_vbsyy
|
||||
tya
|
||||
neg
|
||||
tax
|
||||
//FRAGMENT vbsxx=_neg_vbszz
|
||||
tza
|
||||
neg
|
||||
tax
|
||||
//FRAGMENT vbsyy=_neg_vbsz1
|
||||
lda {z1}
|
||||
neg
|
||||
tay
|
||||
//FRAGMENT vbsyy=_neg_vbsaa
|
||||
neg
|
||||
tay
|
||||
//FRAGMENT vbsyy=_neg_vbsxx
|
||||
txa
|
||||
neg
|
||||
tay
|
||||
//FRAGMENT vbsyy=_neg_vbsyy
|
||||
tya
|
||||
neg
|
||||
tay
|
||||
//FRAGMENT vbsyy=_neg_vbszz
|
||||
tza
|
||||
neg
|
||||
tay
|
||||
//FRAGMENT vbszz=_neg_vbsz1
|
||||
lda {z1}
|
||||
neg
|
||||
taz
|
||||
//FRAGMENT vbszz=_neg_vbsaa
|
||||
neg
|
||||
taz
|
||||
//FRAGMENT vbszz=_neg_vbsxx
|
||||
txa
|
||||
neg
|
||||
taz
|
||||
//FRAGMENT vbszz=_neg_vbsyy
|
||||
tya
|
||||
neg
|
||||
taz
|
||||
//FRAGMENT vbszz=_neg_vbszz
|
||||
tza
|
||||
neg
|
||||
taz
|
||||
//FRAGMENT _deref_pbsc1=vbsaa
|
||||
sta {c1}
|
||||
//FRAGMENT vbsz1=vbsaa_ror_2
|
||||
asr
|
||||
asr
|
||||
sta {z1}
|
||||
//FRAGMENT vbsz1=vbsxx_ror_2
|
||||
txa
|
||||
asr
|
||||
asr
|
||||
sta {z1}
|
||||
//FRAGMENT vbsz1=vbsyy_ror_2
|
||||
tya
|
||||
asr
|
||||
asr
|
||||
sta {z1}
|
||||
//FRAGMENT vbsz1=vbszz_ror_2
|
||||
tza
|
||||
asr
|
||||
asr
|
||||
sta {z1}
|
||||
//FRAGMENT vbsaa=vbsz1_ror_2
|
||||
lda {z1}
|
||||
asr
|
||||
asr
|
||||
//FRAGMENT vbsaa=vbsaa_ror_2
|
||||
asr
|
||||
asr
|
||||
//FRAGMENT vbsaa=vbsxx_ror_2
|
||||
txa
|
||||
asr
|
||||
asr
|
||||
//FRAGMENT vbsaa=vbsyy_ror_2
|
||||
tya
|
||||
asr
|
||||
asr
|
||||
//FRAGMENT vbsaa=vbszz_ror_2
|
||||
tza
|
||||
asr
|
||||
asr
|
||||
//FRAGMENT vbsxx=vbsz1_ror_2
|
||||
lda {z1}
|
||||
asr
|
||||
asr
|
||||
tax
|
||||
//FRAGMENT vbsxx=vbsaa_ror_2
|
||||
asr
|
||||
asr
|
||||
tax
|
||||
//FRAGMENT vbsxx=vbsxx_ror_2
|
||||
txa
|
||||
asr
|
||||
asr
|
||||
tax
|
||||
//FRAGMENT vbsxx=vbsyy_ror_2
|
||||
tya
|
||||
asr
|
||||
asr
|
||||
tax
|
||||
//FRAGMENT vbsxx=vbszz_ror_2
|
||||
tza
|
||||
asr
|
||||
asr
|
||||
tax
|
||||
//FRAGMENT vbsyy=vbsz1_ror_2
|
||||
lda {z1}
|
||||
asr
|
||||
asr
|
||||
tay
|
||||
//FRAGMENT vbsyy=vbsaa_ror_2
|
||||
asr
|
||||
asr
|
||||
tay
|
||||
//FRAGMENT vbsyy=vbsxx_ror_2
|
||||
txa
|
||||
asr
|
||||
asr
|
||||
tay
|
||||
//FRAGMENT vbsyy=vbsyy_ror_2
|
||||
tya
|
||||
asr
|
||||
asr
|
||||
tay
|
||||
//FRAGMENT vbsyy=vbszz_ror_2
|
||||
tza
|
||||
asr
|
||||
asr
|
||||
tay
|
||||
//FRAGMENT vbszz=vbsz1_ror_2
|
||||
lda {z1}
|
||||
asr
|
||||
asr
|
||||
taz
|
||||
//FRAGMENT vbszz=vbsaa_ror_2
|
||||
asr
|
||||
asr
|
||||
taz
|
||||
//FRAGMENT vbszz=vbsxx_ror_2
|
||||
txa
|
||||
asr
|
||||
asr
|
||||
taz
|
||||
//FRAGMENT vbszz=vbsyy_ror_2
|
||||
tya
|
||||
asr
|
||||
asr
|
||||
taz
|
||||
//FRAGMENT vbszz=vbszz_ror_2
|
||||
tza
|
||||
asr
|
||||
asr
|
||||
taz
|
||||
//FRAGMENT vbsyy=_deref_pbsc1
|
||||
ldy {c1}
|
||||
//FRAGMENT vbszz=_deref_pbsc1
|
||||
lda {c1}
|
||||
taz
|
||||
//FRAGMENT _deref_pbsc1=vbsxx
|
||||
txa
|
||||
sta {c1}
|
||||
//FRAGMENT _deref_pbsc1=vbsyy
|
||||
tya
|
||||
sta {c1}
|
||||
//FRAGMENT _deref_pbsc1=vbszz
|
||||
tza
|
||||
sta {c1}
|
||||
//KICKC FRAGMENT CACHE 16e7ed5268
|
||||
//FRAGMENT vbuz1=vbuc1
|
||||
lda #{c1}
|
||||
sta {z1}
|
||||
@ -2176,6 +1934,8 @@ cpx {z1}
|
||||
bcs {la1}
|
||||
//FRAGMENT vbuxx=vbuc1
|
||||
ldx #{c1}
|
||||
//FRAGMENT vbuzz=vbuc1
|
||||
ldz #{c1}
|
||||
//FRAGMENT vbuzz=vbuz1
|
||||
ldz {z1}
|
||||
//FRAGMENT vbuz1=vbuzz
|
||||
@ -2190,6 +1950,8 @@ inx
|
||||
ldy #{c1}
|
||||
//FRAGMENT vbuyy=_inc_vbuyy
|
||||
iny
|
||||
//FRAGMENT vbuzz=_inc_vbuzz
|
||||
inz
|
||||
//FRAGMENT vbuz1_ge_vbuxx_then_la1
|
||||
lda {z1}
|
||||
stx $ff
|
||||
@ -2246,6 +2008,9 @@ bcc {la1}
|
||||
cpy #{c1}
|
||||
bcc {la1}
|
||||
beq {la1}
|
||||
//FRAGMENT vbuzz_lt_vbuc1_then_la1
|
||||
cpz #{c1}
|
||||
bcc {la1}
|
||||
//FRAGMENT vbuzz_le_vbuc1_then_la1
|
||||
cpz #{c1}
|
||||
bcc {la1}
|
||||
@ -2280,8 +2045,7 @@ beq {la1}
|
||||
cpz #{c1}
|
||||
beq {la1}
|
||||
//FRAGMENT vbuz1_lt_vbuxx_then_la1
|
||||
txa
|
||||
cmp {z1}
|
||||
cpx {z1}
|
||||
beq !+
|
||||
bcs {la1}
|
||||
!:
|
||||
@ -2433,17 +2197,247 @@ ldx {c1},y
|
||||
lda {c1},y
|
||||
taz
|
||||
//FRAGMENT vbuaa_lt_vbuzz_then_la1
|
||||
tay
|
||||
tza
|
||||
sta $ff
|
||||
cpy $ff
|
||||
stz $ff
|
||||
cmp $ff
|
||||
bcc {la1}
|
||||
//FRAGMENT vbuxx=vbuzz_minus_1
|
||||
tza
|
||||
tax
|
||||
dex
|
||||
//FRAGMENT vbuyy_lt_vbuzz_then_la1
|
||||
tza
|
||||
sta $ff
|
||||
stz $ff
|
||||
cpy $ff
|
||||
bcc {la1}
|
||||
//FRAGMENT pbuc1_derefidx_vbuzz=vbuzz
|
||||
tza
|
||||
tax
|
||||
sta {c1},x
|
||||
//FRAGMENT vbsz1=_deref_pbsc1
|
||||
lda {c1}
|
||||
sta {z1}
|
||||
//FRAGMENT vbsz1=_neg_vbsz2
|
||||
lda {z2}
|
||||
neg
|
||||
sta {z1}
|
||||
//FRAGMENT _deref_pbsc1=vbsz1
|
||||
lda {z1}
|
||||
sta {c1}
|
||||
//FRAGMENT vbsz1=vbsz2_ror_2
|
||||
lda {z2}
|
||||
asr
|
||||
asr
|
||||
sta {z1}
|
||||
//FRAGMENT vbsaa=_deref_pbsc1
|
||||
lda {c1}
|
||||
//FRAGMENT vbsxx=_deref_pbsc1
|
||||
ldx {c1}
|
||||
//FRAGMENT vbsz1=_neg_vbsaa
|
||||
neg
|
||||
sta {z1}
|
||||
//FRAGMENT vbsz1=_neg_vbsxx
|
||||
txa
|
||||
neg
|
||||
sta {z1}
|
||||
//FRAGMENT vbsz1=_neg_vbsyy
|
||||
tya
|
||||
neg
|
||||
sta {z1}
|
||||
//FRAGMENT vbsz1=_neg_vbszz
|
||||
tza
|
||||
neg
|
||||
sta {z1}
|
||||
//FRAGMENT vbsaa=_neg_vbsz1
|
||||
lda {z1}
|
||||
neg
|
||||
//FRAGMENT vbsaa=_neg_vbsaa
|
||||
neg
|
||||
//FRAGMENT vbsaa=_neg_vbsxx
|
||||
txa
|
||||
neg
|
||||
//FRAGMENT vbsaa=_neg_vbsyy
|
||||
tya
|
||||
neg
|
||||
//FRAGMENT vbsaa=_neg_vbszz
|
||||
tza
|
||||
neg
|
||||
//FRAGMENT vbsxx=_neg_vbsz1
|
||||
lda {z1}
|
||||
neg
|
||||
tax
|
||||
//FRAGMENT vbsxx=_neg_vbsaa
|
||||
neg
|
||||
tax
|
||||
//FRAGMENT vbsxx=_neg_vbsxx
|
||||
txa
|
||||
neg
|
||||
tax
|
||||
//FRAGMENT vbsxx=_neg_vbsyy
|
||||
tya
|
||||
neg
|
||||
tax
|
||||
//FRAGMENT vbsxx=_neg_vbszz
|
||||
tza
|
||||
neg
|
||||
tax
|
||||
//FRAGMENT vbsyy=_neg_vbsz1
|
||||
lda {z1}
|
||||
neg
|
||||
tay
|
||||
//FRAGMENT vbsyy=_neg_vbsaa
|
||||
neg
|
||||
tay
|
||||
//FRAGMENT vbsyy=_neg_vbsxx
|
||||
txa
|
||||
neg
|
||||
tay
|
||||
//FRAGMENT vbsyy=_neg_vbsyy
|
||||
tya
|
||||
neg
|
||||
tay
|
||||
//FRAGMENT vbsyy=_neg_vbszz
|
||||
tza
|
||||
neg
|
||||
tay
|
||||
//FRAGMENT vbszz=_neg_vbsz1
|
||||
lda {z1}
|
||||
neg
|
||||
taz
|
||||
//FRAGMENT vbszz=_neg_vbsaa
|
||||
neg
|
||||
taz
|
||||
//FRAGMENT vbszz=_neg_vbsxx
|
||||
txa
|
||||
neg
|
||||
taz
|
||||
//FRAGMENT vbszz=_neg_vbsyy
|
||||
tya
|
||||
neg
|
||||
taz
|
||||
//FRAGMENT vbszz=_neg_vbszz
|
||||
tza
|
||||
neg
|
||||
taz
|
||||
//FRAGMENT _deref_pbsc1=vbsaa
|
||||
sta {c1}
|
||||
//FRAGMENT vbsz1=vbsaa_ror_2
|
||||
asr
|
||||
asr
|
||||
sta {z1}
|
||||
//FRAGMENT vbsz1=vbsxx_ror_2
|
||||
txa
|
||||
asr
|
||||
asr
|
||||
sta {z1}
|
||||
//FRAGMENT vbsz1=vbsyy_ror_2
|
||||
tya
|
||||
asr
|
||||
asr
|
||||
sta {z1}
|
||||
//FRAGMENT vbsz1=vbszz_ror_2
|
||||
tza
|
||||
asr
|
||||
asr
|
||||
sta {z1}
|
||||
//FRAGMENT vbsaa=vbsz1_ror_2
|
||||
lda {z1}
|
||||
asr
|
||||
asr
|
||||
//FRAGMENT vbsaa=vbsaa_ror_2
|
||||
asr
|
||||
asr
|
||||
//FRAGMENT vbsaa=vbsxx_ror_2
|
||||
txa
|
||||
asr
|
||||
asr
|
||||
//FRAGMENT vbsaa=vbsyy_ror_2
|
||||
tya
|
||||
asr
|
||||
asr
|
||||
//FRAGMENT vbsaa=vbszz_ror_2
|
||||
tza
|
||||
asr
|
||||
asr
|
||||
//FRAGMENT vbsxx=vbsz1_ror_2
|
||||
lda {z1}
|
||||
asr
|
||||
asr
|
||||
tax
|
||||
//FRAGMENT vbsxx=vbsaa_ror_2
|
||||
asr
|
||||
asr
|
||||
tax
|
||||
//FRAGMENT vbsxx=vbsxx_ror_2
|
||||
txa
|
||||
asr
|
||||
asr
|
||||
tax
|
||||
//FRAGMENT vbsxx=vbsyy_ror_2
|
||||
tya
|
||||
asr
|
||||
asr
|
||||
tax
|
||||
//FRAGMENT vbsxx=vbszz_ror_2
|
||||
tza
|
||||
asr
|
||||
asr
|
||||
tax
|
||||
//FRAGMENT vbsyy=vbsz1_ror_2
|
||||
lda {z1}
|
||||
asr
|
||||
asr
|
||||
tay
|
||||
//FRAGMENT vbsyy=vbsaa_ror_2
|
||||
asr
|
||||
asr
|
||||
tay
|
||||
//FRAGMENT vbsyy=vbsxx_ror_2
|
||||
txa
|
||||
asr
|
||||
asr
|
||||
tay
|
||||
//FRAGMENT vbsyy=vbsyy_ror_2
|
||||
tya
|
||||
asr
|
||||
asr
|
||||
tay
|
||||
//FRAGMENT vbsyy=vbszz_ror_2
|
||||
tza
|
||||
asr
|
||||
asr
|
||||
tay
|
||||
//FRAGMENT vbszz=vbsz1_ror_2
|
||||
lda {z1}
|
||||
asr
|
||||
asr
|
||||
taz
|
||||
//FRAGMENT vbszz=vbsaa_ror_2
|
||||
asr
|
||||
asr
|
||||
taz
|
||||
//FRAGMENT vbszz=vbsxx_ror_2
|
||||
txa
|
||||
asr
|
||||
asr
|
||||
taz
|
||||
//FRAGMENT vbszz=vbsyy_ror_2
|
||||
tya
|
||||
asr
|
||||
asr
|
||||
taz
|
||||
//FRAGMENT vbszz=vbszz_ror_2
|
||||
tza
|
||||
asr
|
||||
asr
|
||||
taz
|
||||
//FRAGMENT vbsyy=_deref_pbsc1
|
||||
ldy {c1}
|
||||
//FRAGMENT vbszz=_deref_pbsc1
|
||||
lda {c1}
|
||||
taz
|
||||
//FRAGMENT _deref_pbsc1=vbsxx
|
||||
stx {c1}
|
||||
//FRAGMENT _deref_pbsc1=vbsyy
|
||||
sty {c1}
|
||||
//FRAGMENT _deref_pbsc1=vbszz
|
||||
tza
|
||||
sta {c1}
|
||||
|
@ -1,4 +1,4 @@
|
||||
//KICKC FRAGMENT CACHE 15e646b5c5
|
||||
//KICKC FRAGMENT CACHE 16e7ed5268
|
||||
//FRAGMENT vduz1=vduc1
|
||||
lda #<{c1}
|
||||
sta {z1}
|
||||
|
@ -1,4 +1,4 @@
|
||||
//KICKC FRAGMENT CACHE 15e646b5c5
|
||||
//KICKC FRAGMENT CACHE 16e7ed5268
|
||||
//FRAGMENT vbuz1=vbuc1
|
||||
lda #{c1}
|
||||
sta {z1}
|
||||
|
2912
src/main/fragment/cache/fragment-cache-mos6502x.asm
vendored
2912
src/main/fragment/cache/fragment-cache-mos6502x.asm
vendored
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
//KICKC FRAGMENT CACHE 15e646b5c5
|
||||
//KICKC FRAGMENT CACHE 16e7ed5268
|
||||
//FRAGMENT vbuz1=_deref_pbuc1
|
||||
lda {c1}
|
||||
sta {z1}
|
||||
|
@ -0,0 +1,3 @@
|
||||
stz $ff
|
||||
cmp $ff
|
||||
bcc {la1}
|
@ -0,0 +1,3 @@
|
||||
stz $ff
|
||||
cpx $ff
|
||||
bcc {la1}
|
@ -0,0 +1,3 @@
|
||||
stz $ff
|
||||
cpy $ff
|
||||
bcc {la1}
|
@ -0,0 +1,4 @@
|
||||
cpz {m1}
|
||||
beq !+
|
||||
bcs {la1}
|
||||
!:
|
@ -0,0 +1,4 @@
|
||||
cpx {m1}
|
||||
beq !+
|
||||
bcs {la1}
|
||||
!:
|
@ -0,0 +1,4 @@
|
||||
cpy {m1}
|
||||
beq !+
|
||||
bcs {la1}
|
||||
!:
|
@ -0,0 +1,3 @@
|
||||
stx $ff
|
||||
cpy $ff
|
||||
bcc {la1}
|
@ -665,6 +665,10 @@ class AsmFragmentTemplateSynthesisRule {
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("vb(.)m1=(.*[mz]1.*)", null, null, "vb$1aa=$2", "sta {m1}", null));
|
||||
// Rewrite Assignments to *C1 from A
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("_deref_pb(.)c1=(.*)", null, null, "vb$1aa=$2", "sta {c1}", null));
|
||||
// Rewrite Assignments to *C1 from X
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("_deref_pb(.)c1=(.*)", null, null, "vb$1xx=$2", "stx {c1}", null));
|
||||
// Rewrite Assignments to *C1 from Y
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("_deref_pb(.)c1=(.*)", null, null, "vb$1yy=$2", "sty {c1}", null));
|
||||
// Rewrite Assignments to *Z1 from A
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("_deref_pb(.)z1=(.*)", twoZM1, null, "vb$1aa=$2", "ldy #0\n" + "sta ({z1}),y", mapZM1));
|
||||
// Rewrite Assignments to *Z1 from A
|
||||
|
@ -822,8 +822,7 @@ rotate_matrix: {
|
||||
.label y = $18
|
||||
.label z = $19
|
||||
// *xr = x
|
||||
txa
|
||||
sta xr
|
||||
stx xr
|
||||
// *yr = y
|
||||
lda.z y
|
||||
sta yr
|
||||
|
@ -6818,130 +6818,130 @@ Uplifting [debug_print] best 79025 combination zp[1]:17 [ debug_print::i#2 debug
|
||||
Limited combination testing to 100 combinations of 8388608 possible.
|
||||
Uplifting [memset] best 79025 combination zp[2]:18 [ memset::dst#2 memset::dst#1 ]
|
||||
Uplifting [debug_print_init] best 74225 combination reg byte y [ debug_print_init::j#2 debug_print_init::j#1 ] zp[2]:24 [ debug_print_init::$41 ] zp[2]:26 [ debug_print_init::$44 ] zp[2]:28 [ debug_print_init::$47 ] zp[2]:30 [ debug_print_init::$50 ] zp[2]:32 [ debug_print_init::$53 ] zp[2]:34 [ debug_print_init::$56 ] zp[2]:36 [ debug_print_init::$59 ] zp[2]:38 [ debug_print_init::$62 ] zp[2]:40 [ debug_print_init::$65 ] reg byte x [ debug_print_init::col#0 ] zp[1]:3 [ debug_print_init::c#2 debug_print_init::c#1 ] zp[1]:4 [ debug_print_init::i#2 debug_print_init::i#1 ]
|
||||
Uplifting [rotate_matrix] best 73924 combination reg byte x [ rotate_matrix::x#0 ] zp[1]:45 [ rotate_matrix::y#0 ] zp[1]:46 [ rotate_matrix::z#0 ]
|
||||
Uplifting [anim] best 72024 combination zp[1]:8 [ anim::i#2 anim::i#1 ] reg byte a [ anim::$9 ] reg byte a [ anim::$10 ] reg byte x [ anim::i2#0 ]
|
||||
Uplifting [print_str_at] best 72024 combination zp[2]:9 [ print_str_at::str#13 print_str_at::str#15 print_str_at::str#0 ] zp[2]:11 [ print_str_at::at#13 print_str_at::at#15 print_str_at::at#0 ]
|
||||
Uplifting [] best 72024 combination zp[1]:7 [ sy#11 sy#2 ] zp[1]:6 [ sx#11 sx#2 ]
|
||||
Uplifting [sprites_init] best 71874 combination reg byte x [ sprites_init::i#2 sprites_init::i#1 ]
|
||||
Uplifting [MOS6526_CIA] best 71874 combination
|
||||
Uplifting [MOS6569_VICII] best 71874 combination
|
||||
Uplifting [MOS6581_SID] best 71874 combination
|
||||
Uplifting [RADIX] best 71874 combination
|
||||
Uplifting [print_cls] best 71874 combination
|
||||
Uplifting [main] best 71874 combination
|
||||
Uplifting [store_matrix] best 71874 combination
|
||||
Uplifting [rotate_matrix] best 73922 combination reg byte x [ rotate_matrix::x#0 ] zp[1]:45 [ rotate_matrix::y#0 ] zp[1]:46 [ rotate_matrix::z#0 ]
|
||||
Uplifting [anim] best 72022 combination zp[1]:8 [ anim::i#2 anim::i#1 ] reg byte a [ anim::$9 ] reg byte a [ anim::$10 ] reg byte x [ anim::i2#0 ]
|
||||
Uplifting [print_str_at] best 72022 combination zp[2]:9 [ print_str_at::str#13 print_str_at::str#15 print_str_at::str#0 ] zp[2]:11 [ print_str_at::at#13 print_str_at::at#15 print_str_at::at#0 ]
|
||||
Uplifting [] best 72022 combination zp[1]:7 [ sy#11 sy#2 ] zp[1]:6 [ sx#11 sx#2 ]
|
||||
Uplifting [sprites_init] best 71872 combination reg byte x [ sprites_init::i#2 sprites_init::i#1 ]
|
||||
Uplifting [MOS6526_CIA] best 71872 combination
|
||||
Uplifting [MOS6569_VICII] best 71872 combination
|
||||
Uplifting [MOS6581_SID] best 71872 combination
|
||||
Uplifting [RADIX] best 71872 combination
|
||||
Uplifting [print_cls] best 71872 combination
|
||||
Uplifting [main] best 71872 combination
|
||||
Uplifting [store_matrix] best 71872 combination
|
||||
Attempting to uplift remaining variables inzp[1]:15 [ print_schar_at::b#24 print_schar_at::b#0 print_schar_at::b#22 print_schar_at::b#16 print_schar_at::b#17 print_schar_at::b#18 print_schar_at::b#19 print_schar_at::b#20 print_schar_at::b#21 print_schar_at::b#4 print_schar_at::b#13 print_schar_at::b#14 print_schar_at::b#15 print_schar_at::b#5 print_schar_at::b#7 print_schar_at::b#8 print_schar_at::b#9 print_schar_at::b#10 print_schar_at::b#11 print_schar_at::b#12 print_schar_at::b#1 print_schar_at::b#2 print_schar_at::b#3 ]
|
||||
Uplifting [print_schar_at] best 71874 combination zp[1]:15 [ print_schar_at::b#24 print_schar_at::b#0 print_schar_at::b#22 print_schar_at::b#16 print_schar_at::b#17 print_schar_at::b#18 print_schar_at::b#19 print_schar_at::b#20 print_schar_at::b#21 print_schar_at::b#4 print_schar_at::b#13 print_schar_at::b#14 print_schar_at::b#15 print_schar_at::b#5 print_schar_at::b#7 print_schar_at::b#8 print_schar_at::b#9 print_schar_at::b#10 print_schar_at::b#11 print_schar_at::b#12 print_schar_at::b#1 print_schar_at::b#2 print_schar_at::b#3 ]
|
||||
Uplifting [print_schar_at] best 71872 combination zp[1]:15 [ print_schar_at::b#24 print_schar_at::b#0 print_schar_at::b#22 print_schar_at::b#16 print_schar_at::b#17 print_schar_at::b#18 print_schar_at::b#19 print_schar_at::b#20 print_schar_at::b#21 print_schar_at::b#4 print_schar_at::b#13 print_schar_at::b#14 print_schar_at::b#15 print_schar_at::b#5 print_schar_at::b#7 print_schar_at::b#8 print_schar_at::b#9 print_schar_at::b#10 print_schar_at::b#11 print_schar_at::b#12 print_schar_at::b#1 print_schar_at::b#2 print_schar_at::b#3 ]
|
||||
Attempting to uplift remaining variables inzp[1]:52 [ print_uchar_at::b#0 ]
|
||||
Uplifting [print_uchar_at] best 71874 combination zp[1]:52 [ print_uchar_at::b#0 ]
|
||||
Uplifting [print_uchar_at] best 71872 combination zp[1]:52 [ print_uchar_at::b#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:17 [ debug_print::i#2 debug_print::i#1 ]
|
||||
Uplifting [debug_print] best 71874 combination zp[1]:17 [ debug_print::i#2 debug_print::i#1 ]
|
||||
Uplifting [debug_print] best 71872 combination zp[1]:17 [ debug_print::i#2 debug_print::i#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:16 [ debug_print::c#2 debug_print::c#1 ]
|
||||
Uplifting [debug_print] best 71874 combination zp[1]:16 [ debug_print::c#2 debug_print::c#1 ]
|
||||
Uplifting [debug_print] best 71872 combination zp[1]:16 [ debug_print::c#2 debug_print::c#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:45 [ rotate_matrix::y#0 ]
|
||||
Uplifting [rotate_matrix] best 71874 combination zp[1]:45 [ rotate_matrix::y#0 ]
|
||||
Uplifting [rotate_matrix] best 71872 combination zp[1]:45 [ rotate_matrix::y#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:46 [ rotate_matrix::z#0 ]
|
||||
Uplifting [rotate_matrix] best 71874 combination zp[1]:46 [ rotate_matrix::z#0 ]
|
||||
Uplifting [rotate_matrix] best 71872 combination zp[1]:46 [ rotate_matrix::z#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:8 [ anim::i#2 anim::i#1 ]
|
||||
Uplifting [anim] best 71874 combination zp[1]:8 [ anim::i#2 anim::i#1 ]
|
||||
Uplifting [anim] best 71872 combination zp[1]:8 [ anim::i#2 anim::i#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:63 [ calculate_matrix::$10 ]
|
||||
Uplifting [calculate_matrix] best 71868 combination reg byte a [ calculate_matrix::$10 ]
|
||||
Uplifting [calculate_matrix] best 71866 combination reg byte a [ calculate_matrix::$10 ]
|
||||
Attempting to uplift remaining variables inzp[1]:64 [ calculate_matrix::$11 ]
|
||||
Uplifting [calculate_matrix] best 71862 combination reg byte a [ calculate_matrix::$11 ]
|
||||
Uplifting [calculate_matrix] best 71860 combination reg byte a [ calculate_matrix::$11 ]
|
||||
Attempting to uplift remaining variables inzp[1]:65 [ calculate_matrix::$12 ]
|
||||
Uplifting [calculate_matrix] best 71856 combination reg byte a [ calculate_matrix::$12 ]
|
||||
Uplifting [calculate_matrix] best 71854 combination reg byte a [ calculate_matrix::$12 ]
|
||||
Attempting to uplift remaining variables inzp[1]:66 [ calculate_matrix::$13 ]
|
||||
Uplifting [calculate_matrix] best 71850 combination reg byte a [ calculate_matrix::$13 ]
|
||||
Uplifting [calculate_matrix] best 71848 combination reg byte a [ calculate_matrix::$13 ]
|
||||
Attempting to uplift remaining variables inzp[1]:67 [ calculate_matrix::$14 ]
|
||||
Uplifting [calculate_matrix] best 71844 combination reg byte a [ calculate_matrix::$14 ]
|
||||
Uplifting [calculate_matrix] best 71842 combination reg byte a [ calculate_matrix::$14 ]
|
||||
Attempting to uplift remaining variables inzp[1]:68 [ calculate_matrix::$15 ]
|
||||
Uplifting [calculate_matrix] best 71838 combination reg byte a [ calculate_matrix::$15 ]
|
||||
Uplifting [calculate_matrix] best 71836 combination reg byte a [ calculate_matrix::$15 ]
|
||||
Attempting to uplift remaining variables inzp[1]:69 [ calculate_matrix::$16 ]
|
||||
Uplifting [calculate_matrix] best 71832 combination reg byte a [ calculate_matrix::$16 ]
|
||||
Uplifting [calculate_matrix] best 71830 combination reg byte a [ calculate_matrix::$16 ]
|
||||
Attempting to uplift remaining variables inzp[1]:70 [ calculate_matrix::$17 ]
|
||||
Uplifting [calculate_matrix] best 71826 combination reg byte a [ calculate_matrix::$17 ]
|
||||
Uplifting [calculate_matrix] best 71824 combination reg byte a [ calculate_matrix::$17 ]
|
||||
Attempting to uplift remaining variables inzp[1]:71 [ calculate_matrix::$18 ]
|
||||
Uplifting [calculate_matrix] best 71820 combination reg byte a [ calculate_matrix::$18 ]
|
||||
Uplifting [calculate_matrix] best 71818 combination reg byte a [ calculate_matrix::$18 ]
|
||||
Attempting to uplift remaining variables inzp[1]:72 [ calculate_matrix::$19 ]
|
||||
Uplifting [calculate_matrix] best 71814 combination reg byte a [ calculate_matrix::$19 ]
|
||||
Uplifting [calculate_matrix] best 71812 combination reg byte a [ calculate_matrix::$19 ]
|
||||
Attempting to uplift remaining variables inzp[1]:73 [ calculate_matrix::$20 ]
|
||||
Uplifting [calculate_matrix] best 71808 combination reg byte a [ calculate_matrix::$20 ]
|
||||
Uplifting [calculate_matrix] best 71806 combination reg byte a [ calculate_matrix::$20 ]
|
||||
Attempting to uplift remaining variables inzp[1]:74 [ calculate_matrix::$21 ]
|
||||
Uplifting [calculate_matrix] best 71802 combination reg byte a [ calculate_matrix::$21 ]
|
||||
Uplifting [calculate_matrix] best 71800 combination reg byte a [ calculate_matrix::$21 ]
|
||||
Attempting to uplift remaining variables inzp[1]:75 [ calculate_matrix::$22 ]
|
||||
Uplifting [calculate_matrix] best 71796 combination reg byte a [ calculate_matrix::$22 ]
|
||||
Uplifting [calculate_matrix] best 71794 combination reg byte a [ calculate_matrix::$22 ]
|
||||
Attempting to uplift remaining variables inzp[1]:76 [ calculate_matrix::$23 ]
|
||||
Uplifting [calculate_matrix] best 71790 combination reg byte a [ calculate_matrix::$23 ]
|
||||
Uplifting [calculate_matrix] best 71788 combination reg byte a [ calculate_matrix::$23 ]
|
||||
Attempting to uplift remaining variables inzp[1]:77 [ calculate_matrix::$24 ]
|
||||
Uplifting [calculate_matrix] best 71784 combination reg byte a [ calculate_matrix::$24 ]
|
||||
Uplifting [calculate_matrix] best 71782 combination reg byte a [ calculate_matrix::$24 ]
|
||||
Attempting to uplift remaining variables inzp[1]:78 [ calculate_matrix::$25 ]
|
||||
Uplifting [calculate_matrix] best 71778 combination reg byte a [ calculate_matrix::$25 ]
|
||||
Uplifting [calculate_matrix] best 71776 combination reg byte a [ calculate_matrix::$25 ]
|
||||
Attempting to uplift remaining variables inzp[1]:79 [ calculate_matrix::$26 ]
|
||||
Uplifting [calculate_matrix] best 71772 combination reg byte a [ calculate_matrix::$26 ]
|
||||
Uplifting [calculate_matrix] best 71770 combination reg byte a [ calculate_matrix::$26 ]
|
||||
Attempting to uplift remaining variables inzp[1]:80 [ calculate_matrix::$27 ]
|
||||
Uplifting [calculate_matrix] best 71766 combination reg byte a [ calculate_matrix::$27 ]
|
||||
Uplifting [calculate_matrix] best 71764 combination reg byte a [ calculate_matrix::$27 ]
|
||||
Attempting to uplift remaining variables inzp[1]:81 [ calculate_matrix::$28 ]
|
||||
Uplifting [calculate_matrix] best 71760 combination reg byte a [ calculate_matrix::$28 ]
|
||||
Uplifting [calculate_matrix] best 71758 combination reg byte a [ calculate_matrix::$28 ]
|
||||
Attempting to uplift remaining variables inzp[1]:82 [ calculate_matrix::$29 ]
|
||||
Uplifting [calculate_matrix] best 71754 combination reg byte a [ calculate_matrix::$29 ]
|
||||
Uplifting [calculate_matrix] best 71752 combination reg byte a [ calculate_matrix::$29 ]
|
||||
Attempting to uplift remaining variables inzp[1]:83 [ calculate_matrix::$30 ]
|
||||
Uplifting [calculate_matrix] best 71748 combination reg byte a [ calculate_matrix::$30 ]
|
||||
Uplifting [calculate_matrix] best 71746 combination reg byte a [ calculate_matrix::$30 ]
|
||||
Attempting to uplift remaining variables inzp[1]:84 [ calculate_matrix::$31 ]
|
||||
Uplifting [calculate_matrix] best 71742 combination reg byte a [ calculate_matrix::$31 ]
|
||||
Uplifting [calculate_matrix] best 71740 combination reg byte a [ calculate_matrix::$31 ]
|
||||
Attempting to uplift remaining variables inzp[1]:85 [ calculate_matrix::$32 ]
|
||||
Uplifting [calculate_matrix] best 71736 combination reg byte a [ calculate_matrix::$32 ]
|
||||
Uplifting [calculate_matrix] best 71734 combination reg byte a [ calculate_matrix::$32 ]
|
||||
Attempting to uplift remaining variables inzp[1]:86 [ calculate_matrix::$33 ]
|
||||
Uplifting [calculate_matrix] best 71730 combination reg byte a [ calculate_matrix::$33 ]
|
||||
Uplifting [calculate_matrix] best 71728 combination reg byte a [ calculate_matrix::$33 ]
|
||||
Attempting to uplift remaining variables inzp[1]:87 [ calculate_matrix::$34 ]
|
||||
Uplifting [calculate_matrix] best 71724 combination reg byte a [ calculate_matrix::$34 ]
|
||||
Uplifting [calculate_matrix] best 71722 combination reg byte a [ calculate_matrix::$34 ]
|
||||
Attempting to uplift remaining variables inzp[1]:91 [ debug_print::print_schar_pos5_sb#0 ]
|
||||
Uplifting [debug_print] best 71718 combination reg byte a [ debug_print::print_schar_pos5_sb#0 ]
|
||||
Uplifting [debug_print] best 71716 combination reg byte a [ debug_print::print_schar_pos5_sb#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:92 [ debug_print::print_schar_pos6_sb#0 ]
|
||||
Uplifting [debug_print] best 71712 combination reg byte a [ debug_print::print_schar_pos6_sb#0 ]
|
||||
Uplifting [debug_print] best 71710 combination reg byte a [ debug_print::print_schar_pos6_sb#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:93 [ debug_print::print_schar_pos7_sb#0 ]
|
||||
Uplifting [debug_print] best 71706 combination reg byte a [ debug_print::print_schar_pos7_sb#0 ]
|
||||
Uplifting [debug_print] best 71704 combination reg byte a [ debug_print::print_schar_pos7_sb#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:94 [ debug_print::print_schar_pos8_sb#0 ]
|
||||
Uplifting [debug_print] best 71700 combination reg byte a [ debug_print::print_schar_pos8_sb#0 ]
|
||||
Uplifting [debug_print] best 71698 combination reg byte a [ debug_print::print_schar_pos8_sb#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:95 [ debug_print::print_schar_pos9_sb#0 ]
|
||||
Uplifting [debug_print] best 71694 combination reg byte a [ debug_print::print_schar_pos9_sb#0 ]
|
||||
Uplifting [debug_print] best 71692 combination reg byte a [ debug_print::print_schar_pos9_sb#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:96 [ debug_print::print_schar_pos10_sb#0 ]
|
||||
Uplifting [debug_print] best 71688 combination reg byte a [ debug_print::print_schar_pos10_sb#0 ]
|
||||
Uplifting [debug_print] best 71686 combination reg byte a [ debug_print::print_schar_pos10_sb#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:97 [ debug_print::print_schar_pos11_sb#0 ]
|
||||
Uplifting [debug_print] best 71682 combination reg byte a [ debug_print::print_schar_pos11_sb#0 ]
|
||||
Uplifting [debug_print] best 71680 combination reg byte a [ debug_print::print_schar_pos11_sb#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:98 [ debug_print::print_schar_pos12_sb#0 ]
|
||||
Uplifting [debug_print] best 71676 combination reg byte a [ debug_print::print_schar_pos12_sb#0 ]
|
||||
Uplifting [debug_print] best 71674 combination reg byte a [ debug_print::print_schar_pos12_sb#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:42 [ calculate_matrix::sx#0 ]
|
||||
Uplifting [calculate_matrix] best 71638 combination reg byte x [ calculate_matrix::sx#0 ]
|
||||
Uplifting [calculate_matrix] best 71636 combination reg byte x [ calculate_matrix::sx#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:54 [ calculate_matrix::t2#0 ]
|
||||
Uplifting [calculate_matrix] best 71638 combination zp[1]:54 [ calculate_matrix::t2#0 ]
|
||||
Uplifting [calculate_matrix] best 71636 combination zp[1]:54 [ calculate_matrix::t2#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:53 [ calculate_matrix::t1#0 ]
|
||||
Uplifting [calculate_matrix] best 71638 combination zp[1]:53 [ calculate_matrix::t1#0 ]
|
||||
Uplifting [calculate_matrix] best 71636 combination zp[1]:53 [ calculate_matrix::t1#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:43 [ calculate_matrix::sy#0 ]
|
||||
Uplifting [calculate_matrix] best 71638 combination zp[1]:43 [ calculate_matrix::sy#0 ]
|
||||
Uplifting [calculate_matrix] best 71636 combination zp[1]:43 [ calculate_matrix::sy#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:3 [ debug_print_init::c#2 debug_print_init::c#1 ]
|
||||
Uplifting [debug_print_init] best 71638 combination zp[1]:3 [ debug_print_init::c#2 debug_print_init::c#1 ]
|
||||
Uplifting [debug_print_init] best 71636 combination zp[1]:3 [ debug_print_init::c#2 debug_print_init::c#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:7 [ sy#11 sy#2 ]
|
||||
Uplifting [] best 71638 combination zp[1]:7 [ sy#11 sy#2 ]
|
||||
Uplifting [] best 71636 combination zp[1]:7 [ sy#11 sy#2 ]
|
||||
Attempting to uplift remaining variables inzp[1]:4 [ debug_print_init::i#2 debug_print_init::i#1 ]
|
||||
Uplifting [debug_print_init] best 71638 combination zp[1]:4 [ debug_print_init::i#2 debug_print_init::i#1 ]
|
||||
Uplifting [debug_print_init] best 71636 combination zp[1]:4 [ debug_print_init::i#2 debug_print_init::i#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:58 [ calculate_matrix::t6#0 ]
|
||||
Uplifting [calculate_matrix] best 71638 combination zp[1]:58 [ calculate_matrix::t6#0 ]
|
||||
Uplifting [calculate_matrix] best 71636 combination zp[1]:58 [ calculate_matrix::t6#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:56 [ calculate_matrix::t4#0 ]
|
||||
Uplifting [calculate_matrix] best 71638 combination zp[1]:56 [ calculate_matrix::t4#0 ]
|
||||
Uplifting [calculate_matrix] best 71636 combination zp[1]:56 [ calculate_matrix::t4#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:59 [ calculate_matrix::t7#0 ]
|
||||
Uplifting [calculate_matrix] best 71638 combination zp[1]:59 [ calculate_matrix::t7#0 ]
|
||||
Uplifting [calculate_matrix] best 71636 combination zp[1]:59 [ calculate_matrix::t7#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:60 [ calculate_matrix::t8#0 ]
|
||||
Uplifting [calculate_matrix] best 71638 combination zp[1]:60 [ calculate_matrix::t8#0 ]
|
||||
Uplifting [calculate_matrix] best 71636 combination zp[1]:60 [ calculate_matrix::t8#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:55 [ calculate_matrix::t3#0 ]
|
||||
Uplifting [calculate_matrix] best 71638 combination zp[1]:55 [ calculate_matrix::t3#0 ]
|
||||
Uplifting [calculate_matrix] best 71636 combination zp[1]:55 [ calculate_matrix::t3#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:57 [ calculate_matrix::t5#0 ]
|
||||
Uplifting [calculate_matrix] best 71638 combination zp[1]:57 [ calculate_matrix::t5#0 ]
|
||||
Uplifting [calculate_matrix] best 71636 combination zp[1]:57 [ calculate_matrix::t5#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:6 [ sx#11 sx#2 ]
|
||||
Uplifting [] best 71638 combination zp[1]:6 [ sx#11 sx#2 ]
|
||||
Uplifting [] best 71636 combination zp[1]:6 [ sx#11 sx#2 ]
|
||||
Attempting to uplift remaining variables inzp[1]:62 [ calculate_matrix::t10#0 ]
|
||||
Uplifting [calculate_matrix] best 71631 combination reg byte x [ calculate_matrix::t10#0 ]
|
||||
Uplifting [calculate_matrix] best 71629 combination reg byte x [ calculate_matrix::t10#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:61 [ calculate_matrix::t9#0 ]
|
||||
Uplifting [calculate_matrix] best 71631 combination zp[1]:61 [ calculate_matrix::t9#0 ]
|
||||
Uplifting [calculate_matrix] best 71629 combination zp[1]:61 [ calculate_matrix::t9#0 ]
|
||||
Coalescing zero page register [ zp[2]:13 [ print_schar_at::at#21 print_schar_at::at#15 print_schar_at::at#16 print_schar_at::at#17 print_schar_at::at#18 print_schar_at::at#19 print_schar_at::at#20 print_schar_at::at#0 print_schar_at::at#1 print_schar_at::at#2 ] ] with [ zp[2]:21 [ print_char_at::at#4 print_char_at::at#0 print_char_at::at#1 print_char_at::at#2 print_char_at::at#3 ] ] - score: 2
|
||||
Coalescing zero page register [ zp[1]:7 [ sy#11 sy#2 ] ] with [ zp[1]:43 [ calculate_matrix::sy#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:13 [ print_schar_at::at#21 print_schar_at::at#15 print_schar_at::at#16 print_schar_at::at#17 print_schar_at::at#18 print_schar_at::at#19 print_schar_at::at#20 print_schar_at::at#0 print_schar_at::at#1 print_schar_at::at#2 print_char_at::at#4 print_char_at::at#0 print_char_at::at#1 print_char_at::at#2 print_char_at::at#3 ] ] with [ zp[2]:50 [ print_uchar_at::at#0 ] ] - score: 1
|
||||
@ -8112,8 +8112,7 @@ rotate_matrix: {
|
||||
.label y = $18
|
||||
.label z = $19
|
||||
// [181] *((const signed byte*) xr) ← (signed byte) rotate_matrix::x#0 -- _deref_pbsc1=vbsxx
|
||||
txa
|
||||
sta xr
|
||||
stx xr
|
||||
// [182] *((const signed byte*) yr) ← (signed byte) rotate_matrix::y#0 -- _deref_pbsc1=vbsz1
|
||||
lda.z y
|
||||
sta yr
|
||||
@ -9083,7 +9082,7 @@ Removing instruction jmp __b1
|
||||
Succesful ASM optimization Pass5NextJumpElimination
|
||||
Fixing long branch [322] bne __b2 to beq
|
||||
Fixing long branch [331] bne __b1 to beq
|
||||
Fixing long branch [970] bne __b1 to beq
|
||||
Fixing long branch [969] bne __b1 to beq
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(const signed byte*) COSH = (const signed byte*) SINH+(byte) $40
|
||||
@ -9688,7 +9687,7 @@ reg byte y [ print_uchar_at::$2 ]
|
||||
|
||||
|
||||
FINAL ASSEMBLER
|
||||
Score: 65417
|
||||
Score: 65415
|
||||
|
||||
// File Comments
|
||||
// 3D Rotation using a Rotation Matrix
|
||||
@ -10825,8 +10824,7 @@ rotate_matrix: {
|
||||
.label z = $19
|
||||
// *xr = x
|
||||
// [181] *((const signed byte*) xr) ← (signed byte) rotate_matrix::x#0 -- _deref_pbsc1=vbsxx
|
||||
txa
|
||||
sta xr
|
||||
stx xr
|
||||
// *yr = y
|
||||
// [182] *((const signed byte*) yr) ← (signed byte) rotate_matrix::y#0 -- _deref_pbsc1=vbsz1
|
||||
lda.z y
|
||||
|
@ -216,8 +216,7 @@ bitmap_line: {
|
||||
sbc.z x1
|
||||
sta.z xd
|
||||
// if(y0<y1)
|
||||
tya
|
||||
cmp.z y0
|
||||
cpy.z y0
|
||||
beq !+
|
||||
bcs __b7
|
||||
!:
|
||||
@ -273,8 +272,7 @@ bitmap_line: {
|
||||
sbc.z x0
|
||||
sta.z xd
|
||||
// if(y0<y1)
|
||||
tya
|
||||
cmp.z y0
|
||||
cpy.z y0
|
||||
beq !+
|
||||
bcs __b11
|
||||
!:
|
||||
|
@ -3978,92 +3978,92 @@ Uplifting [bitmap_line_ydxi] best 286371 combination zp[1]:19 [ bitmap_line_ydxi
|
||||
Limited combination testing to 100 combinations of 256 possible.
|
||||
Uplifting [bitmap_line_ydxd] best 274365 combination zp[1]:31 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] reg byte x [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] reg byte y [ bitmap_line_ydxd::$6 ] zp[1]:30 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ] zp[1]:27 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ] zp[1]:26 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ] zp[1]:28 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ]
|
||||
Limited combination testing to 100 combinations of 256 possible.
|
||||
Uplifting [bitmap_line] best 274051 combination reg byte y [ bitmap_line::y1#0 ] zp[1]:49 [ bitmap_line::y0#0 ] zp[1]:52 [ bitmap_line::yd#2 ] zp[1]:53 [ bitmap_line::yd#1 ] zp[1]:55 [ bitmap_line::yd#10 ] zp[1]:56 [ bitmap_line::yd#11 ] zp[1]:48 [ bitmap_line::x1#0 ] zp[1]:47 [ bitmap_line::x0#0 ] zp[1]:51 [ bitmap_line::xd#2 ] zp[1]:54 [ bitmap_line::xd#1 ]
|
||||
Uplifting [bitmap_line] best 274047 combination reg byte y [ bitmap_line::y1#0 ] zp[1]:49 [ bitmap_line::y0#0 ] zp[1]:52 [ bitmap_line::yd#2 ] zp[1]:53 [ bitmap_line::yd#1 ] zp[1]:55 [ bitmap_line::yd#10 ] zp[1]:56 [ bitmap_line::yd#11 ] zp[1]:48 [ bitmap_line::x1#0 ] zp[1]:47 [ bitmap_line::x0#0 ] zp[1]:51 [ bitmap_line::xd#2 ] zp[1]:54 [ bitmap_line::xd#1 ]
|
||||
Limited combination testing to 100 combinations of 186624 possible.
|
||||
Uplifting [lines] best 274051 combination zp[1]:13 [ lines::l#2 lines::l#1 ]
|
||||
Uplifting [bitmap_clear] best 273151 combination zp[2]:8 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp[1]:7 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp[2]:45 [ bitmap_clear::bitmap#0 ]
|
||||
Uplifting [bitmap_init] best 272631 combination zp[2]:5 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] reg byte a [ bitmap_init::$0 ] zp[1]:42 [ bitmap_init::$7 ] zp[1]:43 [ bitmap_init::$8 ] zp[1]:44 [ bitmap_init::$9 ] zp[1]:41 [ bitmap_init::$10 ]
|
||||
Uplifting [lines] best 274047 combination zp[1]:13 [ lines::l#2 lines::l#1 ]
|
||||
Uplifting [bitmap_clear] best 273147 combination zp[2]:8 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp[1]:7 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp[2]:45 [ bitmap_clear::bitmap#0 ]
|
||||
Uplifting [bitmap_init] best 272627 combination zp[2]:5 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] reg byte a [ bitmap_init::$0 ] zp[1]:42 [ bitmap_init::$7 ] zp[1]:43 [ bitmap_init::$8 ] zp[1]:44 [ bitmap_init::$9 ] zp[1]:41 [ bitmap_init::$10 ]
|
||||
Limited combination testing to 100 combinations of 34560 possible.
|
||||
Uplifting [init_screen] best 272631 combination zp[2]:11 [ init_screen::c#2 init_screen::c#1 ]
|
||||
Uplifting [MOS6526_CIA] best 272631 combination
|
||||
Uplifting [MOS6569_VICII] best 272631 combination
|
||||
Uplifting [MOS6581_SID] best 272631 combination
|
||||
Uplifting [main] best 272631 combination
|
||||
Uplifting [] best 272631 combination
|
||||
Uplifting [init_screen] best 272627 combination zp[2]:11 [ init_screen::c#2 init_screen::c#1 ]
|
||||
Uplifting [MOS6526_CIA] best 272627 combination
|
||||
Uplifting [MOS6569_VICII] best 272627 combination
|
||||
Uplifting [MOS6581_SID] best 272627 combination
|
||||
Uplifting [main] best 272627 combination
|
||||
Uplifting [] best 272627 combination
|
||||
Attempting to uplift remaining variables inzp[1]:19 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ]
|
||||
Uplifting [bitmap_line_ydxi] best 272631 combination zp[1]:19 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ]
|
||||
Uplifting [bitmap_line_ydxi] best 272627 combination zp[1]:19 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
|
||||
Uplifting [bitmap_line_xdyi] best 272631 combination zp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
|
||||
Uplifting [bitmap_line_xdyi] best 272627 combination zp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:31 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
|
||||
Uplifting [bitmap_line_ydxd] best 272631 combination zp[1]:31 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
|
||||
Uplifting [bitmap_line_ydxd] best 272627 combination zp[1]:31 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:37 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ]
|
||||
Uplifting [bitmap_line_xdyd] best 272631 combination zp[1]:37 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ]
|
||||
Uplifting [bitmap_line_xdyd] best 272627 combination zp[1]:37 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
|
||||
Uplifting [bitmap_line_xdyi] best 272631 combination zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
|
||||
Uplifting [bitmap_line_xdyi] best 272627 combination zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
|
||||
Attempting to uplift remaining variables inzp[1]:36 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
|
||||
Uplifting [bitmap_line_xdyd] best 272631 combination zp[1]:36 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
|
||||
Uplifting [bitmap_line_xdyd] best 272627 combination zp[1]:36 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
|
||||
Attempting to uplift remaining variables inzp[1]:58 [ bitmap_line_xdyi::$6 ]
|
||||
Uplifting [bitmap_line_xdyi] best 272631 combination zp[1]:58 [ bitmap_line_xdyi::$6 ]
|
||||
Uplifting [bitmap_line_xdyi] best 272627 combination zp[1]:58 [ bitmap_line_xdyi::$6 ]
|
||||
Attempting to uplift remaining variables inzp[1]:60 [ bitmap_line_xdyd::$6 ]
|
||||
Uplifting [bitmap_line_xdyd] best 272631 combination zp[1]:60 [ bitmap_line_xdyd::$6 ]
|
||||
Uplifting [bitmap_line_xdyd] best 272627 combination zp[1]:60 [ bitmap_line_xdyd::$6 ]
|
||||
Attempting to uplift remaining variables inzp[1]:18 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#2 ]
|
||||
Uplifting [bitmap_line_ydxi] best 272631 combination zp[1]:18 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#2 ]
|
||||
Uplifting [bitmap_line_ydxi] best 272627 combination zp[1]:18 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#2 ]
|
||||
Attempting to uplift remaining variables inzp[1]:30 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ]
|
||||
Uplifting [bitmap_line_ydxd] best 272631 combination zp[1]:30 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ]
|
||||
Uplifting [bitmap_line_ydxd] best 272627 combination zp[1]:30 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ]
|
||||
Attempting to uplift remaining variables inzp[1]:15 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::yd#0 ]
|
||||
Uplifting [bitmap_line_ydxi] best 272631 combination zp[1]:15 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::yd#0 ]
|
||||
Uplifting [bitmap_line_ydxi] best 272627 combination zp[1]:15 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::yd#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:21 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ]
|
||||
Uplifting [bitmap_line_xdyi] best 272631 combination zp[1]:21 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ]
|
||||
Uplifting [bitmap_line_xdyi] best 272627 combination zp[1]:21 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:27 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ]
|
||||
Uplifting [bitmap_line_ydxd] best 272631 combination zp[1]:27 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ]
|
||||
Uplifting [bitmap_line_ydxd] best 272627 combination zp[1]:27 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:33 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ]
|
||||
Uplifting [bitmap_line_xdyd] best 272631 combination zp[1]:33 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ]
|
||||
Uplifting [bitmap_line_xdyd] best 272627 combination zp[1]:33 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:14 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::xd#0 ]
|
||||
Uplifting [bitmap_line_ydxi] best 272631 combination zp[1]:14 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::xd#0 ]
|
||||
Uplifting [bitmap_line_ydxi] best 272627 combination zp[1]:14 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::xd#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:20 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ]
|
||||
Uplifting [bitmap_line_xdyi] best 272631 combination zp[1]:20 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ]
|
||||
Uplifting [bitmap_line_xdyi] best 272627 combination zp[1]:20 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:26 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ]
|
||||
Uplifting [bitmap_line_ydxd] best 272631 combination zp[1]:26 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ]
|
||||
Uplifting [bitmap_line_ydxd] best 272627 combination zp[1]:26 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:32 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ]
|
||||
Uplifting [bitmap_line_xdyd] best 272631 combination zp[1]:32 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ]
|
||||
Uplifting [bitmap_line_xdyd] best 272627 combination zp[1]:32 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:16 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::y1#0 ]
|
||||
Uplifting [bitmap_line_ydxi] best 272631 combination zp[1]:16 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::y1#0 ]
|
||||
Uplifting [bitmap_line_ydxi] best 272627 combination zp[1]:16 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::y1#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:22 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ]
|
||||
Uplifting [bitmap_line_xdyi] best 272631 combination zp[1]:22 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ]
|
||||
Uplifting [bitmap_line_xdyi] best 272627 combination zp[1]:22 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:28 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ]
|
||||
Uplifting [bitmap_line_ydxd] best 272631 combination zp[1]:28 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ]
|
||||
Uplifting [bitmap_line_ydxd] best 272627 combination zp[1]:28 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:34 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ]
|
||||
Uplifting [bitmap_line_xdyd] best 272631 combination zp[1]:34 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ]
|
||||
Uplifting [bitmap_line_xdyd] best 272627 combination zp[1]:34 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:49 [ bitmap_line::y0#0 ]
|
||||
Uplifting [bitmap_line] best 272631 combination zp[1]:49 [ bitmap_line::y0#0 ]
|
||||
Uplifting [bitmap_line] best 272627 combination zp[1]:49 [ bitmap_line::y0#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:52 [ bitmap_line::yd#2 ]
|
||||
Uplifting [bitmap_line] best 272631 combination zp[1]:52 [ bitmap_line::yd#2 ]
|
||||
Uplifting [bitmap_line] best 272627 combination zp[1]:52 [ bitmap_line::yd#2 ]
|
||||
Attempting to uplift remaining variables inzp[1]:53 [ bitmap_line::yd#1 ]
|
||||
Uplifting [bitmap_line] best 272631 combination zp[1]:53 [ bitmap_line::yd#1 ]
|
||||
Uplifting [bitmap_line] best 272627 combination zp[1]:53 [ bitmap_line::yd#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:55 [ bitmap_line::yd#10 ]
|
||||
Uplifting [bitmap_line] best 272631 combination zp[1]:55 [ bitmap_line::yd#10 ]
|
||||
Uplifting [bitmap_line] best 272627 combination zp[1]:55 [ bitmap_line::yd#10 ]
|
||||
Attempting to uplift remaining variables inzp[1]:56 [ bitmap_line::yd#11 ]
|
||||
Uplifting [bitmap_line] best 272631 combination zp[1]:56 [ bitmap_line::yd#11 ]
|
||||
Uplifting [bitmap_line] best 272627 combination zp[1]:56 [ bitmap_line::yd#11 ]
|
||||
Attempting to uplift remaining variables inzp[1]:48 [ bitmap_line::x1#0 ]
|
||||
Uplifting [bitmap_line] best 272631 combination zp[1]:48 [ bitmap_line::x1#0 ]
|
||||
Uplifting [bitmap_line] best 272627 combination zp[1]:48 [ bitmap_line::x1#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:47 [ bitmap_line::x0#0 ]
|
||||
Uplifting [bitmap_line] best 272631 combination zp[1]:47 [ bitmap_line::x0#0 ]
|
||||
Uplifting [bitmap_line] best 272627 combination zp[1]:47 [ bitmap_line::x0#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:51 [ bitmap_line::xd#2 ]
|
||||
Uplifting [bitmap_line] best 272631 combination zp[1]:51 [ bitmap_line::xd#2 ]
|
||||
Uplifting [bitmap_line] best 272627 combination zp[1]:51 [ bitmap_line::xd#2 ]
|
||||
Attempting to uplift remaining variables inzp[1]:54 [ bitmap_line::xd#1 ]
|
||||
Uplifting [bitmap_line] best 272631 combination zp[1]:54 [ bitmap_line::xd#1 ]
|
||||
Uplifting [bitmap_line] best 272627 combination zp[1]:54 [ bitmap_line::xd#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:13 [ lines::l#2 lines::l#1 ]
|
||||
Uplifting [lines] best 272631 combination zp[1]:13 [ lines::l#2 lines::l#1 ]
|
||||
Uplifting [lines] best 272627 combination zp[1]:13 [ lines::l#2 lines::l#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:42 [ bitmap_init::$7 ]
|
||||
Uplifting [bitmap_init] best 272571 combination reg byte a [ bitmap_init::$7 ]
|
||||
Uplifting [bitmap_init] best 272567 combination reg byte a [ bitmap_init::$7 ]
|
||||
Attempting to uplift remaining variables inzp[1]:43 [ bitmap_init::$8 ]
|
||||
Uplifting [bitmap_init] best 272511 combination reg byte a [ bitmap_init::$8 ]
|
||||
Uplifting [bitmap_init] best 272507 combination reg byte a [ bitmap_init::$8 ]
|
||||
Attempting to uplift remaining variables inzp[1]:44 [ bitmap_init::$9 ]
|
||||
Uplifting [bitmap_init] best 272451 combination reg byte a [ bitmap_init::$9 ]
|
||||
Uplifting [bitmap_init] best 272447 combination reg byte a [ bitmap_init::$9 ]
|
||||
Attempting to uplift remaining variables inzp[1]:7 [ bitmap_clear::y#4 bitmap_clear::y#1 ]
|
||||
Uplifting [bitmap_clear] best 272451 combination zp[1]:7 [ bitmap_clear::y#4 bitmap_clear::y#1 ]
|
||||
Uplifting [bitmap_clear] best 272447 combination zp[1]:7 [ bitmap_clear::y#4 bitmap_clear::y#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:41 [ bitmap_init::$10 ]
|
||||
Uplifting [bitmap_init] best 272451 combination zp[1]:41 [ bitmap_init::$10 ]
|
||||
Uplifting [bitmap_init] best 272447 combination zp[1]:41 [ bitmap_init::$10 ]
|
||||
Coalescing zero page register [ zp[2]:8 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] ] with [ zp[2]:45 [ bitmap_clear::bitmap#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[1]:14 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::xd#0 ] ] with [ zp[1]:51 [ bitmap_line::xd#2 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[1]:14 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::xd#0 bitmap_line::xd#2 ] ] with [ zp[1]:54 [ bitmap_line::xd#1 ] ] - score: 1
|
||||
@ -4475,8 +4475,7 @@ bitmap_line: {
|
||||
sbc.z x1
|
||||
sta.z xd
|
||||
// [65] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@7 -- vbuz1_lt_vbuyy_then_la1
|
||||
tya
|
||||
cmp.z y0
|
||||
cpy.z y0
|
||||
beq !+
|
||||
bcs __b7
|
||||
!:
|
||||
@ -4598,8 +4597,7 @@ bitmap_line: {
|
||||
sbc.z x0
|
||||
sta.z xd
|
||||
// [96] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@11 -- vbuz1_lt_vbuyy_then_la1
|
||||
tya
|
||||
cmp.z y0
|
||||
cpy.z y0
|
||||
beq !+
|
||||
bcs __b11
|
||||
!:
|
||||
@ -5640,7 +5638,7 @@ reg byte a [ bitmap_plot::$1 ]
|
||||
|
||||
|
||||
FINAL ASSEMBLER
|
||||
Score: 221364
|
||||
Score: 221360
|
||||
|
||||
// File Comments
|
||||
// Commodore 64 Registers and Constants
|
||||
@ -5987,8 +5985,7 @@ bitmap_line: {
|
||||
sta.z xd
|
||||
// if(y0<y1)
|
||||
// [65] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@7 -- vbuz1_lt_vbuyy_then_la1
|
||||
tya
|
||||
cmp.z y0
|
||||
cpy.z y0
|
||||
beq !+
|
||||
bcs __b7
|
||||
!:
|
||||
@ -6107,8 +6104,7 @@ bitmap_line: {
|
||||
sta.z xd
|
||||
// if(y0<y1)
|
||||
// [96] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@11 -- vbuz1_lt_vbuyy_then_la1
|
||||
tya
|
||||
cmp.z y0
|
||||
cpy.z y0
|
||||
beq !+
|
||||
bcs __b11
|
||||
!:
|
||||
|
@ -93,9 +93,9 @@ main: {
|
||||
!:
|
||||
// fmul8(vals[i], vals[j])
|
||||
ldy.z i
|
||||
lda vals,y
|
||||
ldy.z j
|
||||
ldx vals,y
|
||||
ldy.z j
|
||||
lda vals,y
|
||||
jsr fmul8
|
||||
// r = fmul8(vals[i], vals[j])
|
||||
// print_schar_at(r, at)
|
||||
@ -197,15 +197,14 @@ print_schar_at: {
|
||||
sta.z b
|
||||
jmp __b2
|
||||
}
|
||||
// fmul8(signed byte register(A) a, signed byte register(X) b)
|
||||
// fmul8(signed byte register(X) a, signed byte register(A) b)
|
||||
fmul8: {
|
||||
// *ap = a
|
||||
sta ap
|
||||
stx ap
|
||||
// *bp = b
|
||||
txa
|
||||
sta bp
|
||||
// asm
|
||||
lda ap
|
||||
txa
|
||||
sta A1+1
|
||||
eor #$ff
|
||||
sta A2+1
|
||||
|
@ -1885,23 +1885,23 @@ Uplifting [print_char_at] best 14212 combination zp[2]:19 [ print_char_at::at#4
|
||||
Uplifting [print_uchar_at] best 14204 combination reg byte a [ print_uchar_at::$0 ] reg byte y [ print_uchar_at::$2 ] zp[1]:29 [ print_uchar_at::b#0 ] zp[2]:27 [ print_uchar_at::at#0 ]
|
||||
Uplifting [memset] best 14204 combination zp[2]:21 [ memset::dst#2 memset::dst#1 ]
|
||||
Uplifting [print_schar_at] best 14204 combination zp[1]:17 [ print_schar_at::b#6 print_schar_at::b#0 print_schar_at::b#4 print_schar_at::b#1 print_schar_at::b#2 print_schar_at::b#3 ] zp[2]:15 [ print_schar_at::at#3 print_schar_at::at#0 print_schar_at::at#1 print_schar_at::at#2 ]
|
||||
Uplifting [fmul8] best 12697 combination reg byte a [ fmul8::a#0 ] reg byte x [ fmul8::b#0 ] reg byte a [ fmul8::return#1 ] reg byte a [ fmul8::return#0 ]
|
||||
Uplifting [fmul8] best 12695 combination reg byte x [ fmul8::a#0 ] reg byte a [ fmul8::b#0 ] reg byte a [ fmul8::return#1 ] reg byte a [ fmul8::return#0 ]
|
||||
Limited combination testing to 100 combinations of 192 possible.
|
||||
Uplifting [main] best 12097 combination zp[2]:8 [ main::at#6 main::at#3 main::at#12 ] reg byte a [ main::r#0 ] zp[1]:10 [ main::j#2 main::j#1 ] zp[2]:5 [ main::at_line#2 main::at#2 ] zp[1]:7 [ main::i#2 main::i#1 ] zp[1]:2 [ main::k#2 main::k#1 ] zp[2]:3 [ main::at#4 main::at#1 ]
|
||||
Uplifting [init_screen] best 11887 combination reg byte x [ init_screen::l#2 init_screen::l#1 ] zp[2]:12 [ init_screen::COLS#3 init_screen::COLS#1 ] reg byte x [ init_screen::m#2 init_screen::m#1 ]
|
||||
Uplifting [RADIX] best 11887 combination
|
||||
Uplifting [print_cls] best 11887 combination
|
||||
Uplifting [] best 11887 combination
|
||||
Uplifting [main] best 12095 combination zp[2]:8 [ main::at#6 main::at#3 main::at#12 ] reg byte a [ main::r#0 ] zp[1]:10 [ main::j#2 main::j#1 ] zp[2]:5 [ main::at_line#2 main::at#2 ] zp[1]:7 [ main::i#2 main::i#1 ] zp[1]:2 [ main::k#2 main::k#1 ] zp[2]:3 [ main::at#4 main::at#1 ]
|
||||
Uplifting [init_screen] best 11885 combination reg byte x [ init_screen::l#2 init_screen::l#1 ] zp[2]:12 [ init_screen::COLS#3 init_screen::COLS#1 ] reg byte x [ init_screen::m#2 init_screen::m#1 ]
|
||||
Uplifting [RADIX] best 11885 combination
|
||||
Uplifting [print_cls] best 11885 combination
|
||||
Uplifting [] best 11885 combination
|
||||
Attempting to uplift remaining variables inzp[1]:29 [ print_uchar_at::b#0 ]
|
||||
Uplifting [print_uchar_at] best 11887 combination zp[1]:29 [ print_uchar_at::b#0 ]
|
||||
Uplifting [print_uchar_at] best 11885 combination zp[1]:29 [ print_uchar_at::b#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:17 [ print_schar_at::b#6 print_schar_at::b#0 print_schar_at::b#4 print_schar_at::b#1 print_schar_at::b#2 print_schar_at::b#3 ]
|
||||
Uplifting [print_schar_at] best 11887 combination zp[1]:17 [ print_schar_at::b#6 print_schar_at::b#0 print_schar_at::b#4 print_schar_at::b#1 print_schar_at::b#2 print_schar_at::b#3 ]
|
||||
Uplifting [print_schar_at] best 11885 combination zp[1]:17 [ print_schar_at::b#6 print_schar_at::b#0 print_schar_at::b#4 print_schar_at::b#1 print_schar_at::b#2 print_schar_at::b#3 ]
|
||||
Attempting to uplift remaining variables inzp[1]:10 [ main::j#2 main::j#1 ]
|
||||
Uplifting [main] best 11887 combination zp[1]:10 [ main::j#2 main::j#1 ]
|
||||
Uplifting [main] best 11885 combination zp[1]:10 [ main::j#2 main::j#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:7 [ main::i#2 main::i#1 ]
|
||||
Uplifting [main] best 11887 combination zp[1]:7 [ main::i#2 main::i#1 ]
|
||||
Uplifting [main] best 11885 combination zp[1]:7 [ main::i#2 main::i#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:2 [ main::k#2 main::k#1 ]
|
||||
Uplifting [main] best 11887 combination zp[1]:2 [ main::k#2 main::k#1 ]
|
||||
Uplifting [main] best 11885 combination zp[1]:2 [ main::k#2 main::k#1 ]
|
||||
Coalescing zero page register [ zp[2]:15 [ print_schar_at::at#3 print_schar_at::at#0 print_schar_at::at#1 print_schar_at::at#2 ] ] with [ zp[2]:19 [ print_char_at::at#4 print_char_at::at#0 print_char_at::at#1 print_char_at::at#2 print_char_at::at#3 ] ] - score: 2
|
||||
Coalescing zero page register [ zp[2]:15 [ print_schar_at::at#3 print_schar_at::at#0 print_schar_at::at#1 print_schar_at::at#2 print_char_at::at#4 print_char_at::at#0 print_char_at::at#1 print_char_at::at#2 print_char_at::at#3 ] ] with [ zp[2]:27 [ print_uchar_at::at#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[1]:17 [ print_schar_at::b#6 print_schar_at::b#0 print_schar_at::b#4 print_schar_at::b#1 print_schar_at::b#2 print_schar_at::b#3 ] ] with [ zp[1]:29 [ print_uchar_at::b#0 ] ] - score: 1
|
||||
@ -2063,12 +2063,12 @@ main: {
|
||||
bcc !+
|
||||
inc.z at_2+1
|
||||
!:
|
||||
// [17] (signed byte) fmul8::a#0 ← *((const signed byte*) vals + (byte) main::i#2) -- vbsaa=pbsc1_derefidx_vbuz1
|
||||
// [17] (signed byte) fmul8::a#0 ← *((const signed byte*) vals + (byte) main::i#2) -- vbsxx=pbsc1_derefidx_vbuz1
|
||||
ldy.z i
|
||||
lda vals,y
|
||||
// [18] (signed byte) fmul8::b#0 ← *((const signed byte*) vals + (byte) main::j#2) -- vbsxx=pbsc1_derefidx_vbuz1
|
||||
ldy.z j
|
||||
ldx vals,y
|
||||
// [18] (signed byte) fmul8::b#0 ← *((const signed byte*) vals + (byte) main::j#2) -- vbsaa=pbsc1_derefidx_vbuz1
|
||||
ldy.z j
|
||||
lda vals,y
|
||||
// [19] call fmul8
|
||||
jsr fmul8
|
||||
// [20] (signed byte) fmul8::return#0 ← (signed byte) fmul8::return#1
|
||||
@ -2254,12 +2254,11 @@ print_schar_at: {
|
||||
jmp __b2_from___b4
|
||||
}
|
||||
// fmul8
|
||||
// fmul8(signed byte register(A) a, signed byte register(X) b)
|
||||
// fmul8(signed byte register(X) a, signed byte register(A) b)
|
||||
fmul8: {
|
||||
// [57] *((const signed byte*) ap) ← (signed byte) fmul8::a#0 -- _deref_pbsc1=vbsaa
|
||||
sta ap
|
||||
// [58] *((const signed byte*) bp) ← (signed byte) fmul8::b#0 -- _deref_pbsc1=vbsxx
|
||||
txa
|
||||
// [57] *((const signed byte*) ap) ← (signed byte) fmul8::a#0 -- _deref_pbsc1=vbsxx
|
||||
stx ap
|
||||
// [58] *((const signed byte*) bp) ← (signed byte) fmul8::b#0 -- _deref_pbsc1=vbsaa
|
||||
sta bp
|
||||
// asm { ldaap staA1+1 eor#$ff staA2+1 ldxbp sec A1: ldamulf_sqr1,x A2: sbcmulf_sqr2,x stacp }
|
||||
lda ap
|
||||
@ -2455,6 +2454,7 @@ Succesful ASM optimization Pass5NextJumpElimination
|
||||
Removing instruction lda #WHITE
|
||||
Removing instruction lda #WHITE
|
||||
Removing instruction lda #WHITE
|
||||
Replacing instruction lda ap with TXA
|
||||
Removing instruction lda cp
|
||||
Succesful ASM optimization Pass5UnnecesaryLoadElimination
|
||||
Replacing label __b1_from___b5 with __b1
|
||||
@ -2525,9 +2525,9 @@ FINAL SYMBOL TABLE
|
||||
(signed byte()) fmul8((signed byte) fmul8::a , (signed byte) fmul8::b)
|
||||
(label) fmul8::@return
|
||||
(signed byte) fmul8::a
|
||||
(signed byte) fmul8::a#0 reg byte a 551.0
|
||||
(signed byte) fmul8::a#0 reg byte x 551.0
|
||||
(signed byte) fmul8::b
|
||||
(signed byte) fmul8::b#0 reg byte x 551.0
|
||||
(signed byte) fmul8::b#0 reg byte a 551.0
|
||||
(signed byte) fmul8::return
|
||||
(signed byte) fmul8::return#0 reg byte a 202.0
|
||||
(signed byte) fmul8::return#1 reg byte a 367.33333333333337
|
||||
@ -2661,8 +2661,8 @@ zp[2]:11 [ print_schar_at::at#3 print_schar_at::at#0 print_schar_at::at#1 print_
|
||||
zp[1]:13 [ print_schar_at::b#6 print_schar_at::b#0 print_schar_at::b#4 print_schar_at::b#1 print_schar_at::b#2 print_schar_at::b#3 print_uchar_at::b#0 ]
|
||||
reg byte x [ print_char_at::ch#4 print_char_at::ch#2 print_char_at::ch#3 ]
|
||||
zp[2]:14 [ memset::dst#2 memset::dst#1 ]
|
||||
reg byte a [ fmul8::a#0 ]
|
||||
reg byte x [ fmul8::b#0 ]
|
||||
reg byte x [ fmul8::a#0 ]
|
||||
reg byte a [ fmul8::b#0 ]
|
||||
reg byte a [ fmul8::return#0 ]
|
||||
reg byte a [ main::r#0 ]
|
||||
reg byte a [ fmul8::return#1 ]
|
||||
@ -2671,7 +2671,7 @@ reg byte y [ print_uchar_at::$2 ]
|
||||
|
||||
|
||||
FINAL ASSEMBLER
|
||||
Score: 10153
|
||||
Score: 10149
|
||||
|
||||
// File Comments
|
||||
// Seriously fast multiply 8-bit version (8bit*8bit=8bit)
|
||||
@ -2814,12 +2814,12 @@ main: {
|
||||
inc.z at_2+1
|
||||
!:
|
||||
// fmul8(vals[i], vals[j])
|
||||
// [17] (signed byte) fmul8::a#0 ← *((const signed byte*) vals + (byte) main::i#2) -- vbsaa=pbsc1_derefidx_vbuz1
|
||||
// [17] (signed byte) fmul8::a#0 ← *((const signed byte*) vals + (byte) main::i#2) -- vbsxx=pbsc1_derefidx_vbuz1
|
||||
ldy.z i
|
||||
lda vals,y
|
||||
// [18] (signed byte) fmul8::b#0 ← *((const signed byte*) vals + (byte) main::j#2) -- vbsxx=pbsc1_derefidx_vbuz1
|
||||
ldy.z j
|
||||
ldx vals,y
|
||||
// [18] (signed byte) fmul8::b#0 ← *((const signed byte*) vals + (byte) main::j#2) -- vbsaa=pbsc1_derefidx_vbuz1
|
||||
ldy.z j
|
||||
lda vals,y
|
||||
// [19] call fmul8
|
||||
jsr fmul8
|
||||
// [20] (signed byte) fmul8::return#0 ← (signed byte) fmul8::return#1
|
||||
@ -2991,18 +2991,17 @@ print_schar_at: {
|
||||
jmp __b2
|
||||
}
|
||||
// fmul8
|
||||
// fmul8(signed byte register(A) a, signed byte register(X) b)
|
||||
// fmul8(signed byte register(X) a, signed byte register(A) b)
|
||||
fmul8: {
|
||||
// *ap = a
|
||||
// [57] *((const signed byte*) ap) ← (signed byte) fmul8::a#0 -- _deref_pbsc1=vbsaa
|
||||
sta ap
|
||||
// [57] *((const signed byte*) ap) ← (signed byte) fmul8::a#0 -- _deref_pbsc1=vbsxx
|
||||
stx ap
|
||||
// *bp = b
|
||||
// [58] *((const signed byte*) bp) ← (signed byte) fmul8::b#0 -- _deref_pbsc1=vbsxx
|
||||
txa
|
||||
// [58] *((const signed byte*) bp) ← (signed byte) fmul8::b#0 -- _deref_pbsc1=vbsaa
|
||||
sta bp
|
||||
// asm
|
||||
// asm { ldaap staA1+1 eor#$ff staA2+1 ldxbp sec A1: ldamulf_sqr1,x A2: sbcmulf_sqr2,x stacp }
|
||||
lda ap
|
||||
txa
|
||||
sta A1+1
|
||||
eor #$ff
|
||||
sta A2+1
|
||||
|
@ -8,9 +8,9 @@
|
||||
(signed byte()) fmul8((signed byte) fmul8::a , (signed byte) fmul8::b)
|
||||
(label) fmul8::@return
|
||||
(signed byte) fmul8::a
|
||||
(signed byte) fmul8::a#0 reg byte a 551.0
|
||||
(signed byte) fmul8::a#0 reg byte x 551.0
|
||||
(signed byte) fmul8::b
|
||||
(signed byte) fmul8::b#0 reg byte x 551.0
|
||||
(signed byte) fmul8::b#0 reg byte a 551.0
|
||||
(signed byte) fmul8::return
|
||||
(signed byte) fmul8::return#0 reg byte a 202.0
|
||||
(signed byte) fmul8::return#1 reg byte a 367.33333333333337
|
||||
@ -144,8 +144,8 @@ zp[2]:11 [ print_schar_at::at#3 print_schar_at::at#0 print_schar_at::at#1 print_
|
||||
zp[1]:13 [ print_schar_at::b#6 print_schar_at::b#0 print_schar_at::b#4 print_schar_at::b#1 print_schar_at::b#2 print_schar_at::b#3 print_uchar_at::b#0 ]
|
||||
reg byte x [ print_char_at::ch#4 print_char_at::ch#2 print_char_at::ch#3 ]
|
||||
zp[2]:14 [ memset::dst#2 memset::dst#1 ]
|
||||
reg byte a [ fmul8::a#0 ]
|
||||
reg byte x [ fmul8::b#0 ]
|
||||
reg byte x [ fmul8::a#0 ]
|
||||
reg byte a [ fmul8::b#0 ]
|
||||
reg byte a [ fmul8::return#0 ]
|
||||
reg byte a [ main::r#0 ]
|
||||
reg byte a [ fmul8::return#1 ]
|
||||
|
@ -155,17 +155,15 @@ testSignedVals: {
|
||||
lda #-$78+sbc1
|
||||
sta SSCREEN+$28*3+1+1+1+1+1
|
||||
// sbv1+-120
|
||||
lda #-$78
|
||||
clc
|
||||
adc.z sbv1
|
||||
lax.z sbv1
|
||||
axs #-[-$78]
|
||||
// SSCREEN[idx++] = (sbv1+-120)
|
||||
sta SSCREEN+$28*3+1+1+1+1+1+1
|
||||
stx SSCREEN+$28*3+1+1+1+1+1+1
|
||||
// -120+sbv1
|
||||
lda #-$78
|
||||
clc
|
||||
adc.z sbv1
|
||||
lax.z sbv1
|
||||
axs #-[-$78]
|
||||
// SSCREEN[idx++] = (-120+sbv1)
|
||||
sta SSCREEN+$28*3+1+1+1+1+1+1+1
|
||||
stx SSCREEN+$28*3+1+1+1+1+1+1+1
|
||||
// sbv1+sbc1
|
||||
lda #sbc1
|
||||
clc
|
||||
|
@ -1443,20 +1443,20 @@ Uplift Scope []
|
||||
|
||||
Uplifting [testUnsignedVals] best 424 combination reg byte x [ testUnsignedVals::$2 ] reg byte x [ testUnsignedVals::$3 ] reg byte a [ testUnsignedVals::$4 ] reg byte a [ testUnsignedVals::$5 ] zp[1]:7 [ testUnsignedVals::$6 ] zp[1]:2 [ testUnsignedVals::ubv1 ]
|
||||
Limited combination testing to 100 combinations of 1024 possible.
|
||||
Uplifting [testSignedVals] best 408 combination reg byte a [ testSignedVals::$2 ] reg byte a [ testSignedVals::$3 ] reg byte a [ testSignedVals::$4 ] reg byte a [ testSignedVals::$5 ] zp[1]:13 [ testSignedVals::$6 ] zp[1]:8 [ testSignedVals::sbv1 ]
|
||||
Uplifting [testSignedVals] best 404 combination reg byte x [ testSignedVals::$2 ] reg byte x [ testSignedVals::$3 ] reg byte a [ testSignedVals::$4 ] reg byte a [ testSignedVals::$5 ] zp[1]:13 [ testSignedVals::$6 ] zp[1]:8 [ testSignedVals::sbv1 ]
|
||||
Limited combination testing to 100 combinations of 1024 possible.
|
||||
Uplifting [main] best 408 combination
|
||||
Uplifting [testUnsigned] best 408 combination
|
||||
Uplifting [testSigned] best 408 combination
|
||||
Uplifting [] best 408 combination
|
||||
Uplifting [main] best 404 combination
|
||||
Uplifting [testUnsigned] best 404 combination
|
||||
Uplifting [testSigned] best 404 combination
|
||||
Uplifting [] best 404 combination
|
||||
Attempting to uplift remaining variables inzp[1]:7 [ testUnsignedVals::$6 ]
|
||||
Uplifting [testUnsignedVals] best 402 combination reg byte a [ testUnsignedVals::$6 ]
|
||||
Uplifting [testUnsignedVals] best 398 combination reg byte a [ testUnsignedVals::$6 ]
|
||||
Attempting to uplift remaining variables inzp[1]:13 [ testSignedVals::$6 ]
|
||||
Uplifting [testSignedVals] best 396 combination reg byte a [ testSignedVals::$6 ]
|
||||
Uplifting [testSignedVals] best 392 combination reg byte a [ testSignedVals::$6 ]
|
||||
Attempting to uplift remaining variables inzp[1]:2 [ testUnsignedVals::ubv1 ]
|
||||
Uplifting [testUnsignedVals] best 396 combination zp[1]:2 [ testUnsignedVals::ubv1 ]
|
||||
Uplifting [testUnsignedVals] best 392 combination zp[1]:2 [ testUnsignedVals::ubv1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:8 [ testSignedVals::sbv1 ]
|
||||
Uplifting [testSignedVals] best 396 combination zp[1]:8 [ testSignedVals::sbv1 ]
|
||||
Uplifting [testSignedVals] best 392 combination zp[1]:8 [ testSignedVals::sbv1 ]
|
||||
Allocated (was zp[1]:8) zp[1]:3 [ testSignedVals::sbv1 ]
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
@ -1667,18 +1667,16 @@ testSignedVals: {
|
||||
// [57] *((const nomodify signed byte*) SSCREEN+++++++++++(byte)(number) $28*(number) 3) ← (signed byte) -$78+(const signed byte) testSignedVals::sbc1 -- _deref_pbsc1=vbsc2
|
||||
lda #-$78+sbc1
|
||||
sta SSCREEN+$28*3+1+1+1+1+1
|
||||
// [58] (signed byte~) testSignedVals::$2 ← (volatile signed byte) testSignedVals::sbv1 + (signed byte) -$78 -- vbsaa=vbsz1_plus_vbsc1
|
||||
lda #-$78
|
||||
clc
|
||||
adc.z sbv1
|
||||
// [59] *((const nomodify signed byte*) SSCREEN+++++++++++++(byte)(number) $28*(number) 3) ← (signed byte~) testSignedVals::$2 -- _deref_pbsc1=vbsaa
|
||||
sta SSCREEN+$28*3+1+1+1+1+1+1
|
||||
// [60] (signed byte~) testSignedVals::$3 ← (signed byte) -$78 + (volatile signed byte) testSignedVals::sbv1 -- vbsaa=vbsc1_plus_vbsz1
|
||||
lda #-$78
|
||||
clc
|
||||
adc.z sbv1
|
||||
// [61] *((const nomodify signed byte*) SSCREEN+++++++++++++++(byte)(number) $28*(number) 3) ← (signed byte~) testSignedVals::$3 -- _deref_pbsc1=vbsaa
|
||||
sta SSCREEN+$28*3+1+1+1+1+1+1+1
|
||||
// [58] (signed byte~) testSignedVals::$2 ← (volatile signed byte) testSignedVals::sbv1 + (signed byte) -$78 -- vbsxx=vbsz1_plus_vbsc1
|
||||
lax.z sbv1
|
||||
axs #-[-$78]
|
||||
// [59] *((const nomodify signed byte*) SSCREEN+++++++++++++(byte)(number) $28*(number) 3) ← (signed byte~) testSignedVals::$2 -- _deref_pbsc1=vbsxx
|
||||
stx SSCREEN+$28*3+1+1+1+1+1+1
|
||||
// [60] (signed byte~) testSignedVals::$3 ← (signed byte) -$78 + (volatile signed byte) testSignedVals::sbv1 -- vbsxx=vbsc1_plus_vbsz1
|
||||
lax.z sbv1
|
||||
axs #-[-$78]
|
||||
// [61] *((const nomodify signed byte*) SSCREEN+++++++++++++++(byte)(number) $28*(number) 3) ← (signed byte~) testSignedVals::$3 -- _deref_pbsc1=vbsxx
|
||||
stx SSCREEN+$28*3+1+1+1+1+1+1+1
|
||||
// [62] (signed byte~) testSignedVals::$4 ← (volatile signed byte) testSignedVals::sbv1 + (const signed byte) testSignedVals::sbc1 -- vbsaa=vbsz1_plus_vbsc1
|
||||
lda #sbc1
|
||||
clc
|
||||
@ -1759,8 +1757,8 @@ FINAL SYMBOL TABLE
|
||||
(void()) testSigned()
|
||||
(label) testSigned::@return
|
||||
(void()) testSignedVals()
|
||||
(signed byte~) testSignedVals::$2 reg byte a 22.0
|
||||
(signed byte~) testSignedVals::$3 reg byte a 22.0
|
||||
(signed byte~) testSignedVals::$2 reg byte x 22.0
|
||||
(signed byte~) testSignedVals::$3 reg byte x 22.0
|
||||
(signed byte~) testSignedVals::$4 reg byte a 22.0
|
||||
(signed byte~) testSignedVals::$5 reg byte a 22.0
|
||||
(signed byte~) testSignedVals::$6 reg byte a 22.0
|
||||
@ -1786,15 +1784,15 @@ reg byte a [ testUnsignedVals::$4 ]
|
||||
reg byte a [ testUnsignedVals::$5 ]
|
||||
reg byte a [ testUnsignedVals::$6 ]
|
||||
zp[1]:3 [ testSignedVals::sbv1 ]
|
||||
reg byte a [ testSignedVals::$2 ]
|
||||
reg byte a [ testSignedVals::$3 ]
|
||||
reg byte x [ testSignedVals::$2 ]
|
||||
reg byte x [ testSignedVals::$3 ]
|
||||
reg byte a [ testSignedVals::$4 ]
|
||||
reg byte a [ testSignedVals::$5 ]
|
||||
reg byte a [ testSignedVals::$6 ]
|
||||
|
||||
|
||||
FINAL ASSEMBLER
|
||||
Score: 340
|
||||
Score: 336
|
||||
|
||||
// File Comments
|
||||
// Test that plus creates the expected type for all legal combinations of bytes (signed/unsigned - constant/variable)
|
||||
@ -2025,21 +2023,19 @@ testSignedVals: {
|
||||
lda #-$78+sbc1
|
||||
sta SSCREEN+$28*3+1+1+1+1+1
|
||||
// sbv1+-120
|
||||
// [58] (signed byte~) testSignedVals::$2 ← (volatile signed byte) testSignedVals::sbv1 + (signed byte) -$78 -- vbsaa=vbsz1_plus_vbsc1
|
||||
lda #-$78
|
||||
clc
|
||||
adc.z sbv1
|
||||
// [58] (signed byte~) testSignedVals::$2 ← (volatile signed byte) testSignedVals::sbv1 + (signed byte) -$78 -- vbsxx=vbsz1_plus_vbsc1
|
||||
lax.z sbv1
|
||||
axs #-[-$78]
|
||||
// SSCREEN[idx++] = (sbv1+-120)
|
||||
// [59] *((const nomodify signed byte*) SSCREEN+++++++++++++(byte)(number) $28*(number) 3) ← (signed byte~) testSignedVals::$2 -- _deref_pbsc1=vbsaa
|
||||
sta SSCREEN+$28*3+1+1+1+1+1+1
|
||||
// [59] *((const nomodify signed byte*) SSCREEN+++++++++++++(byte)(number) $28*(number) 3) ← (signed byte~) testSignedVals::$2 -- _deref_pbsc1=vbsxx
|
||||
stx SSCREEN+$28*3+1+1+1+1+1+1
|
||||
// -120+sbv1
|
||||
// [60] (signed byte~) testSignedVals::$3 ← (signed byte) -$78 + (volatile signed byte) testSignedVals::sbv1 -- vbsaa=vbsc1_plus_vbsz1
|
||||
lda #-$78
|
||||
clc
|
||||
adc.z sbv1
|
||||
// [60] (signed byte~) testSignedVals::$3 ← (signed byte) -$78 + (volatile signed byte) testSignedVals::sbv1 -- vbsxx=vbsc1_plus_vbsz1
|
||||
lax.z sbv1
|
||||
axs #-[-$78]
|
||||
// SSCREEN[idx++] = (-120+sbv1)
|
||||
// [61] *((const nomodify signed byte*) SSCREEN+++++++++++++++(byte)(number) $28*(number) 3) ← (signed byte~) testSignedVals::$3 -- _deref_pbsc1=vbsaa
|
||||
sta SSCREEN+$28*3+1+1+1+1+1+1+1
|
||||
// [61] *((const nomodify signed byte*) SSCREEN+++++++++++++++(byte)(number) $28*(number) 3) ← (signed byte~) testSignedVals::$3 -- _deref_pbsc1=vbsxx
|
||||
stx SSCREEN+$28*3+1+1+1+1+1+1+1
|
||||
// sbv1+sbc1
|
||||
// [62] (signed byte~) testSignedVals::$4 ← (volatile signed byte) testSignedVals::sbv1 + (const signed byte) testSignedVals::sbc1 -- vbsaa=vbsz1_plus_vbsc1
|
||||
lda #sbc1
|
||||
|
@ -11,8 +11,8 @@
|
||||
(void()) testSigned()
|
||||
(label) testSigned::@return
|
||||
(void()) testSignedVals()
|
||||
(signed byte~) testSignedVals::$2 reg byte a 22.0
|
||||
(signed byte~) testSignedVals::$3 reg byte a 22.0
|
||||
(signed byte~) testSignedVals::$2 reg byte x 22.0
|
||||
(signed byte~) testSignedVals::$3 reg byte x 22.0
|
||||
(signed byte~) testSignedVals::$4 reg byte a 22.0
|
||||
(signed byte~) testSignedVals::$5 reg byte a 22.0
|
||||
(signed byte~) testSignedVals::$6 reg byte a 22.0
|
||||
@ -38,8 +38,8 @@ reg byte a [ testUnsignedVals::$4 ]
|
||||
reg byte a [ testUnsignedVals::$5 ]
|
||||
reg byte a [ testUnsignedVals::$6 ]
|
||||
zp[1]:3 [ testSignedVals::sbv1 ]
|
||||
reg byte a [ testSignedVals::$2 ]
|
||||
reg byte a [ testSignedVals::$3 ]
|
||||
reg byte x [ testSignedVals::$2 ]
|
||||
reg byte x [ testSignedVals::$3 ]
|
||||
reg byte a [ testSignedVals::$4 ]
|
||||
reg byte a [ testSignedVals::$5 ]
|
||||
reg byte a [ testSignedVals::$6 ]
|
||||
|
Loading…
Reference in New Issue
Block a user