Irmen de Jong
|
181b98ef9e
|
vm: implemented some self-assign instructions
|
2022-05-18 22:15:42 +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
|
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
|
8c4765b386
|
vm: support non-unary functions in pipe expressions
|
2022-05-07 20:42:05 +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
|
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
|
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
|
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
|
625d5b2313
|
vm: some preparations for floating point
|
2022-04-26 21:08:32 +02:00 |
|
Irmen de Jong
|
cf50e4f6ec
|
vm: printing of numbers now via conv module.
assigning strings now converted to strcopy function call in the compiler ast.
|
2022-04-23 02:15:51 +02:00 |
|
Irmen de Jong
|
7eea97d741
|
- floats: remove all floating point builtin functions and move them to the floats module instead
|
2022-04-22 00:45:54 +02:00 |
|
Irmen de Jong
|
88b55ab93e
|
vm: add abs() and fix 6502 abs() code.
|
2022-04-18 21:20:17 +02:00 |
|
Irmen de Jong
|
ee36d47c27
|
vm: added cmp() and most of the status-branch instructions
|
2022-04-18 19:59:48 +02:00 |
|
Irmen de Jong
|
0f36be0001
|
vm: simple optimizations for +/-/*/div with constants
|
2022-04-14 22:42:25 +02:00 |
|
Irmen de Jong
|
220246278a
|
removed sum(), max(), min(). abs() now always returns uword type.
This greatly simplifies internal handling of builtin functions by always having one fixed return type.
|
2022-04-14 00:21:16 +02:00 |
|
Irmen de Jong
|
349e5a15e9
|
min/max give proper error for string args
als implmented more vm builtin functions/syscalls
|
2022-04-13 23:09:25 +02:00 |
|
Irmen de Jong
|
bf7f4bba7b
|
doc
|
2022-04-13 20:43:07 +02:00 |
|
Irmen de Jong
|
ab1766a559
|
moved all *integer* builtin trig functions (sin8u, cos8u etc) as regular asmsubs in math module
|
2022-04-13 00:27:35 +02:00 |
|
Irmen de Jong
|
51bf33040a
|
vm: add many builtin functions
|
2022-04-11 22:39:33 +02:00 |
|
Irmen de Jong
|
a2c7273801
|
vm: use memory load instruction better
|
2022-04-11 20:55:06 +02:00 |
|
Irmen de Jong
|
ec6ac5bf24
|
vm: added swap()
|
2022-04-11 01:50:47 +02:00 |
|
Irmen de Jong
|
ec7501782d
|
vm: added 1-bit variants of lsr/lsl opcodes
|
2022-04-11 00:25:00 +02:00 |
|
Irmen de Jong
|
890b1c2d52
|
more readable
|
2022-04-10 22:31:37 +02:00 |
|
Irmen de Jong
|
a01aee3111
|
add sideEffects boolean to PtBuiltinFunctionCall
|
2022-04-10 21:08:54 +02:00 |
|
Irmen de Jong
|
e2e951efdf
|
constValue(expr) convenience function added for new Ast expression nodes
|
2022-04-10 18:45:33 +02:00 |
|
Irmen de Jong
|
a0face4a28
|
vm: implementing rol/ror
|
2022-04-09 11:13:49 +02:00 |
|
Irmen de Jong
|
a8cf9f5cc4
|
vm: syscalls can now return value
|
2022-04-05 20:46:34 +02:00 |
|
Irmen de Jong
|
8e4c0f7c22
|
vm: add sorting and reverse functions, fix value arg out of range errors
|
2022-04-05 17:48:49 +02:00 |
|
Irmen de Jong
|
d78bfcc35c
|
vm: more optimal code when array index is constant value
|
2022-04-05 00:19:37 +02:00 |
|
Irmen de Jong
|
2b7c09e6ee
|
vm: more optimal code for loops ending on 0
|
2022-04-05 00:08:38 +02:00 |
|
Irmen de Jong
|
036d9dbe59
|
got rid of unnecessary cast of boolean expressions by making their type dynamically adjust to byte or word
|
2022-04-04 23:43:55 +02:00 |
|
Irmen de Jong
|
62b32b2211
|
todos
|
2022-04-03 22:56:13 +02:00 |
|
Irmen de Jong
|
5b3ccab7dc
|
vm: support noreinit option
|
2022-04-03 17:19:50 +02:00 |
|
Irmen de Jong
|
d616cb283b
|
vm: implemented Pipe expression
|
2022-04-03 15:25:32 +02:00 |
|