Commit Graph

1392 Commits

Author SHA1 Message Date
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
Karol Stasiak e0f9544733 Don't compile the same functions twice 2017-12-20 01:07:38 +01:00
Karol Stasiak 4d8de94c8a Compile functions in topological order, in preparation for inlining optimization 2017-12-19 22:09:57 +01:00
Karol Stasiak 86ef4fcaf4 Allow for preinitialized global variables 2017-12-19 18:58:33 +01:00
Karol Stasiak 115f040fe2 Fixed invalid BNE optimization 2017-12-19 18:57:13 +01:00
Karol Stasiak 1dd8c3d855 Faster +=1 for large variables 2017-12-18 17:51:48 +01:00
Karol Stasiak 081e3bc55c Flow analyser should correctly analyse INC A and DEC A 2017-12-18 10:09:25 +01:00
Karol Stasiak 2779671300 ISC also reads A – fixed bug that appeared due to optimization 2017-12-18 10:08:57 +01:00
Karol Stasiak ae1bc96da7 A for-loop index variable is also a used variable 2017-12-18 01:00:17 +01:00
Karol Stasiak a62f16d0a9 The module loader should know what extensions the modules have... 2017-12-18 00:59:47 +01:00
Karol Stasiak 47e6b41384 Decimal and binary addition in the same expression should work correctly 2017-12-16 17:55:08 +01:00
Karol Stasiak 810ac4f00e Bugfixes for undocumented optimizations and a better test suite for them 2017-12-13 16:21:19 +01:00
Karol Stasiak d95d74104f Removal of some unused old code 2017-12-07 00:55:44 +01:00
Karol Stasiak 300dee4319 It's .mfk now, not .ml 2017-12-07 00:37:57 +01:00
Karol Stasiak d134afa213 Proper version number in --version 2017-12-07 00:29:10 +01:00
Karol Stasiak 48e26a0538 Initial code upload 2017-12-07 00:23:30 +01:00
Karol Stasiak 537d59744e Empty repo initialization 2017-12-06 22:00:04 +01:00