Commit Graph

1068 Commits

Author SHA1 Message Date
losfair
c3b0bd76a1 Validate return values in indirect call test. 2019-03-12 11:34:45 +08:00
losfair
683cb2090c Fix call_indirect. 2019-03-12 11:31:55 +08:00
losfair
c5ef0a96e9 Update vm::Ctx. 2019-03-09 02:58:37 +08:00
losfair
c6dfbcd90d Add tests. 2019-03-09 02:58:10 +08:00
losfair
25034ece07 Almost finished indirect calls. 2019-03-09 02:57:23 +08:00
losfair
3efccbe0f7 Support imported globals. 2019-03-09 00:38:13 +08:00
losfair
4c4743e7cd Globals. 2019-03-09 00:32:18 +08:00
losfair
258dea64d8 Fix calling imports. 2019-03-09 00:07:13 +08:00
losfair
12c213739a Hack around calling imports. Not yet working. 2019-03-08 01:31:37 +08:00
losfair
8d2e8773e0 tee_local and div tests 2019-03-06 01:16:36 +08:00
losfair
27b2061ffd Implemented missing integer operators and fixed division. 2019-03-06 01:16:24 +08:00
losfair
5a97a25e7c Add basic test for i64. 2019-03-05 00:59:49 +08:00
losfair
bd7698e1f2 64-bit operators. 2019-03-05 00:59:05 +08:00
losfair
fa61b66516 Strongly type scratch registers and fixed an unwinding issue. 2019-03-05 00:23:49 +08:00
losfair
2962fe25b6 Add unwinding test. 2019-03-02 01:41:44 +08:00
losfair
aa75994e2f Add memory opcodes and test. 2019-03-02 01:41:31 +08:00
losfair
e026adf33e Initial work on linear memory. 2019-02-28 23:58:02 +08:00
losfair
64142c4cb8 Reserve R15. 2019-02-28 23:22:21 +08:00
losfair
adb309fbd8 Add select test. 2019-02-28 23:12:50 +08:00
losfair
b7ca5e46ed Add Select opcode. 2019-02-28 23:12:42 +08:00
losfair
ec9a8f0ebd Add test for if/else. 2019-02-27 23:41:04 +08:00
losfair
d50f1cc95f If/Else. 2019-02-27 23:38:45 +08:00
losfair
3c3c5db2e1 Native trampolines. 2019-02-26 20:56:10 +08:00
losfair
9d8c5a5c70 Add a note on incorrect code generation. 2019-02-25 23:57:12 +08:00
losfair
530294922a Allow more registers to be used. 2019-02-25 23:55:27 +08:00
losfair
b18595f2dc Pass command-line arguments to wasm as i32. 2019-02-25 23:39:12 +08:00
losfair
78fd995ad3 Fix argument passing at entry. 2019-02-25 23:38:33 +08:00
losfair
80812e3809 Implement native call & fix stack alignment. 2019-02-25 23:29:18 +08:00
losfair
da1a3fadb1 Add test for br_table. 2019-02-25 22:47:41 +08:00
losfair
2432a6c9b3 Fix function calls. 2019-02-25 22:47:27 +08:00
losfair
dbebdf937f Code generation for br_table. 2019-02-24 12:00:35 +08:00
losfair
b2f5f77094 Add direct call test 2019-02-24 00:52:50 +08:00
losfair
09cbd4aeb0 Changed to using custom calling conventions; Implemented direct calls. 2019-02-24 00:52:32 +08:00
losfair
e9c0325784 Update dependencies 2019-02-24 00:51:47 +08:00
losfair
693c9fd2ab Single-pass backend tests. 2019-02-23 01:54:45 +08:00
losfair
08a2ec82b3 Unary operators, comparison opcodes, loops, etc. 2019-02-23 01:54:16 +08:00
losfair
7c439932f1 Block and conditional branch. 2019-02-21 22:04:43 +08:00
losfair
63b3f41f05 Handle unreachable and fix return. 2019-02-21 21:14:10 +08:00
losfair
6f97ebd5f7 Remove a hack in parser. 2019-02-21 21:12:58 +08:00
losfair
aaabbf169c Operator::Br and control stack fixes 2019-02-20 23:21:33 +08:00
losfair
61c83507a4 Control frames, jumps & stack unwinding. 2019-02-20 22:56:32 +08:00
losfair
93d2713bde Operators. 2019-02-19 20:25:09 +08:00
losfair
5583e96d96 Mitigate a bug that causes incorrect code generation.
Still need to figure out why R8 and higher registers don't work.
2019-02-19 19:19:40 +08:00
losfair
bb52a4e6eb Now we can run add! 2019-02-15 02:21:52 +08:00
losfair
1526d35872 Emit a Return opcode if the last one is not return. 2019-02-15 02:21:04 +08:00
losfair
8d8db4aa09 Starting integration. 2019-02-14 00:53:36 +08:00
losfair
7df7204e4b codegen: More opcodes 2019-02-14 00:53:06 +08:00
losfair
43df3dd546 Use System V calling convention and implement a few opcodes. 2019-02-13 20:04:10 +08:00
losfair
a69c5b4a14 stack: Helper functions and unified return types 2019-02-13 20:03:54 +08:00
losfair
4ebb22f8bc Calling conventions, value stack, and runtime stack layout. 2019-02-12 23:15:57 +08:00