Irmen de Jong
159634a99f
Fix m68k frame teardown for intra-subroutine dispatch
2026-10-15 04:29:33 +02:00
Irmen de Jong
e7dfe79919
m68k: add log2, diff, lerp, interpolate, gcd and crc16/32; fix qemu68k word shifts and const-eval of log2/atan2
2026-10-10 17:49:29 +02:00
Irmen de Jong
1f8b42fae5
make user docs and some code comments less convoluted
2026-10-05 20:00:32 +02:00
Irmen de Jong
bdee93dc8f
eliminate redundant lea for repeated indexed array access
2026-09-28 21:51:03 +02:00
Irmen de Jong
468850bc47
structured IR
2026-09-11 20:20:40 +02:00
Irmen de Jong
ce2b298d6f
code cleanups
2026-09-08 22:36:54 +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
e074fe614f
avoid extremely long array data source lines, and redundant label comments
2026-09-06 16:18:31 +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
9c53791ef4
m68k: optimize small memcopies to inline copy
2026-08-30 21:35:48 +02:00
Irmen de Jong
420a9b7249
m68k: optimize load of constant args into CPU registers for subroutine call
2026-08-30 19:20:12 +02:00
Irmen de Jong
93b5faa038
m68k: revert LSIGB/LSIGW direct p8_regfile loads - caused code growth
2026-08-27 19:49:21 +02:00
Irmen de Jong
f33814a594
m68k: fuse LOADX+JUMPI/CALLI in asm peephole and document %jmptable as 6502-only
2026-08-27 04:50:07 +02:00
Irmen de Jong
986ae35821
m68k: optimize LSIGB/LSIGW to direct p8_regfile byte loads
2026-08-27 03:29:56 +02:00
Irmen de Jong
fe6850816c
m68k: restore zero-extension for ADDR/SUBR widening and byte array indices
...
this broke in d978be2f9d
2026-08-23 15:34:17 +02:00
Irmen de Jong
eff1a9fc53
m68k: loop dbra optimization
2026-08-23 14:58:44 +02:00
Irmen de Jong
da6934ea33
m68k: prefer BSR/BRA over JSR/JMP
2026-08-23 01:09:15 +02:00
Irmen de Jong
df659d285b
optimize imports
2026-08-18 01:28:35 +02:00
Irmen de Jong
4e87aa6b85
m68k: preserve immediate loads for named call arguments
2026-08-17 22:19:03 +02:00
Irmen de Jong
fa1ceab78f
M68K codegen: extend immediate call-argument forwarding and dead-store removal to floating-point registers and `p8_fregfile`.
2026-08-16 08:08:02 +02:00
Irmen de Jong
69def73f3f
m68k: allow assigning string constant to long/pointer variable (to get its address)
2026-08-16 06:18:33 +02:00
Irmen de Jong
6c93254758
m68k assembly peephole optimizer
2026-08-16 01:58:17 +02:00
Irmen de Jong
d870c39aa4
m68k: use moveq and movea for call argument loading, drop +0 offset
...
- use moveq for small immediate call args (bytes 128-255 map to signed -128..-1)
- use movea.l for pointer/long args into address registers, dropping +0 suffix
- loadPointerToA0 also emits movea.l without the redundant +0 offset
- update stale C64 multiplexer expected output size
2026-08-15 18:49:28 +02:00
Irmen de Jong
2b93efbb33
m68k: remove redundant 0-extension, optimize and fix MSB/LSB extraction
2026-08-15 18:21:16 +02:00
Irmen de Jong
c563562a6f
m68k: optimized indirect JSR/JMP on 68020+
2026-08-15 16:49:54 +02:00
Irmen de Jong
92a0d3cb1b
m68k: optimize MUL and DIV instructions
2026-08-15 16:39:01 +02:00
Irmen de Jong
21d45a0a90
m68k: optimize CMP instruction, fix %
2026-08-15 16:00:26 +02:00
Irmen de Jong
c87afc03ef
m68k: optimize function call arg loading for immediates
2026-08-15 15:31:43 +02:00
Irmen de Jong
a7f60a571d
m68k: fix byte/word index value type mismatch
2026-08-11 20:58:13 +02:00