Irmen de Jong
|
5037033fcf
|
ir: EXT and EXTS opcodes now have 2 registers to avoid type clash
|
2023-07-08 22:42:11 +02:00 |
|
Irmen de Jong
|
d26967a87d
|
ir doc
|
2023-07-07 22:35:05 +02:00 |
|
Irmen de Jong
|
334d382bfa
|
ir: JUMPI instruction added to support indirect jumps
|
2023-07-07 19:10:39 +02:00 |
|
Irmen de Jong
|
3126959576
|
ir: several fixes
|
2023-07-07 16:53:32 +02:00 |
|
Irmen de Jong
|
02e51d8282
|
ir: fix initial chunk linking
|
2023-07-07 00:30:56 +02:00 |
|
Irmen de Jong
|
6d1fdf1ba6
|
upgrade to Kotlin 1.9.0
|
2023-07-06 23:03:47 +02:00 |
|
Irmen de Jong
|
f9200a2b75
|
fix IR loader for romsub calls (calls to an address)
|
2023-07-02 23:41:15 +02:00 |
|
Irmen de Jong
|
7ee162d98b
|
preparing version 9.0
|
2023-06-05 19:47:00 +02:00 |
|
Irmen de Jong
|
380f557c45
|
vm: implement split incr/decr
|
2023-06-03 22:22:13 +02:00 |
|
Irmen de Jong
|
bfaad1388c
|
IR: handle split arrays without new custom opcodes
|
2023-06-03 01:51:02 +02:00 |
|
Irmen de Jong
|
3ac9036c79
|
more split array stuff for 6502
|
2023-05-27 22:44:45 +02:00 |
|
Irmen de Jong
|
c94e292176
|
more split array stuff
|
2023-05-27 12:47:11 +02:00 |
|
Irmen de Jong
|
52a77db60f
|
adding split array type
|
2023-05-26 19:11:07 +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
|
91e1643627
|
update 3rd party libraries
|
2023-05-18 11:47:30 +02:00 |
|
Irmen de Jong
|
91421b0c62
|
IR handy sequence shortcut functions
|
2023-05-18 11:32:20 +02:00 |
|
Irmen de Jong
|
b43223cb7a
|
added clamp() builtin function and floats.clampf()
|
2023-05-17 23:12:58 +02:00 |
|
Irmen de Jong
|
88ce9300bc
|
fix parse cpureg in IR regspec
|
2023-05-14 21:02:40 +02:00 |
|
Irmen de Jong
|
0e3d75cfeb
|
move irType() to intermediate module
|
2023-05-14 20:44:32 +02:00 |
|
Irmen de Jong
|
630c8a5faa
|
IR: fix romsub encoding
|
2023-05-14 18:08:06 +02:00 |
|
Irmen de Jong
|
905921a684
|
IR: new (sys)call instructions that encapsulate the full subroutine call
to fix the bugs resulting from nesting subroutine calls (as param to another call etc)
|
2023-05-14 15:20:25 +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
|
97df33ab1a
|
IR: fix byte to word assignment not doing value extension
|
2023-05-08 22:47:00 +02:00 |
|
Irmen de Jong
|
add8a777d8
|
IR: binarydata fixes
|
2023-05-03 22:31:04 +02:00 |
|
Irmen de Jong
|
f465b2e2a0
|
some improvements to IR peephole optimizer
|
2023-05-02 00:29:04 +02:00 |
|
Irmen de Jong
|
0bea721c2e
|
docs
|
2023-04-27 01:26:25 +02:00 |
|
Irmen de Jong
|
efd7d6f0c0
|
tweak IR call args setting now via special SETPARAM instruction
|
2023-04-14 02:10:39 +02:00 |
|
Irmen de Jong
|
b55be093be
|
tweak IR
|
2023-04-11 22:48:20 +02:00 |
|
Irmen de Jong
|
7c1d5cadd7
|
fix sort and reverse on strings on 6502 codegen
|
2023-04-10 19:33:24 +02:00 |
|
Irmen de Jong
|
dd1592b03b
|
ir syscalls args via stack instead of fixed r65500+
|
2023-04-10 18:02:37 +02:00 |
|
Irmen de Jong
|
9b37ac483f
|
vm fix str to word conversion
ir SYSCALL puts result(s) on value stack, instead of on hardcoded r0, r1
|
2023-04-10 16:26:42 +02:00 |
|
Irmen de Jong
|
090820958e
|
ir divmod returns its results on valuestack, to keep consistency with the rule that only 1 register can be a returnvalue
|
2023-04-10 15:26:30 +02:00 |
|
Irmen de Jong
|
ac21e1be5c
|
vm syscall instruction no longer fixed to r0
|
2023-04-10 13:44:05 +02:00 |
|
Irmen de Jong
|
5196443b26
|
fix
|
2023-04-10 12:16:52 +02:00 |
|
Irmen de Jong
|
c8531cbeb1
|
remove unused variables from IR output
|
2023-04-09 23:09:30 +02:00 |
|
Irmen de Jong
|
9b952fbc44
|
tweaking IR instruction set branch instructions
|
2023-04-09 22:17:19 +02:00 |
|
Irmen de Jong
|
ccdf05e922
|
tweaking IR instruction formats
|
2023-04-09 16:12:16 +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
|
f47498888c
|
optimize imports
|
2023-04-07 22:34:23 +02:00 |
|
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 |
|