Irmen de Jong
|
2a53dbc1f3
|
tweaks
|
2026-02-27 01:56:55 +01:00 |
|
Irmen de Jong
|
9736ac19d1
|
implementing multiple return values for builtin functions
|
2026-02-22 19:54:21 +01:00 |
|
Irmen de Jong
|
2613d45cd5
|
swap() is now a statement instead of a builtin function call
|
2026-02-17 20:56:21 +01:00 |
|
Irmen de Jong
|
5d5ad8a70e
|
fix void/nonvoid assign target issue
|
2026-01-24 01:11:30 +01:00 |
|
Irmen de Jong
|
51ac096a31
|
add a -warnimplicitcasts compiler option
|
2026-01-23 03:06:53 +01:00 |
|
Irmen de Jong
|
561e05a764
|
decent error message for unsupported struct instance expressions. Fixes #205
|
2026-01-22 02:47:44 +01:00 |
|
Irmen de Jong
|
573702111e
|
attempt at improving compilation speed by caching scopedName
|
2026-01-16 22:46:04 +01:00 |
|
Irmen de Jong
|
bbfb2eb367
|
optimized longvar = lptr^^
|
2026-01-07 23:30:35 +01:00 |
|
Irmen de Jong
|
78d6d2d59a
|
breaking change: renamed R0R1_32 etc combined register parameters to just R0R1, R2R3, etc etc (_32 suffix is removed to make it more consistent with the other existing register names)
|
2026-01-07 21:56:16 +01:00 |
|
Irmen de Jong
|
652b585ea4
|
code style
|
2026-01-07 00:48:45 +01:00 |
|
Irmen de Jong
|
77161e0f39
|
avoid separate definitions for list of simple builtin functions
|
2026-01-06 18:19:15 +01:00 |
|
Irmen de Jong
|
9827be0047
|
optimize sgn(integer) comparisons
|
2026-01-05 18:33:26 +01:00 |
|
Irmen de Jong
|
6028cc49ab
|
simplify when into if-else, if possible
|
2026-01-04 19:39:38 +01:00 |
|
Irmen de Jong
|
3f6177cbb8
|
improved 6502 codegen for lsb/msb of struct field
|
2026-01-02 21:36:11 +01:00 |
|
Irmen de Jong
|
cc0425a2c4
|
detect circular aliases, also fix error message for aliased function call with wrong number of args
|
2025-12-26 15:04:55 +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
|
b1ef863c7f
|
make $8000000 a valid long integer (-2147483648)
|
2025-11-26 23:10:59 +01:00 |
|
Irmen de Jong
|
352c11ad9f
|
optimize float<>0 into sgn(float)<>0
|
2025-11-21 00:57:43 +01:00 |
|
Irmen de Jong
|
64d0cd87a8
|
diskio.f_seek() and f_tell() now use longs instead of separate words
also fix bug when returning multiple long values
|
2025-11-15 15:13:26 +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
|
be74290ddc
|
many more TODO messages now log proper source positions
|
2025-10-15 17:58:40 +02:00 |
|
Irmen de Jong
|
424b89f357
|
longs now returned in R14+R15 instead of R0+R1
|
2025-10-12 00:27:17 +02:00 |
|
Irmen de Jong
|
88c5d9783a
|
long params and return values
|
2025-10-03 01:22:24 +02:00 |
|
Irmen de Jong
|
b058f1c7c2
|
implement mklong(a,b,c,d) and mklong2(w1,w2)
|
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
|
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
|
124ea1230b
|
fix vm to understand struct instances in arrays
|
2025-09-14 19:04:01 +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
|
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
|
ced4c5944a
|
fix broken optimization for wordvar - value expressions
|
2025-09-09 08:05:51 +02:00 |
|
Irmen de Jong
|
783b111059
|
pointer to uword casts should not be removed
optimized addUnsignedByteOrWordToAY a tiny bit (but needs more)
|
2025-09-03 23:09:11 +02:00 |
|
Irmen de Jong
|
a7e9d8e14b
|
fix struct field offset calculations
|
2025-09-01 18:57:02 +02:00 |
|
Irmen de Jong
|
13e6f64d3b
|
implement missing struct pointer indexing codegen
|
2025-08-31 12:20:38 +02:00 |
|
Irmen de Jong
|
5eb2fc8d86
|
fix a bad pointer arithmetic optimization
|
2025-08-29 19:36:57 +02:00 |
|
Irmen de Jong
|
5a3aa1bd25
|
optimized IR to return a constant value: use RETURNI
|
2025-08-26 22:54:11 +02:00 |
|
Irmen de Jong
|
cf19fb8df1
|
fix 6502 struct type and field name prefixing and datatype references to stale structs from stale Symboltable
|
2025-08-19 20:47:37 +02:00 |
|
Irmen de Jong
|
4a8d5def84
|
code cleanups, pointer TODOs, docs dark mode
|
2025-08-16 11:25:18 +02:00 |
|
Irmen de Jong
|
2f60716082
|
6502 struct allocation to asm file, struct name and field prefixing (maybe unneeded...)
|
2025-08-16 01:49:22 +02:00 |
|
Irmen de Jong
|
9e85571a7b
|
fix pointer variable usage detection in other block
|
2025-08-05 17:39:22 +02:00 |
|
Irmen de Jong
|
d4e83b28bb
|
error messages and trying to improve support for struct allocs in arrays
added sorting example
|
2025-08-02 19:22:58 +02:00 |
|
Irmen de Jong
|
c39d570b72
|
make more use of ISubType interface itself rather than casting it to StructDecl all the time
|
2025-07-29 22:59:31 +02:00 |
|
Irmen de Jong
|
1c9c5aeef7
|
todos
|
2025-07-28 23:29:18 +02:00 |
|
Irmen de Jong
|
08810c2749
|
proper error message for unsupported &&subroutine
|
2025-07-27 23:44:24 +02:00 |
|
Irmen de Jong
|
624220e9a3
|
fix boolean struct field as if conditional
|
2025-07-27 01:58:18 +02:00 |
|
Irmen de Jong
|
817f4f8e7c
|
Merge branch 'master' into structs
# Conflicts:
# compiler/src/prog8/compiler/Compiler.kt
# compiler/src/prog8/compiler/astprocessing/AstExtensions.kt
# compiler/src/prog8/compiler/astprocessing/StatementReorderer.kt
# docs/source/todo.rst
# examples/test.p8
|
2025-07-24 22:27:29 +02:00 |
|
Irmen de Jong
|
866313209b
|
fixed zp vars 0 initialization
|
2025-07-24 00:17:31 +02:00 |
|
Irmen de Jong
|
49a4d9ba37
|
allow str as struct field type (^^ubyte) and strings in struct initializers
|
2025-06-15 00:29:59 +02:00 |
|
Irmen de Jong
|
0be90dedf2
|
check for split word array as argument
|
2025-06-11 21:35:36 +02:00 |
|