1
0
mirror of https://github.com/KarolS/millfork.git synced 2026-04-20 03:16:45 +00:00
Commit Graph

825 Commits

Author SHA1 Message Date
Karol Stasiak 5df695f2c2 Add support for Pascal-style strings 2020-04-04 00:45:09 +02:00
Karol Stasiak 7ce088514f 6502: Fix and optimize sign extension 2020-04-02 00:22:15 +02:00
Karol Stasiak 80018a55b4 Allow different output formats for different segments 2020-03-31 19:01:29 +02:00
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