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 |
|
Irmen de Jong
|
64c132ee0a
|
changed -breakinstr option so that you now specify the exact instruction to use for a %breakpoint.
also fixed a IR issue with x=not x.
|
2024-01-22 22:01:47 +01:00 |
|
Irmen de Jong
|
43027a4728
|
IR: optimize rol ror
|
2024-01-18 21:51:44 +01:00 |
|
Irmen de Jong
|
69075376dc
|
get rid of the noshortcircuit fallback
|
2024-01-17 21:24:41 +01:00 |
|
Irmen de Jong
|
504d1440cc
|
fixed rol(),rol2(),ror(),ror2()
|
2024-01-17 21:02:17 +01:00 |
|
Irmen de Jong
|
0cfcc5cd29
|
fix VM sgn() function for floats
|
2024-01-16 01:34:55 +01:00 |
|
Irmen de Jong
|
66a836d094
|
added support for reverse() on split word arrays
|
2024-01-16 00:52:09 +01:00 |
|
Irmen de Jong
|
80095f4962
|
added support for any() on split word arrays
|
2024-01-15 23:51:19 +01:00 |
|