summaryrefslogtreecommitdiff
path: root/src/wasm-interpreter.h
Commit message (Collapse)AuthorAgeFilesLines
...
* fix typo [ci skip]Alon Zakai (kripken)2018-04-111-1/+1
|
* Rename WasmType => Type (#1398)Alon Zakai2018-02-021-9/+9
| | | | * rename WasmType to Type. it's in the wasm:: namespace anyhow, and without Wasm- it fits in better alongside Index, Address, Expression, Module, etc.
* support i*.extend* instructions in interpreter (#1322)Alon Zakai2017-12-061-13/+18
| | | * also fixes optimizing them in Precompute
* Atomics support in interpreter + optimizer + fuzz fixes for that (#1227)Alon Zakai2017-10-201-14/+150
|
* remove unneeded code in interpreterAlon Zakai (kripken)2017-06-011-1/+0
|
* fix call depth detection in wasm-opt interpretingAlon Zakai (kripken)2017-06-011-1/+1
|
* Parsing fixes (#990)Alon Zakai2017-05-021-13/+13
| | | | | | | | | | * properly catch a bunch of possible parse errors, found by afl-fuzz * clean up wasm-interpreter, use WASM_UNREACHABLE instead of abort * detect duplicate names in function names section * detect duplicate export names
* ctor evaller (#982)Alon Zakai2017-04-281-25/+111
| | | | | Add wasm-ctor-eval, which evaluates functions at compile time - typically static constructor functions - and applies their effects into memory, saving work at startup. If we encounter something we can't evaluate at compile time in our interpreter, stop there. This is similar to ctor_evaller.py in emscripten (which was for asm.js).
* Wasm h to cpp (#926)jgravelle-google2017-03-101-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | * Move WasmType function implementations to wasm.cpp * Move Literal methods to wasm.cpp * Reorder wasm.cpp shared constants back to top * Move expression functions to wasm.cpp * Finish moving things to wasm.cpp * Split out Literal into its own .h/.cpp. Also factor out common wasm-type module * Remove unneeded/transitive includes from wasm.h * Add comment to try/check methods * Rename tryX/checkX methods to getXOrNull * Add missing include that should fix appveyor build breakage * More appveyor
* Minor improvements to the wasm-interpreter debug messages (#784)jgravelle-google2016-10-181-8/+43
| | | | | | | | | | | * Minor improvements to the wasm-interpreter debug messages 1. Indent nested blocks for more readable structure (with numeric labels to make it even clearer) 2. Print the names of the variables used for NOTE_EVALs 3. Print the values of arguments when entering a function call * Move Indenter class to wasm-interpreter.cpp
* refactor wasm.h to remove numericIndex hacks, and move indexing to the parsersAlon Zakai2016-09-211-6/+6
|
* support spectest.globalAlon Zakai2016-09-201-1/+5
|
* support module operations in shell testsAlon Zakai2016-09-171-0/+11
|
* br_if returns its valueAlon Zakai2016-09-161-3/+4
|
* use globals in asm2wasmAlon Zakai2016-09-071-4/+14
|
* get_global and set_global use a Name instead of an Index, to be more ↵Alon Zakai2016-09-071-10/+10
| | | | consistent with refering to other global objects; e.g. this avoids ordering issues with imported vs non-imported globals
* grow_memory no longer trapsAlon Zakai2016-09-071-3/+4
|
* interpreter debug and asserts fixingAlon Zakai2016-09-071-29/+5
|
* SetGlobal should not return a valueAlon Zakai2016-09-071-1/+1
|
* call_indirect is now structural, so no need to pass the type name aroundAlon Zakai2016-09-071-2/+2
|
* loops no longer have an out label and other upstream loop updatesAlon Zakai2016-09-071-2/+1
|
* call_indirect now has the target at the endAlon Zakai2016-09-071-2/+2
|
* add drop and tee expressionsAlon Zakai2016-09-071-3/+9
|
* Merge pull request #668 from WebAssembly/tables_n_memoriesAlon Zakai2016-08-161-17/+10
|\ | | | | Tables and memories
| * offset support in tableAlon Zakai2016-08-151-14/+7
| |
| * support expressions in segment offsetsAlon Zakai2016-08-121-3/+3
| |
* | interpreter debugging fixes (#672)Alon Zakai2016-08-151-11/+13
|/
* in DemoteFloat64, if the truncated value is exactly at the limit, return it ↵Alon Zakai2016-08-081-0/+6
| | | | | (#665) and update spec tests
* support wasm globals (#650)Alon Zakai2016-07-211-0/+42
|
* fix wasm interpreter bug on checking indirect call paramsAlon Zakai2016-06-291-2/+4
|
* Merge pull request #590 from WebAssembly/precomputeAlon Zakai2016-06-181-413/+429
|\ | | | | Precompute expressions at compile time when possible
| * add a precompute passAlon Zakai2016-06-181-37/+1
| |
| * refactor interpreter code to provide expression executors for both ↵Alon Zakai2016-06-181-411/+463
| | | | | | | | standalone and full funtime execution
* | fix interpreter on indirect calls, do arguments before checking and doing ↵Alon Zakai2016-06-171-3/+3
|/ | | | the call (they might flow)
* make call_indirect type a name, so that it is not a dependency on the ↵Alon Zakai2016-06-031-1/+1
| | | | module, which would break consistency and make some parallel passes tricky (#568)
* trap on invalid call_indirects with bad arguments when no type providedAlon Zakai2016-06-031-0/+4
|
* handle stack frames we skip over by jumping up the stack, and update wasm.jsAlon Zakai2016-06-011-16/+25
|
* store locals in a vector in the interpreter and update wasm.js. also fix ↵Alon Zakai2016-05-181-10/+11
| | | | address usage in wasm.js
* use separate internal opcodes for binary variantsAlon Zakai2016-05-181-63/+63
|
* use separate internal opcodes for unary variantsAlon Zakai2016-05-181-22/+22
|
* Introduce a separate type for linear memory addresses (#477)Derek Schuff2016-05-111-6/+6
| | | | | | | We've been using size_t (and other things) for addresses, which is generally wrong because it depends on the host, when it should in fact depend on the target. This is a partial fix for #278 (i.e. it's the right fix, I don't think it's applied quite everywhere yet).
* Harmonize the internal opcodes with the binary format (#433)Alon Zakai2016-05-031-12/+20
| | | | | | * 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
* f32.demote/f64 fix UB (#423)JF Bastien2016-05-021-1/+8
| | | Another fix for #404.
* Fix {i32,i64}.trunc_{s,u}/{f32,f64} in interpreter (#421)Ben Smith2016-05-021-8/+22
| | | | Check the binary representation of the float instead of converting it to a float first.
* grow_memory now returns in units of page sizeAlon Zakai2016-04-181-1/+1
|
* current_memory now returns in units of page sizeAlon Zakai2016-04-181-1/+1
|
* update MemorySize => CurrentMemoryAlon Zakai2016-04-181-1/+1
|
* fix br_table order of evaluation, the value is firstAlon Zakai2016-04-181-9/+8
|
* index locals, so that get_local and set_local have just an index, and local ↵Alon Zakai2016-04-181-13/+16
| | | | names are kept on the Function object (#354)
* rename function locals, to params and vars, which together are all the ↵Alon Zakai2016-04-141-1/+1
| | | | locals. preparation for #336 (#349)