Commit Graph

2173 Commits

Author SHA1 Message Date
Irmen de Jong
b646f50265 vm: implemented in-memory bit shift instructions 2022-05-23 20:15:20 +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
4e1184a400 vm: added some of the sin cos tables in math.p8 2022-05-17 22:56:00 +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
4be7bc8323 vm: limit float instructions to just 2 register args 2022-05-11 22:09:46 +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
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
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
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
6471c0c536 upgrade antlr to 4.10.1 2022-04-24 23:29:15 +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
6f2fdbe447 added %option merge, also fixed problem with unit test building in newer IntelliJ version 2022-04-15 22:38:32 +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
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
a2c7273801 vm: use memory load instruction better 2022-04-11 20:55:06 +02:00
Irmen de Jong
c25d07259a add block directive options to PtBlock 2022-04-10 21:37:47 +02:00
Irmen de Jong
a01aee3111 add sideEffects boolean to PtBuiltinFunctionCall 2022-04-10 21:08:54 +02:00
Irmen de Jong
3f6393f732 PtNumber can now be compared 2022-04-10 17:48:03 +02:00
Irmen de Jong
b6eb343234 moving string escaping out of antlr project 2022-04-10 17:31:30 +02:00
Irmen de Jong
207a7e5160 move operator lists 2022-04-10 13:24:17 +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
461b38e653 add -vm option to load an existing p8virt file directly in the virtual machine 2022-04-05 18:42:31 +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
1d342cc6af optimize cx16 textio.setcc()/setcc2() 2022-04-04 22:23:06 +02:00
Irmen de Jong
62b32b2211 todos 2022-04-03 22:56:13 +02:00
Irmen de Jong
ae45ce517e cleanups 2022-04-03 17:33:50 +02:00
Irmen de Jong
95f16c38a9 removed 'aug' property in PtAssignment , it wasn't used for anything 2022-04-03 15:56:14 +02:00