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 |
|
Irmen de Jong
|
5eb2fc8d86
|
fix a bad pointer arithmetic optimization
|
2025-08-29 19:36:57 +02:00 |
|
Irmen de Jong
|
9a76941e10
|
fix invalid optimization for ptr-value
|
2025-08-28 20:13:02 +02:00 |
|
Irmen de Jong
|
8e53c83844
|
optimize certain ptr+value expression on 6502
|
2025-08-24 05:46:49 +02:00 |
|
Irmen de Jong
|
4a8d5def84
|
code cleanups, pointer TODOs, docs dark mode
|
2025-08-16 11:25:18 +02:00 |
|
Irmen de Jong
|
fd9bd23449
|
6502 statementreorderer: str -> ^^ubyte
|
2025-08-13 18:45:29 +02:00 |
|
Irmen de Jong
|
9e85571a7b
|
fix pointer variable usage detection in other block
|
2025-08-05 17:39:22 +02:00 |
|
Irmen de Jong
|
a9b8fbc6c6
|
Merge branch 'master' into structs
# Conflicts:
# examples/test.p8
|
2025-07-18 22:37:36 +02:00 |
|
Irmen de Jong
|
720988ae72
|
proper warnings for using pure builtin functions as a statement (discarding the result)
swallow a defer warning for a very common use case
|
2025-07-18 22:37:07 +02:00 |
|