79 Commits

Author SHA1 Message Date
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
Volker Berlin
775496640c add support for Class constants 2020-03-15 15:49:52 +01:00
Volker Berlin
5eed2c2e79 write the class name of all classes in the wasm file for later use 2020-03-07 18:35:52 +01:00
Volker Berlin
a4040a8d3b optimize the DUP instruction, only use a temp local variable if needed. 2020-03-01 19:02:49 +01:00
Volker Berlin
3d8f49c79a simplify the scan and the compiler structure, remove some old hacks. 2020-02-29 16:14:32 +01:00
Volker Berlin
758f31e79c add support for CAST operation 2020-02-28 18:04:28 +01:00
Volker Berlin
8264897215 fix JavaDoc 2020-02-27 11:25:41 +01:00
Volker Berlin
6c820ba5e6 implements INSTANCEOF operation 2020-02-26 18:02:59 +01:00
Volker Berlin
02696a6488 use a synthetic function call to calculate the function id of a virtual call. 2020-02-25 18:05:12 +01:00
Volker Berlin
2f2c39a07a simplify the initializing 2020-02-24 21:08:29 +01:00
Volker Berlin
f2547bd0d2 duplicate THIS parameter also for interface calls 2020-02-24 18:16:36 +01:00
Volker Berlin
8fd7ae26f7 ref_ne need also the non GC polyfill 2020-02-23 20:18:57 +01:00
Volker Berlin
762ecba363 Add error message for not supported class constants 2020-02-23 17:51:32 +01:00
Volker Berlin
8379416cb8 add support for multi dimension array allocation 2020-02-09 18:05:31 +01:00
Volker Berlin
43b41d4fad interface call, WIP 2020-01-25 23:42:22 +01:00
Volker Berlin
4377db747d use needThisParameter for popCount of method calls 2020-01-11 21:48:04 +01:00
Volker Berlin
1998b2b5b2 Instead the static flag we need to handle if there is an additional "this" parameter. 2020-01-11 20:31:05 +01:00
Volker Berlin
525a2f2f87 change the static ClassFile cache to an instance cache 2020-01-02 15:15:21 +01:00
Volker Berlin
371cde8c0e get_i32 must mark as used if used for field access 2019-12-23 20:56:12 +01:00
Volker Berlin
1a89919984 the dup of this must on the end if there are no more parameters 2019-11-26 21:44:49 +01:00
Volker Berlin
8668d71b6c Fix the memory offset of strings with a dynamic synthetic function. 2019-11-24 14:44:56 +01:00
Volker Berlin
f61cebd285 implements reading from constant strings from memory 2019-11-23 20:39:10 +01:00
Volker Berlin
947f66502b Add support for i32.load to the wat parser and some small bug fixes 2019-11-18 21:32:35 +01:00
Volker Berlin
185a0515c7 supports also constructor replacement with a Java method 2019-11-17 17:28:31 +01:00
Volker Berlin
10b754e3e3 Use a Placeholder Instruction for Java DUP opertions. 2019-11-16 19:17:22 +01:00
Volker Berlin
63a7c487c0 add support for locals in WatParser 2019-11-12 20:47:57 +01:00
Volker Berlin
8f36ed4d6d initial checkin for StringManager (WIP) 2019-11-10 12:57:58 +01:00
Volker Berlin
0ae27b2c86 add support for local.tee to wat parser 2019-11-09 18:48:28 +01:00
Volker Berlin
baf7fb9cf0 Add table.set/get 2019-11-03 19:00:49 +01:00
Volker Berlin
ca9efce370 constant pool can also contains string constants 2019-11-03 13:52:07 +01:00
Volker Berlin
ebe1c27e9a Add support for outsourcing of a constructor to JavaScript 2019-10-27 20:11:47 +01:00
Volker Berlin
19a119d7f4 fix position of duplicating THIS on virtual method calls 2019-10-05 16:15:18 +02:00
Volker Berlin
be12f047dd move some helper method into the parent 2019-10-02 18:56:35 +02:00
Volker Berlin
d1bb7cac23 pass the method with signature to the VariableManager as fallback 2019-09-23 20:33:21 +02:00
Volker Berlin
c8e8c09a8e improve NonGC polyfill 2019-09-14 15:22:25 +02:00
Volker Berlin
b2f1fbc195 call ref_eq polyfill in non gc mode 2019-09-10 21:41:50 +02:00
Volker Berlin
c1041325b7 add WasmOptions to reduce boilerplate code 2019-09-09 21:07:45 +02:00
Volker Berlin
713020ef60 add "ref_eq" polyfill function 2019-09-08 21:45:28 +02:00
Volker Berlin
4e3c11553f prepare the polyfill of struct/Object instruction 2019-09-08 13:55:22 +02:00
Volker Berlin
6ea1955886 Fix the stack value of array new. 2019-08-27 20:41:00 +02:00