Irmen de Jong
8f6b5676d7
working on codegen for multi-value returns
2025-01-07 20:35:49 +01:00
Irmen de Jong
f071c07dd9
IR: only put align on lsb array of split word array. tag split word arrays with split. (but this isn't actually used yet)
2025-01-06 02:50:54 +01:00
Irmen de Jong
f0e8ff0326
get rid of some empty lines in the generated asm
2025-01-05 19:34:05 +01:00
Irmen de Jong
407773bda2
IR: don't lose inline asm chunks, fix carry behavior for multi-shifts
2025-01-04 22:12:54 +01:00
Irmen de Jong
4db6859f3f
IR: strict register pool type assignment, 1 unique type per register + verification during IR writing
2025-01-03 04:18:16 +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
ee521793f8
ir: enforce single reg type
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
7b4a82b91a
IR: report register usage and types in code blocks
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
49959af752
IR: support %align in code chunks, and load/store FAC0/FAC1
2024-12-30 00:00:31 +01:00
Irmen de Jong
4daa909f32
fix path normalization problems,
...
allow ~ in srcdirs compiler flag
2024-12-26 17:42:20 +01:00
Irmen de Jong
2ca4aed566
IR: prefix immediate values with '#' for human readability reasons (no technical reason)
2024-12-24 09:35:10 +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
c0ae35b3a3
tweaks, bump version 11.0
2024-12-22 06:34:17 +01:00
Irmen de Jong
131d5ceb4f
avoid re-reading all source files when sourcelines are requested in the asm
2024-12-21 00:06:18 +01:00
Irmen de Jong
512ddd1694
cleanups
2024-12-20 22:59:20 +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
80d88b3c61
fix many split array issues
2024-12-15 17:08:07 +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
3675d7961b
boolean variables can now also be memory-mapped (including boolean arrays)
2024-12-11 18:25:27 +01:00
Irmen de Jong
86d4a4309f
cleanups
2024-12-05 21:56:00 +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
189399d5f8
update to kotlin 2.1.0
2024-11-28 03:49:07 +01:00
Irmen de Jong
2eed75f602
call convention for @Rx parameters, also use cpu registers if possible, like normal parameters
2024-11-25 22:22:24 +01:00
Irmen de Jong
2e35f3c3a3
code check cleanups
2024-11-24 16:14:22 +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
c702c4a6df
internal rename of romsub to extsub
2024-11-06 21:42:16 +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
4a47e15b1c
fix IR if expression sometimes lacking a cmpi after calculation of the condition value
...
VM/IR: add a returni immediate value return instruction to replace certain returnr's
2024-11-01 01:04:16 +01:00
Irmen de Jong
1f2d46628e
remove %option align_xxx (block level alignment, as we now have better alternatives)
2024-10-26 21:18:34 +02:00
Irmen de Jong
c9535049c8
%align directive and @align64
2024-10-26 20:58:35 +02:00
Irmen de Jong
9317cf8a35
sorting aligned vars to shrink prg size
2024-10-26 18:33:51 +02:00
Irmen de Jong
1cd754f05d
adding @alignword/page on individual variables
2024-10-26 17:00:38 +02:00
Irmen de Jong
38ef394e15
IR codegen: global vars with numeric initialization value are now also put into the VARIABLESWITHINIT section rather than requiring explicit code instructions to initialize them in INITGLOBALS.
...
Note that something similar, such as putting those variables inline in the program initialized with their value and all, cannot be done for the 6502 codegen: the program needs a mechanism to reset ALL variables when it runs a second time.
2024-10-16 22:15:51 +02:00
Irmen de Jong
cbc4b75e50
IR now contains "bool" as a type instead of already erasing it into "ubyte". (boolean literals still are simply just 1 and 0 values)
2024-10-16 01:03:35 +02:00
Irmen de Jong
65ddcf91d0
remove unused syscalls
2024-10-15 18:24:55 +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
eaa22a9d13
added callfar2() builtin function that allows to set A,X,Y and Carry arguments.
2024-10-08 21:36:04 +02:00
Irmen de Jong
edc5a5a94f
improve data driven unit tests to use kotest withData()
2024-09-08 16:55:08 +02:00
Irmen de Jong
d5adb85e5b
IR: add SEC,CLC,SEI,CLI instructions for the sys function calls.
2024-07-14 21:01:19 +02:00
Irmen de Jong
484677b4b1
Get rid of any() and all() builtin functions.
...
Replaced by regular subroutines in the anyall module.
2024-07-06 18:49:03 +02:00
Irmen de Jong
0c053e4a2c
IR: don't confuse symbol names starting with 'r', with register names
...
Added start of buffer.p8 (experimental)
2024-07-04 01:39:25 +02:00
Irmen de Jong
4f8aaf9244
some tweaks and todos
2024-06-26 21:22:40 +02:00