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

972 Commits

Author SHA1 Message Date
Karol Stasiak
ceef57ed18 Change encodeOneChar to encodeDigit 2020-03-31 18:48:11 +02:00
Karol Stasiak
742fc50ccc Don't used str2word as scrstr2word when the string terminator matches, but digits don't 2020-03-31 17:58:46 +02:00
Karol Stasiak
63ff28e94e Changes to macros and parameter list syntax:
* non-asm macros can now take `const` and `call` parameters
* register parameters to asm functions and macros can be given names if annotated explicitly
2020-03-30 19:23:48 +02:00
Karol Stasiak
5cdc599b1d Avoid overflow errors when estimating memset sizes 2020-03-29 01:45:31 +01:00
Karol Stasiak
5dd3e91c2d 6502: correctly optimize code before BIT instructions 2020-03-29 01:45:02 +01:00
Karol Stasiak
dfe33c9b7a 6502: Pointers should have priority when allocating to the zeropage 2020-03-26 18:52:46 +01:00
Karol Stasiak
78070c115f Some tests that would have prevented few latest commits 2020-03-26 01:47:26 +01:00
Karol Stasiak
59882cf765 6502: Fix zp allocation 2020-03-26 01:38:54 +01:00
Karol Stasiak
2a3c9f04be Fix >32bit constants 2020-03-26 01:36:41 +01:00
Karol Stasiak
5215400cb2 Fix lookup 2020-03-26 01:36:15 +01:00
Karol Stasiak
9bc4bb949e Correctly compile assembly functions using all three registers as separate parameters 2020-03-26 01:35:44 +01:00
Karol Stasiak
842393106e Remove debugging statements 2020-03-26 01:29:26 +01:00
Karol Stasiak
3187ed155e Add signed16 and unsigned16 types 2020-03-25 23:53:26 +01:00
Karol Stasiak
b8e5e71c19 Improve performance of typing expressions 2020-03-25 23:51:53 +01:00
Karol Stasiak
e3d5ce4e81 Fix const functions of the form if c {return x} return y 2020-03-25 23:51:04 +01:00
Karol Stasiak
475496c137 Improvements to constant evaluation 2020-03-25 23:50:06 +01:00
Karol Stasiak
d478f3504f Const-pure functions 2020-03-19 23:53:16 +01:00
Karol Stasiak
5acf92d4e8 Fix test 2020-03-19 21:25:08 +01:00
Karol Stasiak
769f31717d 6502: Detect pointer variables that have to be in the zeropage more accurately 2020-03-19 20:00:28 +01:00
Karol Stasiak
85030d3147 Added constant-only functions min, max, if. Improved handling of constant-only functions. 2020-03-19 19:43:24 +01:00
Karol Stasiak
9cd1e47a37 6502: Fix optimization bug 2020-03-19 18:58:49 +01:00
Karol Stasiak
17e660a2f6 Report lines with invalid short branches 2020-03-17 21:46:43 +01:00
Karol Stasiak
2eb8ef53ca Put almost all warnings behind internal flags 2020-03-17 21:08:43 +01:00
Karol Stasiak
7939b0f2c1 Optimize commutative in-place modifications using arrays and pointers 2020-03-17 12:20:55 +01:00
Karol Stasiak
128dabba3f Reorganize optimizations a bit 2020-03-17 12:20:16 +01:00
Karol Stasiak
a527eea0fc Add more binary operators for constants in assembly 2020-03-17 02:03:44 +01:00
Karol Stasiak
748aa0cf19 Assembly statements should track their source location 2020-03-17 01:59:40 +01:00
Karol Stasiak
ec8f2e6a1c Add warnings for calling from one segment to another overlapping one (#42) and -Wnone flag 2020-03-16 00:03:01 +01:00
Karol Stasiak
83b85ef0fc Support breakpoints in the label file (#44) 2020-03-16 00:01:04 +01:00
Karol Stasiak
f57ecc9800 Improve and optimize memset (see #47) 2020-03-15 01:06:09 +01:00
Karol Stasiak
9f128d3c35 Remove debugging code 2020-03-15 01:04:21 +01:00
Karol Stasiak
24870ae62e Detect obviously overflowing constants 2020-03-15 01:01:08 +01:00
Karol Stasiak
21ffbfc466 Extra optimization pass over non-inlined functions (implements #43) 2020-02-27 01:33:34 +01:00
Karol Stasiak
6e65cd1902 Better error messages when failing to parse array definitions (fixes #45) 2020-02-12 01:07:14 +01:00
Karol Stasiak
259d871786 Improve syntax error reporting in tests 2020-02-12 01:06:31 +01:00
Karol Stasiak
63d4bf2317 6502 Fix an optimization bug with the carry flag (fixes #46) 2020-02-11 01:10:49 +01:00
Karol Stasiak
8b6e89f9a4 Various improvements for macros (fixes #39 and pertains to #40) 2020-02-02 23:25:06 +01:00
Karol Stasiak
5c40d581c0 6502: Fix optimization bug (fixes #41) and add more optimizations involving ARR 2020-01-24 02:19:04 +01:00
Karol Stasiak
d6fd1e8b77 6809: Improve booleans 2020-01-24 02:16:19 +01:00
Karol Stasiak
f247516187 6502: Fix fatal failure when considering undocumented optimizations (fixes #38) 2020-01-18 22:06:50 +01:00
Karol Stasiak
6774c283ae 6502: Add KIL instruction (fixes #37) 2020-01-18 00:09:06 +01:00
Karol Stasiak
7672ba008d 6502: Add missing instructions SHX and LAS 2020-01-18 00:08:02 +01:00
Karol Stasiak
09359235c7 Add immediate addressing mode for short branches and BRK to support some ugly tricks 2020-01-18 00:07:26 +01:00
Karol Stasiak
b3fba658dd Use zeropage indexed adressing when possible 2020-01-18 00:06:20 +01:00
Karol Stasiak
921a59bdad More tests 2020-01-17 23:29:39 +01:00
Karol Stasiak
49bf0d2777 6502: Correctly inlie variables that happen to be returned (fixes #32) 2020-01-11 22:20:02 +01:00
Karol Stasiak
0333b339ca Allow omitting length in file array initalizers (fixes #35) 2020-01-10 18:37:49 +01:00
Karol Stasiak
df1d5421be Do not allocate variables on top of fixed-address vairables and arrays (fixes #26) 2020-01-03 23:09:20 +01:00
Karol Stasiak
6e36166af2 Never remove or inline volatile variables (fixes #27) 2020-01-03 21:28:10 +01:00
Karol Stasiak
b9cdd0ffff Fix for output directory creation (#21) 2020-01-03 16:13:54 +01:00
Karol Stasiak
b421dbba4f Create output directories if needed; implements #21 2020-01-03 15:01:55 +01:00
Karol Stasiak
e69b7084bc Allow complex word-sized LHS for most compound operators, implementing #24 2020-01-03 14:52:35 +01:00
Karol Stasiak
69c82d90a8 6502: Allow assigning between two statically allocated pointers; fixes #25 2019-12-30 14:28:37 +01:00
Karol Stasiak
709d3d0fcd 6502: Correctly assign true view pointies; fixes #28 2019-12-30 14:25:46 +01:00
Karol Stasiak
b2dd4eadd4 Start work on supporting member arrays 2019-12-30 11:50:18 +01:00
Karol Stasiak
f8fc001971 6809: Enable and fix more tests 2019-12-15 23:48:22 +01:00
Karol Stasiak
f39fd67a89 6809: Implement more things 2019-12-15 23:48:02 +01:00
Karol Stasiak
6cd639a23a 6809: Fix LBRA 2019-12-15 23:47:01 +01:00
Karol Stasiak
769453418c 8080: Optimization bugfix 2019-12-01 03:38:19 +01:00
Karol Stasiak
7be5b14a7d Optimize loads of the same value that was just checked to be in a register 2019-12-01 03:11:30 +01:00
Karol Stasiak
3b7ceb3900 Make subroutine extraction usable 2019-12-01 02:39:05 +01:00
Karol Stasiak
4e04725f93 Fix stack overflow 2019-12-01 01:51:17 +01:00
Karol Stasiak
59784ad5f1 HuC6280: Full assembly support 2019-11-24 01:30:30 +01:00
Karol Stasiak
7f6a2beb6d Fix compilation problems when targeting a specific 65C02 subarch (fixes #20) 2019-11-13 22:36:19 +01:00
Karol Stasiak
7b040c280b (part 2) 6502: Do not optimize away register restoration in interrupt routines (fixes #19) 2019-11-13 19:08:50 +01:00
Karol Stasiak
b10d8d7eeb 6502: Do not optimize away register restoration in interrupt routines (fixes #19) 2019-11-13 19:04:37 +01:00
Karol Stasiak
e2b7b28b63 8080: Optimize function parameters to registers 2019-11-13 18:39:51 +01:00
Karol Stasiak
3b78206c35 Fix errors about invalid function flags 2019-11-13 18:39:27 +01:00
Karol Stasiak
113befeb36 8080: Add one minor optimization 2019-11-12 13:50:12 +01:00
Karol Stasiak
d634e24e92 More granular differentiation of various 65C02 variants; HuC6280 improvements 2019-11-04 14:28:36 +01:00
Karol Stasiak
088688122e #6 Improve semicolon comment parsing 2019-11-04 14:26:01 +01:00
Karol Stasiak
b48783ee4f Add a testcase for future optimization 2019-11-04 11:20:56 +01:00
Karol Stasiak
f10ec698ef Change string terminators for petscr and atasciiscr (related to #17) 2019-11-04 02:38:07 +01:00
Karol Stasiak
d906d8aab4 Allow comments after #endif and #else 2019-11-04 02:29:44 +01:00
Karol Stasiak
4abfab41df Fix escape sequences 2019-11-04 02:28:31 +01:00
Karol Stasiak
798c49fd34 Add strz_from_screencode, strz_to_screencode, ENCCONV_SUPPORTED 2019-11-04 02:28:12 +01:00
Karol Stasiak
3a0bc0f15e Add unsigned types 2019-11-03 23:33:41 +01:00
Karol Stasiak
68fcf8f2d7 Undo the sizeof change for now 2019-11-03 23:17:44 +01:00
Karol Stasiak
38e4dd14a6 Fix tests 2019-11-03 22:59:10 +01:00
Karol Stasiak
802cd7d86a Conversions from bool to byte 2019-11-03 22:26:41 +01:00
Karol Stasiak
590db9ade0 Change type of sizeof to word. Improve type checker. 2019-11-03 22:26:19 +01:00
Karol Stasiak
ec52963b46 Fix literals 2019-11-03 22:25:08 +01:00
Karol Stasiak
ffe79a214d Add nullchar_src, NULLCHAR_SCR and NULLCHAR_SAME (relates to #17) 2019-10-31 12:20:42 +01:00
Karol Stasiak
12df1ef6e4 Make less compilation errors fatal, improve error reporting (relates to #16) 2019-10-31 12:14:52 +01:00
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
Karol Stasiak
b68e4b67c8 Better support for big-endian systems 2019-07-29 22:51:08 +02:00
Karol Stasiak
dd4cb17a80 _.length and _.lastindex for arrays 2019-07-29 22:50:26 +02:00
Karol Stasiak
5fb6efbd61 Change PETSCII encoding to match CC65 and readkey 2019-07-29 02:07:30 +02:00
Karol Stasiak
cb0718b433 6809: First bits of the code generator 2019-07-29 00:55:24 +02:00
Karol Stasiak
b2afddf05b More output operators 2019-07-28 17:49:20 +02:00
Karol Stasiak
8922beda00 Allow text literals in more positions 2019-07-27 01:38:06 +02:00
Karol Stasiak
35ba36ce11 Function pointers – initial version 2019-07-27 00:58:10 +02:00
Karol Stasiak
be9d27e2ee Use standard logging during deduplication 2019-07-27 00:39:07 +02:00
Karol Stasiak
3aac33b54f Add the bool type. Few boolean-related bugfixes. 2019-07-26 19:02:32 +02:00
Karol Stasiak
c8ca48a6b0 Better documentation for in-place modification operators 2019-07-26 18:56:24 +02:00
Karol Stasiak
96850d295d Disallow calls to main when using software stack 2019-07-26 14:56:44 +02:00
Karol Stasiak
8d4e7b9326 Assignments of large objects accessed through pointers 2019-07-26 14:49:06 +02:00
Karol Stasiak
adc93aeb74 Z80: Fix optimizations near stack variables 2019-07-26 14:15:35 +02:00
Karol Stasiak
4b25ce2d8c Pointers to fields of array elements 2019-07-24 00:14:27 +02:00
Karol Stasiak
b873030b29 6502: More optimizations 2019-07-23 23:17:03 +02:00
Karol Stasiak
a25f6ca3f6 6502: Fix optimizations involving the zeropage pseudoregister 2019-07-23 23:16:37 +02:00
Karol Stasiak
45c137e2c0 6502: more possible comparisons for 16-bit words 2019-07-19 15:48:08 +02:00
Karol Stasiak
ed6d96f3f5 Fix for-downto 2019-07-19 15:47:46 +02:00
Karol Stasiak
49d176fb3c Extra message if a constant is not yet constant 2019-07-19 15:47:36 +02:00
Karol Stasiak
07a29643a8 Fix text literals as expressions 2019-07-19 15:47:19 +02:00
Karol Stasiak
12d32594d1 Allow a line break after an operator 2019-07-19 15:46:19 +02:00
Karol Stasiak
09f5ab269d 6502: fix invalid short jumps 2019-07-19 15:45:57 +02:00
Karol Stasiak
20f4baf2b2 Allow setting segments for multiple declarations at once 2019-07-17 20:51:34 +02:00
Karol Stasiak
8d8859b55f Be more helpful for C users 2019-07-17 20:49:36 +02:00
Karol Stasiak
11825c43e1 Check if all segment exist right after parsing 2019-07-17 20:48:31 +02:00
Karol Stasiak
1d024eae76 Add LITTLE_ENDIAN and BIG_ENDIAN features 2019-07-15 14:15:38 +02:00
Karol Stasiak
e0cd000b99 Documentation tweaks 2019-07-15 14:15:05 +02:00
Karol Stasiak
f3dcfc78ba Dijkstra wept 2019-07-15 02:06:23 +02:00
Karol Stasiak
98f35937e3 Improve text encodings on Atari 2019-07-12 13:29:59 +02:00
Karol Stasiak
6d499f3623 Arrays with elements larger than one byte 2019-07-10 16:51:12 +02:00
Karol Stasiak
a29b2a994b Improve passing of register parameters to assembly functions 2019-07-09 22:40:14 +02:00
Karol Stasiak
c5135423f8 Fix: don't swap BC and DE if jumping outside the function 2019-07-09 22:39:57 +02:00
Karol Stasiak
7766ba932b Fix variable coercing 2019-07-09 22:39:20 +02:00
Karol Stasiak
62f79388bd Slowly move towards removing the farword alias 2019-07-09 22:03:53 +02:00
Karol Stasiak
4ab45aba2e 8080: Fix certain bulk array operations 2019-07-09 21:59:02 +02:00
Karol Stasiak
8a5672c2dc Allow declaring multiple variables in one line 2019-07-08 19:24:11 +02:00
Karol Stasiak
769f410767 Fix detection of local duplicate names 2019-07-08 19:10:21 +02:00
Karol Stasiak
56c1ab008d 6502: optimize special cases of bulk memory modifications 2019-07-08 19:02:42 +02:00
Karol Stasiak
d64d0b5f96 6502: Fix expressions like p[i] <<= 1 2019-07-08 18:51:49 +02:00
Karol Stasiak
767f0da703 Placeholder for future expansion 2019-07-08 09:26:51 +02:00
Karol Stasiak
1e4b5acfba Fix some edge cases with large variables 2019-06-29 16:22:27 +02:00
Karol Stasiak
8af2cb6da2 6502: Make zeropage registers more detectable by the optimizer 2019-06-29 00:08:12 +02:00
Karol Stasiak
bcb2e362b2 Restrict subroutine extraction to make exponential runtime less likely 2019-06-29 00:07:32 +02:00
Karol Stasiak
3e0dad4cb0 Few more optimizations 2019-06-28 23:19:58 +02:00
Karol Stasiak
e1b2b7f2c9 Let's hope this doesn't break anything 2019-06-28 21:45:12 +02:00
Karol Stasiak
13c23c1bd1 Java 11 compatibility 2019-06-28 17:54:08 +02:00
Karol Stasiak
0af9bc4696 Better error reporting in arithmetic tests 2019-06-28 17:53:42 +02:00
Karol Stasiak
39b07a8bae Fix init_rw_memory on Atari 2600 2019-06-28 16:44:41 +02:00
Karol Stasiak
674f8d1983 Allow initializing writable variables on cartridge targets 2019-06-28 16:28:49 +02:00
Karol Stasiak
3d68d4f990 mapValues is lazy what the fuck 2019-06-28 16:24:49 +02:00
Karol Stasiak
4d59edbe51 6502: Better error messages 2019-06-28 16:23:24 +02:00
Karol Stasiak
7d051eb5e0 Don't modify macro invocations 2019-06-27 00:50:21 +02:00
Karol Stasiak
efe69eb5a9 Fix performance regressions and some bugs 2019-06-27 00:18:05 +02:00
Karol Stasiak
261486b3cd Don't enable -fsubroutine-extraction when using -Os or -Of 2019-06-26 19:07:25 +02:00
Karol Stasiak
14d6cf4d5c Fix stack overflow 2019-06-26 19:06:45 +02:00
Karol Stasiak
51599c9615 Allow defining free zeropage bytes instead of pointers 2019-06-26 18:33:59 +02:00
Karol Stasiak
c580ba33ea Fix nested #ifs 2019-06-26 18:31:45 +02:00
Karol Stasiak
c9a65d5971 Added #define directive 2019-06-26 13:43:15 +02:00
Karol Stasiak
22cdd1c768 Z80: Fix stack variable optimizations when addresses of stack variables are taken (2) 2019-06-26 10:46:59 +02:00
Karol Stasiak
afa871abcf Z80: Fix stack variable optimizations when addresses of stack variables are taken 2019-06-26 02:11:53 +02:00
Karol Stasiak
a3b21c4810 8080: Use pointers instead of indexing when traversing an array in a loop 2019-06-26 01:56:32 +02:00
Karol Stasiak
8304650b3e 6502: Fix summing for-loops 2019-06-26 01:47:43 +02:00
Karol Stasiak
6cf746045f 8080/Z80: More optimizations 2019-06-26 01:47:03 +02:00
Karol Stasiak
507791bcaf Fix stack overflow 2019-06-26 01:46:31 +02:00
Karol Stasiak
f90d6afc43 8080: Fixed inlining of byte-sized variables into registers 2019-06-26 01:45:34 +02:00
Karol Stasiak
2282e56845 6502: Faster summing for-loops 2019-06-25 18:23:31 +02:00