Commit Graph

2649 Commits

Author SHA1 Message Date
Alexey Andreev
b4916ee4e7 WASM: fix bugs in support of 0xC binary version 2016-10-09 12:57:11 +03:00
Alexey Andreev
386c703459 WASM: implementing support of 0xC binary version 2016-10-06 19:56:45 +03:00
Alexey Andreev
499ce8c029 WASM: add some GC interop methods 2016-10-06 16:21:09 +03:00
Alexey Andreev
0041130d00 WASM: support multianewarray, fix jbox2d benchmark for WebAssembly 2016-10-06 15:49:58 +03:00
Alexey Andreev
84628b7008 Add JVM benchmark for jbox2d 2016-10-06 14:08:11 +03:00
Alexey Andreev
9643e12710 WASM: align heap location by 4 bytes 2016-10-01 00:19:13 +03:00
Alexey Andreev
ef9d8a30bc WASM: fix translation of binary operations 2016-09-30 00:46:45 +03:00
Alexey Andreev
cc0c68e809 WASM: porting jbox2d benchmark to WebAssembly 2016-09-29 20:05:32 +03:00
Alexey Andreev
f890680e90 WASM: fix bugs in exception handling 2016-09-29 16:31:27 +03:00
Alexey Andreev
cbd74d41f4 WASM: fix exception handling. Use if instead of switch after call site when possible 2016-09-29 16:31:27 +03:00
Alexey Andreev
8a012178ed WASM: add support of offset field in memory operations 2016-09-29 16:31:27 +03:00
Alexey Andreev
25c9b03dff WASM: implement throwing exceptions 2016-09-29 16:31:27 +03:00
Alexey Andreev
4e431e2f77 WASM: refactoring shadow stack 2016-09-29 16:31:27 +03:00
Alexey Andreev
b67d243ad4 WASM: add transformation that converts exception handling to explicit guard checks 2016-09-22 16:27:28 +03:00
Alexey Andreev
8af1e3e66d Merge remote-tracking branch 'origin/shadow-stack-minimization' 2016-09-22 11:30:14 +03:00
Alexey Andreev
4f218b17f8 WASM: creating memory access trace transformation 2016-09-22 11:09:16 +03:00
Alexey Andreev
ff6a917bc3 WASM: don't write Address objects to GC roots 2016-09-22 00:10:37 +03:00
Alexey Andreev
fc3d36ec4c WASM: improving algorithm that generates instructions to store variables in shadow stack 2016-09-22 00:08:58 +03:00
Alexey Andreev
fcf0394214 WASM: add flag that allows to insert assertions before each memory access in C code 2016-09-19 22:34:16 +03:00
Alexey Andreev
033e57e7e7 WASM: fix bug in generating virtual table in some cases 2016-09-17 20:18:59 +03:00
Alexey Andreev
0a00551af1 WASM: add support of Character.toLowerCase/toUpperCase. Add _ prefix to names in c output 2016-09-17 12:37:49 +03:00
Alexey Andreev
558bcf1137 Fixing building idea plugin 2016-09-17 11:45:15 +03:00
Alexey Andreev
6c5a691fc9 Fixing minor bugs 2016-09-17 10:42:46 +03:00
Alexey Andreev
1b78de9b40 Minor fixes after rebase 2016-09-17 09:59:13 +03:00
Alexey Andreev
7aaf67d16f Fix minor bugs 2016-09-17 09:33:53 +03:00
Alexey Andreev
8bfcb5f086 frontend: fix support of Integer.TYPE, Long.TYPE, etc. 2016-09-17 09:33:50 +03:00
Alexey Andreev
ed7e8ff7f4 javascript: refactor renderer 2016-09-17 09:21:26 +03:00
Alexey Andreev
7cd72f0e96 wasm: add optimization that removes unused functions from wasm module 2016-09-17 09:19:34 +03:00
Alexey Andreev
bb2f23b19b Fix bugs in runtime. Add support for System.out 2016-09-17 09:19:34 +03:00
Alexey Andreev
67098a60ef Fix bugs in GC and runtime 2016-09-17 09:19:34 +03:00
Alexey Andreev
de299dda48 Fix bugs in GC 2016-09-17 09:19:34 +03:00
Alexey Andreev
f2668b867d wasm: fix bugs in GC and runtime 2016-09-17 09:19:34 +03:00
Alexey Andreev
5caa400eb7 Mark several low-level methods as NoGC 2016-09-17 09:19:34 +03:00
Alexey Andreev
582177654a Fix liveness analysis used to put shadow stack values. Fix type inference of local variables. Don't put Object.monitor to class layout 2016-09-17 09:19:34 +03:00
Alexey Andreev
d28ff73c51 Fix bugs in GC 2016-09-17 09:19:34 +03:00
Alexey Andreev
e92ad161ef Fix bugs in register allocator 2016-09-17 09:19:34 +03:00
Alexey Andreev
fae2963900 Fix bugs in GC and runtime 2016-09-17 09:19:34 +03:00
Alexey Andreev
43b0700c10 Fix bugs in propagating names via register allocator 2016-09-17 09:19:34 +03:00
Alexey Andreev
593dafdd73 Fixing bugs in GC 2016-09-17 09:19:33 +03:00
Alexey Andreev
d76598ab68 Don't write Structure, Function and Address to GC roots 2016-09-17 09:19:33 +03:00
Alexey Andreev
3370898a54 Implementing simple mark&sweep GC 2016-09-17 09:19:33 +03:00
Alexey Andreev
ae5d701aac Implementing simple mark&sweep GC 2016-09-17 09:19:33 +03:00
Alexey Andreev
f7296e0389 Add static GC roots 2016-09-17 09:19:33 +03:00
Alexey Andreev
f79716d53d Add class field layout for GC 2016-09-17 09:19:33 +03:00
Alexey Andreev
476086af47 Add transformation passes that maintain GC roots on shadow stack. Add support of shadow stack intrinsics 2016-09-17 09:19:33 +03:00
Alexey Andreev
bfc37b10b5 Don't generate redundant clinit instructions 2016-09-17 09:19:33 +03:00
Alexey Andreev
74db07537d Fix bugs with memory operations 2016-09-17 09:19:33 +03:00
Alexey Andreev
f7e39e6a4d Remove call to initializer from wasm generator, put it into IR transformer. Add intrinsic to check whether class has been initializer. Add IR transformer that guards call to initializer with this intrinsic 2016-09-17 09:19:33 +03:00
Alexey Andreev
eaf31c1309 Minor fixes 2016-09-17 09:19:33 +03:00
Alexey Andreev
4d6c91aff8 Emit binary WASM compatible with SpiderMonkey 2016-09-17 09:19:33 +03:00