1
0
mirror of https://github.com/KarolS/millfork.git synced 2024-11-08 05:09:28 +00:00
Commit Graph

527 Commits

Author SHA1 Message Date
Karol Stasiak
e280aca08b Z80: Emit RES and SET instructions 2018-07-24 16:16:49 +02:00
Karol Stasiak
43c044c80c Z80: Various optimizations for stack variables 2018-07-24 14:31:23 +02:00
Karol Stasiak
9bcaffaa30 Z80: Faster calling convention 2018-07-24 01:43:59 +02:00
Karol Stasiak
c9cbd267c5 6502: Fix stack variables in more complex situations 2018-07-24 01:38:10 +02:00
Karol Stasiak
4be1e46308 6502: Faster page-aligned loops 2018-07-23 16:20:49 +02:00
Karol Stasiak
a34acbf6ce Z80: Operators *'=, <<' and <<'= 2018-07-23 15:47:03 +02:00
Karol Stasiak
85243c96a7 Z80: The >>>> operator 2018-07-23 13:49:59 +02:00
Karol Stasiak
a39064cf76 Z80: Return dispatch 2018-07-23 13:41:51 +02:00
Karol Stasiak
a7e1a24be6 Show filename and context for compile errors 2018-07-23 13:11:53 +02:00
Karol Stasiak
8c1492b211 A statement preprocessor with some basic node-level optimizations 2018-07-21 23:59:16 +02:00
Karol Stasiak
07c049c168 6502: Fix the optimization of inlining a variable to the accumulator 2018-07-21 23:53:30 +02:00
Karol Stasiak
c4c1bf00f2 Enumeration types. Stricter type checks. 2018-07-20 22:46:53 +02:00
Karol Stasiak
ff93775cbe Z80: Inline byte variables into registers 2018-07-17 21:08:56 +02:00
Karol Stasiak
55e9fd5174 Z80: Optimization improvements and fixes 2018-07-17 13:08:58 +02:00
Karol Stasiak
80aef5c412 Z80: detect read/changed registers more accurately 2018-07-17 13:08:25 +02:00
Karol Stasiak
190b398711 Z80: Faster +=2 and similar 2018-07-17 13:07:47 +02:00
Karol Stasiak
5f14484503 More Z80 optimizations. Finally almost as fast as C. 2018-07-16 23:10:55 +02:00
Karol Stasiak
21b086046c Always require a full optimization context when optimizing 2018-07-16 23:09:55 +02:00
Karol Stasiak
f4ecc2512c Refactoring the inlining calculators 2018-07-16 23:05:16 +02:00
Karol Stasiak
28e11873dc Add empty parameter store removal optimization 2018-07-16 23:03:52 +02:00
Karol Stasiak
ab57090790 Improve optimization in tests for 6502 2018-07-16 23:03:12 +02:00
Karol Stasiak
5a8fe547bf Fix macros and few other things when compiling for Z80 2018-07-16 23:02:34 +02:00
Karol Stasiak
39dfe13a3f Emit LD (m),BC and similar instructions 2018-07-16 23:01:04 +02:00
Karol Stasiak
704ae17d30 Fix environment namecheck for Z80 2018-07-16 23:00:26 +02:00
Karol Stasiak
caec1bdc1b Improvements for constants 2018-07-16 23:00:05 +02:00
Karol Stasiak
0efd9ada3e Few optimization improvements for 6502 2018-07-16 22:59:08 +02:00
Karol Stasiak
b2fa129482 Improve tracking of changed and read registers on Z80 2018-07-16 22:57:20 +02:00
Karol Stasiak
2c0256c1c1 Tons of Z80 improvements:
– long assignments
– word and long comparisons
– byte multiplication
– correct sign extension
– fixed flow analysis for LD A,(IX,0) and similar
– unused variable store elimination
– unused code elimination
– unused label elimination
– poinless stack stashing elimination
– function inlining
– other flow analysis improvements
– other bugfixes
– other stuff
– more tests
2018-07-16 00:13:35 +02:00
Karol Stasiak
6d4aa5ef82 Don't track FCEUX label maps 2018-07-16 00:08:22 +02:00
Karol Stasiak
ca4ae4ce2e Fix optimization of ADC on 6502 2018-07-16 00:07:22 +02:00
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