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

185 Commits

Author SHA1 Message Date
Karol Stasiak
d8c11a9c50 Minor optimizations 2023-02-03 14:46:01 +01:00
Karol Stasiak
f4d2fdd370 6502: use identity page for maths 2023-01-27 18:14:50 +01:00
Karol Stasiak
34ef8b8de9 Better evaluation of the if function in constants 2021-11-12 02:44:20 +01:00
Karol Stasiak
f676e74e38 Macro improvements:
– allow local constants in macros
– allow untyped macro parameters with void
– treat the name of a function as a pointer to it
– add this.function local alias (#118)
2021-11-12 02:10:07 +01:00
Karol Stasiak
73a223b9b6 Add support for Mesen label file format by tracking file-relative positions of segments (#128) 2021-11-03 21:48:45 +01:00
Karol Stasiak
c9ef5e636b Add raw label file format 2021-09-21 00:09:59 +02:00
Karol Stasiak
7530b382a8 Fix array fields in certain contexts 2021-09-17 22:19:39 +02:00
Karol Stasiak
90e5360bfd Related to #119:
– Detection of simple byte overflow cases.
– Optimization of 8×8→16 multiplication on 6809.
– Multiplication optimizations on Z80.
2021-08-06 21:01:03 +02:00
Karol Stasiak
431a25d325 Internal support for pointers to volatile objects; add volatile fields (closes #112) 2021-06-21 14:20:24 +02:00
Karol Stasiak
73beafd65e Support for expressions in file() (fixes #114) 2021-06-21 14:18:17 +02:00
Karol Stasiak
062483971a Fix #107 (syntax errors in stdlib, overpanicky statement preprocessor) 2021-03-20 01:23:51 +01:00
Karol Stasiak
1e4a193741 Optimization hints 2021-03-15 00:44:14 +01:00
Karol Stasiak
196ad6542f Allow refering to labels from other functions in assembly (fixes #101) 2021-02-24 02:32:00 +01:00
Karol Stasiak
521b73d0d3 Array fields for structs and unions (see #87) 2021-02-22 23:23:00 +01:00
Karol Stasiak
25adb05229 Fix typeof 2021-02-18 01:29:27 +01:00
Karol Stasiak
d20cc677bb The typeof builtin function 2021-02-18 00:38:30 +01:00
Karol Stasiak
32b98750a9 Warn about non-volatile spinlocks (see #95) 2021-02-03 09:46:09 +01:00
Karol Stasiak
c1959b356f Make all constants referring to segments match their equivalents from the platform definition (see #87) 2021-01-13 19:55:11 +01:00
Karol Stasiak
499e650752 Define and document more magic suffixes and constants (see #87) 2021-01-13 19:35:11 +01:00
Karol Stasiak
b2d2c3e005 Don't emit labels that are not necessary; fix the __heap_start symbol. 2020-11-18 23:08:45 +01:00
Karol Stasiak
dc087ed887 Better error messages for arays without sizes 2020-11-18 23:08:09 +01:00
Karol Stasiak
97c7d0ffed Basic groundwork for optimization hint support 2020-11-18 22:37:58 +01:00
Karol Stasiak
385b2fd40b Fix function pointers (fixes #86) 2020-11-18 09:34:02 +01:00
Karol Stasiak
fc7643c416 Interrupt handler pointer types 2020-11-11 00:28:21 +01:00
Karol Stasiak
c0eae29a41 Minor compilation speed optimization 2020-09-21 00:15:16 +02:00
Karol Stasiak
615a0d7dc1 Interrupt functions in assembly should not have prologue (fixes #62) 2020-09-09 01:46:34 +02:00
Karol Stasiak
5e46e8ade9 Fix alignment of substructures 2020-09-02 00:44:24 +02:00
Karol Stasiak
e09db3d132 Local labels in assembly 2020-09-01 22:00:07 +02:00
Karol Stasiak
49816d18fe Fix volatile 2020-08-14 22:28:31 +02:00
Karol Stasiak
7c4fb50808 Hardcode some more typo hints for things from other programming languages 2020-07-31 17:07:25 +02:00
Karol Stasiak
2905e99521 Support local labels in macros for all instructions 2020-07-31 13:29:48 +02:00
Karol Stasiak
d7f2b0688f Improved error reporting for constants used before definition 2020-07-31 01:53:58 +02:00
Karol Stasiak
d5367cc1fe for loops over arrays 2020-07-24 19:12:19 +02:00
Karol Stasiak
000aede8db Do not remove constants used only as array sizes (#51) 2020-07-19 23:34:14 +02:00
Karol Stasiak
a2c49a1f89 Add manual type alignment. 6502: Optimize multiplications by constants. 2020-07-18 01:15:33 +02:00
Karol Stasiak
31a8504195 Fix raw views of typed pointers 2020-07-18 01:11:20 +02:00
Karol Stasiak
a22571f60b 6809: tons of improvements:
* stack variables
* large comparisons
* pointer optimizations
* fixed constant evaluation
2020-07-09 01:50:18 +02:00
Karol Stasiak
b0577270d5 6809: various assembly fixes 2020-06-09 21:43:04 +02:00
Karol Stasiak
655edc35ff Allow sizeof in assembly 2020-05-01 15:18:48 +02:00
Karol Stasiak
78346af2ef 8080: Some minor improvements 2020-04-06 11:35:14 +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
dfe33c9b7a 6502: Pointers should have priority when allocating to the zeropage 2020-03-26 18:52:46 +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
3187ed155e Add signed16 and unsigned16 types 2020-03-25 23:53:26 +01:00
Karol Stasiak
d478f3504f Const-pure functions 2020-03-19 23:53:16 +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
2eb8ef53ca Put almost all warnings behind internal flags 2020-03-17 21:08:43 +01:00