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 |
|
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
|
67f7ffa52d
|
multi value returns with longs
|
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
|
ff1f58e022
|
implement simple + / - long expressions
|
2025-10-03 01:22:24 +02:00 |
|
Irmen de Jong
|
b058f1c7c2
|
implement mklong(a,b,c,d) and mklong2(w1,w2)
|
2025-10-03 01:22:24 +02:00 |
|
Irmen de Jong
|
3e07b6ca70
|
adding long arrays
|
2025-10-03 01:22:24 +02:00 |
|
Irmen de Jong
|
d66dc664de
|
work on longs
|
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
|
9d3b2f12fd
|
IR code blocks now better SSA basic blocks (ending with single branch instruction)
|
2025-10-01 19:08:44 +02:00 |
|
Irmen de Jong
|
a611406020
|
IR: add compilerversion attribute to p8ir file
|
2025-09-30 22:07:04 +02:00 |
|