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

738 Commits

Author SHA1 Message Date
Karol Stasiak
7092f2a5de Properly handle all integer literal sizes 2019-10-31 12:13:02 +01:00
Karol Stasiak
4214f1f6f5 Tests for recent parser improvements 2019-10-31 12:12:10 +01:00
Karol Stasiak
33405ffcd6 Better handling for invalid statements inside segment blocks 2019-10-31 12:11:05 +01:00
Karol Stasiak
e3b3c36924 Parse function and variable flags correctly 2019-10-31 12:10:18 +01:00
Karol Stasiak
258b17beb0 Allow unary minus (fixes #18) 2019-10-31 12:09:20 +01:00
Karol Stasiak
1ddee6155d Allow for comments at the end of the file (fixes #15) 2019-10-31 12:08:45 +01:00
Karol Stasiak
6fddf1cf0d Improve documentation 2019-10-24 15:09:11 +02:00
Karol Stasiak
4191eec7f8 Add -Xd and -Xr command line options 2019-10-24 00:48:32 +02:00
Karol Stasiak
7fe32ca564 Z80: Improve optimizations 2019-10-24 00:48:16 +02:00
Karol Stasiak
72f8806c54 6502: Word addition optimizations 2019-10-23 12:56:48 +02:00
Karol Stasiak
010647682a Fix the sieve benchmark 2019-10-23 11:52:42 +02:00
Karol Stasiak
9beac45e99 Define Constant.WordZero 2019-10-23 11:03:55 +02:00
Karol Stasiak
6db5e09723 Optimize for-to loops 2019-10-22 23:38:07 +02:00
Karol Stasiak
e1107b164f Remove debugging messages 2019-10-22 18:21:47 +02:00
Karol Stasiak
3873736424 Optimize pointer indexing 2019-10-22 18:19:55 +02:00
Karol Stasiak
b7300616d1 6502: Faster accesses to small arrays 2019-10-22 16:35:17 +02:00
Karol Stasiak
d36b83421c 6502: Fix an optimization bug 2019-10-22 16:34:39 +02:00
Karol Stasiak
5ad6da2be4 6502: Optimize hi(nonet(...)) 2019-10-22 16:34:13 +02:00
Karol Stasiak
ec96f16482 Improve and fix 16-bit comparisons 2019-10-22 13:54:30 +02:00
Karol Stasiak
ff46129c4e #11 Fix allocation of variables in functions with trampolines 2019-10-22 01:39:11 +02:00
Karol Stasiak
f65651f2c0 #6 Improve error messages related to semicolons 2019-10-22 01:06:51 +02:00
Karol Stasiak
09294307fd #8 Standardise the behaviour of for loops. 2019-10-22 00:41:34 +02:00
Karol Stasiak
2d50e4fa73 Make the -o option optional 2019-10-22 00:14:38 +02:00
Karol Stasiak
9e8b889533 #10 Fix removal of unused global structs and preserve reads in assignments from volatiles to unuseds. 2019-10-22 00:05:44 +02:00
Karol Stasiak
f5b6d9999c #9 Support astral characters in UTF-8 2019-10-18 11:01:31 +02:00
Karol Stasiak
3a6790e47a Add UTF-8 and UTF-16 encodings #9 2019-10-17 23:23:57 +02:00
Karol Stasiak
4fc0b98561 6809: Support break and continue 2019-10-16 22:43:16 +02:00
Karol Stasiak
1ec816496d Allow adding fixed deltas to some outputs; #7 Fix Lynx output 2019-10-16 22:42:58 +02:00
Karol Stasiak
927c39585c Fix non-compiling code
An incremental compiler can be both a blessing and a curse
2019-10-15 00:51:16 +02:00
Karol Stasiak
e9990dc9c1 Allow semicolons in certain positions. Partially implements #6 2019-10-08 18:45:11 +02:00
Karol Stasiak
e19ac75350 6809: Some optimizations 2019-10-08 15:11:22 +02:00
Karol Stasiak
f08caa0b7a 6809: Various improvements 2019-10-08 01:43:09 +02:00
Karol Stasiak
c61d044226 Document keywords and handle them better 2019-10-08 01:33:55 +02:00
Karol Stasiak
f251292dd0 6502: Few minor boolean conversion optimizations 2019-10-01 00:50:21 +02:00
Karol Stasiak
1185b1c0bb Better removal of unused functions 2019-10-01 00:46:41 +02:00
Karol Stasiak
d1058b6223 ZX Spectrum Next CPU support 2019-10-01 00:46:15 +02:00
Karol Stasiak
f7dd78e4c0 Byte comparison optimizations 2019-10-01 00:45:14 +02:00
Karol Stasiak
5837c6fd7d Add custom segment layout support 2019-09-25 01:17:52 +02:00
Karol Stasiak
2a21dd8e2e Add debugging of constness 2019-09-25 01:17:23 +02:00
Karol Stasiak
2ff86889db Fix sign extension in arithmetic promotions again. 2019-09-24 17:37:06 +02:00
Karol Stasiak
35bf4ba790 Fix returning constant bools 2019-09-24 00:24:17 +02:00
Karol Stasiak
680e94c3b7 Add zx80, zx81 and iso15 encodings 2019-09-20 19:41:53 +02:00
Karol Stasiak
d38405f467 Fix signed constants and word-sbyte subtraction 2019-09-20 18:33:41 +02:00
Karol Stasiak
b74974dbdd Various tweaks for Lynx 2019-09-20 01:43:58 +02:00
Karol Stasiak
1d825a0c99 Fix parsing of zp_bytes 2019-09-18 01:03:13 +02:00
Karol Stasiak
c45cf7d51d Add KOI-7 N2 and MSX-BR encodings. Some encoding enhancements. 2019-09-18 00:09:37 +02:00
Karol Stasiak
b1e5176aff Allow larger nontrivial constants 2019-09-16 22:48:46 +02:00
Karol Stasiak
457472080f 6502: Improve inlining of functions with lots of parameters. 2019-09-16 21:32:57 +02:00
Karol Stasiak
fa7844e0b8 6502: Optimize ROL/ROR before AND 2019-09-16 21:31:53 +02:00
Karol Stasiak
635870585e Add unsigned 16-bit division 2019-09-15 19:47:19 +02:00
Karol Stasiak
a4f91eda03 6502: Fix arithmetic promotion bugs for function return values 2019-09-14 16:01:02 +02:00
Karol Stasiak
1d445ecdd1 Support sizeof on arrays. Preliminary Commander X16 support. 2019-09-14 03:37:24 +02:00
Karol Stasiak
6c4dc81c1b Add the -R option 2019-09-14 02:40:03 +02:00
Karol Stasiak
3ce2249399 Add 16-bit multiplication 2019-09-04 21:17:06 +02:00
Karol Stasiak
e449b67a4a Added encconv module. 2019-09-04 01:14:14 +02:00
Karol Stasiak
f3b5fe715c Fix alias resolution during unused code elimination 2019-09-04 01:00:16 +02:00
Karol Stasiak
32df01be76 Allocators should allocate even the last byte in the segment 2019-09-02 23:23:51 +02:00
Karol Stasiak
0be52821d9 Add the {nullchar} escape sequence 2019-09-02 23:23:23 +02:00
Karol Stasiak
1f8ece007b Add constants for segment bounds 2019-09-02 23:22:07 +02:00
Karol Stasiak
2159fc345f Allow defining custom segment fill 2019-08-16 17:53:03 +02:00
Karol Stasiak
d91b35468e Support non-decimal numbers in -D 2019-08-16 17:52:07 +02:00
Karol Stasiak
bcf403d269 Fix evaluation of constant expressions in assembly 2019-08-16 17:21:51 +02:00
Karol Stasiak
6b4236530d Change fatal error message. 2019-08-16 01:11:03 +02:00
Karol Stasiak
785eb0780b Fix cartridge targets 2019-08-16 01:09:03 +02:00
Karol Stasiak
1d530d896a 6809: Make some progress 2019-08-16 00:51:28 +02:00
Karol Stasiak
960d16fa18 Add nullchar constant, NULLCHAR feature, and vectrex encoding 2019-08-16 00:46:11 +02:00
Karol Stasiak
6b34ddf7f9 Some random stuff 2019-08-05 11:43:51 +02:00
Karol Stasiak
98553d56c0 Don't remove some important type casts 2019-08-04 17:16:01 +02:00
Karol Stasiak
127cd1b901 6502: Fix word multiplication by 0 2019-08-04 13:42:00 +02:00
Karol Stasiak
1a87929ad3 Fix TCO 2019-08-04 13:40:49 +02:00
Karol Stasiak
dfda9f9283 8080: Fix optimizations near ifs 2019-08-04 12:37:54 +02:00
Karol Stasiak
34254314a6 6502: Fix word division and byte multiplication 2019-08-04 00:05:35 +02:00
Karol Stasiak
f51f233571 Fix removing unused local variables 2019-08-03 20:46:01 +02:00
Karol Stasiak
dcbf54872b Fix various compiler crashes 2019-08-03 20:34:02 +02:00
Karol Stasiak
778d04ce21 6502: Fix sign extension when type casting 2019-08-03 20:33:49 +02:00
Karol Stasiak
d760683ea5 6502: Add tests for byte shifting 2019-08-03 20:33:15 +02:00
Karol Stasiak
515da587d8 6502: Fix stack overflow 2019-08-03 20:32:45 +02:00
Karol Stasiak
48220f739d 8080: Fix byte division and simplify byte multiplication 2019-08-03 20:32:26 +02:00
Karol Stasiak
9d78385cba 6502: Fix byte shifting 2019-08-03 20:31:27 +02:00
Karol Stasiak
10c76dcc9c Z80: Fix optimizations around multiplication 2019-08-03 16:42:40 +02:00
Karol Stasiak
9962a8344a 6502: Fix booleans 2019-08-02 00:17:24 +02:00
Karol Stasiak
bb63a73f15 Improve interprocedural optimizations 2019-08-01 19:11:35 +02:00
Karol Stasiak
35fbdcdbb1 6502: Fix compilation of some index expressions 2019-08-01 19:11:09 +02:00
Karol Stasiak
51da5ab2c0 6502: optimize bitops on words 2019-08-01 13:27:03 +02:00
Karol Stasiak
7ded8376d8 Better removal of unused local variables 2019-07-31 23:46:08 +02:00
Karol Stasiak
a1eef66e5c In case of overflows, dump stack 2019-07-31 23:36:22 +02:00
Karol Stasiak
31cbb3d42d Fix optimized struct assignments (again) 2019-07-31 23:36:08 +02:00
Karol Stasiak
5c5bfa3f00 6502: Allow comparing words on stack 2019-07-31 22:32:41 +02:00
Karol Stasiak
a3a168b90b Fix optimized struct assignments 2019-07-31 22:30:33 +02:00
Karol Stasiak
fe25978d14 6502: fix broken jump optimization 2019-07-31 22:30:04 +02:00
Karol Stasiak
0f9bb4fb56 Detect stack overflow during Z80 tests 2019-07-31 22:29:50 +02:00
Karol Stasiak
05c017e375 New encodings for MSX 2019-07-31 00:20:18 +02:00
Karol Stasiak
22b4776139 Enable pointers to functions with a word parameter (using trampolines on 6502) 2019-07-30 22:49:32 +02:00
Karol Stasiak
613ddcf9a4 Refactoring 2019-07-30 22:25:05 +02:00
Karol Stasiak
e2c8dad7a5 Fix 2019-07-30 15:36:18 +02:00
Karol Stasiak
251c6c5562 Assembly output should contain decoded text literals 2019-07-30 15:31:00 +02:00
Karol Stasiak
d3b72f5b42 Add petjp and petscrjp encodings. Allow lowercase letters in string literals on Apple II. 2019-07-30 15:10:29 +02:00
Karol Stasiak
943a56a30f 6502: Fix some cases of word additions; optimize bitmasking 2019-07-30 14:47:52 +02:00
Karol Stasiak
40b2e393da Another fix for PETSCII 2019-07-30 14:35:22 +02:00
Karol Stasiak
5c3637e2ea 6502: Optimize some word operations 2019-07-30 01:40:13 +02:00