Irmen de Jong
0a1d06b7f2
corrected associative -> commutative operators names, simplified maySwapOperandOrder logic
2026-04-30 01:13:50 +02:00
Irmen de Jong
7383ffae46
fix UnusedCodeRemover wrongly removing var initializers
2026-04-27 00:19:16 +02:00
Irmen de Jong
6f9f31cd8a
better const folding for multivalue assignments / vardecl inits in StatementReorderer
2026-04-24 07:18:01 +02:00
Irmen de Jong
7cd70acc01
implemented const folding of lmh() and divmod()
2026-04-24 06:02:16 +02:00
Irmen de Jong
a5c078be14
fix inline warning
2026-04-21 06:27:40 +02:00
Irmen de Jong
547d21a42b
added more redundant variable initialization removals
2026-04-21 06:13:39 +02:00
Irmen de Jong
8592a3a200
use VarDecl builder instead of constructor
2026-04-19 02:26:50 +02:00
Irmen de Jong
5dcc11d67e
try to avoid crash when importing modules twice (via symlink for instance).
2026-04-18 18:06:41 +02:00
Irmen de Jong
d3f19bb438
fix lacking checks for IO registers in asm optimizer, caused incorrect instruction removals
2026-04-11 18:01:57 +02:00
Irmen de Jong
59d0f7d49c
2-dimensional array support
2026-04-10 04:22:38 +02:00
Irmen de Jong
5c1aa2307d
for loops where the counter variable is unused in the loop body and count is constant -> simple repeat loops
2026-04-05 23:35:58 +02:00
Irmen de Jong
1100ab0d22
performance tweaks
2026-04-03 19:54:37 +02:00
Irmen de Jong
1ed618c474
performance improvements in parser
2026-04-03 04:31:29 +02:00
Irmen de Jong
3da3d63eb4
more inlining support
...
fix invalid character in LSP
2026-04-01 19:04:03 +02:00
Irmen de Jong
45c05522d5
fix inliner bug
2026-03-31 21:25:34 +02:00
Irmen de Jong
db417ab9ce
refactoring AstModification
2026-03-31 19:59:56 +02:00
Irmen de Jong
c17a3aff5c
refactoring AstModification
2026-03-31 15:37:55 +02:00
Irmen de Jong
f38c701658
some support for inlining multi-value returns (where there are no function parameters to deal with)
2026-03-31 04:42:34 +02:00
Irmen de Jong
331e2b8f2b
improve ast source position tracking
2026-03-29 19:49:42 +02:00
Irmen de Jong
05093e35c8
refactor inliner
2026-03-29 11:00:26 +02:00
Irmen de Jong
5fd11ca036
more consistent allowance of inline keyword
2026-03-29 10:15:51 +02:00
Irmen de Jong
400149d5a3
standardize gradle project configurations across submodules
2026-03-28 10:08:47 +01:00
Irmen de Jong
8d44a1b226
implemented bitmap text drawing for the virtual target (so monogfx.text() now works there)
2026-03-26 22:47:44 +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
bc959435ec
fix missing const-evaluation for abs() and clamp()
...
add `poweroff_system()` for virtual target function
clarify CX16 usage and debugging tips
2026-03-20 02:31:17 +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
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
b8ef64139a
avoid always including profile support routine in resulting asm
2026-03-08 03:16:17 +01:00
Irmen de Jong
a326c6f079
adding multivalue vardecls and assignments
2026-03-03 00:06:48 +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
859a02fb0a
adding profiling instrumentation support
2026-02-27 22:41:42 +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
6a0b22bb64
implement sqrt(long)
2026-02-15 17:11:31 +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
ed02b84f7d
micro optimization for containment checks in compiler
2026-02-06 02:43:12 +01:00
Irmen de Jong
88b48f58c9
fix string init error about string multiplication. fixes #209
2026-01-30 17:36:48 +01:00
Irmen de Jong
9a5edeebbc
upgrade to kotlin 2.3.0
2026-01-24 00:29:45 +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
a385412e70
smaller floats.internal_long_to_float()
2026-01-17 20:38:30 +01:00
Irmen de Jong
620793011e
way faster long to float conversion routine, fixes #202
2026-01-13 22:55:37 +01:00
Irmen de Jong
cdb41f4352
better errors when multiplying string or array with bogus value
2026-01-09 18:43:41 +01:00
Irmen de Jong
f69b293b7f
optimized some more cases of poke and peek
2026-01-09 02:57:12 +01:00
Irmen de Jong
6301a8b040
optimize msb(long<<8/16/24) into single byte accesses (skip the whole shift)
2026-01-08 22:38:07 +01:00
Irmen de Jong
daa9b40883
optimize lsb(long>>8/16/24) into single byte accesses (skip the whole shift)
2026-01-08 03:21:57 +01:00
Irmen de Jong
aa045bb383
optimized certain word and long shifts to get the lsb/msb
2026-01-08 02:45:09 +01:00