Irmen de Jong
460adb9e02
Remove Exec-specific for-loop over linked lists, disallow pointer as struct field name
2026-10-13 01:01:24 +02:00
Irmen de Jong
dfb3257c04
reserve the 'pointer' datatype name, it can no longer be used as a symbol name
2026-10-13 00:00:26 +02:00
Irmen de Jong
eda21a6ebf
Fix in operator on arrays larger than 255 elements
2026-10-11 02:05:21 +02:00
Irmen de Jong
a1a48405b0
m68k: fix a5 frame pointer register clobbering
2026-10-07 19:06:16 +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
e74c34a5ab
fix builtins rejecting a cx16 virtual register as their result register
2026-10-01 02:54:53 +02:00
Irmen de Jong
5222562493
move sqr range check into prog8_math.square instead of inlining it at each call site
2026-09-27 11:49:49 +02:00
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
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
2d070aaec4
Fix 6502 pointer-field augmented assignment clobbering scratch pointer
...
Fixes #245
2026-09-21 22:51:11 +02:00
Irmen de Jong
ba76fbfe85
fix code generation for "return <void function call>"
2026-09-17 22:39:53 +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
dbba6a94fa
Merge branch 'v12maintenance'
...
# Conflicts:
# codeGenCpu6502/src/prog8/codegen/cpu6502/assignment/AssignmentAsmGen.kt
# compiler/src/prog8/compiler/astprocessing/AstIdentifiersChecker.kt
# compiler/test/ast/TestVariousCompilerAst.kt
# compiler/test/codegeneration/TestExecution6502.kt
# examples/test.p8
# gradle.properties
2026-09-10 21:45:47 +02:00
Irmen de Jong
af06fdfffc
fix more 6502-only struct pointer-field bugs; add indexed in-place support
...
fixes #237
2026-09-10 19:20:02 +02:00
Irmen de Jong
e811ecdbde
fix 6502 struct pointer-field array indexing
2026-09-09 23:47:09 +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
ce2b298d6f
code cleanups
2026-09-08 22:36:54 +02:00
Irmen de Jong
9a461628f2
Merge branch 'v12maintenance'
2026-09-02 19:14:57 +02:00
Irmen de Jong
c8f309307f
fix inlining bug: subroutines with register-mapped parameters cannot be inlined
2026-09-02 19:10:21 +02:00
Irmen de Jong
b702ea50da
no longer mangle inline asm that uses pipe operator (in other spots that is used as an instruction separator...)
2026-09-02 02:02:53 +02:00
Irmen de Jong
05cbe74a60
attempt to fix github runner OOM
2026-08-30 23:04:47 +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
986ae35821
m68k: optimize LSIGB/LSIGW to direct p8_regfile byte loads
2026-08-27 03:29:56 +02:00
Irmen de Jong
250ddda11b
ir,m68k: add LOADP_INC/STOREP_INC for pointer post-inc (a0)+
2026-08-27 02:57:54 +02:00
Irmen de Jong
56643f43df
tweak m68k tests and docs
2026-08-26 22:31:05 +02:00
Irmen de Jong
8647b136bd
6502: fix constant byte store via pointer+const offset storing garbage
...
fixes regression from commit 102992911
2026-08-25 23:59:41 +02:00
Irmen de Jong
4199ab4200
fix broken unit test dependency on vasm
2026-08-23 16:07:27 +02:00
Irmen de Jong
f750caa833
68k: fix vasm parse issue with .b, .l etc symbols -> now name-mangled
2026-08-22 21:46:16 +02:00
Irmen de Jong
234468690e
resolve aliased/qualified struct types via StructTypeResolver with proper errors, infer for-loop node type in the list declaration's scope so imported module lists work, and fix 6502 codegen crash comparing against &struct.field
2026-08-21 23:00:00 +02:00
Irmen de Jong
df659d285b
optimize imports
2026-08-18 01:28:35 +02:00
Irmen de Jong
12f375e070
Merge branch 'new-codegens' into vm32bit
...
# Conflicts:
# examples/test.p8
2026-08-16 23:28:39 +02:00
Irmen de Jong
54a1a0704a
allow strings to be used to initialize arrays in struct instances
2026-08-16 23:25:41 +02:00
Irmen de Jong
cc4f27d121
vm: making VM 32 bit
...
work in progress: see vm32.md there are failing tests still
2026-08-16 19:49:28 +02:00
Irmen de Jong
7eab0278b3
Merge branch 'master' into new-codegens
2026-08-16 07:32:34 +02:00
Irmen de Jong
36b12e9897
fix uword double increment/decrement bug
2026-08-16 07:26:21 +02:00
Irmen de Jong
f011d3f100
new language feature: %option private_symbols, and public keyword - to manage visibility
2026-08-13 22:05:58 +02:00
Irmen de Jong
208205faea
step 4 to allow for loop 'step' to be variable not only const: various correctness
2026-08-11 06:17:34 +02:00
Irmen de Jong
5af6afef61
step 3 to allow for loop 'step' to be variable not only const: 6502 codegen
2026-08-11 05:29:55 +02:00
Irmen de Jong
4506a3cb3e
pass compilation target to more places to be able to determine correct types
2026-07-12 03:52:57 +02:00
Irmen de Jong
8a7922ffcc
fix split words arrays on m68k to be not split
2026-07-10 01:47:18 +02:00
Irmen de Jong
a532fb411b
IR POINTER size tweaks
2026-07-07 02:58:05 +02:00
Irmen de Jong
a46443417e
disable zeropage usage on non-6502 targets
2026-07-05 20:02:14 +02:00
Irmen de Jong
0e7237c64a
newcodegen: fixing branches
2026-07-03 21:13:27 +02:00