Irmen de Jong
|
5665a7f0cb
|
also track ir reg types
|
2023-04-07 22:24:17 +02:00 |
|
Irmen de Jong
|
d936568b76
|
added divmod() and divmodw() builtin functions to efficiently compute division and remainder in a single call
|
2023-03-29 23:46:44 +02:00 |
|
Irmen de Jong
|
1fa2e2e37d
|
3rd party library versions upgrades
|
2023-03-26 21:36:21 +02:00 |
|
Irmen de Jong
|
199adbbcf0
|
IR: don't allow to have 2 same registers on instructions
|
2023-03-14 00:45:41 +01:00 |
|
Irmen de Jong
|
78a097585d
|
new IR call and return instructions to deal with returnregisters
|
2023-03-12 21:54:59 +01:00 |
|
Irmen de Jong
|
39132327cc
|
added optimizer for IR code
with two very simple optimizations
|
2023-03-12 20:30:51 +01:00 |
|
Irmen de Jong
|
589948c7f4
|
fix IR translateIfElseNonZeroComparison for ints + floats
|
2023-03-07 23:07:51 +01:00 |
|
Irmen de Jong
|
95f498ba9b
|
fix IR translateIfElseZeroComparison for ints + floats
|
2023-03-07 21:26:34 +01:00 |
|
Irmen de Jong
|
fd07ae5225
|
fix various IR file and symboltable issues
|
2023-03-07 19:40:11 +01:00 |
|
Irmen de Jong
|
448d176c24
|
fix vm crash on empty string
|
2023-03-04 15:35:54 +01:00 |
|
Irmen de Jong
|
fd269453a4
|
todos
|
2023-03-04 14:14:01 +01:00 |
|
Irmen de Jong
|
435b9d8973
|
get rid of 'noreinit' option for now, because it resulted in unreliable code
|
2023-02-20 23:29:16 +01:00 |
|
Irmen de Jong
|
92a07b87d2
|
clearer
|
2023-02-20 02:32:36 +01:00 |
|
Irmen de Jong
|
c3c82282ba
|
reinitGlobals option is clearer than the inverse
|
2023-02-19 19:09:29 +01:00 |
|
Irmen de Jong
|
dddf9a9396
|
remove explicit 'bss' from St var, changed to 'uninitialized'
|
2023-02-19 16:50:06 +01:00 |
|
Irmen de Jong
|
9ca6860ffa
|
tweak
|
2023-02-19 15:08:16 +01:00 |
|
Irmen de Jong
|
aaf375a57b
|
move some utility methods into Pt Ast nodes itself
|
2023-02-16 22:45:35 +01:00 |
|
Irmen de Jong
|
5c3f41f64d
|
reintroduce explicit PtAugmentedAssign ast node
|
2023-02-15 22:54:32 +01:00 |
|
Irmen de Jong
|
75bd66326a
|
fix variable zpwish
|
2023-02-11 15:18:57 +01:00 |
|
Irmen de Jong
|
30d20a453b
|
tweak SymbolTable and fix its unittest
|
2023-02-09 22:58:21 +01:00 |
|
Irmen de Jong
|
c75b1581d2
|
lookup via new ST
|
2023-02-05 01:15:23 +01:00 |
|
Irmen de Jong
|
8e730ef93d
|
optimizing scoped names more and fix scoping of identifier names in arrays (pointers) in SymbolTable
|
2022-12-31 03:20:20 +01:00 |
|
Irmen de Jong
|
e0913a39ab
|
optimizing
|
2022-12-30 18:50:45 +01:00 |
|
Irmen de Jong
|
a7df094ff4
|
don't allow ~ on booleans, also introduce SZ and SNZ instructions in IR to complete the conditional-set instruction list.
|
2022-12-28 21:19:38 +01:00 |
|
Irmen de Jong
|
1e6fa77633
|
ir: 4 new instructions to branch on signed <0, >0, <=0, >=0
|
2022-12-28 13:14:20 +01:00 |
|
Irmen de Jong
|
eb4cff202c
|
removed redundant branch opcodes in IR: BLT(S), BLE(S). Just use swapped BGT(S), BGE(S).
|
2022-12-28 12:41:05 +01:00 |
|
Irmen de Jong
|
7ee777f405
|
vm/ir: for loop is now correctly skipped if loopvar>endvar
this is different still in the 6502 codegen, where it wraps around $00!
|
2022-12-27 18:12:41 +01:00 |
|
Irmen de Jong
|
bf0604133c
|
fix error in IR for inline asm and BSS vars.
|
2022-12-04 16:48:44 +01:00 |
|
Irmen de Jong
|
17bedac96c
|
vm: memory is randomized on start instead of 0. P8ir file now has BSS segment. Vm clears BSS vars to 0.
|
2022-12-03 17:46:06 +01:00 |
|
Irmen de Jong
|
c21913a66b
|
ir: keep order of children in block
|
2022-11-22 02:04:24 +01:00 |
|
Irmen de Jong
|
91fdb3e2d4
|
ir: store labels in blocks, but still useless
|
2022-11-17 00:37:45 +01:00 |
|
Irmen de Jong
|
922033c1b2
|
main block element order now remains the same as in source
|
2022-11-16 00:32:00 +01:00 |
|
Irmen de Jong
|
d08451bccc
|
ir: Block can now contain inline binary
|
2022-11-12 20:17:23 +01:00 |
|
Irmen de Jong
|
d8e785aed0
|
ir: fix too greedy chunk removal
|
2022-11-12 19:56:54 +01:00 |
|
Irmen de Jong
|
267b6f49b5
|
IRFileReader parses the p8ir file with xml parser
|
2022-11-12 16:51:20 +01:00 |
|
Irmen de Jong
|
9d7b9771c2
|
p8ir file format is now valid XML
|
2022-11-11 23:35:52 +01:00 |
|
Irmen de Jong
|
e614e9787a
|
ir: write values as hex into p8ir file
|
2022-11-08 21:59:05 +01:00 |
|
Irmen de Jong
|
38efaae7b2
|
ir/vm: syscall params in high base register to avoid push/pop
|
2022-11-06 12:52:09 +01:00 |
|
Irmen de Jong
|
469e042216
|
vm: replaced prog8_lib.string_compare and others with syscalls
|
2022-11-04 23:12:13 +01:00 |
|
Irmen de Jong
|
6f67fc0e02
|
ir: get rid of '_' symbol prefix
|
2022-11-03 21:54:53 +01:00 |
|
Irmen de Jong
|
144c1ba3a6
|
ir: fix float instruction value in formatspec
|
2022-11-03 19:08:38 +01:00 |
|
Irmen de Jong
|
e094785cbd
|
ir: fix unused code remover
|
2022-11-02 23:16:51 +01:00 |
|
Irmen de Jong
|
e7408224ac
|
ir: remove position tracking from codechunk for now
|
2022-11-02 22:12:42 +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
|
5efe2b027a
|
ir: fix chunk linkage in optimizer
|
2022-10-30 23:42:41 +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
|
7cc3cc3990
|
ir: fix non-code chunk linkage
|
2022-10-30 12:55:06 +01:00 |
|
Irmen de Jong
|
b718b12083
|
ir/vm fix chunk linkage
|
2022-10-26 00:12:56 +02:00 |
|
Irmen de Jong
|
cfa7258ff4
|
various
|
2022-10-25 23:18:42 +02:00 |
|