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 |
|
Irmen de Jong
|
828d83dbef
|
loadScaledArrayIndexIntoRegister(): useless type arg removed
|
2024-01-15 22:19:52 +01:00 |
|
Irmen de Jong
|
0a356ba73a
|
added containment check of float arrays
|
2024-01-14 14:14:09 +01:00 |
|
Irmen de Jong
|
968609d06d
|
IR: fix problems with symbol offsets and unused subroutines/chunks
|
2024-01-13 16:43:41 +01:00 |
|
Irmen de Jong
|
0c1018ec61
|
dt error details
|
2024-01-12 17:34:19 +01:00 |
|
Irmen de Jong
|
ddb2ff4216
|
IR: use SCS opcode to set carry status flag into register
|
2024-01-09 23:46:27 +01:00 |
|
Irmen de Jong
|
37fa3b34a2
|
tweak IR
|
2024-01-07 22:12:09 +01:00 |
|
Irmen de Jong
|
07feb5c925
|
extra check
|
2023-12-31 17:04:28 +01:00 |
|
Irmen de Jong
|
75fd263e85
|
fix expericodegen crash related to shortcircuiting
|
2023-12-31 01:28:17 +01:00 |
|
Irmen de Jong
|
89cc7e5fa9
|
finalize short-circuit eval in IR codegen
|
2023-12-30 04:26:29 +01:00 |
|
Irmen de Jong
|
8f18b5b8a7
|
keep distinction between logical and bitwise boolean operators
|
2023-12-30 01:08:42 +01:00 |
|
Irmen de Jong
|
f790182f0b
|
adding short-circuit boolean expression evaluation (in IR codegen) also -noshortcircuit cli option
|
2023-12-30 01:08:41 +01:00 |
|
Irmen de Jong
|
9c1b11d605
|
some WARN messages are now INFO
|
2023-12-28 14:20:47 +01:00 |
|
Irmen de Jong
|
2b8f613a00
|
added %option ignore_unused to suppress warnings about unused vars and subs in that module/block.
Also improved error for invalid directive.
|
2023-12-26 23:37:59 +01:00 |
|
Irmen de Jong
|
2eb137618e
|
refactor block options
|
2023-12-26 22:13:08 +01:00 |
|
Irmen de Jong
|
0d44492086
|
push,pushw,pop and popw are no longer built-in functions but regular routines in sys
|
2023-12-26 14:47:31 +01:00 |
|
Irmen de Jong
|
4cd9bb8f99
|
allow Python-style negative array indexing to count from the end
|
2023-12-23 16:37:28 +01:00 |
|