summaryrefslogtreecommitdiff
path: root/src/wasm.h
Commit message (Collapse)AuthorAgeFilesLines
...
| * fix set_local finalize()Alon Zakai2016-05-051-0/+4
| |
* | Fix NaN / 0 (#442)JF Bastien2016-05-051-4/+30
|/ | | As discussed in: https://github.com/WebAssembly/spec/pull/282#issuecomment-217280544
* 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-031-2/+8
| | | | | | * 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-031-1/+9
|\ | | | | C API
| * kitchen sink test for c apiAlon Zakai2016-05-031-0/+6
| |
| * add a default finalize() so it is valid to call on any nodeAlon Zakai2016-05-021-1/+3
| |
* | Fix signed integer overflow UB (#430)JF Bastien2016-05-031-6/+6
| | | | | | 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-031-6/+6
| | | | | | Getting close to finishing #404.
* | Fix UB with FP divide by zero (#424)JF Bastien2016-05-021-2/+40
| | | | | | 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.
* add wasm.cpp which does full type detection for blocks, and prepare for full ↵Alon Zakai2016-04-291-5/+12
| | | | type checking everywhere
* just use a simple vector in data segmentsAlon Zakai2016-04-271-3/+8
|
* use an arena vector for switch targetsAlon Zakai2016-04-271-3/+2
|
* allocate only expressions in arenas - functions, imports, exports, function ↵Alon Zakai2016-04-271-18/+16
| | | | 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
* add an ArenaVector for internal array allocations in expression nodesAlon Zakai2016-04-261-66/+89
|
* update MemorySize => CurrentMemoryAlon Zakai2016-04-181-2/+2
|
* remove the AllocatingModule class, and just make Module have allocations. ↵Alon Zakai2016-04-181-5/+2
| | | | the distinction is not really that useful, and passes do need to allocate, so we would need to pass around AllocatingModules all around anyhow. (#361)
* index locals, so that get_local and set_local have just an index, and local ↵Alon Zakai2016-04-181-12/+62
| | | | names are kept on the Function object (#354)
* rename function locals, to params and vars, which together are all the ↵Alon Zakai2016-04-141-2/+2
| | | | locals. preparation for #336 (#349)
* dyn_cast => dynCastAlon Zakai2016-04-111-1/+1
|
* add counter for expression idsAlon Zakai2016-04-091-1/+2
|
* AST Builder class, and use it to optimzie umoddi4 in asm2wasmAlon Zakai2016-04-081-3/+2
|
* fix bug in If.finalizeAlon Zakai2016-04-081-1/+1
|
* refactor wasm traversal code into separate fileAlon Zakai2016-04-061-295/+0
|
* add apis for accessing module elementsAlon Zakai2016-04-041-5/+23
|
* Fix the build with GCC 5.3.1 and Clang 3.8.0.Csaba Osztrogonác2016-03-311-10/+10
| | | | Fixes #299
* Make type of EqZ unary operators always i32Derek Schuff2016-03-211-1/+8
| | | | | This makes them symmetric to binary relational operators. Also support eqz in the s2wasm parser.
* update spec tests and support eqzAlon Zakai2016-03-191-1/+1
|
* todoAlon Zakai2016-03-161-1/+1
|
* add explicit memory export supportAlon Zakai2016-03-151-0/+1
|
* de-recurse operations on nested blocksAlon Zakai2016-03-101-1/+31
|
* Move rol/ror to src/support/bits.hDerek Schuff2016-03-091-17/+4
|
* Implement rotatesDerek Schuff2016-03-091-1/+28
|
* Make initial and max memory sizes be in pages instead of bytesDerek Schuff2016-03-091-1/+3
| | | | | | | The AST and everything that uses it treats the values as pages. Javascript continues to use bytes. This matches v8 and sexpr-wasm, and the consensus from live discussion and PR209 in the spec.
* br_table, no more casesAlon Zakai2016-03-071-15/+7
|
* add a finalize() method for blocksAlon Zakai2016-03-071-0/+6
|
* grow memory returns a value now, and we can update the spec tests after ↵Alon Zakai2016-02-231-1/+1
| | | | doing that
* debugging tweaksAlon Zakai2016-02-211-7/+2
|
* Reorder locals.Michael2016-02-191-0/+1
|
* move printing to a passAlon Zakai2016-02-171-510/+1
|
* memory max is optional, don't emit it when not necessaryAlon Zakai2016-02-171-1/+1
|
* refactor operations into LiteralAlon Zakai2016-02-121-11/+400
|
* fix store printingAlon Zakai2016-02-101-1/+3
|
* Update binaryen and several tests for the new br_if operand order.Dan Gohman2016-02-081-2/+2
|
* update spec tests and shift to putting the br_if condition at the end, as ↵Alon Zakai2016-02-081-3/+4
| | | | was just changed to in the spec
* Fix selectJF Bastien2016-02-051-3/+3
| | | | | | | | | The ordering changed in: https://github.com/WebAssembly/spec/pull/221 Which changed the spec tests, breaking sexpr-wasm because it pulls in the spec tests. This was then fixed: https://github.com/WebAssembly/sexpr-wasm-prototype/commit/23dc368148fc7827a603e3853f5a40287eb9effe Which in turn breaks when binaryen feeds sexpr-wasm .wast files with the old select operand ordering. Note that this PR has new failures when running the torture tests in binaryen-shell: the order of evaluation is correct in binaryen-shell but isn't emitted properly by LLVM in the .s files. This will require another patch to fix LLVM.
* Support startJF Bastien2016-02-051-0/+8
| | | | | | | | | | | | | | As spec'd in: https://github.com/WebAssembly/design/pull/495 And discussed in: https://github.com/WebAssembly/spec/issues/231 This will make it simpler and more uniform to add a start entry point. s2wasm is the right place to add start because it'll eventually need to do other basic setup, e.g. put code in start to setup the stack, as dschuff is doing in: https://github.com/WebAssembly/binaryen/pull/179 Or rather, the linker is the right place and s2wasm happens to act as our linker right now.
* Break and Return have unreachable typeAlon Zakai2016-02-031-2/+10
|
* fix nan comparisonsAlon Zakai2016-02-021-4/+4
|