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

869 Commits

Author SHA1 Message Date
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
Karol Stasiak
992ea7090e Comparison fixes and improvements 2018-06-19 00:08:04 +02:00
Karol Stasiak
bf1a3a6677 Fix label name clash 2018-06-18 22:40:32 +02:00
Karol Stasiak
13b06bd505 Fix zeropage allocation 2018-06-18 22:40:14 +02:00
Karol Stasiak
b5aa4674b4 Update Notepad++ syntax colouring scheme 2018-06-18 20:13:02 +02:00
Karol Stasiak
9b7d58cf65 Optimizing addition by replacing it with bit ops (NMOS) or increments (CMOS) 2018-06-18 19:48:47 +02:00
Karol Stasiak
7510b44412 Optimization improvements:
– reloading from zeropage is faster than stashing the result into another register
– more jumping optimizations
2018-06-18 19:12:36 +02:00
Karol Stasiak
daf8461c07 Allocating arbitrary variables in the zeropage and using zeropage addressing when appropriate 2018-06-18 17:59:47 +02:00
Karol Stasiak
ca14e417dd Loop compilation/optimization fixes/improvements 2018-06-18 17:54:45 +02:00
Karol Stasiak
24a3943501 Array filters (@word, @word_be) 2018-06-18 02:52:14 +02:00
Karol Stasiak
0f453e2d2c Start of the Z80 backend 2018-06-17 02:01:35 +02:00
Karol Stasiak
780bfa3428 Fix for i,$FF,downto,0 2018-06-12 23:35:26 +02:00
Karol Stasiak
5ee550af3b Fix double load optimization 2018-06-12 23:34:41 +02:00
Karol Stasiak
7fc8678eec Better logging when shortening jumps 2018-06-12 23:34:16 +02:00
Karol Stasiak
5281b5f527 Refactoring for the upcoming Z80 support 2018-06-12 22:46:20 +02:00
Karol Stasiak
70818cc3d2 Fixing invalid short jumps 2018-06-11 00:04:24 +02:00
Karol Stasiak
a16f662031 Optimization fixes 2018-06-10 23:44:45 +02:00
Karol Stasiak
278cbcec63 Fixed return dispatch returns on LUnix. Added non-relocated address constants. 2018-06-10 01:56:04 +02:00
Karol Stasiak
8a417768b8 Removed a really invalid optimization 2018-06-10 01:48:42 +02:00
Karol Stasiak
8931ced6fc Preliminary LUnix support 2018-06-09 00:18:21 +02:00
Karol Stasiak
5dc1bba8ed Multiple improvements:
- fixed some invalid LDX(zp),Y instructions
- better error reporting
- removing unused extern functions
- a new testcase
2018-06-09 00:08:17 +02:00
Karol Stasiak
775707801c Documentation improvements 2018-06-09 00:05:17 +02:00
Karol Stasiak
10860f6c5f Fixed flag checks during optimisation 2018-06-04 16:49:45 +02:00
Karol Stasiak
c71af26989 Documentation updates 2018-06-04 16:24:18 +02:00
Karol Stasiak
0919a98e4b Fix for i,const,downto,0 loops 2018-06-04 09:44:54 +02:00
Karol Stasiak
0c50c4562a Optimize more pointless loads from the same memory/register 2018-06-04 09:44:24 +02:00
Karol Stasiak
beef56cdab Fillout the call graph for variable overlap calculations 2018-06-04 09:43:51 +02:00
Karol Stasiak
b6e61f16ec Optimizations of adding one 2018-06-01 09:51:59 +02:00
Karol Stasiak
1d468e1313 Index changing optimization fix 2018-06-01 09:51:30 +02:00