Irmen de Jong
9f6106452e
revert & to untyped pointer, added && for typed pointer address-of
2025-07-07 16:17:07 +02:00
Irmen de Jong
08b314c37d
IR: fix various register type mismatches
2025-05-28 22:15:07 +02:00
Irmen de Jong
db6c887795
Merge branch 'master' into structs
...
# Conflicts:
# compiler/test/ast/TestVariousCompilerAst.kt
2025-05-21 00:27:45 +02:00
Irmen de Jong
cf7bea0985
cleanup RTS insertion and ast postprocessing before assembly generation
2025-05-21 00:19:50 +02:00
Irmen de Jong
50650b966b
repeat countervars again in zeropage if possible, fix pointer arithmetic error
2025-05-17 14:18:56 +02:00
Irmen de Jong
05dad5ab5f
cleanup 6502 pointer usage checks
2025-05-16 21:44:28 +02:00
Irmen de Jong
86eef7039f
@(..) now also accepts pointer to ubyte address
2025-05-15 20:07:02 +02:00
Irmen de Jong
d11386ef26
type check tuning
2025-05-04 23:23:21 +02:00
Irmen de Jong
40952a788a
PtSub: params and returns now as children (in PtSignature node) for easier Ast walking
...
PtPointerDeref: same but for its start identifier
2025-05-02 00:41:42 +02:00
Irmen de Jong
b920d553a0
make address-of dereference work
2025-05-02 00:41:42 +02:00
Irmen de Jong
5e2d0d0dfc
fix param order of AssignTarget
2025-05-02 00:41:42 +02:00
Irmen de Jong
e328520588
initial struct and typed pointer support
2025-05-02 00:41:40 +02:00
Irmen de Jong
8debc42381
slightly stricter assignment type compatibility checking
2025-04-24 15:05:35 +02:00
Irmen de Jong
d2cc7ccdfa
remove redundant variable=0 initializations (BSS clear takes care of them)
2025-04-23 14:45:38 +02:00
Irmen de Jong
5a7bc04816
update docs about library jump table
2025-04-19 13:49:03 +02:00
Irmen de Jong
3770a4fe0c
easier datatype notation by just using the type objects directly
2025-03-18 23:33:04 +01:00
Irmen de Jong
7668a3c660
use kotest tempdir instead of hardcoded output directory
2025-03-14 01:18:33 +01:00
Irmen de Jong
220ab773aa
fix asmgen error when assigning address of split word array without explicit adressof syntax
2025-03-06 23:20:42 +01:00
Irmen de Jong
e55ce5504e
added %option romable to enable romable mode, but only generate a bunch of warnings for problematic codegeneration atm
2025-02-20 23:40:44 +01:00
Irmen de Jong
49982b49b6
extracting neo and atari compiler targets into configuration files instead
2025-02-12 13:58:34 +01:00
Irmen de Jong
9e79722a7f
fix rangeexpression value type casting
2025-02-11 22:23:07 +01:00
Irmen de Jong
5b58e5b158
fix unit tests
2025-02-02 21:52:33 +01:00
Irmen de Jong
a106c88054
unit test for %output library, and docs.
2025-01-27 23:26:21 +01:00
Irmen de Jong
7a13f57ab0
enforce variable init values are only strings or arrays
2025-01-20 01:25:17 +01:00
Irmen de Jong
2ab2130000
renamed "intermediate AST" to "simplified AST"
2025-01-10 20:33:44 +01:00
Irmen de Jong
e5ff3c1ff3
fix compiler crash when using strings in if-expression. Remove harmless info message.
2025-01-06 01:34:42 +01:00
Irmen de Jong
37c2c1bf0b
support &, &< and &> on array elements from split word arrays, not just on the array as a whole
2024-12-30 00:00:31 +01:00
Irmen de Jong
056c0a24d9
better way of doing BIT instructions
2024-12-30 00:00:31 +01:00
Irmen de Jong
827df04b32
IR: BIT instruction added
2024-12-30 00:00:31 +01:00
Irmen de Jong
529ea5bf58
added coroutines library and multitasking example. Added sys.push_returnaddress().
2024-12-26 00:57:39 +01:00
Irmen de Jong
512ddd1694
cleanups
2024-12-20 22:59:20 +01:00
Irmen de Jong
02f3f5d0f5
@split is back to force splitting of word arrays
2024-12-16 14:51:32 +01:00
Irmen de Jong
80d88b3c61
fix many split array issues
2024-12-15 17:08:07 +01:00
Irmen de Jong
28c721fa7d
add a split-array version for word containment check
2024-12-15 13:45:47 +01:00
Irmen de Jong
8f799567cf
make word arrays split by default (w.i.p.)
2024-12-15 08:12:34 +01:00
Irmen de Jong
1a1ab0dac6
changed the data type system to composite types
2024-12-05 21:48:51 +01:00
Irmen de Jong
b4fb43bc80
fix the if not check in ir codegen
2024-11-18 22:33:47 +01:00
Irmen de Jong
84f5ffa426
fix generated labels prefix and filtering in the vice symbol dump file
2024-11-10 15:34:35 +01:00
Irmen de Jong
f89f1a84d0
@initonce variable tag to skip variable reinitialization
2024-11-08 19:03:48 +01:00
Irmen de Jong
b88f550c5b
todo
2024-11-07 00:48:13 +01:00
Irmen de Jong
9864abd393
romsub keyword is now extsub
2024-11-06 22:14:53 +01:00
Irmen de Jong
3b798097b9
added memtop to machine definition and asm source code check
...
added %memtop directive
2024-11-02 00:59:07 +01:00
Irmen de Jong
4b4af9b527
no longer silently add RTS to asmsubs that don't have one
2024-10-27 13:49:00 +01:00
Irmen de Jong
c9535049c8
%align directive and @align64
2024-10-26 20:58:35 +02:00
Irmen de Jong
1cd754f05d
adding @alignword/page on individual variables
2024-10-26 17:00:38 +02:00
Irmen de Jong
a0cf1889a3
omit more redundant 0-initializations ("stz's")
2024-10-17 22:51:39 +02:00
Irmen de Jong
ca5f7ae32f
global (block-level) variables that get initialized with an array index expression now get a constant value as well if possible. This reduces the number of instructions in the init globals code block
2024-10-16 02:14:19 +02:00
Irmen de Jong
e9edffa9f0
remove support for array-to-array assignments (other than initialization of variable declaration)
...
Just use an explicit sys.memcopy(src, dest, sizeof(dest)) or assign array members individually.
2024-10-13 20:02:43 +02:00
Irmen de Jong
aef211e5f3
stricter array literal element type handling (number,bool,address-of).
...
More consistent implicit address-of handling if array literals contain by-ref identifiers (such as subroutine names)
2024-10-13 17:46:41 +02:00
Irmen de Jong
66829203d8
New [x]*42 syntax to create array literals with repeated values (like "abc"*10 already exists for strings)
...
Should be used in place of array initializer expressions that contain only a single numeric value to initialize the whole array with. That isn't supported anymore.
2024-10-13 05:16:08 +02:00