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
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
2613d45cd5
swap() is now a statement instead of a builtin function call
2026-02-17 20:56:21 +01:00
Irmen de Jong
07be7f0154
fix long argument @R0R1 register usage in regular subroutines
2026-02-15 14:54:47 +01:00
Irmen de Jong
b2983e912d
swap longs now uses R14+R15 as temporary storage instead of R0+R1
2026-01-25 17:02:47 +01:00
Irmen de Jong
10ae42ed59
suggest import for undefined block symbols, update github links
2026-01-25 05:45:33 +01:00
Irmen de Jong
5d5ad8a70e
fix void/nonvoid assign target issue
2026-01-24 01:11:30 +01:00
Irmen de Jong
2e0db6f211
add swap() builtin for optimized value swaps without the need for a temporary variable
2026-01-23 23:17:10 +01:00
Irmen de Jong
8c4944d703
optimized long and float copying through pointers
2026-01-12 00:19:21 +01:00
Irmen de Jong
5cd175d54f
optimize successive additions/subtractions and multiplications (with const) into just a single add/sub, mul
...
optimize var = simpleexpression | var += expression --> var = simpleexpression + expression (for any augmented operator)
2026-01-11 01:30:04 +01:00
Irmen de Jong
5c7ac0efb7
IR: remove broken loadi/storei optimization
2026-01-10 22:23:01 +01:00
Irmen de Jong
34b228cfca
fix peek/poke error with const offset
2026-01-10 20:58:16 +01:00
Irmen de Jong
2b26952044
better error
2026-01-10 19:06:59 +01:00