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 |
|
Irmen de Jong
|
2c7256a443
|
support assignment to indexed pointer targets
|
2025-09-27 14:52:04 +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
|
a71895cbe8
|
optimize pointer.field += 1 into pointer.field INC/DEC
|
2025-09-18 19:27:36 +02:00 |
|
Irmen de Jong
|
f6c8e693a5
|
add offsetof()
|
2025-09-17 23:30:15 +02:00 |
|
Irmen de Jong
|
124ea1230b
|
fix vm to understand struct instances in arrays
|
2025-09-14 19:04:01 +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
|
79419a98d0
|
add if-expression versions for the conditionals if_cc, if_cs, if_vc etc
|
2025-09-11 01:57:30 +02:00 |
|
Irmen de Jong
|
a7e9d8e14b
|
fix struct field offset calculations
|
2025-09-01 18:57:02 +02:00 |
|
Irmen de Jong
|
3ef09d7d9a
|
use LOADFIELD instruction more instead of an extra explicit ADD
add implicit @zp to pointer variables if they don't have a preference
|
2025-08-31 15:53:44 +02:00 |
|
Irmen de Jong
|
5a3aa1bd25
|
optimized IR to return a constant value: use RETURNI
|
2025-08-26 22:54:11 +02:00 |
|
Irmen de Jong
|
79b8bb5c9f
|
Merge branch 'master' into structs6502
|
2025-08-19 01:12:50 +02:00 |
|
Irmen de Jong
|
fc5889ec0b
|
kotlin 2.2.10, kotest
|
2025-08-19 01:04:24 +02:00 |
|
Irmen de Jong
|
f74eeaee0f
|
fix IR address-of for array-indexed pointers (pointer arithmetic)
|
2025-08-18 03:24:32 +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
|
d4e83b28bb
|
error messages and trying to improve support for struct allocs in arrays
added sorting example
|
2025-08-02 19:22:58 +02:00 |
|
Irmen de Jong
|
647cd0fbe1
|
fix pointer[i].field compiler crash
|
2025-08-02 05:29:16 +02:00 |
|
Irmen de Jong
|
88ee7a8187
|
fix expected outcome of function call arg type pointer test
|
2025-08-01 00:23:10 +02:00 |
|
Irmen de Jong
|
c4c5636a81
|
fixing array indexing on pointers
|
2025-07-29 23:41:38 +02:00 |
|
Irmen de Jong
|
23ad540aa5
|
fix IR codegen type error on array pointer dereference
|
2025-07-28 20:25:56 +02:00 |
|
Irmen de Jong
|
624220e9a3
|
fix boolean struct field as if conditional
|
2025-07-27 01:58:18 +02:00 |
|