Karol Stasiak
bebb8c45a5
Z80: More optimizations
2018-08-01 10:22:34 +02:00
Karol Stasiak
ec9dba9d27
Z80: Use RRA instead of RR A in stdlib
2018-08-01 10:16:20 +02:00
Karol Stasiak
e914ad6d7b
Move label generation into a separate class
2018-07-31 18:16:36 +02:00
Karol Stasiak
f929e396df
Preliminary CP/M support
2018-07-31 01:02:55 +02:00
Karol Stasiak
2046f94b55
Z80: Compile 8-bit values directly into registers other than A
2018-07-31 01:00:17 +02:00
Karol Stasiak
7e6f2dd4ea
Z80: CALL <number> shouldn't prevent inlining
2018-07-31 00:59:24 +02:00
Karol Stasiak
e0bec29318
Minor documentation updates
2018-07-31 00:58:43 +02:00
Karol Stasiak
53f550d266
Z80: Fix line size calculations
2018-07-31 00:52:01 +02:00
Karol Stasiak
2bac42c187
Optimizations for LR35902 and 8080
2018-07-30 23:51:41 +02:00
Karol Stasiak
6d7643b817
6502: Better descriptions of benchmarked tests
2018-07-30 23:50:44 +02:00
Karol Stasiak
453ce93952
Z80: RLA and RL A are two very different instructions
2018-07-30 23:49:25 +02:00
Karol Stasiak
2ef79d6894
Minor improvements for Intel 8080 and ZX Spectrum
2018-07-30 18:55:20 +02:00
Karol Stasiak
998902acf6
Refactor: error logging
2018-07-30 18:53:08 +02:00
Karol Stasiak
cb92b09942
Improvements related to large types:
...
– returning types larger than 2
– fastcall for 1 parameter of size 3 or 4 on Z80
– more integer types (up to int128)
– marked farword as a deprecated alias of int24
2018-07-30 14:33:16 +02:00
Karol Stasiak
070ae395ee
Text literals in expressions, escape sequences, and more
2018-07-28 00:58:20 +02:00
Karol Stasiak
514e819ddf
Fix several things:
...
– statement preprocessor
– unused label removal
– >>>> operator on 6502
– constant byte comparison on 6502
2018-07-28 00:56:25 +02:00
Karol Stasiak
847a7255c6
Update README and CHANGELOG
2018-07-27 19:15:57 +02:00
Karol Stasiak
67f3034afb
Enable 8080 and LR35902 for users
2018-07-27 19:12:54 +02:00
Karol Stasiak
3c019b06c1
Tests for LR35902
2018-07-27 19:12:28 +02:00
Karol Stasiak
5c25e653bf
Many things:
...
– better support for LR35902
– stack variables for 8080 and LR35902
– bugfixes
– minor optimizations
2018-07-27 19:11:59 +02:00
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