Skip to content

Commit

Permalink
added a few more unofficial ops, and fixed a small problem with poapp…
Browse files Browse the repository at this point in the history
…ly that occurred when starting to integrate MDL in an SDCC pipeline
  • Loading branch information
santiontanon committed Aug 24, 2020
1 parent 5a2196b commit d884989
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 15 deletions.
24 changes: 21 additions & 3 deletions src/main/java/workers/pattopt/PatternBasedOptimizer.java
Original file line number Diff line number Diff line change
Expand Up @@ -328,9 +328,27 @@ public boolean applyOptimizationsToOriginalFiles(CodeBase code)
if (updatedLines.size() == 1) {
updatedLines.add("; " + updatedLines.remove(0) + " ; -mdl");
} else {
// We need to look for which one in particular to remove:
config.error("More than one optimization applied to the same line, not yet supported in applyOptimizationsToOriginalFiles");
return false;
boolean onlyLastNotCommentedOut = true;
for(int i = 0;i<updatedLines.size();i++) {
if (i == updatedLines.size()-1) {
if (updatedLines.get(i).startsWith(";")) {
onlyLastNotCommentedOut = false;
break;
}
} else {
if (!updatedLines.get(i).startsWith(";")) {
onlyLastNotCommentedOut = false;
break;
}
}
}
if (onlyLastNotCommentedOut) {
updatedLines.add("; " + updatedLines.remove(updatedLines.size()-1) + " ; -mdl");
} else {
// We need to look for which one in particular to remove:
config.error("More than one optimization applied to the same line, not yet supported at: " + s.sl);
return false;
}
}
}
for(SourceStatement s: match.added) {
Expand Down
12 changes: 8 additions & 4 deletions src/main/resources/data/z80-instruction-set.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -397,8 +397,15 @@ ADD IYq 8 FD 80+q 2 A,IYq A S,Z,H,P/V,N,C false
ADD n 7 C6 n 2 A A S,Z,H,P/V,N,C false
ADD (IX+o) 19 DD 86 o 3 A,IX IX+o A S,Z,H,P/V,N,C false
ADD (IY+o) 19 FD 86 o 3 A,IY IY+o A S,Z,H,P/V,N,C false
AND A, n 7 E6 n 2 A A S,Z,H,P/V,N,C false
AND A, (IX+o) 19 DD A6 o 3 A,IX IX+o A S,Z,H,P/V,N,C false
AND A, (IY+o) 19 FD A6 o 3 A,IY IY+o A S,Z,H,P/V,N,C false
EX HL,DE 4 EB 1 DE,HL DE,HL false
OUT n,A 11 D3 n 2 A S,Z,N n false
OR A, (IX+o) 19 DD B6 o 3 A,IX IX+o A S,Z,H,P/V,N,C false
OR A, (IY+o) 19 FD B6 o 3 A,IY IY+o A S,Z,H,P/V,N,C false
OR A, r 4 B0+r 1 A,r A S,Z,H,P/V,N,C false
OR A, n 7 F6 n 2 A A S,Z,H,P/V,N,C false
SBC (HL) 7 9E 1 A,HL C HL A S,Z,H,P/V,N,C false
SBC A 4 98+7 1 C A S,Z,H,P/V,N,C false
SBC B 4 98+0 1 A,B C A S,Z,H,P/V,N,C false
Expand All @@ -422,10 +429,6 @@ SUB A, n 7 D6 n 2 A A S,Z,H,P/V,N,C false
EX AF,AF 4 8 1 AF AF false
SBC (IX+o) 19 DD 9E o 3 A,IX C IX+o A S,Z,H,P/V,N,C false
SBC (IY+o) 19 FD 9E o 3 A,IY C IY+o A S,Z,H,P/V,N,C false
AND A, n 7 E6 n 2 A A S,Z,H,P/V,N,C false
OR A, (IX+o) 19 DD B6 o 3 A,IX IX+o A S,Z,H,P/V,N,C false
OR A, (IY+o) 19 FD B6 o 3 A,IY IY+o A S,Z,H,P/V,N,C false
OR A, r 4 B0+r 1 A,r A S,Z,H,P/V,N,C false
CP A, (HL) 7 BE 1 A,HL HL S,Z,H,P/V,N,C false
CP A, r 4 B8+r 1 A,r S,Z,H,P/V,N,C false
XOR A, (HL) 7 AE 1 A,HL HL A S,Z,H,P/V,N,C false
Expand All @@ -436,3 +439,4 @@ XOR A, D 4 A8+2 1 A,D A S,Z,H,P/V,N,C false
XOR A, E 4 A8+3 1 A,E A S,Z,H,P/V,N,C false
XOR A, H 4 A8+4 1 A,H A S,Z,H,P/V,N,C false
XOR A, L 4 A8+5 1 A,L A S,Z,H,P/V,N,C false
XOR A, n 7 EE n 2 A A S,Z,H,P/V,N,C false
12 changes: 8 additions & 4 deletions src/main/resources/data/z80cpc-instruction-set.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -398,8 +398,15 @@ ADD IYq 2 FD 80+q 2 A,IYq A S,Z,H,P/V,N,C false
ADD n 2 C6 n 2 A A S,Z,H,P/V,N,C false
ADD (IX+o) 5 DD 86 o 3 A,IX IX+o A S,Z,H,P/V,N,C false
ADD (IY+o) 5 FD 86 o 3 A,IY IY+o A S,Z,H,P/V,N,C false
AND A, n 2 E6 n 2 A A S,Z,H,P/V,N,C false
AND A, (IX+o) 5 DD A6 o 3 A,IX IX+o A S,Z,H,P/V,N,C false
AND A, (IY+o) 5 FD A6 o 3 A,IY IY+o A S,Z,H,P/V,N,C false
EX HL,DE 1 EB 1 DE,HL DE,HL false
OUT n,A 4 D3 n 2 A S,Z,N n false
OR A, (IX+o) 5 DD B6 o 3 A,IX IX+o A S,Z,H,P/V,N,C false
OR A, (IY+o) 5 FD B6 o 3 A,IY IY+o A S,Z,H,P/V,N,C false
OR A, r 1 B0+r 1 A,r A S,Z,H,P/V,N,C false
OR A, n 2 F6 n 2 A A S,Z,H,P/V,N,C false
SBC (HL) 2 9E 1 A,HL C HL A S,Z,H,P/V,N,C false
SBC A 1 98+7 1 C A S,Z,H,P/V,N,C false
SBC B 1 98+0 1 A,B C A S,Z,H,P/V,N,C false
Expand All @@ -423,10 +430,6 @@ SUB A, n 2 D6 n 2 A A S,Z,H,P/V,N,C false
EX AF,AF 1 8 1 AF AF false
SBC (IX+o) 5 DD 9E o 3 A,IX C IX+o A S,Z,H,P/V,N,C false
SBC (IY+o) 5 FD 9E o 3 A,IY C IY+o A S,Z,H,P/V,N,C false
AND A, n 2 E6 n 2 A A S,Z,H,P/V,N,C false
OR A, (IX+o) 5 DD B6 o 3 A,IX IX+o A S,Z,H,P/V,N,C false
OR A, (IY+o) 5 FD B6 o 3 A,IY IY+o A S,Z,H,P/V,N,C false
OR A, r 1 B0+r 1 A,r A S,Z,H,P/V,N,C false
CP A, (HL) 2 BE 1 A,HL HL S,Z,H,P/V,N,C false
CP A, r 1 B8+r 1 A,r S,Z,H,P/V,N,C false
XOR A, (HL) 2 AE 1 A,HL HL A S,Z,H,P/V,N,C false
Expand All @@ -437,3 +440,4 @@ XOR A, D 1 A8+2 1 A,D A S,Z,H,P/V,N,C false
XOR A, E 1 A8+3 1 A,E A S,Z,H,P/V,N,C false
XOR A, H 1 A8+4 1 A,H A S,Z,H,P/V,N,C false
XOR A, L 1 A8+5 1 A,L A S,Z,H,P/V,N,C false
XOR A, n 2 EE n 2 A A S,Z,H,P/V,N,C false
12 changes: 8 additions & 4 deletions src/main/resources/data/z80msx-instruction-set.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -401,8 +401,15 @@ ADD IYq 10 FD 80+q 2 A,IYq A S,Z,H,P/V,N,C false
ADD n 8 C6 n 2 A A S,Z,H,P/V,N,C false
ADD (IX+o) 21 DD 86 o 3 A,IX IX+o A S,Z,H,P/V,N,C false
ADD (IY+o) 21 FD 86 o 3 A,IY IY+o A S,Z,H,P/V,N,C false
AND A, n 8 E6 n 2 A A S,Z,H,P/V,N,C false
AND A, (IX+o) 21 DD A6 o 3 A,IX IX+o A S,Z,H,P/V,N,C false
AND A, (IY+o) 21 FD A6 o 3 A,IY IY+o A S,Z,H,P/V,N,C false
EX HL,DE 5 EB 1 DE,HL DE,HL false
OUT n,A 12 D3 n 2 A S,Z,N n false
OR A, n 8 F6 n 2 A A S,Z,H,P/V,N,C false
OR A, (IX+o) 21 DD B6 o 3 A,IX IX+o A S,Z,H,P/V,N,C false
OR A, (IY+o) 21 FD B6 o 3 A,IY IY+o A S,Z,H,P/V,N,C false
OR A, r 5 B0+r 1 A,r A S,Z,H,P/V,N,C false
SBC (HL) 8 9E 1 A,HL C HL A S,Z,H,P/V,N,C false
SBC A 5 98+7 1 C A S,Z,H,P/V,N,C false
SBC B 5 98+0 1 A,B C A S,Z,H,P/V,N,C false
Expand All @@ -426,10 +433,6 @@ SUB A, n 8 D6 n 2 A A S,Z,H,P/V,N,C false
EX AF,AF 5 8 1 AF AF false
SBC (IX+o) 21 DD 9E o 3 A,IX C IX+o A S,Z,H,P/V,N,C false
SBC (IY+o) 21 FD 9E o 3 A,IY C IY+o A S,Z,H,P/V,N,C false
AND A, n 8 E6 n 2 A A S,Z,H,P/V,N,C false
OR A, (IX+o) 21 DD B6 o 3 A,IX IX+o A S,Z,H,P/V,N,C false
OR A, (IY+o) 21 FD B6 o 3 A,IY IY+o A S,Z,H,P/V,N,C false
OR A, r 5 B0+r 1 A,r A S,Z,H,P/V,N,C false
CP A, (HL) 8 BE 1 A,HL HL S,Z,H,P/V,N,C false
CP A, r 5 B8+r 1 A,r S,Z,H,P/V,N,C false
XOR A, (HL) 8 AE 1 A,HL HL A S,Z,H,P/V,N,C false
Expand All @@ -440,3 +443,4 @@ XOR A, D 5 A8+2 1 A,D A S,Z,H,P/V,N,C false
XOR A, E 5 A8+3 1 A,E A S,Z,H,P/V,N,C false
XOR A, H 5 A8+4 1 A,H A S,Z,H,P/V,N,C false
XOR A, L 5 A8+5 1 A,L A S,Z,H,P/V,N,C false
XOR A, n 8 EE n 2 A A S,Z,H,P/V,N,C false

0 comments on commit d884989

Please sign in to comment.