Irmen de Jong
9fce07565c
some romable tests, fix romable callfar crash and update stale VM label address test
2026-09-25 22:40:36 +02:00
Irmen de Jong
d703d678b4
fix VM label-valued initializers
2026-09-25 02:22:19 +02:00
Irmen de Jong
90a7c41586
fix IR symbol prefixing
2026-09-25 02:04:43 +02:00
Irmen de Jong
b1a9ba929d
remove ARRAY_POINTER and make pointer arrays target-independent
2026-09-25 01:18:32 +02:00
Irmen de Jong
c031737da0
fixup docs about amiga targets (missing amiga1200 mostly)
2026-09-24 22:31:03 +02:00
Irmen de Jong
4cbf93da85
fix Status flag extraction clobbers a register return value
2026-09-24 01:00:49 +02:00
Irmen de Jong
976b64185d
fix struct size truncation to 256 bytes on targets that allow larger structs (m68k)
2026-09-24 00:22:23 +02:00
Irmen de Jong
2050fcb4ee
m68k: emit struct field definitions in the asm
2026-09-23 23:55:57 +02:00
Irmen de Jong
4eaba62f1e
6502 codegen: inline clamp() on word/uword when having compile-time constant bounds
2026-09-23 22:54:57 +02:00
Irmen de Jong
bf696bcf5e
fix multiple status flag returns in new codegens
2026-09-23 03:10:59 +02:00
Irmen de Jong
34bbb46514
fix a few new6502 codegen bugs
2026-09-23 01:27:40 +02:00
Irmen de Jong
f086918e6f
add union types: structs where every field is at offset 0, thus saving memory
2026-09-23 00:07:44 +02:00
Irmen de Jong
521f7ffbe6
tweak amiga audio
2026-09-22 22:49:09 +02:00
Irmen de Jong
2d070aaec4
Fix 6502 pointer-field augmented assignment clobbering scratch pointer
...
Fixes #245
2026-09-21 22:51:11 +02:00
Irmen de Jong
044a4a1789
amiga: added trackdisk device support
2026-09-21 00:13:17 +02:00
Irmen de Jong
ac4ae0440f
vera64 restructure
2026-09-19 17:50:30 +02:00
Irmen de Jong
efee8bde68
added preliminary VERA64 support library for the c64 target
...
vera64 = a board for the c64 containing a VERA graphics adapter
2026-09-19 00:14:11 +02:00
Irmen de Jong
ef64e2f9a4
fix typed pointer arithmetic p2-p1 to yield the number of elements. fixes #244
2026-09-18 21:22:07 +02:00
Irmen de Jong
7f3b2e8aa6
m68k asm versions of adpcm decoder routines, now byte at a time instead of nibble
2026-09-17 21:53:13 +02:00
Irmen de Jong
f254fc2b62
m68k asm versions of adpcm decoder routines
2026-09-17 02:53:48 +02:00
Irmen de Jong
457d55b392
fix potential endless loop in wavfile library, also made a correct implementation of it for m68k targets (little/big endianness problem resolved)
2026-09-17 00:04:34 +02:00
Irmen de Jong
b21a984dbb
even more optimized adpcm decoding routine
2026-09-16 19:04:49 +02:00
Irmen de Jong
192e0086f9
update plans
2026-09-16 00:52:40 +02:00
Irmen de Jong
7ba2ee9857
added named struct field initializers
2026-09-14 00:56:22 +02:00
Irmen de Jong
a025d68291
added %assert expression, "message"
2026-09-13 23:04:56 +02:00
Irmen de Jong
81794aded3
use Mordant library to make some terminal output more sophisticated
...
this library is already used by the Clikt option parser library so no new dependency
2026-09-13 21:28:32 +02:00
Irmen de Jong
9621552056
add 'arena' allocator library
...
6502 targets use uword sizes with no alignment overhead; m68k/virtual use
long sizes with even-address alignment. Updated the six pointer examples that used to have their own arena implementation.
2026-09-13 05:43:57 +02:00
Irmen de Jong
5685a1f229
6502: tighter for loop code for word and long loop vars
2026-09-13 04:29:59 +02:00
Irmen de Jong
ca729d279e
update history and syntax files
2026-09-12 23:14:50 +02:00
Irmen de Jong
ceffa4d83d
todos
2026-09-11 19:25:43 +02:00
Irmen de Jong
302e4bdf8e
m68k targets are experimental not for production code use
2026-09-10 20:41:00 +02:00
Irmen de Jong
4c65049817
proper error message when using a builtin function name as block name
2026-09-09 04:05:31 +02:00
Irmen de Jong
a7cbc2c5bf
Review fixes: pointer read desugaring and poke->assignment optimizer
2026-09-09 02:31:21 +02:00
Irmen de Jong
d51ca62431
Fix poke->assignment optimizer dropping AddressOf index
...
StatementOptimizer rewrote pokel(&arena[1], x) to arena = x, ignoring
AddressOf.arrayIndex (and dereference), which miscompiled implicit
indexed-base struct field writes such as arena[1].s = X. All four
poke/pokew/pokel/pokef rewrites now require a plain variable address.
2026-09-09 02:05:20 +02:00
Irmen de Jong
9ac60eec40
fix some more pointer syntax related issues
2026-09-09 01:33:43 +02:00
Irmen de Jong
c55b16f4cb
todo
2026-09-09 01:01:16 +02:00
Irmen de Jong
bd0457f262
Allow const expressions for 2D array dimensions (not just numeric literals)
2026-09-08 23:13:54 +02:00
Irmen de Jong
cf7afaf77a
update libraries, update to kotlin 2.4.20
2026-09-08 21:41:53 +02:00
Irmen de Jong
619a215a87
fix test size expectation
2026-09-07 19:14:58 +02:00
Irmen de Jong
c12e27dacc
cx16: added verafx-accelerated line routine, added cobramk3 example that uses it next to the cpu only version
2026-09-06 22:51:12 +02:00
Irmen de Jong
db32b81d7a
m68k: d0 caching
2026-09-06 20:32:16 +02:00
Irmen de Jong
687d86d36e
added amiga1200 target (68020 + FPU)
2026-09-06 18:25:15 +02:00
Irmen de Jong
58f544fe14
Implement counted-loop IR (IRLoopChunk)
...
Replace the early lowering of constant repeat/for loops into p8_regfile
counter sequences with a first-class IRLoopChunk that carries the trip
count and body. This removes the fragile REGFILE-DEPENDENT m68k dbra
peephole and gives each backend explicit control.
2026-09-04 00:01:00 +02:00
Irmen de Jong
0771105694
fix sorting module on virtual target
2026-09-03 03:39:07 +02:00
Irmen de Jong
b0f1f655c3
codeGenIntermediate: fold struct-array field access to single LOADX/STOREX
...
Replace arr[idx].field (arr:Struct[Sz], idx variable) from
EXT+MUL #Sz + ADDR + ADD #fieldOff + LOADI/STOREI (5 ops) to
single indexed op: LOADX/STOREX arr+fieldOff,S=Sz and
STOREZX for zero. Reuses existing ,S=N + +off encoding.
2026-09-02 01:35:30 +02:00
Irmen de Jong
59c41ad129
ir: add scaled indexing (S=) to LOADX/STOREX/STOREZX
...
Remove byte-offset pre-scaling from IR generation and encode
element index + explicit scale in the IR. Effective address is
base + index*scale + disp (disp = symbolOffset).
2026-09-02 00:34:23 +02:00
Irmen de Jong
60eeaba791
streamline IR optimization proposals
2026-09-01 23:15:03 +02:00
Irmen de Jong
9d537ab3c0
warn when %zpreserve/%zpallowed excludes fixed zeropage scratch locations
2026-09-01 04:21:49 +02:00
Irmen de Jong
1ba08ec6ec
make -dumpvars work on all compilation targets
2026-09-01 03:51:13 +02:00
Irmen de Jong
9c53791ef4
m68k: optimize small memcopies to inline copy
2026-08-30 21:35:48 +02:00