118 Commits

Author SHA1 Message Date
Volker Berlin
4958cb2f46
convert also AssertErrors to WasmExceptions 2022-06-06 15:37:12 +02:00
Volker Berlin
c392afc76f
Use a BLOCK with input parameters for SWITCHES so that the start position of the SWITCH value does not have to be determined. #43 2022-06-05 23:04:12 +02:00
Volker Berlin
bf58d2968a
Change the used Wasm instruction from IF ELSE END to BLOCK BLOCK BR_IF END END to solve problems of complex if expressions. 2022-05-26 21:50:45 +02:00
Volker Berlin
d1b4e6af5a
add params to findBlockStart() 2022-05-22 19:10:34 +02:00
Volker Berlin
128906e4ef add support for global.get/set for the WatParser 2022-04-16 17:31:48 +02:00
Volker Berlin
d42620ddf0 API doc 2022-03-13 17:54:56 +01:00
Volker Berlin
69b8db16d1 call class initializer before access to static fields 2022-03-08 15:13:19 +01:00
Volker Berlin
097dfae696 Add a hook to run the class/static constructor only once 2022-03-06 14:27:33 +01:00
Volker Berlin
3fd3c63351 share the LocaleVariableManager between multiple WasmCodeBuilder 2022-02-27 20:44:42 +01:00
Volker Berlin
a28d966b94 Use variable slot instead variable index for duplicate of THIS of on virtual calls 2022-02-13 22:38:14 +01:00
Volker Berlin
ff4f5f8151 temp variable are slots and not final indexes 2022-01-09 20:48:28 +01:00
Volker Berlin
a47d1e3bc8 reduce compiler warnings 2021-07-10 22:30:53 +02:00
Volker Berlin
5fef399743 Handle DUP2 as two dup if used for non 64 bit values from stack (non variables) 2021-06-06 21:26:24 +02:00
Volker Berlin
6520370e02 Handle DUP2 as two dup if used for non 64 bit values 2021-05-23 22:12:29 +02:00
Volker Berlin
6d89fa8eca Handle array component type for not init (null) values. 2021-05-02 14:19:55 +02:00
Volker Berlin
b35279a960 The needThis flag must be set already on marking a function as needing. If it will set on scan it is to late for stack calculation. 2021-04-17 20:27:28 +02:00
Volker Berlin
1771ab1f39 Add support for Lambda expressions with parameters 2021-04-03 22:06:39 +02:00
Volker Berlin
f4fd312d31 fix assignment of parameters from stack for lambda expressions with parameters 2021-03-28 10:56:51 +02:00
Volker Berlin
d480471e27 Use also local.tee instruction for reused with dup instructions 2021-03-27 18:27:00 +01:00
Volker Berlin
66ee596fcf pass the parameters of a lamba expression to the lambda type 2021-02-28 22:20:49 +01:00
Volker Berlin
bb97efa1f5 enable lambda expressions 2021-01-24 18:57:00 +01:00
Volker Berlin
3e42160655 implement more Lambda stuff 2021-01-23 22:16:16 +01:00
Volker Berlin
cde24d98ed Fix Struct.NEW_DEFAULT for GC mode. 2021-01-16 17:38:11 +01:00
Volker Berlin
8263463be9 annotation 2021-01-03 19:20:44 +01:00
Volker Berlin
4d2dfdeaa2 use array.get_s/get_u for packed array types (i8/i16) 2021-01-02 21:43:02 +01:00
Volker Berlin
6bd993617c fix the order of parameters on the stack for array.get/set 2021-01-02 20:48:29 +01:00
Volker Berlin
f9de14d88e improve array handling for GC mode 2021-01-02 16:44:38 +01:00
Volker Berlin
77d81e3f13 API doc 2020-09-24 20:56:54 +02:00
Volker Berlin
0d7beb611b docu 2020-09-23 19:45:00 +02:00
Volker Berlin
1fc21e4033 remove annotation 2020-08-18 08:27:19 +02:00
Volker Berlin
3e9a8b1460 fix findValueTypeFromStack after a CAST 2020-08-08 23:20:09 +02:00
Volker Berlin
c29ed6340c Use also the object model with vtable and hashcode for array objects. 2020-07-05 14:08:46 +02:00
Volker Berlin
cfbadfa226 anyref --> externref, add kind to ref.null and ref.is_null, https://github.com/WebAssembly/reference-types/pull/87 2020-05-30 23:06:29 +02:00
Volker Berlin
1556c36f32 add micro code for for interface calling, WIP 2020-05-08 15:01:01 +02:00
Volker Berlin
f277238d14 compile all implementations of used interfaces. 2020-05-03 11:17:57 +02:00
Volker Berlin
7eb0406db8 Only ASCII strings as comment 2020-04-26 19:47:51 +02:00
Volker Berlin
11f338eea8 implements dup_x2 instruction 2020-04-25 22:22:18 +02:00
Volker Berlin
f15fb1cdf9 implements dup_x1 instruction 2020-04-25 19:31:30 +02:00
Volker Berlin
e533c97d0f throw an ArithmeticException on a division by zero of integer values 2020-04-19 19:29:14 +02:00
Volker Berlin
25423c6bb8 pass LocalvariableManager to the BranchManager to create temp variable for CATCh blocks. 2020-04-13 16:05:41 +02:00
Volker Berlin
d6a7ead579 fix the stack inspector for catch blocks 2020-04-12 10:44:53 +02:00
Volker Berlin
ea2a179161 fix non gc array operations 2020-04-10 12:15:53 +02:00
Volker Berlin
87f986e30b Also static code from Java VM code must be registered. Disable static code to find a solution for the cyclic dependency between static code. 2020-04-05 21:03:13 +02:00
Volker Berlin
f95b21a1f8 Reuse the temp variable of a DUP operation for further DUP operations 2020-03-29 21:24:09 +02:00
Volker Berlin
b1c6794a94 fix the position of the DupThis instruction to access the vtable 2020-03-29 18:35:01 +02:00
Volker Berlin
c52bc2a0fe Rewrite stack analyze to handle conditional parameters on the stack. 2020-03-29 14:31:58 +02:00
Volker Berlin
d3f7069cc8 pass the signature from synthetic functions to the wat parser. 2020-03-27 21:10:02 +01:00
Volker Berlin
03957b0988 Add a placeholder for jumps instructions to better inspect the stack. 2020-03-26 18:21:50 +01:00
Volker Berlin
b3bef1570a write string constant in the text format for easer reading 2020-03-22 12:36:01 +01:00
Volker Berlin
548d701444 write string constant in the text format for easer reading 2020-03-21 22:57:42 +01:00