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
|
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
|
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
|
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
|
0fab806f36
|
vm: some preparations for floating point
|
2022-04-27 17:45:58 +02:00 |
|
Irmen de Jong
|
be2113d291
|
vm: starting to implement floating point instructions
|
2022-04-26 21:25:59 +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
|
0f4a197e34
|
improve ast check on pipe expressions
|
2022-04-14 00:49:06 +02:00 |
|
Irmen de Jong
|
7dbff5b9e6
|
abs: remove support for floats. Use floats.fabs() instead.
this solves: can't use abs() etc in pipe expression because return type depends on argument type
|
2022-04-14 00:38:31 +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
|
c25d07259a
|
add block directive options to PtBlock
|
2022-04-10 21:37:47 +02:00 |
|
Irmen de Jong
|
c960246eee
|
add some utility methods to PtNode to find the defining subroutine/block
|
2022-04-10 21:20:01 +02:00 |
|
Irmen de Jong
|
b6eb343234
|
moving string escaping out of antlr project
|
2022-04-10 17:31:30 +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 |
|