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
|
8d6f3301c8
|
conv.any2uword() return values have been changed to be more useful and convenient
now returns both the actual value and the number of characters, and the return values for the virtual target now matches the others.
|
2025-09-30 20:44:02 +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
|
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
|
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
|
50fecbcebe
|
c64 sprite multiplexer WIP
|
2025-09-24 21:11:08 +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
|
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
|
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
|
8b48a295b6
|
allow struct initializers to occur in array literals
|
2025-09-14 18:16:46 +02:00 |
|
Irmen de Jong
|
8bb927b483
|
fix compiler crash with on..call statement in nested scope
|
2025-09-13 06:44:49 +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
|
6de95f7a3b
|
new static struct initializer syntax ^^Node : [1,2,3]
avoids confusion with function calls
|
2025-09-10 13:47:12 +02:00 |
|
Irmen de Jong
|
82839a2d82
|
fix alias error and byte to word assignment error
|
2025-09-09 15:05:02 +02:00 |
|
Irmen de Jong
|
e5fc9b3132
|
fix 6502 pointer arithmetic optimization that led to increased code size
|
2025-09-09 14:06:41 +02:00 |
|
Irmen de Jong
|
ced4c5944a
|
fix broken optimization for wordvar - value expressions
|
2025-09-09 08:05:51 +02:00 |
|
Irmen de Jong
|
0b9384b556
|
fix typecasted byte-to-word pointer assignment, some more asm optimizations
|
2025-09-09 05:56:55 +02:00 |
|
Irmen de Jong
|
e178097735
|
support more struct instance assignments via memcopy()
|
2025-09-08 13:18:50 +02:00 |
|
Irmen de Jong
|
a1ab8ed208
|
fixing alias bugs
|
2025-09-07 22:52:13 +02:00 |
|
Irmen de Jong
|
52a757ea78
|
todo
|
2025-09-02 00:42:46 +02:00 |
|
Irmen de Jong
|
28df08eea8
|
introduce P8ZP_SCRATCH_PTR temporary zp pointer to avoid clobbering W1,W2
|
2025-09-01 23:56:31 +02:00 |
|
Irmen de Jong
|
79505308ba
|
optimize indexed pointer code a bit more
|
2025-09-01 22:18:17 +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
|
13e6f64d3b
|
implement missing struct pointer indexing codegen
|
2025-08-31 12:20:38 +02:00 |
|
Irmen de Jong
|
4a1256c772
|
optimizing some pointer codegen for indexed derefs
|
2025-08-30 21:20:14 +02:00 |
|
Irmen de Jong
|
ff9bec90ec
|
fix struct pointer array indexing field dereferencing
the pointers/sorting example now actually works on the 6502 too
|
2025-08-30 12:24:30 +02:00 |
|
Irmen de Jong
|
a6fee1e510
|
fixing deref()
|
2025-08-30 07:04:01 +02:00 |
|
Irmen de Jong
|
5eb2fc8d86
|
fix a bad pointer arithmetic optimization
|
2025-08-29 19:36:57 +02:00 |
|
Irmen de Jong
|
221a093e5f
|
optimize some pointer arithmetic, fix pointer arithmetic for ptr-value
|
2025-08-28 23:08:06 +02:00 |
|
Irmen de Jong
|
9a76941e10
|
fix invalid optimization for ptr-value
|
2025-08-28 20:13:02 +02:00 |
|
Irmen de Jong
|
0285a4cce1
|
avoid needless pointer arithmetic multiplication by struct size 1
|
2025-08-27 21:50:09 +02:00 |
|