381 Commits

Author SHA1 Message Date
Irmen de Jong
10b9162dc5 improving fileselector 2024-12-30 21:34:03 +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
c8996418da ir: tweak register pool, prepare to register the types there uniquely 2024-12-30 00:00:31 +01:00
Irmen de Jong
76b29aa629 fixed register reuse and types on syscall interface 2024-12-30 00:00:31 +01:00
Irmen de Jong
f42e12bc13 ir: fix more register typing errors 2024-12-30 00:00:31 +01:00
Irmen de Jong
427451a23f ir: remove remaining SL* opcodes 2024-12-30 00:00:31 +01:00
Irmen de Jong
af7930d494 ir: remove SL* opcodes 2024-12-30 00:00:31 +01:00
Irmen de Jong
e2882d37bf ir: remove a bunch of strange in-place assignment operators, and problematic opcodes 2024-12-30 00:00:31 +01:00
Irmen de Jong
942d3ee640 ir: improve register type detection 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
e174b31344 IR: fix up missing indirect goto codegen 2024-12-30 00:00:31 +01:00
Irmen de Jong
49959af752 IR: support %align in code chunks, and load/store FAC0/FAC1 2024-12-30 00:00:31 +01:00
Irmen de Jong
fe011de934 fix the missing cases in certain expressions that need the address of a split word array 2024-12-25 16:55:07 +01:00
Irmen de Jong
3850e1dbb5 Merge branch 'better-ir' 2024-12-24 21:23:57 +01:00
Irmen de Jong
5071da6784 retain constants in IR
some IR related cleanups
2024-12-24 00:30:08 +01:00
Irmen de Jong
2727a4dcb3 tweak DataType class and memsizer related to subtypes/elementtypes 2024-12-23 17:28:25 +01:00
Irmen de Jong
512ddd1694 cleanups 2024-12-20 22:59:20 +01:00
Irmen de Jong
ef4efcb112 cleanup 2024-12-19 21:06:51 +01:00
Irmen de Jong
3804fba0f1 moved jdk version config back to main gradle build file, version consistency 2024-12-19 13:39:27 +01:00
Irmen de Jong
f93b7e3303 changed IR JUMPI instruction to support more indirect jump cases 2024-12-19 04:29:16 +01:00
Irmen de Jong
7c79cdbd2f fix symbol prefixing on goto with expression
added coroutines example
2024-12-17 16:16:38 +01:00
Irmen de Jong
e7a0cb636c add $< and $> operators to get the lsb and msb addresses of a @split array respectively.
document the new split array things.
2024-12-16 17:45:54 +01:00
Irmen de Jong
8644a4ae91 more split array fixes 2024-12-15 22:54:06 +01:00
Irmen de Jong
80d88b3c61 fix many split array issues 2024-12-15 17:08:07 +01:00
Irmen de Jong
9e8cc8b54d goto can now accept any expression as address (instead of just a constant), and ofcourse a label name still. 2024-12-15 05:22:37 +01:00
Irmen de Jong
cc59069876 allow goto to take any expression, not only an integer or an identifier (part 1) 2024-12-14 01:01:32 +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
55dbd095ed fix IR codegen missing a CMPI after if not condition
fix IR codegen for containmentcheck
2024-12-02 03:06:06 +01:00
Irmen de Jong
31ad8bdd8d remove bankof(), documented msw() and lsw() 2024-12-01 21:24:26 +01:00
Irmen de Jong
181f3e9eb1 remove the unary/prefix operators ^ and << again 2024-12-01 20:50:33 +01:00
Irmen de Jong
189399d5f8 update to kotlin 2.1.0 2024-11-28 03:49:07 +01:00
Irmen de Jong
2e35f3c3a3 code check cleanups 2024-11-24 16:14:22 +01:00
Irmen de Jong
5c6bd9c091 register params support for normal subroutines 2024-11-24 15:56:54 +01:00
Irmen de Jong
cc53d698bf added msw() and lsw() builtin functions (experimental) 2024-11-24 03:53:37 +01:00
Irmen de Jong
cb86206698 added unary ^ and << operators (experimental) (gets bank and address of a long integer) 2024-11-24 03:07:18 +01:00
Irmen de Jong
d77b1944fb rename bnk() to bankof() 2024-11-24 00:53:09 +01:00
Irmen de Jong
5c09dc10ae convert build.gradle to build.gradle.kts (kotlin DSL) 2024-11-20 23:23:26 +01:00
Irmen de Jong
ae0cadb383 added bnk() builtin function 2024-11-20 23:23:21 +01:00
Irmen de Jong
d78ce77536 improve vm error message when referencing a block name 2024-11-19 20:57:58 +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
4f9693055e fix compiler crash when extsub has both FAC1 and FAC2 float parameters 2024-11-11 20:48:25 +01:00
Irmen de Jong
bf98ceca2c make repeat support 65536 iterations 2024-11-11 01:58:27 +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
9864abd393 romsub keyword is now extsub 2024-11-06 22:14:53 +01:00
Irmen de Jong
c702c4a6df internal rename of romsub to extsub 2024-11-06 21:42:16 +01:00
Irmen de Jong
77e376f6bf romsub @bank now also accepts a variable so the bank can be dynamic 2024-11-06 00:02:36 +01:00
Irmen de Jong
85e87dfe2e consolidate @rombank and @rambank into just @bank 2024-11-03 21:15:11 +01:00
Irmen de Jong
155896c4c7 added @rombank and @rambank bank number tags on romsubs
on cx16 and c128 targets the compiler then automatically inserts a CALLFAR instead of a regular JSR to automatically do the bank switching.
2024-11-03 18:19:31 +01:00
Irmen de Jong
178e60bba0 fix ast source gen for romsub 2024-11-03 15:04:53 +01:00