@@ 312,7 312,7 @@ JMP2r
SWP2
( literals )
- LDA2k LIT "# LIT "_ NEQ2 ?&no-lit
+ LDA2k LIT "# LIT "_ NEQ2 ?&no-lit
DUP2 slen #0003 NEQ2 ?&no-byte
OVR2 is-litbyte ?&pass
&no-byte
@@ 500,30 500,30 @@ JMP2r
@|rules )
@rules2
- "STH $1 "STH $1 =optimize
- "STH2 $1 "STH2 $1 =optimize
- "STHr $1 "STHr $1 =optimize
- "STH2r $1 "STH2r $1 =optimize
- "STH $1 "STHr $1 =redundance
- "STH2 $1 "STH2r $1 =redundance
- "STHr $1 "STH $1 =redundance
- "STH2r $1 "STH2 $1 =redundance
- "STH $1 "STHkr $1 =redundance
- "STH2 $1 "STH2kr $1 =redundance
- "STHr $1 "STHk $1 =redundance
- "STH2r $1 "STH2k $1 =redundance
+ "STH $1 "STH $1 =optimize
+ "STH2 $1 "STH2 $1 =optimize
+ "STHr $1 "STHr $1 =optimize
+ "STH2r $1 "STH2r $1 =optimize
+ "STH $1 "STHr $1 =redundance
+ "STH2 $1 "STH2r $1 =redundance
+ "STHr $1 "STH $1 =redundance
+ "STH2r $1 "STH2 $1 =redundance
+ "STH $1 "STHkr $1 =redundance
+ "STH2 $1 "STH2kr $1 =redundance
+ "STHr $1 "STHk $1 =redundance
+ "STH2r $1 "STH2k $1 =redundance
"STH2r $1 "POP2 $1 =redundance
"STH2 $1 "POP2r $1 =redundance
"STHr $1 "POP $1 =redundance
"STH $1 "POPr $1 =redundance
- "DUP $1 "SWP $1 =redundance
- "DUP2 $1 "SWP2 $1 =redundance
- "SWP $1 "SWP $1 =redundance
- "SWP2 $1 "SWP2 $1 =redundance
- "SWPr $1 "SWPr $1 =redundance
- "SWP2r $1 "SWP2r $1 =redundance
- "DUP $1 "POP $1 =redundance
- "DUP2 $1 "POP2 $1 =redundance
+ "DUP $1 "SWP $1 =redundance
+ "DUP2 $1 "SWP2 $1 =redundance
+ "SWP $1 "SWP $1 =redundance
+ "SWP2 $1 "SWP2 $1 =redundance
+ "SWPr $1 "SWPr $1 =redundance
+ "SWP2r $1 "SWP2r $1 =redundance
+ "DUP $1 "POP $1 =redundance
+ "DUP2 $1 "POP2 $1 =redundance
"JMP2r $1 "JMP2r $1 =redundance
"JMP2r $1 "JMP2 $1 =redundance
"JMP2r $1 "JMP $1 =redundance
@@ 540,38 540,38 @@ JMP2r
"!_ $1 "JMP2 $1 =redundance
"!_ $1 "JMP $1 =redundance
"!_ $1 "BRK $1 =redundance
- "BRK $1 "BRK $1 =redundance
- "SWP $1 "ADD $1 =redundance
- "SWP2 $1 "ADD2 $1 =redundance
- "SWP $1 "MUL $1 =redundance
- "SWP2 $1 "MUL2 $1 =redundance
- "SWP $1 "EQU $1 =redundance
- "SWP2 $1 "EQU2 $1 =redundance
- "SWP $1 "NEQ $1 =redundance
- "SWP2 $1 "NEQ2 $1 =redundance
- "#ff $1 "GTH $1 =redundance
- "#ffff $1 "GTH2 $1 =redundance
- "#00 $1 "LTH $1 =redundance
- "#0000 $1 "LTH2 $1 =redundance
- "#00 $1 "ADD $1 =redundance
- "#0000 $1 "ADD2 $1 =redundance
- "#00 $1 "SUB $1 =redundance
- "#0000 $1 "SUB2 $1 =redundance
- "#01 $1 "MUL $1 =redundance
- "#0001 $1 "MUL2 $1 =redundance
- "#01 $1 "DIV $1 =redundance
- "#0001 $1 "DIV2 $1 =redundance
- "#ff $1 "AND $1 =redundance
- "#ffff $1 "AND2 $1 =redundance
- "#00 $1 "ORA $1 =redundance
- "#0000 $1 "ORA2 $1 =redundance
- "#00 $1 "EOR $1 =redundance
- "#0000 $1 "EOR2 $1 =redundance
- "#00 $1 "SFT $1 =redundance
- "#00 $1 "SFT2 $1 =redundance
- "AND $1 "JMP $1 =unsafe
- "ORA $1 "JMP $1 =unsafe
- "EOR $1 "JMP $1 =unsafe
+ "BRK $1 "BRK $1 =redundance
+ "SWP $1 "ADD $1 =redundance
+ "SWP2 $1 "ADD2 $1 =redundance
+ "SWP $1 "MUL $1 =redundance
+ "SWP2 $1 "MUL2 $1 =redundance
+ "SWP $1 "EQU $1 =redundance
+ "SWP2 $1 "EQU2 $1 =redundance
+ "SWP $1 "NEQ $1 =redundance
+ "SWP2 $1 "NEQ2 $1 =redundance
+ "#ff $1 "GTH $1 =redundance
+ "#ffff $1 "GTH2 $1 =redundance
+ "#00 $1 "LTH $1 =redundance
+ "#0000 $1 "LTH2 $1 =redundance
+ "#00 $1 "ADD $1 =redundance
+ "#0000 $1 "ADD2 $1 =redundance
+ "#00 $1 "SUB $1 =redundance
+ "#0000 $1 "SUB2 $1 =redundance
+ "#01 $1 "MUL $1 =redundance
+ "#0001 $1 "MUL2 $1 =redundance
+ "#01 $1 "DIV $1 =redundance
+ "#0001 $1 "DIV2 $1 =redundance
+ "#ff $1 "AND $1 =redundance
+ "#ffff $1 "AND2 $1 =redundance
+ "#00 $1 "ORA $1 =redundance
+ "#0000 $1 "ORA2 $1 =redundance
+ "#00 $1 "EOR $1 =redundance
+ "#0000 $1 "EOR2 $1 =redundance
+ "#00 $1 "SFT $1 =redundance
+ "#00 $1 "SFT2 $1 =redundance
+ "AND $1 "JMP $1 =unsafe
+ "ORA $1 "JMP $1 =unsafe
+ "EOR $1 "JMP $1 =unsafe
"LDZ $1 "STH $1 =latestack
"LDZ2 $1 "STH2 $1 =latestack
"DEIk $1 "STH $1 =latestack
@@ 598,105 598,105 @@ JMP2r
"STH2 $1 "GTHr $1 =eagerstack
"STH2 $1 "LTHr $1 =eagerstack
"STH2 $1 "LDAr $1 =eagerstack
- "DUP $1 "DUP $1 =keep
- "DUP2 $1 "DUP2 $1 =keep
- "DUP $1 "INC $1 =keep
- "DUP2 $1 "INC2 $1 =keep
- "DUP $1 "STH $1 =keep
- "DUP2 $1 "STH2 $1 =keep
- "DUP $1 "LDA $1 =keep
- "DUP2 $1 "LDA2 $1 =keep
- "DUP $1 "LDR $1 =keep
- "DUP2 $1 "LDR2 $1 =keep
- "DUP $1 "LDZ $1 =keep
- "DUP2 $1 "LDZ2 $1 =keep
- "DUP $1 "DEI $1 =keep
- "DUP2 $1 "DEI2 $1 =keep
+ "DUP $1 "DUP $1 =keep
+ "DUP2 $1 "DUP2 $1 =keep
+ "DUP $1 "INC $1 =keep
+ "DUP2 $1 "INC2 $1 =keep
+ "DUP $1 "STH $1 =keep
+ "DUP2 $1 "STH2 $1 =keep
+ "DUP $1 "LDA $1 =keep
+ "DUP2 $1 "LDA2 $1 =keep
+ "DUP $1 "LDR $1 =keep
+ "DUP2 $1 "LDR2 $1 =keep
+ "DUP $1 "LDZ $1 =keep
+ "DUP2 $1 "LDZ2 $1 =keep
+ "DUP $1 "DEI $1 =keep
+ "DUP2 $1 "DEI2 $1 =keep
"#__ $1 "INC $1 =static
"#____ $1 "INC2 $1 =static
- ";__ $1 "INC2 $1 =static
- ".__ $1 "INC $1 =static
- "DUP2 $1 "SWP2 $1 =swpk
- "DUP2 $1 "OVR $1 =ovrk
- "OVR $1 "DUP2 $1 =ovrk
- "DUP2 $1 "EQU $1 =equk
- "DUP2 $1 "NEQ $1 =neqk
- "DUP2 $1 "GTH $1 =gthk
- "DUP2 $1 "LTH $1 =lthk
- "DUP2 $1 "ADD $1 =addk
- "DUP2 $1 "SUB $1 =subk
- "DUP2 $1 "MUL $1 =mulk
- "DUP2 $1 "DIV $1 =divk
- "DUP2 $1 "AND $1 =andk
- "DUP2 $1 "ORA $1 =orak
- "DUP2 $1 "EOR $1 =eork
- "DUP2 $1 "SFT $1 =sftk
- "SWP $1 "POP $1 =nip
- "SWP2 $1 "POP2 $1 =nip2
- "#01 $1 "ADD $1 =inc
- "#0001 $1 "ADD2 $1 =inc2
- "#02 $1 "ADD $1 =inc-twice
- "#0002 $1 "ADD2 $1 =inc2-twice
- "POP $1 "POP $1 =pop2
- "NIP $1 "POP $1 =pop2
- "POPr $1 "POPr $1 =pop2r
- "POP $1 "NIP $1 =pop2
- "OVR $1 "OVR $1 =dup2
- "#0101 $1 "EQU2 $1 =and
- "#0000 $1 "NEQ2 $1 =ora
- "#0000 $1 "GTH2 $1 =ora
+ ";__ $1 "INC2 $1 =static
+ ".__ $1 "INC $1 =static
+ "DUP2 $1 "SWP2 $1 =swpk
+ "DUP2 $1 "OVR $1 =ovrk
+ "OVR $1 "DUP2 $1 =ovrk
+ "DUP2 $1 "EQU $1 =equk
+ "DUP2 $1 "NEQ $1 =neqk
+ "DUP2 $1 "GTH $1 =gthk
+ "DUP2 $1 "LTH $1 =lthk
+ "DUP2 $1 "ADD $1 =addk
+ "DUP2 $1 "SUB $1 =subk
+ "DUP2 $1 "MUL $1 =mulk
+ "DUP2 $1 "DIV $1 =divk
+ "DUP2 $1 "AND $1 =andk
+ "DUP2 $1 "ORA $1 =orak
+ "DUP2 $1 "EOR $1 =eork
+ "DUP2 $1 "SFT $1 =sftk
+ "SWP $1 "POP $1 =nip
+ "SWP2 $1 "POP2 $1 =nip2
+ "#01 $1 "ADD $1 =inc
+ "#0001 $1 "ADD2 $1 =inc2
+ "#02 $1 "ADD $1 =inc-twice
+ "#0002 $1 "ADD2 $1 =inc2-twice
+ "POP $1 "POP $1 =pop2
+ "NIP $1 "POP $1 =pop2
+ "POPr $1 "POPr $1 =pop2r
+ "POP $1 "NIP $1 =pop2
+ "OVR $1 "OVR $1 =dup2
+ "#0101 $1 "EQU2 $1 =and
+ "#0000 $1 "NEQ2 $1 =ora
+ "#0000 $1 "GTH2 $1 =ora
"#ffff $1 "NEQ2 $1 =inc2ora
- "#02 $1 "DIV $1 =sft01
- "#0002 $1 "DIV2 $1 =sft201
- "#04 $1 "DIV $1 =sft02
- "#0004 $1 "DIV2 $1 =sft202
- "#08 $1 "DIV $1 =sft03
- "#0008 $1 "DIV2 $1 =sft203
- "#10 $1 "DIV $1 =sft04
- "#0010 $1 "DIV2 $1 =sft204
- "#20 $1 "DIV $1 =sft05
- "#0020 $1 "DIV2 $1 =sft205
- "#40 $1 "DIV $1 =sft06
- "#0040 $1 "DIV2 $1 =sft206
- "#80 $1 "DIV $1 =sft07
- "#0080 $1 "DIV2 $1 =sft207
- "#02 $1 "MUL $1 =sft10
- "#0002 $1 "MUL2 $1 =sft210
- "#04 $1 "MUL $1 =sft20
- "#0004 $1 "MUL2 $1 =sft220
- "#08 $1 "MUL $1 =sft30
- "#0008 $1 "MUL2 $1 =sft230
- "#10 $1 "MUL $1 =sft40
- "#0010 $1 "MUL2 $1 =sft240
- "#20 $1 "MUL $1 =sft50
- "#0020 $1 "MUL2 $1 =sft250
- "#40 $1 "MUL $1 =sft60
- "#0040 $1 "MUL2 $1 =sft260
- "#80 $1 "MUL $1 =sft70
- "#0080 $1 "MUL2 $1 =sft270
- "#0100 $1 "MUL2 $1 =sft280
- "#0200 $1 "MUL2 $1 =sft290
- "#0400 $1 "MUL2 $1 =sft2a0
- "#0800 $1 "MUL2 $1 =sft2b0
- "#1000 $1 "MUL2 $1 =sft2c0
- "#2000 $1 "MUL2 $1 =sft2d0
- "#4000 $1 "MUL2 $1 =sft2e0
- "#8000 $1 "MUL2 $1 =sft2f0
- "#00 $1 "#01 $1 =inck
- "#0000 $1 "#0001 $1 =inc2k
- "#10 $1 "SFT $1 =dupadd
- "#10 $1 "SFT2 $1 =dup2add2
- "JSR2 $1 "JMP2r $1 =jmp2
- "JSR $1 "JMP2r $1 =jmp
+ "#02 $1 "DIV $1 =sft01
+ "#0002 $1 "DIV2 $1 =sft201
+ "#04 $1 "DIV $1 =sft02
+ "#0004 $1 "DIV2 $1 =sft202
+ "#08 $1 "DIV $1 =sft03
+ "#0008 $1 "DIV2 $1 =sft203
+ "#10 $1 "DIV $1 =sft04
+ "#0010 $1 "DIV2 $1 =sft204
+ "#20 $1 "DIV $1 =sft05
+ "#0020 $1 "DIV2 $1 =sft205
+ "#40 $1 "DIV $1 =sft06
+ "#0040 $1 "DIV2 $1 =sft206
+ "#80 $1 "DIV $1 =sft07
+ "#0080 $1 "DIV2 $1 =sft207
+ "#02 $1 "MUL $1 =sft10
+ "#0002 $1 "MUL2 $1 =sft210
+ "#04 $1 "MUL $1 =sft20
+ "#0004 $1 "MUL2 $1 =sft220
+ "#08 $1 "MUL $1 =sft30
+ "#0008 $1 "MUL2 $1 =sft230
+ "#10 $1 "MUL $1 =sft40
+ "#0010 $1 "MUL2 $1 =sft240
+ "#20 $1 "MUL $1 =sft50
+ "#0020 $1 "MUL2 $1 =sft250
+ "#40 $1 "MUL $1 =sft60
+ "#0040 $1 "MUL2 $1 =sft260
+ "#80 $1 "MUL $1 =sft70
+ "#0080 $1 "MUL2 $1 =sft270
+ "#0100 $1 "MUL2 $1 =sft280
+ "#0200 $1 "MUL2 $1 =sft290
+ "#0400 $1 "MUL2 $1 =sft2a0
+ "#0800 $1 "MUL2 $1 =sft2b0
+ "#1000 $1 "MUL2 $1 =sft2c0
+ "#2000 $1 "MUL2 $1 =sft2d0
+ "#4000 $1 "MUL2 $1 =sft2e0
+ "#8000 $1 "MUL2 $1 =sft2f0
+ "#00 $1 "#01 $1 =inck
+ "#0000 $1 "#0001 $1 =inc2k
+ "#10 $1 "SFT $1 =dupadd
+ "#10 $1 "SFT2 $1 =dup2add2
+ "JSR2 $1 "JMP2r $1 =jmp2
+ "JSR $1 "JMP2r $1 =jmp
"STH2kr $1 "LDA $1 =ldakrsthr
"STH2k $1 "LDAr $1 =ldaksth
"#ff $1 "NEQ $1 =inc
"DUP2 $1 "NIP $1 =dup
- "#__ $1 "#__ $1 =combine
- ";__ $1 "STH2 $1 =unstashed
- ".__ $1 "STH $1 =unstashed
- "#__ $1 "STH $1 =unstashed
- "#____ $1 "STH2 $1 =unstashed
+ "#__ $1 "#__ $1 =combine
+ ";__ $1 "STH2 $1 =unstashed
+ ".__ $1 "STH $1 =unstashed
+ "#__ $1 "STH $1 =unstashed
+ "#____ $1 "STH2 $1 =unstashed
";__ $1 "JMP2 $1 =uncalled
",__ $1 "JMP $1 =uncalled
";__ $1 "JCN2 $1 =uncalled
@@ 708,43 708,43 @@ JMP2r
@rules3
- "DUP $1 "#__ $1 "SWP $1 =00ovr
- "DUP2 $1 "#____ $1 "SWP2 $1 =0000ovr2
- "ROT $1 "ROT $1 "ROT $1 =redundance
- "ROT2 $1 "ROT2 $1 "ROT2 $1 =redundance
- "SFT $1 "#__ $1 "SFT $1 =combine
- "SFT2 $1 "#__ $1 "SFT $1 =combine
- "SFT $1 "#__ $1 "SFT2 $1 =combine
- "SFT2 $1 "#__ $1 "SFT2 $1 =combine
- "OVR $1 "OVR $1 "EQU $1 =keep
- "OVR2 $1 "OVR2 $1 "EQU2 $1 =keep
- "OVR $1 "OVR $1 "NEQ $1 =keep
- "OVR2 $1 "OVR2 $1 "NEQ2 $1 =keep
- "OVR $1 "OVR $1 "GTH $1 =keep
- "OVR2 $1 "OVR2 $1 "GTH2 $1 =keep
- "OVR $1 "OVR $1 "LTH $1 =keep
- "OVR2 $1 "OVR2 $1 "LTH2 $1 =keep
- "OVR $1 "OVR $1 "ADD $1 =keep
- "OVR2 $1 "OVR2 $1 "ADD2 $1 =keep
- "OVR $1 "OVR $1 "SUB $1 =keep
- "OVR2 $1 "OVR2 $1 "SUB2 $1 =keep
- "OVR $1 "OVR $1 "MUL $1 =keep
- "OVR2 $1 "OVR2 $1 "MUL2 $1 =keep
- "OVR $1 "OVR $1 "DIV $1 =keep
- "OVR2 $1 "OVR2 $1 "DIV2 $1 =keep
- "OVR $1 "OVR $1 "AND $1 =keep
- "OVR2 $1 "OVR2 $1 "AND2 $1 =keep
- "OVR $1 "OVR $1 "ORA $1 =keep
- "OVR2 $1 "OVR2 $1 "ORA2 $1 =keep
- "OVR $1 "OVR $1 "EOR $1 =keep
- "OVR2 $1 "OVR2 $1 "EOR2 $1 =keep
- "OVR $1 "OVR $1 "SWP $1 =keep
- "OVR2 $1 "OVR2 $1 "SWP2 $1 =keep
- "DUP2 $1 "#0000 $1 "EQU2 $1 =orak00equ
- "OVR $1 "OVR $1 "OVR $1 =ovrk
- "OVR2 $1 "OVR2 $1 "OVR2 $1 =ovr2k
- "STH $1 "SWP $1 "STHr $1 =rotswp
- "STH2 $1 "SWP2 $1 "STH2r $1 =rot2swp2
+ "DUP $1 "#__ $1 "SWP $1 =00ovr
+ "DUP2 $1 "#____ $1 "SWP2 $1 =0000ovr2
+ "ROT $1 "ROT $1 "ROT $1 =redundance
+ "ROT2 $1 "ROT2 $1 "ROT2 $1 =redundance
+ "SFT $1 "#__ $1 "SFT $1 =combine
+ "SFT2 $1 "#__ $1 "SFT $1 =combine
+ "SFT $1 "#__ $1 "SFT2 $1 =combine
+ "SFT2 $1 "#__ $1 "SFT2 $1 =combine
+ "OVR $1 "OVR $1 "EQU $1 =keep
+ "OVR2 $1 "OVR2 $1 "EQU2 $1 =keep
+ "OVR $1 "OVR $1 "NEQ $1 =keep
+ "OVR2 $1 "OVR2 $1 "NEQ2 $1 =keep
+ "OVR $1 "OVR $1 "GTH $1 =keep
+ "OVR2 $1 "OVR2 $1 "GTH2 $1 =keep
+ "OVR $1 "OVR $1 "LTH $1 =keep
+ "OVR2 $1 "OVR2 $1 "LTH2 $1 =keep
+ "OVR $1 "OVR $1 "ADD $1 =keep
+ "OVR2 $1 "OVR2 $1 "ADD2 $1 =keep
+ "OVR $1 "OVR $1 "SUB $1 =keep
+ "OVR2 $1 "OVR2 $1 "SUB2 $1 =keep
+ "OVR $1 "OVR $1 "MUL $1 =keep
+ "OVR2 $1 "OVR2 $1 "MUL2 $1 =keep
+ "OVR $1 "OVR $1 "DIV $1 =keep
+ "OVR2 $1 "OVR2 $1 "DIV2 $1 =keep
+ "OVR $1 "OVR $1 "AND $1 =keep
+ "OVR2 $1 "OVR2 $1 "AND2 $1 =keep
+ "OVR $1 "OVR $1 "ORA $1 =keep
+ "OVR2 $1 "OVR2 $1 "ORA2 $1 =keep
+ "OVR $1 "OVR $1 "EOR $1 =keep
+ "OVR2 $1 "OVR2 $1 "EOR2 $1 =keep
+ "OVR $1 "OVR $1 "SWP $1 =keep
+ "OVR2 $1 "OVR2 $1 "SWP2 $1 =keep
+ "DUP2 $1 "#0000 $1 "EQU2 $1 =orak00equ
+ "OVR $1 "OVR $1 "OVR $1 =ovrk
+ "OVR2 $1 "OVR2 $1 "OVR2 $1 =ovr2k
+ "STH $1 "SWP $1 "STHr $1 =rotswp
+ "STH2 $1 "SWP2 $1 "STH2r $1 =rot2swp2
"STH2r $1 "ADD2 $1 "STH2 $1 =redundance
"STH2r $1 "SUB2 $1 "STH2 $1 =redundance
"STH2r $1 "MUL2 $1 "STH2 $1 =redundance