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
|
197081f10d
|
keyboardhandler
|
2022-08-04 23:04:16 +02:00 |
|
Irmen de Jong
|
00b717cde8
|
tweak
|
2022-08-04 18:35:10 +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
|
a38ddcb364
|
diskio use other filename buffer to avoid always having large buffer
|
2022-08-02 00:58:32 +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 |
|
Irmen de Jong
|
310219e5d7
|
make sure memory slabs block is at the bottom of the asm file to not allocate needless space in the resulting prg
|
2022-07-31 15:37:36 +02:00 |
|
Irmen de Jong
|
a0deb463c9
|
optimized codegen for some equality comparison expressions and some logical expressions
|
2022-07-31 15:25:54 +02:00 |
|
Irmen de Jong
|
90ddec2ad8
|
avoid multiple change events in watch mode
added bsieve example
|
2022-07-31 11:58:27 +02:00 |
|
Irmen de Jong
|
f6b03d5a78
|
added diskio.diskname(), improved error checking in diskio.directory()
|
2022-07-30 13:35:42 +02:00 |
|
Irmen de Jong
|
f531daa872
|
on C64, the cx16.r0...cx16.r15 virtual regs are now in zeropage as well when using kernalsafe or full
|
2022-07-28 19:13:33 +02:00 |
|
Irmen de Jong
|
046dceb5c2
|
added optimized case for signed division by 2
|
2022-07-24 13:59:35 +02:00 |
|
Irmen de Jong
|
dcc1f00048
|
fix rounding errors in signed divide by power-of-two
The optimized bit-shifting division is removed (for now)
|
2022-07-24 12:34:55 +02:00 |
|
Irmen de Jong
|
05f935b598
|
simplify & fix recursion detector
|
2022-07-22 22:22:43 +02:00 |
|
Irmen de Jong
|
f2d27403c5
|
add string.endswith() to efficiently test for a suffix without copying
add string.startswith() to efficiently test for string prefix without copying
|
2022-07-21 00:38:30 +02:00 |
|
Irmen de Jong
|
473efbe67a
|
tweaks
|
2022-07-17 22:09:56 +02:00 |
|
Irmen de Jong
|
aeabf0f324
|
nicer colors
|
2022-07-17 21:37:15 +02:00 |
|
Irmen de Jong
|
80ab552ad8
|
fix wrong code for signed word >= 0
|
2022-07-17 19:02:56 +02:00 |
|
Irmen de Jong
|
7d4695c5b2
|
cx16: graphics module y resolution corrected from 200 to 240. added 'cx16/circles' example.
|
2022-07-17 18:59:52 +02:00 |
|
Irmen de Jong
|
5189eaca36
|
move the vm unit tests to codeGenVirtual module and remove virtualmachine dependency in the compiler module
|
2022-07-17 12:56:22 +02:00 |
|
Irmen de Jong
|
cfb31377fc
|
c64 zeropage: added a few more locations to Kernalsafe free list that should be safe
this makes $02-$21 inclusive, available for use later (x16 virtual registers are placed here on x16...)
|
2022-07-17 12:12:47 +02:00 |
|
Irmen de Jong
|
a07c52e112
|
conv.any2uword / conf.hex2uword can now deal with iso lower and upper case letters as well.
|
2022-07-17 02:39:40 +02:00 |
|
Irmen de Jong
|
8e1071aa89
|
fix compiler crashes: txt.chrout("a"), uword[] a = ["ls", subroutine] without & before subroutine.
|
2022-07-15 23:17:03 +02:00 |
|
Irmen de Jong
|
7cb9a6ba60
|
diskio.status() more robust (stops at newline char instead of overwriting buffer), diskio.f_open better detects error status
|
2022-07-15 22:21:34 +02:00 |
|
Irmen de Jong
|
350dc731f1
|
cx16: sys.reset_system() now resets vera fully as well (such as PSG sound), kernal didn't seem to do that
|
2022-07-14 23:44:53 +02:00 |
|
Irmen de Jong
|
f690f58bd4
|
callfar() now accepts a variable as address, so it can be used to indirect JSR to a subroutine whose address is not fixed. ('goto' already could indirect JMP to a variable address.)
|
2022-07-14 19:29:59 +02:00 |
|
Irmen de Jong
|
4bc65e9ef7
|
fix stack crash in cx16.push_vera_context()
|
2022-07-14 16:33:09 +02:00 |
|
Irmen de Jong
|
2d600da8b6
|
fix codegen crash on certain nested typecast
|
2022-07-13 22:24:31 +02:00 |
|
Irmen de Jong
|
35af53828a
|
fix endless loop in optimizer, fix cx16 register clobbering in psg interrupt handler, fix crash on certain arrays, fix undefined symbol when it's in another imported module
|
2022-07-13 18:42:06 +02:00 |
|
Irmen de Jong
|
10ddd5b127
|
fixed missing non-boolean operand cast in logical expressions
|
2022-07-12 22:28:06 +02:00 |
|
Irmen de Jong
|
f46e131f18
|
todo
|
2022-07-12 19:41:51 +02:00 |
|
Irmen de Jong
|
feb5c8be95
|
vm: some more peephole optimizations
|
2022-07-12 19:04:19 +02:00 |
|
Irmen de Jong
|
edf12bec71
|
improve bool params typecasting, fix compiler crash on abs(floatvar)
|
2022-07-12 17:52:37 +02:00 |
|
Irmen de Jong
|
ff1fc28287
|
added immediate value vm logical instructions because these are so common
|
2022-07-12 16:12:32 +02:00 |
|
Irmen de Jong
|
314398ba4c
|
added immediate value vm arithmetic instructions because these are so common
|
2022-07-12 15:21:26 +02:00 |
|
Irmen de Jong
|
840331347b
|
added a few more vm optimizations and unit tests
|
2022-07-12 12:42:37 +02:00 |
|
Irmen de Jong
|
6181b12ab8
|
added -esa option to override the evalstack location, and shift cx16.r0-r15 accordingly
|
2022-07-11 19:29:04 +02:00 |
|
Irmen de Jong
|
68da661edc
|
optimize comparison to true/1 into comparison to zero, optimize while/until conditions
|
2022-07-11 16:42:52 +02:00 |
|
Irmen de Jong
|
88cbb6913d
|
tweak bool type handling
|
2022-07-11 14:55:50 +02:00 |
|
Irmen de Jong
|
7a26646e1b
|
tweak bool type handling
|
2022-07-11 02:08:12 +02:00 |
|
Irmen de Jong
|
92eb3b0bf6
|
bool logical testcase
|
2022-07-09 22:29:38 +02:00 |
|
Irmen de Jong
|
fb63434eee
|
tweak maze example
|
2022-07-09 22:13:30 +02:00 |
|
Irmen de Jong
|
97f90d9684
|
Merge branch 'master' into bool_type
|
2022-07-09 22:09:49 +02:00 |
|
Irmen de Jong
|
f91786367f
|
added maze example
|
2022-07-09 22:00:46 +02:00 |
|
Irmen de Jong
|
6a57337a68
|
improved bool type checking
|
2022-07-08 22:59:35 +02:00 |
|
Irmen de Jong
|
211e2bb37a
|
improved bool type checking
|
2022-07-08 22:29:13 +02:00 |
|
Irmen de Jong
|
d2d08bf143
|
fix compiler error about bool vs ubyte
|
2022-07-08 22:03:05 +02:00 |
|