Irmen de Jong
|
51a05ec4b7
|
removed BuiltinFunctionCall redundant ast node type
|
2024-11-20 23:22:56 +01:00 |
|
Irmen de Jong
|
484677b4b1
|
Get rid of any() and all() builtin functions.
Replaced by regular subroutines in the anyall module.
|
2024-07-06 18:49:03 +02:00 |
|
Irmen de Jong
|
25f25a8767
|
Get rid of sort() and reverse() builtin functions.
Sort() had too many gotchas and reverse() is kinda redundant you can loop in decreasing order through an array too.
|
2024-07-06 17:07:58 +02:00 |
|
Irmen de Jong
|
54bffc91ae
|
properly generate PUSH and POP instructions for push() and pop() calls in IR.
Also switch to a fork of shadowJar to avoid Gradle deprecation errors.
|
2024-06-25 22:39:20 +02:00 |
|
Irmen de Jong
|
de3d0b40dc
|
fixed vm problem with branching instructions in global init chunk
|
2024-03-17 13:22:17 +01:00 |
|
Irmen de Jong
|
f40b7b62bb
|
updated unit tests and some basic changes for them
|
2024-03-02 23:19:20 +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
|
56ba24962c
|
fixed 'not not x' optimization to just 'x'
|
2024-01-04 15:02:21 +01:00 |
|
Irmen de Jong
|
75fd263e85
|
fix expericodegen crash related to shortcircuiting
|
2023-12-31 01:28:17 +01:00 |
|
Irmen de Jong
|
09c6cb4d6b
|
replace unwritten vars by consts. Improved const eval.
Fixed some slight bugs in library code
|
2023-12-28 05:17:15 +01:00 |
|
Irmen de Jong
|
2eb137618e
|
refactor block options
|
2023-12-26 22:13:08 +01:00 |
|
Irmen de Jong
|
7530f4407b
|
ir tag change INLINEASM->ASM
|
2023-12-26 16:15:19 +01:00 |
|
Irmen de Jong
|
b92e22e4a6
|
IR: fix for loop over range with step
|
2023-08-11 03:05:47 +02:00 |
|
Irmen de Jong
|
d2154f5f2e
|
remove empty when choices, fixes ir compilation error on those
|
2023-07-07 20:34:24 +02:00 |
|
Irmen de Jong
|
07c606bfc9
|
optimizer: don't replace for loop with repeat loop (the loop variable might be used elsewhere!)
|
2023-07-05 21:16:17 +02:00 |
|
Irmen de Jong
|
bb95484c8a
|
uniform symbol prefixing with p8_
|
2023-07-02 06:15:09 +02:00 |
|
Irmen de Jong
|
aac5a4c27f
|
optimize word repeat loop codegen
|
2023-07-02 04:51:22 +02:00 |
|
Irmen de Jong
|
d3f6415387
|
vm: fix repeat 256
|
2023-07-02 02:38:35 +02:00 |
|
Irmen de Jong
|
300e2fe9f8
|
IR: wrong attempt at optimizing register usage by reusing registers inside different code chunks
|
2023-05-18 21:57:21 +02:00 |
|
Irmen de Jong
|
bff3c4f95c
|
IR now converts IRInlineAsmChunk (of type IR) into regular code chunks directly.
.p8ir files usually won't contain <INLINEASM> nodes any longer
|
2023-05-09 21:04:31 +02:00 |
|
Irmen de Jong
|
9b952fbc44
|
tweaking IR instruction set branch instructions
|
2023-04-09 22:17:19 +02:00 |
|
Irmen de Jong
|
c3d74f2ae9
|
fix golden ram area for x16, remove romsub restriction
note: romsubs still won't work in the VM but at least they compile again
|
2023-04-08 00:40:52 +02:00 |
|
Irmen de Jong
|
dc316fd7b4
|
IR: more optimal branch instructions for comparisons against zero
|
2023-03-13 23:17:53 +01:00 |
|
Irmen de Jong
|
6aabbffc62
|
some cleanups
|
2023-02-09 02:34:18 +01:00 |
|
Irmen de Jong
|
19a2791c65
|
vm target can't use asmsub at all, give better error for that
|
2023-01-26 01:38:13 +01:00 |
|
Irmen de Jong
|
ded9ada9bc
|
allow "not xx in array" expression in 6502 codegen
fix compiler crash on certain bool to byte casts
|
2022-12-23 17:07:34 +01:00 |
|
Irmen de Jong
|
def7e87151
|
fixed silly if-goto expression code in IR codegen where it used too many branching instructions
|
2022-12-12 22:47:15 +01:00 |
|
Irmen de Jong
|
d1d0115aed
|
removed unused option 'keepIR'
|
2022-12-09 18:44:44 +01:00 |
|
Irmen de Jong
|
b8fb391022
|
- ir codegen now allows subroutine having the same name as its block
this is not possible for the 6502 codegen due to 64tass scoping limitation
|
2022-11-28 21:54:33 +01:00 |
|
Irmen de Jong
|
e6688f4b9d
|
clearer error for VM limitation cannot load label address as value
|
2022-11-12 13:45:02 +01:00 |
|
Irmen de Jong
|
e67c05c274
|
ir: fix asmsub contents not appearing in IR file
|
2022-11-02 20:50:51 +01:00 |
|
Irmen de Jong
|
b22804efaf
|
ir: fix inlineasm linking
|
2022-10-31 23:59:33 +01:00 |
|
Irmen de Jong
|
5b6569d0f9
|
ir: fix overwriting chunk label
|
2022-10-30 19:03:02 +01:00 |
|
Irmen de Jong
|
0eda7ac498
|
vm: don't crash on empty code chunks
|
2022-10-30 17:05:08 +01:00 |
|
Irmen de Jong
|
a5ef353484
|
ir: fix memory mapped var as for loop counter
|
2022-10-30 14:54:47 +01:00 |
|
Irmen de Jong
|
67a36d8d31
|
more robust 'return' statement checks in subroutines
|
2022-10-30 14:41:28 +01:00 |
|
Irmen de Jong
|
7cc3cc3990
|
ir: fix non-code chunk linkage
|
2022-10-30 12:55:06 +01: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
|
0da117efd2
|
vm: get rid of .p8virt file and cruft
|
2022-09-26 19:28:40 +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
|
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
|
feb5c8be95
|
vm: some more peephole optimizations
|
2022-07-12 19:04:19 +02:00 |
|
Irmen de Jong
|
840331347b
|
added a few more vm optimizations and unit tests
|
2022-07-12 12:42:37 +02:00 |
|