Irmen de Jong
6d1dfd2a09
due to internal complexity, only pointers to bytes can be made const
2026-05-09 22:45:44 +02:00
Irmen de Jong
1fe5ff18b1
memory() turned into 2 new ast nodes (slab reservation and slab ref) - still somewhat broken
2026-05-09 11:16:09 +02:00
Irmen de Jong
cd2d30c2c7
const pointer support added (but lacks proper const-folding still)
2026-05-05 23:21:32 +02:00
Irmen de Jong
9d1fa856d4
added unit tests that use the ksim65 simulator to actually run the compiled code
2026-05-02 06:15:09 +02:00
Irmen de Jong
9fdd9254f1
fix missing CMP in IR after conditional expression
2026-04-25 22:23:10 +02:00
Irmen de Jong
ae4c4ca160
IR: optimized boolean expression codegen (use status flags directly more often instead of transforming to 1 / 0 values)
2026-04-24 22:26:16 +02:00
Irmen de Jong
7ab4880c4a
IR: optimized poke() and pokemon()
2026-04-24 19:38:18 +02:00
Irmen de Jong
5c16a40f33
IR: optimized float and bol comparison code gen
2026-04-24 09:41:45 +02:00
Irmen de Jong
2589f953c3
fix IR peephole optimizer fault that incorrectly optimized 20-x expression
2026-04-24 04:49:09 +02:00
Irmen de Jong
a40f9de9e6
fix IR codegen issue with DIVMOD and some other instructions
2026-04-24 04:22:29 +02:00
Irmen de Jong
930697dad5
using builder to improve massive lists of constructor params
2026-04-19 01:39:50 +02:00
Irmen de Jong
c794d2a50b
fix invalid IR opcode used for inplace assignments to memory targets
2026-04-14 15:32:12 +02:00
Irmen de Jong
e2702d3e22
IRFileWriter and IRFileReader improvements
2026-04-09 05:06:39 +02:00
Irmen de Jong
74475d023b
improving IR symbolic references
2026-04-09 03:54:51 +02:00
Irmen de Jong
9ae0623ad0
making MemoryAddress an Unsigned Int
2026-04-09 02:40:24 +02:00
Irmen de Jong
33b34b990e
making RegisterNum type safe
2026-04-08 02:57:45 +02:00
Irmen de Jong
6dc96bb8f0
making IRInstruction parameters type safe
2026-04-07 20:15:55 +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
4b45dae68a
IR codegen: optimized array +/-/* in place
2026-04-07 04:12:44 +02:00
Irmen de Jong
3129f5e071
fix IR return type assignment error
2026-04-05 12:44:06 +02:00
Irmen de Jong
96eb3f0fb2
ImportFileSystem thread safe, IR performance tweaks
2026-04-03 06:53:08 +02:00
Irmen de Jong
4739bd087a
IR: avoid redundant CMPI in if-expressions, remove dead stores
2026-04-02 23:41:03 +02:00
Irmen de Jong
6184a5004c
wrapping child nodes mutable list away to avoid direct access that might corrupt it
2026-03-31 10:33:54 +02:00
Irmen de Jong
15bf4c7692
unit test helpers refactoring
2026-03-31 05:50:30 +02:00
Irmen de Jong
10ce992b35
IR example metrics now count instructions not p8ir lines
2026-03-29 22:46:51 +02:00
Irmen de Jong
331e2b8f2b
improve ast source position tracking
2026-03-29 19:49:42 +02:00
Irmen de Jong
5408a3ca68
fix compiler crash on certain pointer type struct fields
...
added new compiler options for debugging purposes
2026-03-29 08:25:53 +02:00
Irmen de Jong
cecf49b8e3
IR: attempt to optimize negative comparisons by using direct status flag branches instead
2026-03-29 01:23:24 +01: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
400149d5a3
standardize gradle project configurations across submodules
2026-03-28 10:08:47 +01:00
Irmen de Jong
d6ed40af36
SymbolTable improvements
2026-03-28 04:14:26 +01:00
Irmen de Jong
04b9f8e749
cleanups
2026-03-28 00:48:29 +01:00
Irmen de Jong
68226a8fcd
Update Kotlin and dependencies to latest versions
...
- Bump Kotlin to 2.3.20 across all configurations.
- Upgrade `kotlin-result-jvm` to 2.3.1 in all modules.
- Update Gradle wrapper to 9.4.0.
- Add `poweroff_system()` function in virtual target symboldump
2026-03-25 17:51:01 +01:00
Irmen de Jong
4294658d71
fix IR symbol lookup for deeply scoped variables
2026-03-18 23:31:39 +01:00
Irmen de Jong
0a7352de99
add disableCache option to SymbolTable to assist debugging and optimize behavior when -noopt is used
2026-03-18 23:12:48 +01:00
Irmen de Jong
d2633187a6
more work on making memory() const (6502)
2026-03-18 02:57:59 +01:00
Irmen de Jong
ca56cf26c5
more work on making memory() const (virtual target only for now)
2026-03-18 02:20:50 +01:00
Irmen de Jong
f72bec3c4a
working on making memory() accepted as constant initializer value
2026-03-17 23:14:03 +01:00
Irmen de Jong
11f187bda8
implement signed % remainder operator for virtual target
2026-03-17 03:36:38 +01:00
Irmen de Jong
e56ccdbc3a
add signed divmod() support for virtual target
2026-03-16 01:19:02 +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
e61328b6d6
update Java dependency to 17, update results library version
2026-03-14 00:04:11 +01:00
Irmen de Jong
c20e5b788b
implement missing square_long routine
...
improve agents system prompt file
2026-03-13 18:21:47 +01:00
Irmen de Jong
caa991e478
IR: remove redundant add when pointer dereferencing
2026-03-08 21:31:31 +01:00
Irmen de Jong
998d1ad446
IR: storezi now also takes an immediate offset argument, optimized some code gen to utilize that offset better insteads of doing separate ADDs
2026-03-04 01:12:01 +01:00
Irmen de Jong
89e38c6d42
IR: loadfield/storefield are now just loadi/storei
2026-03-03 21:17:27 +01:00
Irmen de Jong
8911f58bd2
fix IR long comparisons (used in for loops for instance)
2026-03-01 01:45:07 +01:00
Irmen de Jong
da6e47d422
fix IR long comparisons (used in for loops for instance)
2026-03-01 01:17:22 +01:00
Irmen de Jong
bdbdf6e5cd
add lmh(longvalue) builtin function that returns the low, mid, hi (=bank) bytes of a long
...
symboldumps now also contain the builtin functions
2026-02-23 21:30:39 +01:00
Irmen de Jong
9736ac19d1
implementing multiple return values for builtin functions
2026-02-22 19:54:21 +01:00