summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* fix archive.cpp on 32-bitAlon Zakai2016-05-051-1/+1
|
* add a relooper testAlon Zakai2016-05-052-0/+98
|
* Import emscripten's relooper, port it to the binaryen AST, and provide a C ↵Alon Zakai2016-05-0510-7/+1681
| | | | | API (#434) also ignore libstdc++ bug in ubsan
* [Linker] Handle archive filesDerek Schuff2016-05-0519-15/+616
| | | | | | | | Add a class to parse archive files. Support linking archive files, with archive semantics (i.e. an archive member is linked in if it satisfies an undefined reference). Archive files must be gnu-format archives containing .s files. Add tests for linking semantics.
* Nicer shift masks (#431)JF Bastien2016-05-041-7/+13
| | | | | | | | * Nicer shift masks * Yet nicer shift mask. * Fix typo.
* Harmonize the internal opcodes with the binary format (#433)Alon Zakai2016-05-0316-180/+325
| | | | | | * harmonize the internal opcodes with the binary format, so they clearly parallel, and also this helps us avoid needing the type to disambiguate * comment on GetLocal in C API
* Merge pull request #427 from WebAssembly/c-api-niceAlon Zakai2016-05-0310-18/+1249
|\ | | | | C API
| * kitchen sink test for c apiAlon Zakai2016-05-037-18/+562
| |
| * C API plus testAlon Zakai2016-05-026-15/+690
| |
| * add a default finalize() so it is valid to call on any nodeAlon Zakai2016-05-021-1/+3
| |
| * makeLoop and makeBreakAlon Zakai2016-05-021-2/+12
| |
* | Fix signed integer overflow UB (#430)JF Bastien2016-05-033-8/+8
| | | | | | 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 Bastien2016-05-032-7/+7
| | | | | | Getting close to finishing #404.
* | Fix null UB (#428)JF Bastien2016-05-032-34/+38
| | | | | | | | | | 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'
* | ubsan: only recover from some of the failures (#426)JF Bastien2016-05-021-1/+1
| | | | | | | | | | | | | | | | | | | | I fixed a few of the existing ubsan failures as part of #404, but would like to prevent regressions. This patch allows some of the sanitizer checks to continue execution (null, shift, signed-integer-overflow) and makes all the other ones hard errors (preventing regressions). Once the remaining errors are addressed we should commit #404 which moves ubsan to -fno-sanitize-recover=all. This likely requires a good checked-math library.
* | Fix alignment UB (#425)JF Bastien2016-05-021-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 Bastien2016-05-021-2/+40
| | | | | | Another fix for #404.
* | f32.demote/f64 fix UB (#423)JF Bastien2016-05-021-1/+8
| | | | | | Another fix for #404.
* | Fix memcpy UB (#422)JF Bastien2016-05-021-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 Smith2016-05-023-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)BSalita2016-04-301-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 Bastien2016-04-301-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.
* Merge pull request #416 from WebAssembly/full-validation-niceAlon Zakai2016-04-2916-42/+285
|\ | | | | Full validation
| * validate in binaryen shell and on wasm binaries, and fix type checkingAlon Zakai2016-04-2910-34/+177
| |
| * add wasm.cpp which does full type detection for blocks, and prepare for full ↵Alon Zakai2016-04-295-7/+107
| | | | | | | | type checking everywhere
| * warning on BreakSeekerAlon Zakai2016-04-291-1/+1
|/
* Merge pull request #413 from WebAssembly/binary-fixesAlon Zakai2016-04-282-8/+8
|\ | | | | Reinterpret binary fixes
| * get the reinterpret opcodes right on float/intAlon Zakai2016-04-281-6/+6
| |
| * fix size detection on reinterpret operations in binary formatAlon Zakai2016-04-282-4/+4
|/
* fix asm2wasm f64->f32->i32 bitcast (#412)Alon Zakai2016-04-284-0/+18
|
* Merge pull request #411 from WebAssembly/flexible-methodsAlon Zakai2016-04-281-95/+108
|\ | | | | Refactor js/wasm glue to defer the wasm/wasm-polyfill/asmjs-fallback point
| * fall back from wasm compilation errors, and add loggingAlon Zakai2016-04-281-3/+12
| |
| * refactor js/wasm glue to defer the wasm/wasm-polyfill/asmjs-fallback as late ↵Alon Zakai2016-04-281-96/+100
| | | | | | | | as possible. this lets us recover from wasm compilation failures and still do a fallback method
* | avoid dynamic allocas (#410)Alon Zakai2016-04-282-5/+7
|/
* Merge pull request #403 from WebAssembly/leaksAlon Zakai2016-04-2722-161/+180
|\ | | | | Fix leaks and enable leak checks
| * cleanups following review commentsAlon Zakai2016-04-271-1/+1
| |
| * enable leak checksAlon Zakai2016-04-271-1/+1
| |
| * avoid leaks when s-parsing hits an errorAlon Zakai2016-04-271-6/+6
| |
| * don't leak currFunction in s-parserAlon Zakai2016-04-271-5/+4
| |
| * don't leak when parsing segments in s-parserAlon Zakai2016-04-271-2/+2
| |
| * just use a simple vector in data segmentsAlon Zakai2016-04-278-42/+51
| |
| * do not leak in IStringSetAlon Zakai2016-04-272-14/+16
| |
| * clean up import if not passed to wasm module in asm2wasmAlon Zakai2016-04-271-0/+1
| |
| * clean up in emscripten-optimizer arenasAlon Zakai2016-04-272-0/+10
| |
| * use an arena vector for switch targetsAlon Zakai2016-04-271-3/+2
| |
| * allocate only expressions in arenas - functions, imports, exports, function ↵Alon Zakai2016-04-2713-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 shellAlon Zakai2016-04-271-6/+6
| |
| * use arena allocation for s-expr ElementsAlon Zakai2016-04-271-3/+2
|/
* Merge pull request #406 from WebAssembly/i64.load32_uAlon Zakai2016-04-2716-13154/+12148
|\ | | | | Fix zero-extension in i64.load32_u.
| * use ONLY hack only for _only files in test/wasm_backendAlon Zakai2016-04-2711-1/+1
| |