1
0
mirror of https://github.com/KarolS/millfork.git synced 2024-12-25 21:29:25 +00:00
Commit Graph

66 Commits

Author SHA1 Message Date
Karol Stasiak
c8c6ec83fc New examples: echo.mfk and calculator.mfk 2018-01-20 22:10:04 +01:00
Karol Stasiak
6f2a157de0 More C64 I/O routines 2018-01-20 22:03:56 +01:00
Karol Stasiak
430051635d Tail-call optimization shouldn't move discard pseudoinstructions 2018-01-20 22:03:19 +01:00
Karol Stasiak
7e04312462 More optimizations 2018-01-20 20:00:51 +01:00
Karol Stasiak
91acbfae2f Using short jumps whenever possible 2018-01-20 18:51:49 +01:00
Karol Stasiak
8d818f7624 Early name check improvements 2018-01-20 02:12:12 +01:00
Karol Stasiak
ba9e1b6475 Type casting 2018-01-20 01:54:10 +01:00
Karol Stasiak
013bcd63f1 Early name check improvements 2018-01-20 01:53:58 +01:00
Karol Stasiak
372d341763 Replacing Ml* with Mf* everywhere 2018-01-20 01:32:06 +01:00
Karol Stasiak
c520bbb698 Comparison improvements 2018-01-20 01:30:46 +01:00
Karol Stasiak
c5e01d5117 A variable with fixed address shouldn't have an initial value 2018-01-20 01:30:28 +01:00
Karol Stasiak
0b334ba570 Index register changing optimization improvement 2018-01-20 01:30:06 +01:00
Karol Stasiak
cb5f025ea9 Early name check 2018-01-20 00:57:37 +01:00
Karol Stasiak
f8f1af287f Tracing index register changes during superoptimization 2018-01-19 00:12:28 +01:00
Karol Stasiak
57e11c8741 Fixing Loading branches optimization 2018-01-19 00:11:55 +01:00
Karol Stasiak
0ba6953321 Added the standalone Galencia starfield demo as an example, with original author's permission 2018-01-18 22:49:44 +01:00
Karol Stasiak
4c0d184c47 Constant evaluation fixes 2018-01-18 22:38:17 +01:00
Karol Stasiak
64f72c8a1c Optimization fixes (inlining to registers, function inlining, bit operations, DCP opcode) 2018-01-18 22:37:57 +01:00
Karol Stasiak
b486436185 Some syntax documentation 2018-01-18 22:35:25 +01:00
Karol Stasiak
6e0a750e48 Operator documentation fixes 2018-01-10 13:17:09 +01:00
Karol Stasiak
8e3797e7e4 Typos in operator documentation 2018-01-10 13:09:38 +01:00
Karol Stasiak
61599c8d1b Operator documentation 2018-01-10 13:08:24 +01:00
Karol Stasiak
23a2830951 Fixed the C64 implementation of _panic 2018-01-10 10:54:15 +01:00
Karol Stasiak
d696704af9 More bit-packing and transfer optimizations 2018-01-08 12:00:46 +01:00
Karol Stasiak
4676b0d48e Variable to register optimization fixes 2018-01-08 12:00:05 +01:00
Karol Stasiak
33716f3881 Runtime bounds checking 2018-01-08 01:18:14 +01:00
Karol Stasiak
502faa3694 panic() 2018-01-08 01:17:48 +01:00
Karol Stasiak
309f12cf82 Don't optimize away PLP 2018-01-08 01:04:04 +01:00
Karol Stasiak
14a5a58134 Generate warnings on some too complex separate bytes expressions 2018-01-08 01:03:08 +01:00
Karol Stasiak
0c66dac3ae Optimizations for bit packing and common subexpressions 2018-01-07 23:32:10 +01:00
Karol Stasiak
9ea3823bfd Compilation fixes
Separated bytes compilation fixes (although only preliminary, it's still a pretty broken feature)
Better compilation of complex expressions (don't spill to the stack so often)
2018-01-07 23:30:43 +01:00
Karol Stasiak
2bc27fba75 Separated bytes parsing fix and "for" statement parsing fix 2018-01-07 23:28:26 +01:00
Karol Stasiak
8b086f6c2f More optimisations 2018-01-06 00:21:28 +01:00
Karol Stasiak
92999ec490 Better allocator 2018-01-04 22:58:00 +01:00
Karol Stasiak
76122a2dd7 Some more documentation 2018-01-04 01:15:04 +01:00
Karol Stasiak
1f020e2ced An instruction used for its opcode should not be elidable 2018-01-04 01:08:47 +01:00
Karol Stasiak
504cb56ee7 Multiple arguments for some relative operators 2018-01-01 22:37:23 +01:00
Karol Stasiak
3e0d1d4978 References to variables in assembly should always refer to their addresses 2018-01-01 22:13:05 +01:00
Karol Stasiak
566631fc5e Decimal shifts 2017-12-27 22:26:30 +01:00
Karol Stasiak
9193a4f035 String literal improvements 2017-12-27 22:26:13 +01:00
Karol Stasiak
138ff8b82d Reserve flow analyser shouldn't mark parameters passed in registers as unimportant 2017-12-27 22:25:39 +01:00
Karol Stasiak
a7372ec7ca Inline multiple variables into index registers, taking into account their lifetimes 2017-12-24 00:09:52 +01:00
Karol Stasiak
917210b4cf Explicitly addressed variables should have "*.addr" 2017-12-24 00:09:22 +01:00
Karol Stasiak
c57c0c2fdb Support for comparing on-stack words + zeropage optimizations 2017-12-24 00:08:49 +01:00
Karol Stasiak
2945cd0003 Important optimization bugfixes + empty memory store removal 2017-12-24 00:07:53 +01:00
Karol Stasiak
e28ff16717 More optimizations, including optimizations with jump counting 2017-12-20 12:00:24 +01:00
Karol Stasiak
f5f4c033f3 Test benchmark tweak 2017-12-20 09:54:51 +01:00
Karol Stasiak
d9e0ad168a Don't emit labels for inlined functions 2017-12-20 09:54:32 +01:00
Karol Stasiak
5c2832f4f3 Automatic function inlining; test suite changes 2017-12-20 02:50:52 +01:00
Karol Stasiak
e78bd0e41a LSR should be correctly analysed in flow 2017-12-20 02:49:27 +01:00