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
Irmen de Jong
f2daa17b92
tweak some not optimizations
...
cleanup IR typestring
2024-01-05 17:49:56 +01:00
Irmen de Jong
6d9fccacb1
boolean not expression tweaks and optimizations
2024-01-05 13:32:16 +01:00
Irmen de Jong
bfd3edb617
fix expression evaluation bug where intermediate values were overwritten, yielding the wrong result
2024-01-04 21:04:11 +01:00
Irmen de Jong
19a2110ba2
fix exit() now actually correctly setting the return code in A
...
also, moved some cleanup stuff such as CLRCHN from exit() to the cleanup routine that is always called.
finally, also call the cleanup routine when %option no_sysinit is used
2024-01-04 00:43:35 +01:00
Irmen de Jong
fee46f2e54
todo
2024-01-03 15:06:27 +01:00
Irmen de Jong
6aed7e429a
allow containment check in a range expression ("run time" range expression)
2024-01-03 01:17:13 +01:00
Irmen de Jong
517ea82b99
fixed todos in Ast printer
2024-01-01 23:52:03 +01:00
Irmen de Jong
0e086d788b
removed chained comparisons again, because they caused invalid expression evaluations due to changed semantics.
2024-01-01 16:00:11 +01:00
Irmen de Jong
498841d45d
remove binexpr operand rotation that didn't help much at all
2024-01-01 15:12:15 +01:00
Irmen de Jong
d1f8ee1e56
replace most common subexpressions by a single temp variable
2024-01-01 14:57:24 +01:00