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 |
|
Irmen de Jong
|
54fa72fa98
|
added sys.waitrasterline() routine like sys.waitvsync() but wait for a given raster line
optimize uword <= $xx00 into msb(uword)<$xx
|
2025-09-23 01:09:54 +02:00 |
|
Irmen de Jong
|
fd62fe7511
|
fix crash on invalid type cast added to ptr deref expression ('.' operator)
|
2025-09-22 23:54:01 +02:00 |
|
Irmen de Jong
|
817b623596
|
optimize uword >= $xx00 into msb(uword)>=$xx
|
2025-09-22 22:59:56 +02:00 |
|
Irmen de Jong
|
8b48a295b6
|
allow struct initializers to occur in array literals
|
2025-09-14 18:16:46 +02:00 |
|
Irmen de Jong
|
1af4cd0d63
|
fix struct initializer error checking
|
2025-09-12 19:55:12 +02:00 |
|
Irmen de Jong
|
ced4c5944a
|
fix broken optimization for wordvar - value expressions
|
2025-09-09 08:05:51 +02:00 |
|
Irmen de Jong
|
a9142b9ce5
|
slightly optimize certain pointer indexing calculation, fix invalid deref optimization
|
2025-08-31 13:40:28 +02:00 |
|