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
Irmen de Jong
652b585ea4
code style
2026-01-07 00:48:45 +01:00
Irmen de Jong
3a0add60fd
optimize msb(lsw(longvar)) into @(&longvar+1)
2026-01-06 22:58:45 +01:00
Irmen de Jong
82693cc3ee
optimized lsb(msb(longvar)) which grabs the bank byte from a long
2026-01-01 21:39:34 +01:00
Irmen de Jong
80d6eb232d
bool variables were not converted to constants if that was possible
2025-12-25 17:39:54 +01:00
Irmen de Jong
463d53345d
more helpful min max error message for floats
2025-12-24 17:19:47 +01:00
Irmen de Jong
62b0c82f93
implement long <=0 and long >=0 comparisons
...
make sure the adpcm benchmark doesn't use random memory contents
2025-11-30 16:25:58 +01:00
Irmen de Jong
6a70fb0480
deal with invalid sqrt results (negative argument), allow sqrt of longs (like floats)
2025-10-21 21:01:03 +02:00
Irmen de Jong
be74290ddc
many more TODO messages now log proper source positions
2025-10-15 17:58:40 +02:00
Irmen de Jong
68066acdec
changed (and fixed) msb(long) and lsb(long)
2025-10-13 21:34:03 +02:00
Irmen de Jong
f9b0bfe31b
implement rol() and ror() on longs (also rol2 and ror2 and abs)
2025-10-03 01:22:24 +02:00
Irmen de Jong
f1bfe619b2
avoiding endless loop in optimizer
2025-10-03 01:22:24 +02:00
Irmen de Jong
e0107bacbd
implement long << >> expressions
2025-10-03 01:22:24 +02:00
Irmen de Jong
b3bd2a6a09
fixed a bunch of long type handling
2025-10-03 01:22:24 +02:00
Irmen de Jong
a2b9d78cf3
start with introducing LONG datatype (32 bits signed integer)
2025-10-03 01:22:24 +02:00
Irmen de Jong
86b52a1c5e
fix endless loop in rewriting type of const long values
2025-09-29 22:28:13 +02:00
Irmen de Jong
97420b28e5
preparing to support assignment to indexed pointer targets
2025-09-27 11:03:55 +02:00
Irmen de Jong
abeefb5655
improved pointer[0]
2025-09-24 22:26:09 +02:00
Irmen de Jong
4fe8b72d42
fix broken uword comparison and asm peephole optimization
2025-09-24 02:42:26 +02:00