Irmen de Jong
|
040d75dafa
|
VM now supports indirect jump instruction
|
2024-02-22 16:19:26 +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
|
b27368175d
|
get rid of problematic rewrite of certain for loops that were causing the end expression to be evaluated every loop iteration
|
2024-02-20 21:03:21 +01:00 |
|
Irmen de Jong
|
a4f697bae1
|
faster
|
2024-02-10 23:56:55 +01:00 |
|
Irmen de Jong
|
4dc50cb551
|
fix unused subroutine removal not removing all unused subs
|
2024-02-10 21:26:53 +01:00 |
|
Irmen de Jong
|
5522a305ab
|
add -dumpvars option to dump all allocated variables (zp, normal ram, etc)
|
2024-02-10 18:42:31 +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
|
6c8c8e11cc
|
fix cpu register overwrites when using @(...) arguments to an asmsub
|
2024-02-09 19:55:35 +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
|
9d6d98930b
|
fix ast printing of & array-element
|
2024-02-08 21:27:53 +01:00 |
|
Irmen de Jong
|
386a391fd9
|
added string.lstripped() and string.ltrimmed()
|
2024-02-07 23:07:45 +01:00 |
|
Irmen de Jong
|
d33aed4ed5
|
added txt.petscii2scr() and txt.petscii2scr_str()
|
2024-02-07 22:36:43 +01:00 |
|
Irmen de Jong
|
24944ad49e
|
added string.strip() and string.trim() and l/r variants.
fixed memsizer for pointers-to-ubyte.
|
2024-02-07 02:09:08 +01:00 |
|
Irmen de Jong
|
8485b8429f
|
optimizing +=1/-=1
|
2024-02-06 23:49:40 +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
|
2cadb546d5
|
optimized in-place memory/pointervar operations some more
|
2024-02-04 15:17:24 +01:00 |
|
Irmen de Jong
|
3c77f8a020
|
IR: optimize pointer access
|
2024-02-04 07:51:50 +01:00 |
|
Irmen de Jong
|
8e00408e3e
|
optimize pointer indexing a bit
|
2024-02-03 23:24:33 +01:00 |
|
Irmen de Jong
|
abcdfd8e28
|
optimize postincrdecr on memory a bit
|
2024-02-03 22:33:27 +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
|
c71aa0895f
|
get rid of certain redundant !=0 comparisons in logical expressions
|
2024-02-01 21:50:01 +01:00 |
|
Irmen de Jong
|
9f8e61789a
|
fix 65c02 codegen for certain in-place byte bitwise invert
|
2024-01-31 23:55:43 +01:00 |
|
Irmen de Jong
|
ef198f1493
|
fix for certain invalid expression evaluation code.
it no longer reuses the same temporary variable all the time.
todo
|
2024-01-31 21:18:21 +01:00 |
|
Irmen de Jong
|
48ef856c0b
|
identified wrong expr eval code - still need solution. Crash for now.
|
2024-01-30 23:00:50 +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
|
444e97b00b
|
todo
|
2024-01-27 12:31:36 +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
|
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
|
87c46ba730
|
check boolean array size mismatch.
check for weird string assignment.
check for X16 problematic cpu instructions rmb, smb, bbr, bbs.
tweak number node equality wrt bool type
|
2024-01-21 19:15:22 +01:00 |
|
Irmen de Jong
|
b3d98be862
|
oops, removed a bit too much when getting rid of the noshortcircuit code
|
2024-01-18 22:00:57 +01:00 |
|
Irmen de Jong
|
43027a4728
|
IR: optimize rol ror
|
2024-01-18 21:51:44 +01:00 |
|
Irmen de Jong
|
fdbbd181ea
|
fixes for address-of uword pointer array expressions
|
2024-01-17 22:51:15 +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
|
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
|
7de665d1e4
|
support for split wordarrays rol/ror and rol2/ror2
optimized rol and ror codegen
optimize/fix ror/ror2/rol/rol2 on word arrays
|
2024-01-15 03:22:37 +01:00 |
|
Irmen de Jong
|
0a356ba73a
|
added containment check of float arrays
|
2024-01-14 14:14:09 +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
|
f27e3478b9
|
fix const value of AddressOf for certain types
|
2024-01-09 22:10:25 +01:00 |
|
Irmen de Jong
|
38dc7fb7bd
|
IR: added SCC and SCS instructions
|
2024-01-09 01:41:37 +01:00 |
|
Irmen de Jong
|
d85c347a6c
|
optimize /256 more, and fixed a unsigned byte word cast error
|
2024-01-07 02:34:05 +01:00 |
|
Irmen de Jong
|
8e6b91cb9e
|
some optimizations
|
2024-01-06 00:44:00 +01:00 |
|