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
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