1
0
mirror of https://github.com/KarolS/millfork.git synced 2024-07-06 15:29:23 +00:00
Commit Graph

297 Commits

Author SHA1 Message Date
Karol Stasiak
215d8d92b4 Preprocessor. Z80 improvements. Library improvements. 2018-07-12 19:39:25 +02:00
Karol Stasiak
35f3638a4f Added alias support 2018-07-12 01:23:38 +02:00
Karol Stasiak
af1e6d9c9f Updated changelog 2018-07-07 01:11:53 +02:00
Karol Stasiak
2c8de8b6a5 Text encoding improvements 2018-07-07 00:58:44 +02:00
Karol Stasiak
265f729b24 Fix Z80-based platforms 2018-07-07 00:13:46 +02:00
Karol Stasiak
a00ba49820 Multiple improvements and fixes:
– reorganized code for future support of larger zeropage register sets
– added stack-allocated variables for Z80
– added many stack-related optimizations for 6502 and Z80
– fixed flow analysis and optimization bugs for Z80
– flow analysis for stack-allocated variables on Z80
– added more optimizations for 6502 and Z80
– fixed IX/IY-indexed operations on Z80
– code cleanup
2018-07-06 22:45:59 +02:00
Karol Stasiak
55b42645be Don't print an extra newline on ZX Spectrum 2018-07-06 22:38:19 +02:00
Karol Stasiak
40c98567a0 Make the parser much faster 2018-07-06 01:05:24 +02:00
Karol Stasiak
dffc6e71d9 Optimize operations on known register values 2018-07-05 00:58:07 +02:00
Karol Stasiak
670741392c Fix tests 2018-07-05 00:57:43 +02:00
Karol Stasiak
c3504a63b3 ZX Spectrum improvements 2018-07-05 00:50:13 +02:00
Karol Stasiak
fe85757e00 Initial and very incomplete support for Z80 assembly 2018-07-05 00:49:51 +02:00
Karol Stasiak
c153588600 Use @word for reset vectors 2018-07-03 23:29:37 +02:00
Karol Stasiak
351d2ac5f9 Documentation update 2018-07-03 23:28:05 +02:00
Karol Stasiak
24ae52e3cc Really early and very incomplete ZX Spectrum support 2018-07-03 22:37:18 +02:00
Karol Stasiak
00be0b552e Use target file name as disk label 2018-07-03 22:36:15 +02:00
Karol Stasiak
3390fe552e Allocate all variables in single pass on Z80 2018-07-03 22:34:45 +02:00
Karol Stasiak
4acc040813 More tests for Z80 2018-07-03 01:52:29 +02:00
Karol Stasiak
0da4637036 Fix and extend Z80 word/long operations 2018-07-03 01:47:31 +02:00
Karol Stasiak
57bde60ced Fix Z80 shifting 2018-07-03 01:46:57 +02:00
Karol Stasiak
e5ee32f7d6 Fix Z80 reverse flow analysis for CP 2018-07-03 01:45:58 +02:00
Karol Stasiak
be04c9b195 Fix emitting constant decimal expressions 2018-07-03 01:45:20 +02:00
Karol Stasiak
da023daadc Z80 doesn't have a zeropage 2018-07-02 22:34:29 +02:00
Karol Stasiak
02a408e1be Fix array iteration on Z80 2018-07-02 22:33:43 +02:00
Karol Stasiak
a394ab631f Faster array iteration for Z80 2018-07-02 14:59:21 +02:00
Karol Stasiak
619bf8116a Optimization fixes and improvements for Z80 2018-07-02 14:58:45 +02:00
Karol Stasiak
ed067d3a67 Splitting and tweaking documentation 2018-07-02 00:45:53 +02:00
Karol Stasiak
9512e8e7ae Really early and very incomplete PC-88 support 2018-07-02 00:31:47 +02:00
Karol Stasiak
62e94d96f7 Added unsigned byte comparisons for Z80 2018-07-02 00:18:33 +02:00
Karol Stasiak
4d00cb4db9 Added Z80 emulator for testing 2018-07-01 22:28:27 +02:00
Karol Stasiak
dc3425f64e Preliminary and partial machine code output for Z80 2018-07-01 22:28:09 +02:00
Karol Stasiak
893515b649 8- and 16-bit shifting for Z80 2018-07-01 22:27:12 +02:00
Karol Stasiak
f7f22767e4 Various minor Z80-related fixes 2018-07-01 22:26:30 +02:00
Karol Stasiak
35caae6d8b Unify syntax of command-line switches 2018-07-01 19:19:30 +02:00
Karol Stasiak
2b6315f15b Let the optimizer optimize the multiplication routine 2018-07-01 19:07:47 +02:00
Karol Stasiak
86b12bd5f9 Switch to snapshot versioning 2018-07-01 19:07:12 +02:00
Karol Stasiak
63988dbe8c Version 0.3.0 2018-06-25 22:46:52 +02:00
Karol Stasiak
f51e42cc1d Fixed all the legal stuff 2018-06-25 22:42:12 +02:00
Karol Stasiak
4f2ed66bb1 Don't treat apostrophes as delimiters in Notepad++ syntax definition 2018-06-25 21:30:10 +02:00
Karol Stasiak
2500f842e9 Interprocedural optimization plus some minor fixes:
– fixed handling LDX/LDY/LDZ when inlining variables into registers
– fixed CLA/CLX/CLY instruction generation
– refactored optimization definitions
2018-06-25 21:29:04 +02:00
Karol Stasiak
57740cc6b4 Optimizations for shifting 2018-06-25 01:13:01 +02:00
Karol Stasiak
d39aac86ac C64 should compile with no illegals by default, for SuperCPU, C65 and Mega65 compatibility 2018-06-24 19:39:16 +02:00
Karol Stasiak
a692a9868e Update changelog 2018-06-24 00:31:10 +02:00
Karol Stasiak
83e055a1d1 Allow for "file" array specifier inside another array 2018-06-24 00:30:57 +02:00
Karol Stasiak
86ce4c75ad Take into account that the sole byte parameter is passed via the accumulator in more locations 2018-06-23 23:47:18 +02:00
Karol Stasiak
456c674a0c Track equality of S and X. Add relevant optimizations. 2018-06-23 23:24:32 +02:00
Karol Stasiak
bc21e5befc If a function has one small parameter, pass it via the accumulator 2018-06-23 23:14:53 +02:00
Karol Stasiak
3d47c51804 Less restrictive licensing for the standard library 2018-06-22 18:16:10 +02:00
Karol Stasiak
816bfb5f06 Optimization improvements:
– better zeropage register flow tracking
– reverse flow analysis speed improvement
– optimize TXA/TAX after LAX
– don't stash A onto stack over externally linear code blocks
2018-06-19 14:23:24 +02:00
Karol Stasiak
5ee9fd85ce Humblebrag 2018-06-19 00:08:18 +02:00