Karol Stasiak
600e49cf49
Make some tests work on LR35902
2018-07-27 19:10:15 +02:00
Karol Stasiak
1948c38e04
Separate optimization presets for Z80, LR35902 and 8080
2018-07-27 19:09:38 +02:00
Karol Stasiak
b7f173fb71
Don't print debug stuff
2018-07-27 19:07:50 +02:00
Karol Stasiak
7ea2fe6a4e
Almost full LR35902 opcode space coverage
2018-07-27 19:07:12 +02:00
Karol Stasiak
27de426a38
Documentation updates
2018-07-25 00:04:00 +02:00
Karol Stasiak
2ca30315ca
Preparations for work on LR35902 support
2018-07-24 23:44:00 +02:00
Karol Stasiak
c5b45947dc
Preliminary support for Intel 8080
2018-07-24 23:14:41 +02:00
Karol Stasiak
749defd05a
Decimal subtraction fixes
2018-07-24 23:14:09 +02:00
Karol Stasiak
1e822239d0
Z80: Fix SET n,(IX+d) and related instructions
2018-07-24 20:45:30 +02:00
Karol Stasiak
71ad93fe09
Z80: Fix hex digit converions in stdlib
2018-07-24 19:11:40 +02:00
Karol Stasiak
b724ba9c6a
Z80: Full assembly support
2018-07-24 17:40:06 +02:00
Karol Stasiak
80efa95ba7
6502: Various optimization fixes and improvements
2018-07-24 16:17:27 +02:00
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