Commit Graph
3153 Commits
Author SHA1 Message Date
Irmen de Jong 0f72bafeae improve code for in-place assignments to indexed pointers 2026-04-14 19:11:13 +02:00
Irmen de Jong db84c375f1 implement a missing long pointer assignment case 2026-04-14 01:55:02 +02:00
Irmen de Jong d5eef79892 implement @nosplit pointer arrays 2026-04-13 20:41:57 +02:00
Irmen de Jong d5a53c5d21 implement missing division operations in VM 2026-04-13 18:48:35 +02:00
Irmen de Jong bd51296a33 implement V flag on comparisons in the virtualmachine 2026-04-12 20:47:56 +02:00
Irmen de Jong c0103f149e more general implementation of struct definition equality check see github #198 2026-04-12 20:43:19 +02:00
Irmen de Jong d836f48f38 updated prog8 instructions 2026-04-12 13:00:19 +02:00
Irmen de Jong 952d7b3162 fix faulty float optimization and ptrderef equality check 2026-04-11 23:55:59 +02:00
Irmen de Jong 5638eb1c53 asm optimizations: fix inconsistent line property, float copy optimization bug, Y register modification bug 2026-04-11 19:24:12 +02:00
Irmen de Jong be60021edc fix lacking checks for IO registers in asm optimizer, caused incorrect instruction removals 2026-04-11 04:18:22 +02:00
Irmen de Jong 59d0f7d49c 2-dimensional array support 2026-04-10 04:22:38 +02:00
Irmen de Jong 74475d023b improving IR symbolic references 2026-04-09 03:54:51 +02:00
Irmen de Jong 9ae0623ad0 making MemoryAddress an Unsigned Int 2026-04-09 02:40:24 +02:00
Irmen de Jong 33b34b990e making RegisterNum type safe 2026-04-08 02:57:45 +02:00
Irmen de Jong 6dc96bb8f0 making IRInstruction parameters type safe 2026-04-07 20:15:55 +02:00
Irmen de Jong aeca6350da make IR instruction number order more pleasant to read 2026-04-07 14:39:28 +02:00
Irmen de Jong 6a340aa59d refactor void return value handling for multivalue results 2026-04-07 13:41:07 +02:00
Irmen de Jong 207650fbc2 fix multivalue pha/pla regression 2026-04-07 05:52:50 +02:00
Irmen de Jong 4fb3df977e fix correct evaluation of floats in multi-value returns 2026-04-07 05:41:27 +02:00
Irmen de Jong bba08f55de use compact loop to copy longs instead of 4x lda/sta pairs 2026-04-06 20:47:20 +02:00
Irmen de Jong 9e5df3d2d4 Optimize the IfExpression code generation to be more like regular if-else code (tighter branch code) 2026-04-06 20:25:41 +02:00
Irmen de Jong 5c1aa2307d for loops where the counter variable is unused in the loop body and count is constant -> simple repeat loops 2026-04-05 23:35:58 +02:00
Irmen de Jong 7658a0ab12 added strings.isxdigit()
fixed size bugs in several virtual string to number conv routines
2026-04-03 23:33:00 +02:00
Irmen de Jong 1ed618c474 performance improvements in parser 2026-04-03 04:31:29 +02:00
Irmen de Jong 92751d9285 document links in the LSP, remove repl/beanshell 2026-04-02 21:55:56 +02:00
Irmen de Jong 511564dd1e symbol extraction in the LSP 2026-04-02 01:14:36 +02:00
Irmen de Jong f38c701658 some support for inlining multi-value returns (where there are no function parameters to deal with) 2026-03-31 04:42:34 +02:00
Irmen de Jong 5fd11ca036 more consistent allowance of inline keyword 2026-03-29 10:15:51 +02:00
Irmen de Jong 5330069b53 disallow weird sizeof argument types 2026-03-29 09:50:13 +02:00
Irmen de Jong 5408a3ca68 fix compiler crash on certain pointer type struct fields
added new compiler options for debugging purposes
2026-03-29 08:25:53 +02:00
Irmen de Jong cecf49b8e3 IR: attempt to optimize negative comparisons by using direct status flag branches instead 2026-03-29 01:23:24 +01:00
Irmen de Jong 65c17b920a add txt.iso() to virtual target for source code compatibility and tests 2026-03-29 00:39:04 +01:00
Irmen de Jong 7666b72fea implement missing codegen for returning multivalue result of a subroutine call 2026-03-28 23:38:52 +01:00
Irmen de Jong bcd12a0fc7 improve handling of boolean literals in logical expressions with -noopt 2026-03-28 19:19:14 +01:00
Irmen de Jong dd0828a1fc fix a circular dependency in gfx_lores.p8 between line and plot 2026-03-28 15:35:56 +01:00
Irmen de Jong 68226a8fcd Update Kotlin and dependencies to latest versions
- Bump Kotlin to 2.3.20 across all configurations.
- Upgrade `kotlin-result-jvm` to 2.3.1 in all modules.
- Update Gradle wrapper to 9.4.0.
- Add `poweroff_system()` function in virtual target symboldump
2026-03-25 17:51:01 +01:00
Irmen de Jong bc959435ec fix missing const-evaluation for abs() and clamp()
add `poweroff_system()` for virtual target function
clarify CX16 usage and debugging tips
2026-03-20 02:31:17 +01:00
Irmen de Jong e5c6e4b854 add output size verification for compiled examples; include PET target in tests 2026-03-19 20:16:47 +01:00
Irmen de Jong 4294658d71 fix IR symbol lookup for deeply scoped variables 2026-03-18 23:31:39 +01:00
Irmen de Jong bb907aa2af fix chained aliasing errors 2026-03-18 21:52:42 +01:00
Irmen de Jong c291d7d4a8 const memory() support in struct initializers 2026-03-18 04:16:05 +01:00
Irmen de Jong d2633187a6 more work on making memory() const (6502) 2026-03-18 02:57:59 +01:00
Irmen de Jong 410e330889 add --nostdlib compiler option to disable loading built-in standard libraries 2026-03-17 21:46:33 +01:00
Irmen de Jong 11f187bda8 implement signed % remainder operator for virtual target 2026-03-17 03:36:38 +01:00
Irmen de Jong a53e7c7050 fix divmod result when dividing by 0 2026-03-16 03:25:34 +01:00
Irmen de Jong 8be0cd3c19 fix certain value copying through pointer dereferences 2026-03-16 00:10:47 +01:00
Irmen de Jong decfbfc8cc allow float constants even without float option enable 2026-03-15 22:46:35 +01:00
Irmen de Jong 652da4c692 fix some (not all) problems with directly returning multivalue returncalls 2026-03-15 22:33:17 +01:00
Irmen de Jong ce58f0e759 fix virtual target diskio.f_write(), added f_tell() and f_seek()
cx16 diskio.f_seek() and f_seek_w() now return success status
2026-03-15 21:04:06 +01:00
Irmen de Jong 8ba8efbc3e added sys.die() , a bare bones emergency exit function 2026-03-14 22:13:13 +01:00