Irmen de Jong
|
54bffc91ae
|
properly generate PUSH and POP instructions for push() and pop() calls in IR.
Also switch to a fork of shadowJar to avoid Gradle deprecation errors.
|
2024-06-25 22:39:20 +02:00 |
|
Irmen de Jong
|
034f27a8dd
|
added queens example, update kotest lib
|
2024-06-19 23:57:43 +02:00 |
|
Irmen de Jong
|
c9a4235669
|
update to kotlin 2.0, fix several code style issues
|
2024-06-04 01:00:46 +02:00 |
|
Irmen de Jong
|
c719e274d5
|
java version tweaks
|
2024-05-18 20:25:44 +02:00 |
|
Irmen de Jong
|
4a710ecdfc
|
cleanups
|
2024-05-17 18:48:04 +02:00 |
|
Irmen de Jong
|
7915dda35f
|
update libraries
|
2024-05-12 03:02:54 +02:00 |
|
Irmen de Jong
|
53df0eb707
|
cleanups
|
2024-04-10 22:04:03 +02:00 |
|
Irmen de Jong
|
db80417bd7
|
fix a problem with const fold optimization in if expressions, and IR compilation of that
|
2024-04-09 22:09:29 +02:00 |
|
Irmen de Jong
|
92c012b55a
|
fix IR peephole optimization
|
2024-04-02 00:28:28 +02:00 |
|
Irmen de Jong
|
641f6c05d8
|
allow 'void' as dummy assign target in multi-assignment statements
|
2024-03-31 23:43:26 +02:00 |
|
Irmen de Jong
|
3e34a3ef72
|
allow multi-assign to skip any status register result
|
2024-03-29 23:10:08 +01:00 |
|
Irmen de Jong
|
bd5abfb969
|
add IR peephole optimization to remove redundant store
|
2024-03-28 01:06:05 +01:00 |
|
Irmen de Jong
|
993be6394e
|
unit tests multi-assigns
|
2024-03-25 23:20:03 +01:00 |
|
Irmen de Jong
|
9a27505315
|
6502 codegen for multi-assigns
|
2024-03-25 22:17:31 +01:00 |
|
Irmen de Jong
|
2e37f5dee3
|
IR: support for multi-returnvalue function calls (asmsubs)
note: the VM can't execute these though as it has no CPU hardware registers
|
2024-03-23 00:30:17 +01:00 |
|
Irmen de Jong
|
03e486c082
|
multi assign
|
2024-03-22 21:51:25 +01:00 |
|
Irmen de Jong
|
edc83305a4
|
allow multiple targets in AssignTarget
|
2024-03-22 21:51:08 +01:00 |
|
Irmen de Jong
|
66e7c51064
|
IR: fix some things related to asmsubs
|
2024-03-22 21:49:01 +01:00 |
|
Irmen de Jong
|
04df3c9f7f
|
vm: implemented in-place array multiplication better
|
2024-03-17 13:39:05 +01:00 |
|
Irmen de Jong
|
de3d0b40dc
|
fixed vm problem with branching instructions in global init chunk
|
2024-03-17 13:22:17 +01:00 |
|
Irmen de Jong
|
80f39e8097
|
Merge branch 'booleans'
# Conflicts:
# compiler/res/prog8lib/cx16/monogfx.p8
# compiler/res/prog8lib/virtual/monogfx.p8
# compiler/src/prog8/compiler/astprocessing/BoolRemover.kt
# compiler/test/TestTypecasts.kt
# docs/source/todo.rst
# examples/cx16/highresbitmap.p8
# examples/test.p8
# httpCompilerService/src/prog8/http/TestHttp.kt
|
2024-03-11 01:00:48 +01:00 |
|
Irmen de Jong
|
04f7b772a3
|
lib updates, removed unused and obsolete http and dbus modules
|
2024-03-05 23:42:35 +01:00 |
|
Irmen de Jong
|
004048e5a7
|
fix IR codegen error for b=float>value
|
2024-03-02 23:19:39 +01:00 |
|
Irmen de Jong
|
f5e332daf7
|
remove redundant IR instructions like SNZ
|
2024-03-02 23:19:39 +01:00 |
|
Irmen de Jong
|
cc57477b99
|
IR: support for indirect jump after if
|
2024-03-02 23:19:39 +01:00 |
|
Irmen de Jong
|
7d8cdcbfea
|
more bool fixes and optimizations in codegen
|
2024-03-02 23:19:39 +01:00 |
|
Irmen de Jong
|
73be754680
|
move in place assignment functions back to AssignmentGen
|
2024-03-02 23:19:39 +01:00 |
|
Irmen de Jong
|
acd841dbb6
|
bool changes in 6502 assignment codegen
|
2024-03-02 23:19:37 +01:00 |
|
Irmen de Jong
|
10d12f73d6
|
IR/VM: testing the boolean changes, added in-place and/or.
|
2024-03-02 23:19:20 +01:00 |
|
Irmen de Jong
|
cd9119655c
|
IR codegen
|
2024-03-02 23:19:20 +01:00 |
|
Irmen de Jong
|
f40b7b62bb
|
updated unit tests and some basic changes for them
|
2024-03-02 23:19:20 +01:00 |
|
Irmen de Jong
|
040d75dafa
|
VM now supports indirect jump instruction
|
2024-02-22 16:19:26 +01:00 |
|
Irmen de Jong
|
4e1686f6e3
|
fix warnings in gradle build scripts
|
2024-02-22 10:34:51 +01:00 |
|
Irmen de Jong
|
b5e691f367
|
IR: fix chunk reachability: via unchopped chunk label directly so that they don't get removed
|
2024-02-21 23:18:57 +01:00 |
|
Irmen de Jong
|
88458f5355
|
faster array copy and fix for length 256
|
2024-02-11 23:57:38 +01:00 |
|
Irmen de Jong
|
8201408f16
|
fix element size calc when copying array
|
2024-02-10 22:58:44 +01:00 |
|
Irmen de Jong
|
d7f72056fc
|
rest of the array copying
|
2024-02-10 17:16:06 +01:00 |
|
Irmen de Jong
|
906d9d858c
|
implementing the array copys
|
2024-02-10 01:40:36 +01:00 |
|
Irmen de Jong
|
e941d2665a
|
preparing for new array copy codegen
|
2024-02-09 18:22:41 +01:00 |
|
Irmen de Jong
|
68669dbef0
|
fix & of pointervar indexing
|
2024-02-08 23:03:53 +01:00 |
|
Irmen de Jong
|
6a48de9a9f
|
IR: fix & of array-element
|
2024-02-08 21:27:53 +01:00 |
|
Irmen de Jong
|
358215e4dd
|
removed postIncrDecr (still allow ++/-- to be parsed into +=1/-=1)
|
2024-02-06 18:50:08 +01:00 |
|
Irmen de Jong
|
3c77f8a020
|
IR: optimize pointer access
|
2024-02-04 07:51:50 +01:00 |
|
Irmen de Jong
|
b0f5b6925d
|
getting rid of pointer[idx] in ast, instead always use @(ptr+idx)
|
2024-02-03 19:22:04 +01:00 |
|
Irmen de Jong
|
e0055bc431
|
IR: working on inplace +/-
|
2024-01-29 22:08:47 +01:00 |
|
Irmen de Jong
|
9553248ed6
|
IR: integrate inplace assignment ops
|
2024-01-28 22:33:16 +01:00 |
|
Irmen de Jong
|
39d2194d8f
|
IR: implemented inplace prefix op on split array
VM: NEG instructions also set N and Z flags
|
2024-01-28 22:33:13 +01:00 |
|
Irmen de Jong
|
8cf0b6cf51
|
IR: optimize code for ==0 and !=0 augmented assigns
|
2024-01-25 00:30:47 +01:00 |
|
Irmen de Jong
|
f2010bf7a5
|
IR: better code for array element assignments (w.i.p.)
|
2024-01-23 00:56:06 +01:00 |
|
Irmen de Jong
|
8f56a7fe69
|
IR: use INV instead of XOR for bitwise invert
|
2024-01-22 22:47:54 +01:00 |
|