Commit Graph

1075 Commits

Author SHA1 Message Date
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
5c9c7f2c5e adding more complex vm examples 2022-09-23 14:56:06 +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
b1e4347e10 fix compiler crash sometimes when casting byte to word 2022-09-22 13:00:47 +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
4f8fb32136 some docs about compiler internal architecture 2022-09-21 17:34:52 +02:00
Irmen de Jong
e0fbce0087 few more unittests for IR 2022-09-21 02:59:36 +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
5167fdb3f0 docs 2022-09-20 04:10:49 +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
11d87e4725 VM: support cpu registers 2022-09-19 17:13:46 +02:00
Irmen de Jong
627ed51a1b IR: mem mapped vars and memory slabs 2022-09-19 15:20:40 +02:00
Irmen de Jong
c8f3bfa726 vm assembler now understands simple indexed addresses (symbol+number) 2022-09-18 02:17:42 +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
7294ec9a3c working on address-of 2022-09-15 22:44:33 +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
6886b61186 also output inline asm chunks 2022-09-13 23:06:05 +02:00
Irmen de Jong
502a665ffc getting address-of into IR without allocations 2022-09-13 23:06:05 +02:00
Irmen de Jong
c6c5ff2089 added joystick controls to cx16 tehtriz 2022-08-23 18:11:35 +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
dcdd4b3255 found bug in comparison expr codegen 2022-08-22 23:16:56 +02:00
Irmen de Jong
bb5ffb24a8 add IDEA antlr parser build info to documentation 2022-08-21 13:32:31 +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
f249ccd414 added asm optimization for same pointer index 2022-08-14 12:50:46 +02:00
Irmen de Jong
7ef4ddf0f3 fixed operator precedence: bitwise must come before comparisons 2022-08-14 12:34:00 +02:00
Irmen de Jong
d8e18df3a1 added c64 starfield example 2022-08-14 12:02:23 +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
44ee4b989f optimize code for logical expressions more if right operand is simple 2022-08-12 00:49:40 +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
d6b8936376 fix mkword(@(ptr), 0) wrong asm 2022-08-11 23:01:19 +02:00
Irmen de Jong
4d840c7db8 optimized mkword(0, X) 2022-08-11 22:51:09 +02:00
Irmen de Jong
4d2b21816d optimized uword <<8 and >>8 2022-08-11 22:25:15 +02:00
Irmen de Jong
2d34fdd28f in a block marked option force_output, make all subroutines in asm use .block rather than .proc
this fixes some obscure assembly issues where subroutines were omitted from the output program by 64tass
2022-08-10 21:28:40 +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
ac1bd2fb7b virtual: properly output "memmapped" variables too
still as regular variables though
2022-08-08 20:42:17 +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
1e441c2ddf tweak vm codegen 2022-08-07 13:45:03 +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
Irmen de Jong
34aa917ca4 allow bool return type (and arguments) for asmsub / romsub 2022-08-02 23:07:42 +02:00
Irmen de Jong
5b9576df4e added diskio.send_command()
diskio now reuses some buffer internally for file names to save some memory
2022-08-01 22:59:27 +02:00