Irmen de Jong
|
0e177cb531
|
added cbm.RDTIML and cbm.SETTIML wrappers
|
2025-10-04 02:00:24 +02:00 |
|
Irmen de Jong
|
35b921b062
|
added bcd module for decimal addition and subtraction using BCD mode
|
2025-10-03 23:36:17 +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
|
f303d15628
|
fix long equality checks
|
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
|
88c5d9783a
|
long params and return values
|
2025-10-03 01:22:24 +02:00 |
|
Irmen de Jong
|
e7fc0360ad
|
long bitwise operator expressions
|
2025-10-03 01:22:24 +02:00 |
|
Irmen de Jong
|
cd1862dd9f
|
fix signed long shift right
|
2025-10-03 01:22:24 +02:00 |
|
Irmen de Jong
|
045c4909a8
|
long equality comparisons
|
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
|
44f70da113
|
upgrade to JDK 17 for the build process (required by Gradle 9)
|
2025-10-03 00:18:55 +02:00 |
|
Irmen de Jong
|
c09b1395f6
|
IR: add a unit test for the SSA basic block change
|
2025-10-01 22:49:51 +02:00 |
|
Irmen de Jong
|
d6a8201291
|
IR: fix SQRT reg1 type
|
2025-10-01 20:28:38 +02:00 |
|
Irmen de Jong
|
4187f97f7a
|
IR: rename <CODE> to <CHUNK> , put the code lines in a new sub node <CODE> for improved xml structure
|
2025-10-01 19:32:05 +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
|
75da38224d
|
IR: make LSIG,MSIG,CONCAT instruction set flags to skip cmp #0 afterwards (if msb(x)>0)
|
2025-09-30 21:48:57 +02:00 |
|
Irmen de Jong
|
2c8b1c2022
|
moved cx16.cpu_is_65816() to sys.cpu_is_65816(). It know also does proper detection on the C64 and C128 like on the X16, because those two computers can also have this CPU via a SuperCPU expansion.
|
2025-09-29 21:37:26 +02:00 |
|
Irmen de Jong
|
2c7256a443
|
support assignment to indexed pointer targets
|
2025-09-27 14:52:04 +02:00 |
|
Irmen de Jong
|
65d6c1c438
|
fix IR instruction R/W usage counter
|
2025-09-25 01:50:27 +02:00 |
|
Irmen de Jong
|
abeefb5655
|
improved pointer[0]
|
2025-09-24 22:26:09 +02:00 |
|
Irmen de Jong
|
50fecbcebe
|
c64 sprite multiplexer WIP
|
2025-09-24 21:11:08 +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
|
f3b060df51
|
no longer save Y register when loading value through ZP pointer LDA (zp),Y
|
2025-09-23 22:59:01 +02:00 |
|
Irmen de Jong
|
09d1cb6925
|
fix crash when indexing on a label or subroutine name
working on multiplexer
|
2025-09-23 20:07:52 +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
|
bfb34dff62
|
fix recursive var decl error in case of some pointer derefs
|
2025-09-22 23:45:59 +02:00 |
|
Irmen de Jong
|
817b623596
|
optimize uword >= $xx00 into msb(uword)>=$xx
|
2025-09-22 22:59:56 +02:00 |
|
Irmen de Jong
|
f6dbeb1f63
|
working on a more complex c64 sprite multiplexer
|
2025-09-22 21:58:12 +02:00 |
|
Irmen de Jong
|
c4b9bdd33f
|
proper pointer array initializer size checking, nicer sprite movement in simplemultiplexer
|
2025-09-22 20:07:38 +02:00 |
|
Irmen de Jong
|
68e0d5f1b5
|
add sys.set_rasterline on c64 and c128 targets as well (cx16 already had it)
|
2025-09-21 01:36:43 +02:00 |
|
Irmen de Jong
|
4939e3df55
|
add sys.update_rasterirq, more robust sei/cli handling, added simple c64 sprite multiplexer example
|
2025-09-21 00:28:33 +02:00 |
|
Irmen de Jong
|
19f19f3880
|
doc and opening borders
|
2025-09-20 21:44:48 +02:00 |
|
Irmen de Jong
|
ad0c767ea8
|
%breakpoint! introduced to place after an assignment to make it parse correctly
|
2025-09-20 00:46:15 +02:00 |
|
Irmen de Jong
|
c2f5d37486
|
new cx16/charfade.p8 example
|
2025-09-19 04:44:08 +02:00 |
|
Irmen de Jong
|
231b50dacb
|
optimize certain word multiplication with bit shifting if it's a power of 2
|
2025-09-18 20:57:26 +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
|
a8bede17b2
|
fix defer() with the arena allocator ("return values are evaluated before the defer is executed")
|
2025-09-17 23:59:32 +02:00 |
|
Irmen de Jong
|
f6c8e693a5
|
add offsetof()
|
2025-09-17 23:30:15 +02:00 |
|
Irmen de Jong
|
9461e4088c
|
fixed the hashtable example and workarounds for misbehaving defer in allocators
|
2025-09-17 22:53:01 +02:00 |
|
Irmen de Jong
|
efd73fd10d
|
implement some more in place pointer operators
|
2025-09-17 18:19:03 +02:00 |
|
Irmen de Jong
|
ddf6e84a1a
|
fix type checks for wrong pointer types in pointer array initalizer and assignment
|
2025-09-16 21:18:29 +02:00 |
|
Irmen de Jong
|
633d6c34e2
|
add support for struct pointers and short-form initializers in arrays and assignments
|
2025-09-16 20:37:50 +02:00 |
|
Irmen de Jong
|
6e7fbc6683
|
fix crash when invalid struct name is used in pointer decl
|
2025-09-15 20:39:21 +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 |
|