Irmen de Jong
1682400988
fix missing cx16 virtual register symbols in asm file (bool and long variants)
...
fix actually relocating all of them in the cx16 module
pet32 and c128 targets now also relocate them to ZP if there is space
2025-12-22 17:56:25 +01:00
Irmen de Jong
e57d9f59a2
fix long 0 argument to asmsub with 32-bits combined virtual register to pass it in
2025-12-21 22:23:17 +01:00
Irmen de Jong
4030a1b9e5
cleanup, animals example removed because it's superseded by the pointers/animalgame example now
2025-12-16 16:48:34 +01:00
Irmen de Jong
014a82a1ee
always put all struct types as .struct in asm code to make them all accessible for size and offsets
2025-12-10 21:39:44 +01:00
Irmen de Jong
b38fff76e9
hack to work around struct name prefix inconsistency
...
see github issue 198
2025-12-03 21:07:08 +01:00
Irmen de Jong
6871561c09
fix parent node error in sizeof()
2025-12-01 23:21:14 +01:00
Irmen de Jong
b1ef863c7f
make $8000000 a valid long integer (-2147483648)
2025-11-26 23:10:59 +01:00
Irmen de Jong
69ef63c96d
tweaks
2025-11-24 22:23:40 +01:00
Irmen de Jong
397a907088
fix handling and errors of using long addresses in memread/memwrite
2025-11-09 18:17:57 +01:00
Irmen de Jong
afb458a7da
fix crash in long address-of
2025-11-08 22:24:37 +01:00
Irmen de Jong
833e463525
String indexing bound check now includes the terminating 0 character. Also fix negative indexes on strings.
...
fixes #190
2025-11-07 23:20:44 +01:00
Irmen de Jong
6611e4e092
improve error message
2025-11-07 01:22:41 +01:00
Irmen de Jong
bc8ba252a5
made Position line, col, endcol all 1-based
...
added a precise (but slow) back face culling routine to the cobra-mk3 example
2025-11-05 00:25:43 +01:00
Irmen de Jong
c353dd40bf
put on..call jumplist in correct scope, fixes #197
2025-11-03 23:46:49 +01:00
Irmen de Jong
928ef6bbaa
fix on..call parse problem, also struct name cannot be a keyword
2025-11-03 21:21:07 +01:00
Irmen de Jong
b73c958c4a
ir immediate syntax fixes
2025-11-01 16:55:00 +01:00
Irmen de Jong
b02a8ed954
strings can no longer be assigned by-value. Use strings.copy() instead. Fixes #189
2025-10-31 19:22:40 +01:00
Irmen de Jong
b1e07f3fdb
better error when trying to use a const pointer (which is not supported yet)
2025-10-30 20:58:21 +01:00
Irmen de Jong
a5e827e40f
implement some more long array operations
2025-10-30 01:20:59 +01:00
Irmen de Jong
9c2bcab4a5
fix more ptr/long issues
2025-10-28 23:08:12 +01:00
Irmen de Jong
2f07f41664
detect self-referencing aliases
2025-10-23 21:24:14 +02:00
Irmen de Jong
ebc738b132
'hack' to allow unsigned long constants such as $ffffffff to be assigned to longs without casts
2025-10-20 00:33:40 +02:00
Irmen de Jong
a84320c7e2
add sgn(long) support, fix sgn() result type in IR
2025-10-12 12:22:32 +02:00
Irmen de Jong
598e70c49a
allow negative values on poke and pokew without an explicit cast
2025-10-11 16:39:36 +02:00
Irmen de Jong
0c59ad70d4
fix aliased pointer deref problem
2025-10-10 22:13:24 +02:00
Irmen de Jong
f4f34fc2ed
added symboltable into CompilationResult because it might be useful to inspect in tests
2025-10-07 00:26:43 +02:00
Irmen de Jong
37535f2913
optimize charfade example, added textspotlight example
2025-10-05 21:18:47 +02:00
Irmen de Jong
4ed92d71a7
remove "@split" tag
...
The default is to split word arrays. If you need your word array to not be split, use @nosplit on the array.
2025-10-05 17:06:21 +02:00
Irmen de Jong
3e1386a987
remove the -dontsplitarrays compiler option
...
it was still there for backward compatibility reasons with really old prog8 code. If you need a word array to be not split, just use @nosplit on the array.
2025-10-05 14:44:29 +02:00
Irmen de Jong
4195e3968a
remove needless library module imports in unit tests
2025-10-05 13:10:02 +02:00
Irmen de Jong
3e07b6ca70
adding long arrays
2025-10-03 01:22:24 +02:00
Irmen de Jong
d66dc664de
work on longs
2025-10-03 01:22:24 +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
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
a611406020
IR: add compilerversion attribute to p8ir file
2025-09-30 22:07:04 +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
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
fd62fe7511
fix crash on invalid type cast added to ptr deref expression ('.' operator)
2025-09-22 23:54:01 +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
ad0c767ea8
%breakpoint! introduced to place after an assignment to make it parse correctly
2025-09-20 00:46:15 +02:00
Irmen de Jong
ed5f4d5855
fix missing subroutine argument list check
2025-09-19 05:35:03 +02:00
Irmen de Jong
c2f5d37486
new cx16/charfade.p8 example
2025-09-19 04:44:08 +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
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