170 Commits

Author SHA1 Message Date
Volker Berlin
dea54b631c Split ModuleWriter in ModuleWrite and ModuleGenerator 2018-06-01 19:44:40 +02:00
Volker Berlin
4a5518c69a write import function parameters 2018-05-31 21:35:01 +02:00
Volker Berlin
19edad4898 extra return only if needed 2018-05-30 20:41:19 +02:00
Volker Berlin
6ffd004c2b Add return values of method calls to the stack manager 2018-05-30 19:59:45 +02:00
Volker Berlin
88a584cd63 First step to support imports. 2018-05-30 18:57:36 +02:00
Volker Berlin
a94bf26365 extract class FunctionName 2018-05-21 14:29:32 +02:00
Volker Berlin
64fb45a6c5 fix compare operators 2018-05-20 16:11:27 +02:00
Volker Berlin
675d0e76d6 remove unneeded code 2018-05-20 15:57:38 +02:00
Volker Berlin
acb55beabc write dead code at a function end if needed to produce well formatted
WASM code.
2018-05-20 15:56:24 +02:00
Volker Berlin
83013cd5f2 write the last end operators 2018-05-20 14:49:42 +02:00
Volker Berlin
c8ef4fd3c7 first steps to compile loops 2018-05-20 11:54:06 +02:00
Volker Berlin
652d6c3d6a Add support for the loop operator 2018-05-20 11:52:16 +02:00
Volker Berlin
2cb0988e68 Implements more if(compare) operation codes 2018-05-12 13:48:07 +02:00
Volker Berlin
b29adc7437 extract method prepareSwitchCode() 2018-05-12 10:18:33 +02:00
Volker Berlin
59757b3927 make difference between tableswitch and lookupswitch clearer 2018-05-12 09:59:42 +02:00
Volker Berlin
6a7744e228 extract method writeSwitchCode() 2018-05-12 09:48:09 +02:00
Volker Berlin
6c971c6525 implements lookupswitch 2018-05-11 22:07:22 +02:00
Volker Berlin
61c7f8edf4 Add support for a temporary local variable to reused values on the
stack.
2018-05-11 22:05:20 +02:00
Volker Berlin
0f7a7adf69 Add the BR_IF operator 2018-05-11 21:10:08 +02:00
Volker Berlin
aee3e01cba Use LocalVariableManager instead the LocalVariableTable from Java.
Improve the use of the ValueStackManager.
2018-05-11 12:04:24 +02:00
Volker Berlin
bc66cfa70e Add a local variable manager 2018-05-11 11:55:55 +02:00
Volker Berlin
20da7f8fdd ApiDoc 2018-05-11 11:48:40 +02:00
Volker Berlin
91287c9fd3 some Java compiler use lookupswitch for a switch with one case 2018-05-08 22:35:44 +02:00
Volker Berlin
3fa6f5670e convert the GOTO in a switch into "br" 2018-05-08 22:20:33 +02:00
Volker Berlin
b06b368574 subtract switch start value to compatible with br_table 2018-05-08 18:10:52 +02:00
Volker Berlin
0ece5f2dfe use the ValueStackManager to start the switch block on the value
declaration
2018-05-07 18:46:15 +02:00
Volker Berlin
6d382e973a Initial version of stack value manager 2018-05-07 18:42:50 +02:00
Volker Berlin
57fca76063 make private again 2018-05-06 14:33:22 +02:00
Volker Berlin
8ed4a37413 handle the table switch operation 2018-05-05 21:43:30 +02:00
Volker Berlin
ac9758334d Split BlockOperator; handle the br operator 2018-05-04 20:52:54 +02:00
Volker Berlin
79e1876100 parse instarction tableswitch and lookupswitch 2018-05-03 22:58:53 +02:00
Volker Berlin
987d26de64 handle the block operator 2018-05-03 22:57:44 +02:00
Volker Berlin
29ec5ace04 Improve error messages in BranchManager 2018-05-01 11:46:42 +02:00
Volker Berlin
7ba809ac86 implements "neg" instruction code 2018-04-02 19:15:42 +02:00
Volker Berlin
cb778cdbdb TODO note 2018-04-02 12:07:55 +02:00
Volker Berlin
327d685d32 implements "pop" instruction code 2018-04-02 11:53:12 +02:00
Volker Berlin
6da8916a75 implements all data conversions instruction codes 2018-04-02 10:48:24 +02:00
Volker Berlin
488c27a5f3 declare more type conversions 2018-04-02 10:41:09 +02:00
Volker Berlin
405eb1ce99 fix ldc_w in prepareBranchManager 2018-04-01 11:33:15 +02:00
Volker Berlin
7b66756066 add support for the data types byte, short and char. 2018-03-31 19:34:27 +02:00
Volker Berlin
97283a1d39 new branch manager with internal hierarchy. 2018-03-30 17:33:23 +02:00
Volker Berlin
b23683ff68 more if conditions 2018-03-28 20:07:51 +02:00
Volker Berlin
79ee98e8ce Implements the ELSE control structure 2018-03-27 20:04:35 +02:00
Volker Berlin
8d7ea08f64 implements byte code ifne 2018-03-25 21:06:18 +02:00
Volker Berlin
d26b9bbb94 first step of a "if" implementation 2018-03-25 12:57:04 +02:00
Volker Berlin
5c7b7256c7 return parameter type is written as "result" and not "return". 2018-03-24 12:46:47 +01:00
Volker Berlin
4836024e4e Add support for invoke static method calls 2018-03-24 12:33:56 +01:00
Volker Berlin
f2efc5aafd add a prepare phase on compiling 2017-04-17 12:10:56 +02:00
Volker Berlin
4b2089b88d the shift parameter for i64 data must also be of type i64. 2017-04-16 23:24:37 +02:00
Volker Berlin
cfac54ec40 add integer bitt operations 2017-04-16 12:20:53 +02:00