mirror of
https://github.com/KarolS/millfork.git
synced 2025-02-06 01:30:13 +00:00
6502: Optimize more jumps in place
This commit is contained in:
parent
c6932da6b3
commit
fe4f0dcfd9
@ -736,31 +736,31 @@ object AlwaysGoodOptimizations {
|
||||
NoopDiscardsFlags.* ~
|
||||
(HasOpcode(LABEL) & MatchParameter(0)) ~~> (c => c.last :: Nil),
|
||||
(HasOpcodeIn(AllDirectJumps) & HasAddrModeIn(Absolute, Relative, LongAbsolute, LongRelative) & MatchParameter(0) & Elidable) ~
|
||||
(HasOpcode(LABEL) & Not(MatchParameter(0))).* ~
|
||||
(HasOpcodeIn(LABEL, CHANGED_MEM) & Not(MatchParameter(0))).* ~
|
||||
(HasOpcode(LABEL) & MatchParameter(0)) ~~> (_.tail),
|
||||
(HasOpcode(BEQ) & MatchParameter(0) & Elidable) ~ HasOpcode(BNE) ~
|
||||
(HasOpcode(LABEL) & Not(MatchParameter(0))).* ~
|
||||
(HasOpcodeIn(LABEL, CHANGED_MEM) & Not(MatchParameter(0))).* ~
|
||||
(HasOpcode(LABEL) & MatchParameter(0)) ~~> (_.tail),
|
||||
(HasOpcode(BNE) & MatchParameter(0) & Elidable) ~ HasOpcode(BEQ) ~
|
||||
(HasOpcode(LABEL) & Not(MatchParameter(0))).* ~
|
||||
(HasOpcodeIn(LABEL, CHANGED_MEM) & Not(MatchParameter(0))).* ~
|
||||
(HasOpcode(LABEL) & MatchParameter(0)) ~~> (_.tail),
|
||||
(HasOpcode(BCC) & MatchParameter(0) & Elidable) ~ HasOpcode(BCS) ~
|
||||
(HasOpcode(LABEL) & Not(MatchParameter(0))).* ~
|
||||
(HasOpcodeIn(LABEL, CHANGED_MEM) & Not(MatchParameter(0))).* ~
|
||||
(HasOpcode(LABEL) & MatchParameter(0)) ~~> (_.tail),
|
||||
(HasOpcode(BCS) & MatchParameter(0) & Elidable) ~ HasOpcode(BCC) ~
|
||||
(HasOpcode(LABEL) & Not(MatchParameter(0))).* ~
|
||||
(HasOpcodeIn(LABEL, CHANGED_MEM) & Not(MatchParameter(0))).* ~
|
||||
(HasOpcode(LABEL) & MatchParameter(0)) ~~> (_.tail),
|
||||
(HasOpcode(BMI) & MatchParameter(0) & Elidable) ~ HasOpcode(BPL) ~
|
||||
(HasOpcode(LABEL) & Not(MatchParameter(0))).* ~
|
||||
(HasOpcodeIn(LABEL, CHANGED_MEM) & Not(MatchParameter(0))).* ~
|
||||
(HasOpcode(LABEL) & MatchParameter(0)) ~~> (_.tail),
|
||||
(HasOpcode(BPL) & MatchParameter(0) & Elidable) ~ HasOpcode(BMI) ~
|
||||
(HasOpcode(LABEL) & Not(MatchParameter(0))).* ~
|
||||
(HasOpcodeIn(LABEL, CHANGED_MEM) & Not(MatchParameter(0))).* ~
|
||||
(HasOpcode(LABEL) & MatchParameter(0)) ~~> (_.tail),
|
||||
(HasOpcode(BVS) & MatchParameter(0) & Elidable) ~ HasOpcode(BVC) ~
|
||||
(HasOpcode(LABEL) & Not(MatchParameter(0))).* ~
|
||||
(HasOpcodeIn(LABEL, CHANGED_MEM) & Not(MatchParameter(0))).* ~
|
||||
(HasOpcode(LABEL) & MatchParameter(0)) ~~> (_.tail),
|
||||
(HasOpcode(BVC) & MatchParameter(0) & Elidable) ~ HasOpcode(BVS) ~
|
||||
(HasOpcode(LABEL) & Not(MatchParameter(0))).* ~
|
||||
(HasOpcodeIn(LABEL, CHANGED_MEM) & Not(MatchParameter(0))).* ~
|
||||
(HasOpcode(LABEL) & MatchParameter(0)) ~~> (_.tail),
|
||||
)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user