Commit Graph

1387 Commits

Author SHA1 Message Date
Irmen de Jong
acd841dbb6 bool changes in 6502 assignment codegen 2024-03-02 23:19:37 +01:00
Irmen de Jong
6b52ba9397 6502 asmgen 2024-03-02 23:19:20 +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
92527b4c1d examples: add ==0 or !=0 to expressions that depend on implicit conversion from byte to bool 2024-03-02 23:19:18 +01:00
Irmen de Jong
c48012c385 tweak ifelse > and <= order 2024-03-02 17:01:31 +01:00
Irmen de Jong
a282b17286 added asm optimizer for <= byte (bcc+beq->bcs) 2024-03-02 15:34:54 +01:00
Irmen de Jong
58d9463f16 consolidate word comparison codegen 2024-03-02 14:00:12 +01:00
Irmen de Jong
047decd552 consolidate byte comparison codegen 2024-03-01 22:21:22 +01:00
Irmen de Jong
82e0877e64 readme 2024-03-01 00:41:11 +01:00
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