Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
| * | C API plus test | Alon Zakai | 2016-05-02 | 2 | -0/+619 | |
| | | ||||||
| * | add a default finalize() so it is valid to call on any node | Alon Zakai | 2016-05-02 | 1 | -1/+3 | |
| | | ||||||
| * | makeLoop and makeBreak | Alon Zakai | 2016-05-02 | 1 | -2/+12 | |
| | | ||||||
* | | Fix signed integer overflow UB (#430) | JF Bastien | 2016-05-03 | 2 | -7/+7 | |
| | | | | | | This puts us back where #404 wanted to be: all UB that ubsan knows about now causes an abort. This ins't to say that it's all gone, merely that our tests don't trigger any more UB which ubsan knows how to find :-) | |||||
* | | Fix shift UB (#429) | JF Bastien | 2016-05-03 | 1 | -6/+6 | |
| | | | | | | Getting close to finishing #404. | |||||
* | | Fix null UB (#428) | JF Bastien | 2016-05-03 | 1 | -33/+37 | |
| | | | | | | | | | | As a continuation to #404, fix a dereference of a std::vector's zeroth element when the size of the vector is zero. Symptom: stl_vector.h:866:9: runtime error: reference binding to null pointer of type 'char' | |||||
* | | Fix alignment UB (#425) | JF Bastien | 2016-05-02 | 1 | -3/+6 | |
| | | | | | | There may be some other places which are broken, but they don't trigger ubsan right now. This is another fix for #404. | |||||
* | | Fix UB with FP divide by zero (#424) | JF Bastien | 2016-05-02 | 1 | -2/+40 | |
| | | | | | | Another fix for #404. | |||||
* | | f32.demote/f64 fix UB (#423) | JF Bastien | 2016-05-02 | 1 | -1/+8 | |
| | | | | | | Another fix for #404. | |||||
* | | Fix memcpy UB (#422) | JF Bastien | 2016-05-02 | 1 | -1/+1 | |
|/ | | | Can't call memcpy with size of 0 and nullptr init. | |||||
* | Fix {i32,i64}.trunc_{s,u}/{f32,f64} in interpreter (#421) | Ben Smith | 2016-05-02 | 3 | -8/+124 | |
| | | | | Check the binary representation of the float instead of converting it to a float first. | |||||
* | Changed type of flags to fix Visual Studio 2015 error (#418) | BSalita | 2016-04-30 | 1 | -1/+1 | |
| | | | Changed type of flags (line 26) in read_file() from auto to std::ios_base::openmode to fix Visual Studio 2015 error. | |||||
* | Check LEB128 encoding fits in destination integer (#408) | JF Bastien | 2016-04-30 | 1 | -7/+23 | |
| | | | | | | | | | | | * Check LEB128 encoding fits in destination integer As found by #404, the insignificant LEB128 bits were silently dropped when dealing with signed LEB values which tripped UBSAN in hello_world. This fixes #409. * Fix typo. | |||||
* | validate in binaryen shell and on wasm binaries, and fix type checking | Alon Zakai | 2016-04-29 | 4 | -26/+167 | |
| | ||||||
* | add wasm.cpp which does full type detection for blocks, and prepare for full ↵ | Alon Zakai | 2016-04-29 | 2 | -5/+96 | |
| | | | | type checking everywhere | |||||
* | warning on BreakSeeker | Alon Zakai | 2016-04-29 | 1 | -1/+1 | |
| | ||||||
* | get the reinterpret opcodes right on float/int | Alon Zakai | 2016-04-28 | 1 | -6/+6 | |
| | ||||||
* | fix size detection on reinterpret operations in binary format | Alon Zakai | 2016-04-28 | 1 | -2/+2 | |
| | ||||||
* | fix asm2wasm f64->f32->i32 bitcast (#412) | Alon Zakai | 2016-04-28 | 1 | -0/+4 | |
| | ||||||
* | Merge pull request #411 from WebAssembly/flexible-methods | Alon Zakai | 2016-04-28 | 1 | -95/+108 | |
|\ | | | | | Refactor js/wasm glue to defer the wasm/wasm-polyfill/asmjs-fallback point | |||||
| * | fall back from wasm compilation errors, and add logging | Alon Zakai | 2016-04-28 | 1 | -3/+12 | |
| | | ||||||
| * | refactor js/wasm glue to defer the wasm/wasm-polyfill/asmjs-fallback as late ↵ | Alon Zakai | 2016-04-28 | 1 | -96/+100 | |
| | | | | | | | | as possible. this lets us recover from wasm compilation failures and still do a fallback method | |||||
* | | avoid dynamic allocas (#410) | Alon Zakai | 2016-04-28 | 2 | -5/+7 | |
|/ | ||||||
* | cleanups following review comments | Alon Zakai | 2016-04-27 | 1 | -1/+1 | |
| | ||||||
* | avoid leaks when s-parsing hits an error | Alon Zakai | 2016-04-27 | 1 | -6/+6 | |
| | ||||||
* | don't leak currFunction in s-parser | Alon Zakai | 2016-04-27 | 1 | -5/+4 | |
| | ||||||
* | don't leak when parsing segments in s-parser | Alon Zakai | 2016-04-27 | 1 | -2/+2 | |
| | ||||||
* | just use a simple vector in data segments | Alon Zakai | 2016-04-27 | 8 | -42/+51 | |
| | ||||||
* | do not leak in IStringSet | Alon Zakai | 2016-04-27 | 2 | -14/+16 | |
| | ||||||
* | clean up import if not passed to wasm module in asm2wasm | Alon Zakai | 2016-04-27 | 1 | -0/+1 | |
| | ||||||
* | clean up in emscripten-optimizer arenas | Alon Zakai | 2016-04-27 | 2 | -0/+10 | |
| | ||||||
* | use an arena vector for switch targets | Alon Zakai | 2016-04-27 | 1 | -3/+2 | |
| | ||||||
* | allocate only expressions in arenas - functions, imports, exports, function ↵ | Alon Zakai | 2016-04-27 | 13 | -82/+82 | |
| | | | | types, can more simply be held by unique_ptrs on the owning module. this avoids need to coordinate arena allocation for their elements, and only the far more plentiful expression nodes are a perf factor anyhow | |||||
* | don't leak when running tests in shell | Alon Zakai | 2016-04-27 | 1 | -6/+6 | |
| | ||||||
* | use arena allocation for s-expr Elements | Alon Zakai | 2016-04-27 | 1 | -3/+2 | |
| | ||||||
* | Merge pull request #406 from WebAssembly/i64.load32_u | Alon Zakai | 2016-04-27 | 1 | -4/+4 | |
|\ | | | | | Fix zero-extension in i64.load32_u. | |||||
| * | Fix zero-extension in i64.load32_u. | Dan Gohman | 2016-04-27 | 1 | -4/+4 | |
| | | ||||||
* | | Remove UB (#405) | JF Bastien | 2016-04-27 | 1 | -8/+6 | |
|/ | | | | | ubsan fails with: wasm-binary.h:97:32: runtime error: left shift of negative value -1 Also use type_traits for is_signed. | |||||
* | Split construction, scanning, and building phases of S2WasmBuilder (#400) | Derek Schuff | 2016-04-27 | 13 | -80/+250 | |
| | | | | | | | | | | | Instead of doing all of the S2Wasm work in the constructor, split construction, scanning (to determine implemented functions) and building of the wasm module. This allows the linker to get the symbol information (e.g. implemented functions) without having to build an entire module (which will be useful for archives) and to allow the linker to link a new object into the existing one by building the wasm module in place on the existing module. | |||||
* | add an ArenaVector for internal array allocations in expression nodes | Alon Zakai | 2016-04-26 | 15 | -278/+456 | |
| | ||||||
* | make chunk size flexible in arenas | Alon Zakai | 2016-04-26 | 1 | -5/+9 | |
| | ||||||
* | refactor arena to allow allocating space directly | Alon Zakai | 2016-04-26 | 1 | -8/+13 | |
| | ||||||
* | remove old globalAllocator | Alon Zakai | 2016-04-26 | 2 | -6/+0 | |
| | ||||||
* | ast_utils improvements (#399) | Alon Zakai | 2016-04-26 | 3 | -13/+25 | |
| | | | | | | | | | * make EffectAnalyzer a little more fun to use * create a convert() method that can turn a node into a smaller node, reusing its memory, and use that in nop() * use convert in wasm-linker | |||||
* | Defer creation of CallImports to link time (#395) | Derek Schuff | 2016-04-26 | 3 | -21/+41 | |
| | | | s2wasm currently creates a Call AST node if the target is implemented in the current object (thus far assumed to be the final executable) and a CallImport node if not. In preparation for adding additional objects to the link before layout time, we make only Call nodes until link time, and then convert them to CallImport if they are undefined at that time. | |||||
* | emit ifs in an optimized way in binary format | Alon Zakai | 2016-04-26 | 1 | -2/+16 | |
| | ||||||
* | BreakSeeker needs to look at br_table too | Alon Zakai | 2016-04-26 | 1 | -0/+6 | |
| | ||||||
* | Merge pull request #393 from WebAssembly/arities | Alon Zakai | 2016-04-26 | 1 | -15/+23 | |
|\ | | | | | Arities | |||||
| * | use arities in calls | Alon Zakai | 2016-04-25 | 1 | -3/+9 | |
| | | ||||||
| * | use arities on switch | Alon Zakai | 2016-04-25 | 1 | -4/+4 | |
| | |