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 |
|
Irmen de Jong
|
13cd68ba96
|
IR: fix LOADI.f peephole optimization
|
2026-01-09 03:49:55 +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
|
bbfb2eb367
|
optimized longvar = lptr^^
|
2026-01-07 23:30:35 +01:00 |
|
Irmen de Jong
|
652b585ea4
|
code style
|
2026-01-07 00:48:45 +01:00 |
|
Irmen de Jong
|
bc4470aeda
|
remove bsb() again - too confusing?
|
2026-01-06 22:39:04 +01:00 |
|
Irmen de Jong
|
97dade3655
|
fix setmsb() on long types
|
2026-01-06 22:11:58 +01:00 |
|
Irmen de Jong
|
54f23387d0
|
added bsb(long) builtin function that returns the bank byte of the long value (bits 16-23)
|
2026-01-06 20:56:03 +01:00 |
|
Irmen de Jong
|
51503e054a
|
IR: improve use of loadfield for msb/lsb of struct fields
|
2026-01-02 22:10:10 +01:00 |
|
Irmen de Jong
|
18ba25d6a4
|
IR: optimize double ADD/SUB
|
2026-01-02 20:24:35 +01:00 |
|
Irmen de Jong
|
2c2de8bfb3
|
fix IR peephole optimizer index off by 1 error and make SSA blocks configurable (still defaults to yes in this version)
|
2025-12-30 18:58:42 +01:00 |
|
Irmen de Jong
|
cc0425a2c4
|
detect circular aliases, also fix error message for aliased function call with wrong number of args
|
2025-12-26 15:04:55 +01:00 |
|
Irmen de Jong
|
1e3ae2cb1d
|
IR: just use loadhay to get the result from CALLI
|
2025-12-23 19:07:51 +01:00 |
|
Irmen de Jong
|
946def4613
|
IR: fix call() / CALLI return value handling
|
2025-12-23 00:39:14 +01:00 |
|
Irmen de Jong
|
0217d05c68
|
IR: loadfield/storefield now accept offsets up to 65535
|
2025-12-16 14:56:11 +01:00 |
|
Irmen de Jong
|
8553f3c9f1
|
IR: loadfield is a better name
|
2025-12-16 12:57:45 +01:00 |
|
Irmen de Jong
|
d157d03ea0
|
IR: optimize load+add+load into single loadm with offset (also store)
update gradle wrapper to 9.2.0
|
2025-12-16 12:17:52 +01:00 |
|
Irmen de Jong
|
745cf3d958
|
IR: removed loadix/storeix instructions
|
2025-12-09 22:55:53 +01:00 |
|
Irmen de Jong
|
c4aa681d58
|
IR: better name for loadfield/storefield instructions
|
2025-12-09 00:40:26 +01:00 |
|
Irmen de Jong
|
93135774e6
|
fix IR signed bitshift right
|
2025-11-25 22:16:28 +01:00 |
|
Irmen de Jong
|
99e037489b
|
IR: added float<>long casts, cx16: blink_cursor extapi tested in test.p8
|
2025-11-17 23:13:56 +01:00 |
|
Irmen de Jong
|
b7d1fb1342
|
translate address-of into + expression for non-const address ptrs too,
also IR optimization to use immediate arithmetic opcodes if possible
|
2025-11-09 01:36:34 +01:00 |
|
Irmen de Jong
|
1f31cb18e4
|
IR: fix missing source lines in p8ir file
|
2025-11-06 00:39:31 +01:00 |
|
Irmen de Jong
|
b02a8ed954
|
strings can no longer be assigned by-value. Use strings.copy() instead. Fixes #189
|
2025-10-31 19:22:40 +01:00 |
|
Irmen de Jong
|
b1e07f3fdb
|
better error when trying to use a const pointer (which is not supported yet)
|
2025-10-30 20:58:21 +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
|
307796f115
|
fixed some bugs in optimizing long values
|
2025-10-12 23:15:42 +02:00 |
|
Irmen de Jong
|
e962431139
|
added bcd.addtol()/subfroml() for in-place long calculations
fix long overflow messages, IR register type error
|
2025-10-12 22:08:10 +02:00 |
|
Irmen de Jong
|
6db3611d93
|
fix typecast error when assigning pointer to long
|
2025-10-12 12:44:28 +02:00 |
|
Irmen de Jong
|
a84320c7e2
|
add sgn(long) support, fix sgn() result type in IR
|
2025-10-12 12:22:32 +02:00 |
|
Irmen de Jong
|
396fcbc927
|
implement missing long typecasts
|
2025-10-07 17:46:10 +02:00 |
|
Irmen de Jong
|
e63921009c
|
added math.mul32(), verafx.muls now returns long
|
2025-10-04 21:54:53 +02:00 |
|
Irmen de Jong
|
8abdb837b2
|
fix long equality comparisons
|
2025-10-04 17:21:39 +02:00 |
|
Irmen de Jong
|
a7d98e43b8
|
cmp(long, long)
|
2025-10-03 22:41:59 +02:00 |
|
Irmen de Jong
|
845ee2dd83
|
smaller code for several long operations
|
2025-10-03 21:25:13 +02:00 |
|