Commit graph

31 commits

Author SHA1 Message Date
Alain Zscheile
28b60c5dbb refactor: move verification code from 'vm' to 'bytecode' crate 2022-10-23 01:17:34 +02:00
Alain Zscheile
c04860b933 fix(bytecode): invalid code transformation 2022-10-23 01:02:44 +02:00
Alain Zscheile
6294b2ae9c fix(bytecode): remove misleading comment part 2022-10-23 01:01:29 +02:00
Alain Zscheile
bdc42a3fae refactor(bytecode): coalesce an annoying match duplicate 2022-10-23 00:56:46 +02:00
Alain Zscheile
7e7fae3769 feat(bytecode): add param to remote calls, to prevent the necessity to add multiple of them 2022-10-23 00:49:46 +02:00
Alain Zscheile
4ff3b98de9 API BREAK: bytecode: get rid of Label 2022-10-23 00:44:27 +02:00
Alain Zscheile
550c25340d feat(bytecode): +DupFrom 2022-10-22 20:45:19 +02:00
Alain Zscheile
ff2d189344 API BREAK: use simple byteslices for module; -ModuleKind 2022-10-15 17:18:17 +02:00
zseri
e101c9fd9f GENERAL BREAK: get rid of signed pointers 2022-09-30 12:35:08 +02:00
Alain Zscheile
14c7cbb08b feat(bytecode): add bitshift operation 2022-09-28 15:07:03 +02:00
Alain Zscheile
3cccbc31b8 API BREAK: make the VM u128-based (as only datatype) 2022-09-28 14:23:05 +02:00
Alain Zscheile
b67f42b773 feat(vm): basic comparison operators 2022-09-28 02:08:00 +02:00
Alain Zscheile
7602e9f7b9 feat: more and better math operators 2022-09-28 01:51:32 +02:00
Alain Zscheile
0aa63e6c85 fix(bytecode): get rid of redundant 'jump' instruction 2022-09-25 17:08:23 +02:00
Alain Zscheile
7388571a33 feat(bytecode): add ability to insert a deferred local call 2022-09-25 16:50:24 +02:00
Alain Zscheile
e65cfa9f91 feat(bytecode): swap should be able to swap the top item with any other in 2^16 range
reason: this is easy to implement as a fast operation in the interpreter, and
reduces the need for a separate "temporary" stack.
2022-09-25 15:05:01 +02:00
Alain Zscheile
b1ea85cf3e feat(bytecode): pop and dup should take 16bit values 2022-09-25 01:58:51 +02:00
Alain Zscheile
de02eba3dc fix(bytecode): make bytecode more compact (inline atom ops; smaller opcodes) 2022-09-25 01:49:38 +02:00
Alain Zscheile
6557e172e7 feat: add conditional jumps 2022-09-24 01:49:44 +02:00
Alain Zscheile
993ce94fbd feat: proper support for local (inside the same module) calls 2022-09-23 20:16:19 +02:00
Alain Zscheile
17efdff6f5 ~: function calls should be restricted in input arity 2022-09-23 19:41:37 +02:00
Alain Zscheile
94117e5817 fix(vm): make sure that we only jump to jump targets 2022-09-23 18:44:43 +02:00
Alain Zscheile
89124f0b6a feat(vm): tail call optimization 2022-09-23 17:34:08 +02:00
Alain Zscheile
3c15ffa0f3 feat(vm): implement most baseline instructions 2022-09-23 16:22:21 +02:00
Alain Zscheile
12d2a92ada update docs and get rid of Header; use capability model for linking 2022-09-23 14:54:36 +02:00
Alain Zscheile
4021d238d4 feat(bytecode): split Atom ops from MathBinOp's 2022-09-23 12:53:22 +02:00
Alain Zscheile
b77b3a14de feat(bytecode): minimal math operations 2022-09-23 12:14:44 +02:00
Alain Zscheile
c5bbf31cf8 feat(bytecode): many small things; proper call tables 2022-09-23 11:39:47 +02:00
Alain Zscheile
2c05579f7a feat(bytecode): +Header 2022-09-23 09:54:36 +02:00
Alain Zscheile
ec6eed9a7f fix(bytecode): make sure the proptest runs long enough 2022-09-23 07:58:06 +02:00
Alain Zscheile
7c992a5c84 more documentation, some opcodes 2022-09-23 07:37:57 +02:00