Irmen de Jong
|
e09f054058
|
vm: implemented in-place bit rotate instructions
|
2022-05-23 20:30:25 +02:00 |
|
Irmen de Jong
|
b646f50265
|
vm: implemented in-memory bit shift instructions
|
2022-05-23 20:15:20 +02:00 |
|
Irmen de Jong
|
0a48ef3030
|
vm: just use new register instead of trying to (ab)use reg 0
|
2022-05-22 23:38:46 +02:00 |
|
Irmen de Jong
|
ba614801ee
|
cleanup
|
2022-05-22 23:11:22 +02:00 |
|
Irmen de Jong
|
fd6eb47e68
|
added inlining certain trivial non-asm subroutine calls
|
2022-05-22 20:22:09 +02:00 |
|
Irmen de Jong
|
e69aeb8b98
|
added warning about shadowing variables
|
2022-05-22 17:34:08 +02:00 |
|
Irmen de Jong
|
26ea1da146
|
vm: add in-place bitwise or,and,xor
|
2022-05-20 20:50:27 +02:00 |
|
Irmen de Jong
|
c9e8c7a290
|
vm: add in-place division
|
2022-05-19 23:38:16 +02:00 |
|
Irmen de Jong
|
5e4eb92443
|
vm: add in-place multiply
|
2022-05-19 23:18:54 +02:00 |
|
Irmen de Jong
|
461b6499ef
|
vm: add in-place add/sub
|
2022-05-19 22:54:50 +02:00 |
|
Irmen de Jong
|
c769920b6e
|
vm: fix signed divide
|
2022-05-19 22:24:57 +02:00 |
|
Irmen de Jong
|
181b98ef9e
|
vm: implemented some self-assign instructions
|
2022-05-18 22:15:42 +02:00 |
|
Irmen de Jong
|
4e1184a400
|
vm: added some of the sin cos tables in math.p8
|
2022-05-17 22:56:00 +02:00 |
|
Irmen de Jong
|
e52d9e3210
|
vm: split off assignment codegen to its own file
|
2022-05-17 22:38:31 +02:00 |
|
Irmen de Jong
|
dc6475c91b
|
vm: fixed non-byte array indexing
|
2022-05-17 18:53:33 +02:00 |
|
Irmen de Jong
|
52f9956e92
|
clarify use of direct-memory in functions that modify in place such as rol/swap
|
2022-05-16 22:41:31 +02:00 |
|
Irmen de Jong
|
0bf00d1ca4
|
c64/c128 targets: perform cleanup at program exit such as re-enabling run-stop key and character set switching.
|
2022-05-15 16:44:26 +02:00 |
|
Irmen de Jong
|
d1a707df57
|
fix assigning a pointer (uword) to string not copying the correct memory
|
2022-05-15 16:10:58 +02:00 |
|
Irmen de Jong
|
4dc9b45297
|
vm: fixed string comparisons, added missing vm string module
|
2022-05-13 23:10:13 +02:00 |
|
Irmen de Jong
|
6e31eebfb5
|
vm: ifElse codegen uses proper branching instructions now
|
2022-05-12 21:26:17 +02:00 |
|
Irmen de Jong
|
a7df828932
|
vm: codegen uses INCM/DECM if possible
|
2022-05-12 19:40:31 +02:00 |
|
Irmen de Jong
|
517cf61d11
|
vm: limit int instructions to just 2 register args
|
2022-05-11 22:36:47 +02:00 |
|
Irmen de Jong
|
4be7bc8323
|
vm: limit float instructions to just 2 register args
|
2022-05-11 22:09:46 +02:00 |
|
Irmen de Jong
|
74c05d00a9
|
vm: fix comparison operator codegen for floats
|
2022-05-11 17:07:21 +02:00 |
|
Irmen de Jong
|
677613d30a
|
vm: expressiongen: use resultRegister arg instead of allocating new leftResultReg
|
2022-05-11 15:58:55 +02:00 |
|
Irmen de Jong
|
bacba629a5
|
vm: use shift-one instructions in codegen
|
2022-05-11 15:50:51 +02:00 |
|
Irmen de Jong
|
14e36f1362
|
vm: fix assignment to array
|
2022-05-11 15:26:54 +02:00 |
|
Irmen de Jong
|
d43ad849d1
|
vm: actually use the store-zero instructions in codegen
|
2022-05-11 15:18:36 +02:00 |
|
Irmen de Jong
|
627aa61184
|
clean up subroutine inlining, basis for new try
|
2022-05-09 15:42:58 +02:00 |
|
Irmen de Jong
|
dad5b17ac8
|
fix regression compiler crash in string comparison
|
2022-05-08 13:47:24 +02:00 |
|
Irmen de Jong
|
fef52c0112
|
automatically convert multi-compare expression (if X==1 or X==2..) to contaiment check if X in [1,2,..]
|
2022-05-08 13:21:34 +02:00 |
|
Irmen de Jong
|
8c4765b386
|
vm: support non-unary functions in pipe expressions
|
2022-05-07 20:42:05 +02:00 |
|
Irmen de Jong
|
7c121bfc01
|
first steps to support multiple args in pipe expressions
|
2022-05-07 19:00:47 +02:00 |
|
Irmen de Jong
|
942c5cc04b
|
fix crash when optimizing pipe expression too aggressively
|
2022-05-07 17:29:36 +02:00 |
|
Irmen de Jong
|
348b3036ff
|
now correctly accepts "xxx" * constexpr (where constexpr is not just a single const number)
|
2022-05-05 23:21:20 +02:00 |
|
Irmen de Jong
|
09d3451d9d
|
vm: accept %asmbinary (but it is eventually ignored in code execution)
|
2022-05-05 21:43:31 +02:00 |
|
Irmen de Jong
|
b1a49e5f29
|
vm: implement rest of float instructions
|
2022-05-04 22:31:45 +02:00 |
|
Irmen de Jong
|
da01a5b4dc
|
vm: implement float to integer cast, any, all, reverse
|
2022-05-04 22:08:21 +02:00 |
|
Irmen de Jong
|
3f9cdd9b56
|
vm: fix mul and div instructions
|
2022-05-04 01:10:59 +02:00 |
|
Irmen de Jong
|
0f9e87d7bb
|
fixed compiler crash when casting float to integer, fixed float to int cast value error on cx16
|
2022-05-03 23:43:38 +02:00 |
|
Irmen de Jong
|
0869789214
|
vm: implement float type casts to integer types
|
2022-05-02 23:38:32 +02:00 |
|
Irmen de Jong
|
10c8cc35c5
|
vm: implement float divide multiply sub add
|
2022-05-02 21:53:43 +02:00 |
|
Irmen de Jong
|
30c2e3e8ff
|
vm: fix comparisons codegen
|
2022-05-02 21:32:45 +02:00 |
|
Irmen de Jong
|
86cc2f1075
|
vm: implementing more fp instructions
|
2022-05-02 21:06:14 +02:00 |
|
Irmen de Jong
|
fa357a450b
|
clarify license
|
2022-05-02 19:46:08 +02:00 |
|
Irmen de Jong
|
b32641db87
|
remove syscall() builtin functions
vm code can do this via inline assembly
|
2022-05-01 00:41:30 +02:00 |
|
Irmen de Jong
|
0ee790969d
|
vm: allow inline "assembly"
|
2022-04-30 23:24:25 +02:00 |
|
Irmen de Jong
|
7844ace934
|
vm: implementing floating-point
|
2022-04-29 22:27:02 +02:00 |
|
Irmen de Jong
|
f4993d6e5d
|
vm: fix instruction type checks
|
2022-04-28 22:19:46 +02:00 |
|
Irmen de Jong
|
0fab806f36
|
vm: some preparations for floating point
|
2022-04-27 17:45:58 +02:00 |
|