mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-04-03 23:31:52 +00:00
Working on M/Z synth rules.
This commit is contained in:
parent
ec1087b876
commit
6feeb0d842
src
main/java/dk/camelot64/kickc/fragment
test/ref
@ -713,25 +713,11 @@ class AsmFragmentTemplateSynthesisRule {
|
||||
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuz1=(.*)", twoZM1+"|"+twoC1, null, "vb$1aa=$2", "ldx {z1}\n" + "sta {c1},x", mapZ1C1));
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)z1_derefidx_vbuz2=(.*)", twoZM1+"|"+twoZM2, null, "vb$1aa=$2", "ldy {z2}\n" + "sta ({z1}),y", mapZM12));
|
||||
|
||||
// Convert array indexing twice with A/zp1/zp2 to X/Y register with a ldx/ldy prefix ( ..._derefidx_vbunn..._derefidx_vbunn... -> ..._derefidx_vbuxx..._derefidx_vbuxx... )
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuaa(.*)_derefidx_vbuaa(.*)", threeAa+"|"+rvalXx+"|"+lvalDerefIdxAa, "tax", "$1_derefidx_vbuxx$2_derefidx_vbuxx$3", null, null));
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuaa(.*)_derefidx_vbuaa(.*)", threeAa+"|"+rvalYy+"|"+lvalDerefIdxAa, "tay", "$1_derefidx_vbuyy$2_derefidx_vbuyy$3", null, null));
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuz1(.*)_derefidx_vbuz1(.*)", threeZM1+"|"+rvalXx+"|"+lvalDerefIdxZ1, "ldx {z1}", "$1_derefidx_vbuxx$2_derefidx_vbuxx$3", null, mapZM1));
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuz1(.*)_derefidx_vbuz1(.*)", threeZM1+"|"+rvalYy+"|"+lvalDerefIdxZ1, "ldy {z1}", "$1_derefidx_vbuyy$2_derefidx_vbuyy$3", null, mapZM1));
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuz2(.*)_derefidx_vbuz2(.*)", threeZM2+"|"+rvalXx+"|"+lvalDerefIdxZ2, "ldx {z2}", "$1_derefidx_vbuxx$2_derefidx_vbuxx$3", null, mapZM2));
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuz2(.*)_derefidx_vbuz2(.*)", threeZM2+"|"+rvalYy+"|"+lvalDerefIdxZ2, "ldy {z2}", "$1_derefidx_vbuyy$2_derefidx_vbuyy$3", null, mapZM2));
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuz3(.*)_derefidx_vbuz3(.*)", threeZM3+"|"+rvalXx+"|"+lvalDerefIdxZ3, "ldx {z3}", "$1_derefidx_vbuxx$2_derefidx_vbuxx$3", null, mapZM3));
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuz3(.*)_derefidx_vbuz3(.*)", threeZM3+"|"+rvalYy+"|"+lvalDerefIdxZ3, "ldy {z3}", "$1_derefidx_vbuyy$2_derefidx_vbuyy$3", null, mapZM3));
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuz4(.*)_derefidx_vbuz4(.*)", threeZM4+"|"+rvalXx+"|"+lvalDerefIdxZ4, "ldx {z4}", "$1_derefidx_vbuxx$2_derefidx_vbuxx$3", null, mapZM4));
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuz4(.*)_derefidx_vbuz4(.*)", threeZM4+"|"+rvalYy+"|"+lvalDerefIdxZ4, "ldy {z4}", "$1_derefidx_vbuyy$2_derefidx_vbuyy$3", null, mapZM4));
|
||||
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuz1=(.*c1.*)", twoZM1, null, "vb$1aa=$2", "ldx {z1}\n" + "sta {c1},x", mapZM1));
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuz1=(.*z1.*)", twoC1, null, "vb$1aa=$2", "ldx {z1}\n" + "sta {c1},x", mapC1));
|
||||
|
||||
// Convert X/Y-based array indexing of a constant pointer into A-register by prefixing lda cn,x / lda cn,y ( ...pb.c1_derefidx_vbuxx... / ...pb.c1_derefidx_vbuyy... -> ...vb.aa... )
|
||||
|
||||
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)pb(.)c1_derefidx_vbuxx(.*)", rvalAa+"|"+twoC1, "lda {c1},x", "$1=$2vb$3aa$4", null, mapC1));
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)pb(.)c1_derefidx_vbuxx(.*)", rvalYy+"|"+twoC1, "ldy {c1},x", "$1=$2vb$3yy$4", null, mapC1));
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*c1.*)pb(.)c1_derefidx_vbuxx(.*)", rvalAa, "lda {c1},x", "$1=$2vb$3aa$4", null, null));
|
||||
|
@ -3673,7 +3673,7 @@ synthesized pbuc1_derefidx_vbuaa=pbuz1_derefidx_vbuz2_bor_pbuz3_derefidx_vbuz2 <
|
||||
lda ({z1}),y
|
||||
ora ({z3}),y
|
||||
sta {c1},x
|
||||
synthesized pbuc1_derefidx_vbuaa=pbuz1_derefidx_vbuz2_bor_pbuz3_derefidx_vbuz2 < pbuc1_derefidx_vbuyy=pbuz1_derefidx_vbuz2_bor_pbuz3_derefidx_vbuz2 < pbuc1_derefidx_vbuyy=pbuz3_derefidx_vbuz2_bor_pbuz1_derefidx_vbuz2 < vbuaa=pbuz3_derefidx_vbuz2_bor_pbuz1_derefidx_vbuz2 < vbuaa=pbuz2_derefidx_vbuyy_bor_pbuz1_derefidx_vbuyy < vbuaa=pbuz1_derefidx_vbuyy_bor_vbuaa < vbuaa=vbuaa_bor_pbuz1_derefidx_vbuyy - clobber:A Y cycles:27.0
|
||||
synthesized pbuc1_derefidx_vbuaa=pbuz1_derefidx_vbuz2_bor_pbuz3_derefidx_vbuz2 < pbuc1_derefidx_vbuyy=pbuz1_derefidx_vbuz2_bor_pbuz3_derefidx_vbuz2 < pbuc1_derefidx_vbuyy=pbuz3_derefidx_vbuz2_bor_pbuz1_derefidx_vbuz2 < vbuaa=pbuz3_derefidx_vbuz2_bor_pbuz1_derefidx_vbuz2 < vbuaa=pbuz3_derefidx_vbum2_bor_pbuz1_derefidx_vbum2 < vbuaa=pbuz2_derefidx_vbuyy_bor_pbuz1_derefidx_vbuyy < vbuaa=pbuz1_derefidx_vbuyy_bor_vbuaa < vbuaa=vbuaa_bor_pbuz1_derefidx_vbuyy - clobber:A Y cycles:27.0
|
||||
tay
|
||||
sty $ff
|
||||
|
||||
@ -3742,7 +3742,7 @@ synthesized pbuc1_derefidx_vbuaa=pbuz1_derefidx_vbuz2_bxor_pbuc1_derefidx_vbuz2
|
||||
lda ({z1}),y
|
||||
eor {c1},y
|
||||
sta {c1},x
|
||||
synthesized pbuc1_derefidx_vbuaa=pbuz1_derefidx_vbuz2_bxor_pbuc1_derefidx_vbuz2 < pbuc1_derefidx_vbuyy=pbuz1_derefidx_vbuz2_bxor_pbuc1_derefidx_vbuz2 < pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuz2_bxor_pbuz1_derefidx_vbuz2 < vbuaa=pbuc1_derefidx_vbuz2_bxor_pbuz1_derefidx_vbuz2 < vbuaa=pbuc1_derefidx_vbuyy_bxor_pbuz1_derefidx_vbuyy < vbuaa=pbuc1_derefidx_vbuyy_bxor_vbuaa < vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuyy - clobber:A Y cycles:26.0
|
||||
synthesized pbuc1_derefidx_vbuaa=pbuz1_derefidx_vbuz2_bxor_pbuc1_derefidx_vbuz2 < pbuc1_derefidx_vbuyy=pbuz1_derefidx_vbuz2_bxor_pbuc1_derefidx_vbuz2 < pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuz2_bxor_pbuz1_derefidx_vbuz2 < vbuaa=pbuc1_derefidx_vbuz2_bxor_pbuz1_derefidx_vbuz2 < vbuaa=pbuc1_derefidx_vbum2_bxor_pbuz1_derefidx_vbum2 < vbuaa=pbuc1_derefidx_vbuyy_bxor_pbuz1_derefidx_vbuyy < vbuaa=pbuc1_derefidx_vbuyy_bxor_vbuaa < vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuyy - clobber:A Y cycles:26.0
|
||||
tay
|
||||
sty $ff
|
||||
|
||||
@ -3834,7 +3834,7 @@ synthesized pbuc1_derefidx_vbuaa=pbuz1_derefidx_vbuz2_bor_pbuc2_derefidx_vbuz2 <
|
||||
lda ({z1}),y
|
||||
ora {c2},y
|
||||
sta {c1},x
|
||||
synthesized pbuc1_derefidx_vbuaa=pbuz1_derefidx_vbuz2_bor_pbuc2_derefidx_vbuz2 < pbuc1_derefidx_vbuyy=pbuz1_derefidx_vbuz2_bor_pbuc2_derefidx_vbuz2 < pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuz2_bor_pbuz1_derefidx_vbuz2 < vbuaa=pbuc2_derefidx_vbuz2_bor_pbuz1_derefidx_vbuz2 < vbuaa=pbuc1_derefidx_vbuz2_bor_pbuz1_derefidx_vbuz2 < vbuaa=pbuc1_derefidx_vbuyy_bor_pbuz1_derefidx_vbuyy < vbuaa=pbuc1_derefidx_vbuyy_bor_vbuaa < vbuaa=vbuaa_bor_pbuc1_derefidx_vbuyy - clobber:A Y cycles:26.0
|
||||
synthesized pbuc1_derefidx_vbuaa=pbuz1_derefidx_vbuz2_bor_pbuc2_derefidx_vbuz2 < pbuc1_derefidx_vbuyy=pbuz1_derefidx_vbuz2_bor_pbuc2_derefidx_vbuz2 < pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuz2_bor_pbuz1_derefidx_vbuz2 < vbuaa=pbuc2_derefidx_vbuz2_bor_pbuz1_derefidx_vbuz2 < vbuaa=pbuc1_derefidx_vbuz2_bor_pbuz1_derefidx_vbuz2 < vbuaa=pbuc1_derefidx_vbum2_bor_pbuz1_derefidx_vbum2 < vbuaa=pbuc1_derefidx_vbuyy_bor_pbuz1_derefidx_vbuyy < vbuaa=pbuc1_derefidx_vbuyy_bor_vbuaa < vbuaa=vbuaa_bor_pbuc1_derefidx_vbuyy - clobber:A Y cycles:26.0
|
||||
tay
|
||||
sty $ff
|
||||
|
||||
@ -5863,7 +5863,7 @@ synthesized pbuc1_derefidx_vbuaa=pbuc1_derefidx_vbuz1_bxor_pbuz2_derefidx_vbuz1
|
||||
lda ({z2}),y
|
||||
eor {c1},y
|
||||
sta {c1},x
|
||||
synthesized pbuc1_derefidx_vbuaa=pbuc1_derefidx_vbuz1_bxor_pbuz2_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuz1_bxor_pbuz2_derefidx_vbuz1 < vbuaa=pbuc1_derefidx_vbuz1_bxor_pbuz2_derefidx_vbuz1 < vbuaa=pbuz2_derefidx_vbuz1_bxor_pbuc1_derefidx_vbuz1 < vbuaa=pbuz1_derefidx_vbuyy_bxor_pbuc1_derefidx_vbuyy < vbuaa=pbuc1_derefidx_vbuyy_bxor_pbuz1_derefidx_vbuyy < vbuaa=pbuc1_derefidx_vbuyy_bxor_vbuaa < vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuyy - clobber:A Y cycles:26.0
|
||||
synthesized pbuc1_derefidx_vbuaa=pbuc1_derefidx_vbuz1_bxor_pbuz2_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuz1_bxor_pbuz2_derefidx_vbuz1 < vbuaa=pbuc1_derefidx_vbuz1_bxor_pbuz2_derefidx_vbuz1 < vbuaa=pbuc1_derefidx_vbum1_bxor_pbuz2_derefidx_vbum1 < vbuaa=pbuc1_derefidx_vbuyy_bxor_pbuz1_derefidx_vbuyy < vbuaa=pbuc1_derefidx_vbuyy_bxor_vbuaa < vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuyy - clobber:A Y cycles:26.0
|
||||
tay
|
||||
sty $ff
|
||||
|
||||
@ -5978,7 +5978,7 @@ synthesized pbuc1_derefidx_vbuaa=pbuc1_derefidx_vbuz1_bxor_pbuc1_derefidx_vbuz1
|
||||
lda {c1},x
|
||||
eor {c1},x
|
||||
sta {c1},y
|
||||
synthesized pbuc1_derefidx_vbuaa=pbuc1_derefidx_vbuz1_bxor_pbuc1_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuz1_bxor_pbuc1_derefidx_vbuz1 < vbuaa=pbuc1_derefidx_vbuz1_bxor_pbuc1_derefidx_vbuz1 < vbuaa=pbuc1_derefidx_vbuyy_bxor_pbuc1_derefidx_vbuyy < vbuaa=pbuc1_derefidx_vbuyy_bxor_vbuaa < vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuyy - clobber:A Y cycles:25.0
|
||||
synthesized pbuc1_derefidx_vbuaa=pbuc1_derefidx_vbuz1_bxor_pbuc1_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuz1_bxor_pbuc1_derefidx_vbuz1 < vbuaa=pbuc1_derefidx_vbuz1_bxor_pbuc1_derefidx_vbuz1 < vbuaa=pbuc1_derefidx_vbum1_bxor_pbuc1_derefidx_vbum1 < vbuaa=pbuc1_derefidx_vbuyy_bxor_pbuc1_derefidx_vbuyy < vbuaa=pbuc1_derefidx_vbuyy_bxor_vbuaa < vbuaa=vbuaa_bxor_pbuc1_derefidx_vbuyy - clobber:A Y cycles:25.0
|
||||
tay
|
||||
sty $ff
|
||||
|
||||
@ -6122,7 +6122,7 @@ synthesized pbuc1_derefidx_vbuaa=pbuc1_derefidx_vbuz1_bor_pbuc2_derefidx_vbuz1 <
|
||||
lda {c1},x
|
||||
ora {c2},x
|
||||
sta {c1},y
|
||||
synthesized pbuc1_derefidx_vbuaa=pbuc1_derefidx_vbuz1_bor_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuz1_bor_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuz1_bor_pbuc1_derefidx_vbuz1 < vbuaa=pbuc2_derefidx_vbuz1_bor_pbuc1_derefidx_vbuz1 < vbuaa=pbuc2_derefidx_vbuyy_bor_pbuc1_derefidx_vbuyy < vbuaa=pbuc1_derefidx_vbuyy_bor_vbuaa < vbuaa=vbuaa_bor_pbuc1_derefidx_vbuyy - clobber:A Y cycles:25.0
|
||||
synthesized pbuc1_derefidx_vbuaa=pbuc1_derefidx_vbuz1_bor_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuz1_bor_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuz1_bor_pbuc1_derefidx_vbuz1 < vbuaa=pbuc2_derefidx_vbuz1_bor_pbuc1_derefidx_vbuz1 < vbuaa=pbuc2_derefidx_vbum1_bor_pbuc1_derefidx_vbum1 < vbuaa=pbuc2_derefidx_vbuyy_bor_pbuc1_derefidx_vbuyy < vbuaa=pbuc1_derefidx_vbuyy_bor_vbuaa < vbuaa=vbuaa_bor_pbuc1_derefidx_vbuyy - clobber:A Y cycles:25.0
|
||||
tay
|
||||
sty $ff
|
||||
|
||||
@ -9025,7 +9025,7 @@ synthesized pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuz1_band_pbuc1_derefidx_vbuz1
|
||||
lda {c1},x
|
||||
and {c2},x
|
||||
sta {c1},y
|
||||
synthesized pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuz1_band_pbuc1_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuz1_band_pbuc1_derefidx_vbuz1 < vbuaa=pbuc2_derefidx_vbuz1_band_pbuc1_derefidx_vbuz1 < vbuaa=pbuc1_derefidx_vbuz1_band_pbuc2_derefidx_vbuz1 < vbuaa=pbuc1_derefidx_vbuyy_band_pbuc2_derefidx_vbuyy < vbuaa=vbuaa_band_pbuc1_derefidx_vbuyy - clobber:A Y cycles:25.0
|
||||
synthesized pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuz1_band_pbuc1_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuz1_band_pbuc1_derefidx_vbuz1 < vbuaa=pbuc2_derefidx_vbuz1_band_pbuc1_derefidx_vbuz1 < vbuaa=pbuc2_derefidx_vbum1_band_pbuc1_derefidx_vbum1 < vbuaa=pbuc2_derefidx_vbuyy_band_pbuc1_derefidx_vbuyy < vbuaa=pbuc1_derefidx_vbuyy_band_pbuc2_derefidx_vbuyy < vbuaa=vbuaa_band_pbuc1_derefidx_vbuyy - clobber:A Y cycles:25.0
|
||||
tay
|
||||
sty $ff
|
||||
|
||||
@ -9184,7 +9184,7 @@ synthesized pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuz1_band_pbuc2_derefidx_vbuz1
|
||||
lda {c2},x
|
||||
and {c2},x
|
||||
sta {c1},y
|
||||
synthesized pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuz1_band_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuz1_band_pbuc2_derefidx_vbuz1 < vbuaa=pbuc2_derefidx_vbuz1_band_pbuc2_derefidx_vbuz1 < vbuaa=pbuc1_derefidx_vbuz1_band_pbuc1_derefidx_vbuz1 < vbuaa=pbuc1_derefidx_vbuyy_band_pbuc1_derefidx_vbuyy < vbuaa=pbuc1_derefidx_vbuyy_band_vbuaa < vbuaa=vbuaa_band_pbuc1_derefidx_vbuyy - clobber:A Y cycles:25.0
|
||||
synthesized pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuz1_band_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuz1_band_pbuc2_derefidx_vbuz1 < vbuaa=pbuc2_derefidx_vbuz1_band_pbuc2_derefidx_vbuz1 < vbuaa=pbuc1_derefidx_vbuz1_band_pbuc1_derefidx_vbuz1 < vbuaa=pbuc1_derefidx_vbum1_band_pbuc1_derefidx_vbum1 < vbuaa=pbuc1_derefidx_vbuyy_band_pbuc1_derefidx_vbuyy < vbuaa=pbuc1_derefidx_vbuyy_band_vbuaa < vbuaa=vbuaa_band_pbuc1_derefidx_vbuyy - clobber:A Y cycles:25.0
|
||||
tay
|
||||
sty $ff
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user