Commit Graph

2334 Commits

Author SHA1 Message Date
Irmen de Jong
1d2ce2cbeb consolidate IR line parse function 2022-09-27 18:02:57 +02:00
Irmen de Jong
06cf2e0bd7 vm: fix memory slabs (bsieve example) 2022-09-27 16:32:44 +02:00
Irmen de Jong
db1aa8fcbd vm: new translation of IRProgram into vm program list 2022-09-27 01:50:00 +02:00
Irmen de Jong
11c000f764 moved codeGenVirtual module into virtualmachine module 2022-09-26 20:00:40 +02:00
Irmen de Jong
0da117efd2 vm: get rid of .p8virt file and cruft 2022-09-26 19:28:40 +02:00
Irmen de Jong
533c368e32 make IRFileReader's file source more general 2022-09-26 14:47:28 +02:00
Irmen de Jong
dcc9a71455 version 8.6.1 2022-09-25 21:54:35 +02:00
Irmen de Jong
1a56743bb1 fix IR repeat loop codegen when amount is 0 2022-09-25 20:48:17 +02:00
Irmen de Jong
387a4b7c35 added string.lowerchar() and string.upperchar() 2022-09-25 20:20:38 +02:00
Irmen de Jong
1d65d63bd9 ir: making sure all names are scoped properly. textelite now runs in vm 2022-09-25 18:02:35 +02:00
Irmen de Jong
dda19c29fe vm: fix symbols to be case sensitive properly in p8virt assembler 2022-09-25 15:51:50 +02:00
Irmen de Jong
ca41669f4f vm: fix scoped name in address-of inside array 2022-09-24 18:26:35 +02:00
Irmen de Jong
0e1886e6bd vm: fix nested label prefixing 2022-09-24 16:00:25 +02:00
Irmen de Jong
c26e116f0e vm: fix crashes when array contains pointers/strings 2022-09-24 14:42:07 +02:00
Irmen de Jong
ca2fb6cef3 IR no longer depends on VM syscalls but has its own syscall list for the few builtin functions that still require it 2022-09-23 14:27:51 +02:00
Irmen de Jong
46dac909ef vm/math.p8: complete the sin and cos routines 2022-09-22 15:49:19 +02:00
Irmen de Jong
97aa91c75e removed 16 bits sin/cos routines from math library (sin16, sin16r etc) 2022-09-22 12:55:00 +02:00
Irmen de Jong
fb22f78fb3 added '-keepIR' option to save the IR file if it's generated. 2022-09-20 12:30:22 +02:00
Irmen de Jong
d6393cdbe5 '-vm' option now also reads .p8ir files 2022-09-20 12:14:33 +02:00
Irmen de Jong
b4352ad38b refactor IR codegen into separate module 2022-09-19 19:24:24 +02:00
Irmen de Jong
d07d00fa41 Join codeAst and codeCore modules 2022-09-19 17:28:18 +02:00
Irmen de Jong
627ed51a1b IR: mem mapped vars and memory slabs 2022-09-19 15:20:40 +02:00
Irmen de Jong
3091e3a1c8 IR support for instructions operating on cpu regs 2022-09-18 01:51:04 +02:00
Irmen de Jong
2f3e7d1c27 IR support for storing incbins and romsubs 2022-09-17 16:07:41 +02:00
Irmen de Jong
0e831d4b92 fix superfluous usage of addressOf() 2022-09-16 00:31:04 +02:00
Irmen de Jong
e34bab9585 change syntax of address-of in p8virt code to &X, instead of {X} 2022-09-13 23:28:52 +02:00
Irmen de Jong
6428ced157 added subroutine params to IRSubroutine 2022-09-13 23:06:05 +02:00
Irmen de Jong
aacea3e9db incbin in IR 2022-09-13 23:06:05 +02:00
Irmen de Jong
101b33c381 split intermediate representation into separate module 2022-09-13 23:06:05 +02:00
Irmen de Jong
b0704e86f0 block structure 2022-09-13 23:06:05 +02:00
Irmen de Jong
475efbe007 steps to make actual IR based on VM code. For now, as experimental codegen. 2022-09-13 23:06:05 +02:00
Irmen de Jong
3ab5e5ac48 added cx16.kbdbuf_clear() 2022-09-01 18:40:17 +02:00
Irmen de Jong
176ec8ac7d fix 6502 codegen bug: complex comparison expression is evaluated wrong.
Fixed by reintroducing splitting of comparison expression in if statements by using a temporary variable and/or register to precompute left/right values.
2022-08-23 00:05:57 +02:00
Irmen de Jong
6b41734d6a check memory() calls before entering codegen 2022-08-21 19:02:34 +02:00
Irmen de Jong
c33dc0f3be version 2022-08-21 14:37:10 +02:00
Irmen de Jong
a878c9a61d add some documentation to the psg module 2022-08-19 22:17:23 +02:00
Irmen de Jong
6454bf8ec4 added mouse cursor to amiga example
slightly sped up text rendering in gfx2 highres mode
2022-08-16 04:25:59 +02:00
Irmen de Jong
f37a822725 move 2022-08-14 13:17:03 +02:00
Irmen de Jong
d8e18df3a1 added c64 starfield example 2022-08-14 12:02:23 +02:00
Irmen de Jong
78d3d9d27d vm: get rid of jumpi traces, fix IR value issue with STOREIX 2022-08-13 20:00:13 +02:00
Irmen de Jong
0aa0ec5abd fix c64 zeropage locations of cx16 virtual registers 2022-08-13 00:14:19 +02:00
Irmen de Jong
b6eef3612f added some ported bench8 test programs 2022-08-12 22:08:27 +02:00
Irmen de Jong
666d62dd7a fix cx16.r0 base address to be $04 on the C-64, and fix zeropage duplicate free addresses 2022-08-12 17:49:31 +02:00
Irmen de Jong
18790d867c optimize conditional expression WORD & $ff00 to just msb(WORD)&$ff 2022-08-12 00:21:44 +02:00
Irmen de Jong
68abda1219 fix a few small compiler errors (removing functioncall, removing block, assigning virtual register return value) 2022-08-09 23:38:29 +02:00
Irmen de Jong
4b7b1379d9 also binexpr split on and,or,xor if appropriate 2022-08-08 00:09:18 +02:00
Irmen de Jong
e560e2ab3f vm instructions now contain info on input/output registers 2022-08-07 18:49:16 +02:00
Irmen de Jong
93ce74eeb1 removed problematic expression "simplifications" (that introduced arbitrary r9 temp register usage) 2022-08-07 12:26:11 +02:00
Irmen de Jong
f718f4251b working on better encoding of romsub in new ast/vmtarget 2022-08-07 12:21:10 +02:00
Irmen de Jong
4644c9b621 got rid of GoSub ast node and codegen complexity related to that.
sometimes programs get smaller, sometimes bigger.
2022-08-07 03:24:20 +02:00