Irmen de Jong
5af6afef61
step 3 to allow for loop 'step' to be variable not only const: 6502 codegen
2026-08-11 05:29:55 +02:00
Irmen de Jong
4506a3cb3e
pass compilation target to more places to be able to determine correct types
2026-07-12 03:52:57 +02:00
Irmen de Jong
8a7922ffcc
fix split words arrays on m68k to be not split
2026-07-10 01:47:18 +02:00
Irmen de Jong
58363ff4e4
Add required support for inlined asmsub routines in IR and new codegen
2026-06-30 03:17:19 +02:00
Irmen de Jong
55ea599fca
Remove hardcoded external KERNAL entry points in codegen
2026-06-29 04:43:24 +02:00
Irmen de Jong
69261c51b3
IR: Add single-bit manipulation opcodes (BITTST, BITSET, BITCLR, BITTOG)
2026-06-16 21:52:31 +02:00
Irmen de Jong
98355d3850
avoid shouldContain asserts on large strings in tests to avoid massive log dumps
2026-06-12 02:48:41 +02:00
Irmen de Jong
4f36a6958c
fix a few if-expression typecast issues
2026-05-28 00:55:15 +02:00
Irmen de Jong
7c44835772
const folding is always done even when -noopt is used
2026-05-15 12:22:52 +02:00
Irmen de Jong
96f0d112d2
fix problem where no efficient code was generated anymore for pointer+index
2026-05-02 02:14:18 +02:00
Irmen de Jong
1c376aa9d1
fix some 6502 code gen regressions
2026-04-26 00:18:28 +02:00
Irmen de Jong
2bf5d1406d
make cx16/starszoom example fill the whole screen, and rotate
2026-04-22 19:52:11 +02:00
Irmen de Jong
4fb3df977e
fix correct evaluation of floats in multi-value returns
2026-04-07 05:41:27 +02:00
Irmen de Jong
9f742e1806
6502 codegen: handle floats as part of multi-value result
2026-04-07 04:50:23 +02:00
Irmen de Jong
aca6c22098
IR codegen: handle floats as part of multi-value result
2026-04-07 04:31:17 +02:00
Irmen de Jong
7666b72fea
implement missing codegen for returning multivalue result of a subroutine call
2026-03-28 23:38:52 +01:00
Irmen de Jong
652da4c692
fix some (not all) problems with directly returning multivalue returncalls
2026-03-15 22:33:17 +01:00
Irmen de Jong
9736ac19d1
implementing multiple return values for builtin functions
2026-02-22 19:54:21 +01:00
Irmen de Jong
093be9f2dd
sys.push(), sys.pop() etc etc are now builtin functions again push() pop() to avoid storing value in temporary variables
...
this means that all of the syslib.p8 library files no longer contain all those stack related asmsubs
2026-02-21 02:11:34 +01:00
Irmen de Jong
78d6d2d59a
breaking change: renamed R0R1_32 etc combined register parameters to just R0R1, R2R3, etc etc (_32 suffix is removed to make it more consistent with the other existing register names)
2026-01-07 21:56:16 +01:00
Irmen de Jong
71b66f506d
fix asmsub register order crash when using longs + something else
2025-12-28 01:08:10 +01:00
Irmen de Jong
e57d9f59a2
fix long 0 argument to asmsub with 32-bits combined virtual register to pass it in
2025-12-21 22:23:17 +01:00
Irmen de Jong
b38fff76e9
hack to work around struct name prefix inconsistency
...
see github issue 198
2025-12-03 21:07:08 +01:00
Irmen de Jong
f4f34fc2ed
added symboltable into CompilationResult because it might be useful to inspect in tests
2025-10-07 00:26:43 +02:00
Irmen de Jong
08b314c37d
IR: fix various register type mismatches
2025-05-28 22:15:07 +02:00
Irmen de Jong
86eef7039f
@(..) now also accepts pointer to ubyte address
2025-05-15 20:07:02 +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
7668a3c660
use kotest tempdir instead of hardcoded output directory
2025-03-14 01:18:33 +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
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
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
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
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
4b4af9b527
no longer silently add RTS to asmsubs that don't have one
2024-10-27 13:49:00 +01:00
Irmen de Jong
d1ddf05e38
check that block address leaves room for program startup logic
2024-10-03 22:30:06 +02:00
Irmen de Jong
4e98fb75d6
support assigning multiple return flags from asmsub in 6502 codegen
2024-09-09 22:56:40 +02:00
Irmen de Jong
29dd758302
Fix compiler crash in for loops with just 1 iteration
2024-09-05 21:26:46 +02:00
Irmen de Jong
d12b7ccc6b
fix syslib importing for raw outputs. fixes #144
2024-08-19 13:33:02 +02:00
Irmen de Jong
c9a4235669
update to kotlin 2.0, fix several code style issues
2024-06-04 01:00:46 +02:00
Irmen de Jong
f40b7b62bb
updated unit tests and some basic changes for them
2024-03-02 23:19:20 +01:00
Irmen de Jong
f8084e7955
fix const replacement optimization error on memory mapped variable
2024-01-07 18:48:18 +01:00
Irmen de Jong
09c6cb4d6b
replace unwritten vars by consts. Improved const eval.
...
Fixed some slight bugs in library code
2023-12-28 05:17:15 +01:00
Irmen de Jong
0d44492086
push,pushw,pop and popw are no longer built-in functions but regular routines in sys
2023-12-26 14:47:31 +01:00
Irmen de Jong
6bc079c7b7
more asm symbol prefixing: variables with p8v_, subroutines with p8s_ etc
...
labels with p8l_ . All this to avoid symbol clashes in the generated assembly code.
Everything got its own distinguishing prefix so we're done with it once and for all and have only 1 breaking change moment.
2023-12-20 22:20:59 +01:00
Irmen de Jong
299419917e
added symbol ambiguity error (variable vs block name for scoped symbols)
...
fixes #114
2023-12-20 00:28:15 +01:00
Irmen de Jong
7e3b8c2c59
fix compiler crash on certain subroutine inlining attempts.
2023-11-09 21:16:12 +01:00