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