- 29 Jun, 2016 1 commit
-
-
aseemgarg authored
BUG=617526 R=bradnelson@chromium.org TEST=regress-617526.js Review-Url: https://codereview.chromium.org/2101923003 Cr-Commit-Position: refs/heads/master@{#37354}
-
- 28 Jun, 2016 4 commits
-
-
bradnelson authored
Comparisons were allowing asm 'int' values in places that require strict 'signed' or 'unsigned' but not both. Fixes crash when these make it to asm-wasm. BUG=599413 BUG=v8:4203 R=aseemgarg@chromium.org Review-Url: https://codereview.chromium.org/2106683003 Cr-Commit-Position: refs/heads/master@{#37353}
-
bradnelson authored
asm.js forbids mixing signed and unsigned % or /. We had been allowing these. Fixes crash. BUG=618602 BUG=v8:4203 R=aseemgarg@chromium.org Review-Url: https://codereview.chromium.org/2107683002 Cr-Commit-Position: refs/heads/master@{#37350}
-
bradnelson authored
We were not checking that the string passed to instantiateFromAsm contains a function declaration (any declaration was allowed). Fixes crash. BUG=620649 BUG=v8:4203 R=aseemgarg@chromium.org Review-Url: https://codereview.chromium.org/2109533002 Cr-Commit-Position: refs/heads/master@{#37349}
-
gdeepti authored
- GrowMemory runtime function, tests added to checks if memory can be grown and relocation information is updated correctly R=titzer@chromium.org, bradnelson@chromium.org Review-Url: https://codereview.chromium.org/2051043002 Cr-Commit-Position: refs/heads/master@{#37338}
-
- 22 Jun, 2016 1 commit
-
-
ritesht authored
Add a flag to gate experimental support for dynamic code loading and JITing (at runtime in a wasm module). Enhancing functionality of the indirect function table to support JITing and dynamic linking by allowing additional space to be filled with an "undefined" function signature. BUG=v8:5044 LOG=N TEST=None R=mtrofin@chromium.org,bradnelson@chromium.org Review-Url: https://codereview.chromium.org/2049513003 Cr-Commit-Position: refs/heads/master@{#37159}
-
- 21 Jun, 2016 3 commits
-
-
rossberg authored
- Use ES6 classes and other goodies. - Make some names match design/spec. - Remove obsolete generation of END section. R=bradnelson@chromium.org BUG= Review-Url: https://codereview.chromium.org/2081973003 Cr-Commit-Position: refs/heads/master@{#37155}
-
rossberg authored
Implements: - WebAssembly object, - WebAssembly.Module constructor, - WebAssembly.Instance constructor, - WebAssembly.compile async method, - and Module and Instance instance objects. Also, changes ErrorThrower to support capturing errors in a promise reject. Since we cannot yet compile without fixing the Wasm memory, and cannot validate a module without compiling, the Module constructor and compile method don't do anything yet but checking that their argument is a suitable BufferSource. Instead of a compiled module, the hidden state of a Module object currently is just that buffer. BUG= Review-Url: https://codereview.chromium.org/2084573002 Cr-Commit-Position: refs/heads/master@{#37143}
-
ahaas authored
With the tail call, pointers to the JS heap could be pushed on a js-to-wasm frame. On the js-to-wasm frame, however, this pointer would not be updated by the GC. R=bmeurer@chromium.org, v8-arm-ports@googlegroups.com, v8-mips-ports@googlegroups.com BUG=617084 TEST=mjsunit/wasm/gc-frame.js:GCInJSToWasmTest() Review-Url: https://codereview.chromium.org/2079393003 Cr-Commit-Position: refs/heads/master@{#37132}
-
- 16 Jun, 2016 1 commit
-
-
clemensh authored
Without this check, instantiation of the wasm module would fail on DefineOwnProperty on the exports object for the duplicate export. Now we detect this as validation error. R=rossberg@chromium.org, titzer@chromium.org, ahaas@chromium.org Review-Url: https://codereview.chromium.org/2065043002 Cr-Commit-Position: refs/heads/master@{#37038}
-
- 25 May, 2016 1 commit
-
-
bradnelson authored
Intersection of types is used in several places, if it yields the empty set, this indicates a type mismatch. We should emit an error in this case. Add the RECURSE() macro around IntersectResult to allow errors to propagate immediately. BUG=614291 R=ahaas@chromium.org TEST=asm-wasm LOG=N Review-Url: https://codereview.chromium.org/2011873002 Cr-Commit-Position: refs/heads/master@{#36525}
-
- 19 May, 2016 2 commits
-
-
clemensh authored
R=titzer@chromium.org, yangguo@chromium.org Review-Url: https://codereview.chromium.org/1961453002 Cr-Commit-Position: refs/heads/master@{#36354}
-
clemensh authored
Empty function names are allowed and are output as such, unnamed functions or functions with no valid UTF-8 name are output as "<WASM UNNAMED>", while the CallSite object returns null as the function name. R=titzer@chromium.org, yangguo@chromium.org Review-Url: https://codereview.chromium.org/1970503004 Cr-Commit-Position: refs/heads/master@{#36348}
-
- 12 May, 2016 3 commits
-
-
clemensh authored
Names passed for imports and exports are checked during decoding, leading to errors if they are no valid UTF-8. Function names are not checked during decode, but rather lead to undefined being returned at runtime if they are not UTF-8. We need to do these checks on the Wasm side, since the factory methods assume to get valid UTF-8 strings. R=titzer@chromium.org, yangguo@chromium.org Review-Url: https://codereview.chromium.org/1967023004 Cr-Commit-Position: refs/heads/master@{#36208}
-
ahaas authored
With this CL it is possible to compile a wasm module with multiple threads in parallel. Parallel compilation works as follows: 1) The main thread allocates a compilation unit for each wasm function. 2) The main thread spawns WasmCompilationTasks which run on the background threads. 3.a) The background threads and the main thread pick one compilation unit at a time and execute the parallel phase of the compilation unit. After finishing the execution of the parallel phase, the compilation unit is stored in a result queue. 3.b) If the result queue contains a compilation unit, the main thread dequeues it and finishes its compilation. 4) After the execution of the parallel phase of all compilation units has started, the main thread waits for all WasmCompilationTasks to finish. 5) The main thread finalizes the compilation of the module. I'm going to add some additional tests before committing this CL. R=titzer@chromium.org, bmeurer@chromium.org, mlippautz@chromium.org, mstarzinger@chromium.org Committed: https://crrev.com/17215438659d8ff2d7d55f95226bf8a1477ccd79 Cr-Commit-Position: refs/heads/master@{#36178} Review-Url: https://codereview.chromium.org/1961973002 Cr-Commit-Position: refs/heads/master@{#36207}
-
clemensh authored
And add more tests for traps at different locations. R=titzer@chromium.org, yangguo@chromium.org Review-Url: https://codereview.chromium.org/1924253002 Cr-Commit-Position: refs/heads/master@{#36202}
-
- 11 May, 2016 2 commits
-
-
ahaas authored
Revert of [wasm] Implement parallel compilation. (patchset #6 id:100001 of https://codereview.chromium.org/1961973002/ ) Reason for revert: The ThreadSanitizer finds data races. Original issue's description: > [wasm] Implement parallel compilation. > > With this CL it is possible to compile a wasm module with multiple > threads in parallel. Parallel compilation works as follows: > > 1) The main thread allocates a compilation unit for each wasm function. > 2) The main thread spawns WasmCompilationTasks which run on the > background threads. > 3.a) The background threads and the main thread pick one compilation unit > at a time and execute the parallel phase of the compilation unit. > After finishing the execution of the parallel phase, the compilation > unit is stored in a result queue. > 3.b) If the result queue contains a compilation unit, the main thread > dequeues it and finishes its compilation. > 4) After the execution of the parallel phase of all compilation units has > started, the main thread waits for all WasmCompilationTasks to finish. > 5) The main thread finalizes the compilation of the module. > > I'm going to add some additional tests before committing this CL. > > R=titzer@chromium.org, bmeurer@chromium.org, mlippautz@chromium.org, mstarzinger@chromium.org > > Committed: https://crrev.com/17215438659d8ff2d7d55f95226bf8a1477ccd79 > Cr-Commit-Position: refs/heads/master@{#36178} TBR=bmeurer@chromium.org,mlippautz@chromium.org,mstarzinger@chromium.org,titzer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/1965243003 Cr-Commit-Position: refs/heads/master@{#36182}
-
ahaas authored
With this CL it is possible to compile a wasm module with multiple threads in parallel. Parallel compilation works as follows: 1) The main thread allocates a compilation unit for each wasm function. 2) The main thread spawns WasmCompilationTasks which run on the background threads. 3.a) The background threads and the main thread pick one compilation unit at a time and execute the parallel phase of the compilation unit. After finishing the execution of the parallel phase, the compilation unit is stored in a result queue. 3.b) If the result queue contains a compilation unit, the main thread dequeues it and finishes its compilation. 4) After the execution of the parallel phase of all compilation units has started, the main thread waits for all WasmCompilationTasks to finish. 5) The main thread finalizes the compilation of the module. I'm going to add some additional tests before committing this CL. R=titzer@chromium.org, bmeurer@chromium.org, mlippautz@chromium.org, mstarzinger@chromium.org Review-Url: https://codereview.chromium.org/1961973002 Cr-Commit-Position: refs/heads/master@{#36178}
-
- 06 May, 2016 1 commit
-
-
clemensh authored
This changes different locations to extract the reference to the wasm object and the function index from the stack trace, and make it available through all the APIs which process stack traces. The javascript CallSite object now has the new methods isWasm(), getWasmObject() and getWasmFunctionIndex(); the byte offset is available via getPosition(). Function names of wasm frames should be fully functional with this commit, position information works reliably for calls, but not for traps like unreachable or out-of-bounds accesses. R=titzer@chromium.org, yangguo@chromium.org Review-Url: https://codereview.chromium.org/1909353002 Cr-Commit-Position: refs/heads/master@{#36067}
-
- 29 Apr, 2016 2 commits
-
-
titzer authored
[wasm] Binary 11: Swap the order of section name / section length. [wasm] Binary 11: Shorter section names. [wasm] Binary 11: Add a prefix for function type declarations. [wasm] Binary 11: Function types encoded as pcount, p*, rcount, r* [wasm] Fix numeric names for functions. R=rossberg@chromium.org,jfb@chromium.org,ahaas@chromium.org BUG=chromium:575167 LOG=Y Review-Url: https://codereview.chromium.org/1896863003 Cr-Commit-Position: refs/heads/master@{#35897}
-
titzer authored
[wasm] Binary 11: br_table takes a value. [wasm] Binary 11: Add implicit blocks to if arms. [wasm] Binary 11: Add arities to call, return, and breaks [wasm] Binary 11: Add experimental version. This CL changes the encoder, decoder, and tests to use a postorder encoding of the AST, which is more efficient in decode time and space. R=bradnelson@chromium.org,rossberg@chromium.org,binji@chromium.org BUG=chromium:575167 LOG=Y Review-Url: https://codereview.chromium.org/1830663002 Cr-Commit-Position: refs/heads/master@{#35896}
-
- 21 Apr, 2016 3 commits
-
-
titzer authored
R=jfb@chromium.org,rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/1900153002 Cr-Commit-Position: refs/heads/master@{#35698}
-
clemensh authored
Since traps now throw real Error objects, we get stack traces containing <WASM> functions on top-level. The additional tests check for two traps: unreachable and memory out-of-bounds. R=ahaas@chromium.org, jfb@chromium.org, titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1878563003 Cr-Commit-Position: refs/heads/master@{#35691}
-
clemensh authored
This extends the wasm test case which only checks the "simple" string-variant of the stack trace. It checks the return values of the getFunctionName, getLineNumber, getFileName and toString methods. R=machenbach@chromium.org, jfb@chromium.org, titzer@chromium.org Review URL: https://codereview.chromium.org/1875153002 Cr-Commit-Position: refs/heads/master@{#35687}
-
- 20 Apr, 2016 4 commits
-
-
machenbach authored
Revert of [wasm] Also test structured stack trace (patchset #4 id:60001 of https://codereview.chromium.org/1875153002/ ) Reason for revert: Breaks: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20custom%20snapshot%20-%20debug/builds/6322 Original issue's description: > [wasm] Also test structured stack trace > > This extends the wasm test case which only checks the "simple" > string-variant of the stack trace. > It checks the return values of the getFunctionName, getLineNumber, > getFileName and toString methods. > > R=ahaas@chromium.org, jfb@chromium.org, titzer@chromium.org > BUG= TBR=ahaas@chromium.org,jfb@chromium.org,titzer@chromium.org,clemensh@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1903293002 Cr-Commit-Position: refs/heads/master@{#35670}
-
clemensh authored
This extends the wasm test case which only checks the "simple" string-variant of the stack trace. It checks the return values of the getFunctionName, getLineNumber, getFileName and toString methods. R=ahaas@chromium.org, jfb@chromium.org, titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1875153002 Cr-Commit-Position: refs/heads/master@{#35666}
-
clemensh authored
Before, just a string was thrown, so no stack trace was attached there. Generated code from wasm does not grow by this change, we just pass a message id to the respective (new) runtime function. R=mstarzinger@chromium.org, titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1874383002 Cr-Commit-Position: refs/heads/master@{#35664}
-
ahaas authored
All wasm spec tests can now be run on ia32. R=titzer@chromium.org Review URL: https://codereview.chromium.org/1899753004 Cr-Commit-Position: refs/heads/master@{#35663}
-
- 13 Apr, 2016 1 commit
-
-
aseemgarg authored
This change implements switch as a balanced if/else tree or break table or hybrid. A lot of asm.js modules are expected to extensively use switch alongside function tables that can benefit from a better implementation. BUG=v8:4203 TEST=mjsunit/asm-wasm R=titzer@chromium.org,bradnelson@chromium.org,ahaas@chromium.org LOG=N Review URL: https://codereview.chromium.org/1838973002 Cr-Commit-Position: refs/heads/master@{#35455}
-
- 31 Mar, 2016 1 commit
-
-
titzer authored
R=ahaas@chromium.org, bradnelson@chromium.org BUG= Review URL: https://codereview.chromium.org/1846613002 Cr-Commit-Position: refs/heads/master@{#35156}
-
- 30 Mar, 2016 2 commits
-
-
titzer authored
R=ahaas@chromium.org,bradnelson@chromium.org BUG= Review URL: https://codereview.chromium.org/1845443003 Cr-Commit-Position: refs/heads/master@{#35136}
-
titzer authored
R=ahaas@chromium.org,bradnelson@chromium.org BUG= Review URL: https://codereview.chromium.org/1839333002 Cr-Commit-Position: refs/heads/master@{#35134}
-
- 24 Mar, 2016 4 commits
-
-
titzer authored
R=jarin@chromium.org BUG= Review URL: https://codereview.chromium.org/1830703003 Cr-Commit-Position: refs/heads/master@{#35067}
-
bradnelson authored
This previously tickled the failure fixed in this issue: https://crrev.com/6a806a558158cbab55ad9a1a456942a7c509c810 BUG= https://code.google.com/p/v8/issues/detail?id=4203 TEST=asm-wasm-deopt R=aseemgarg@chromium.org,titzer@chromium.org LOG=N Review URL: https://codereview.chromium.org/1766153002 Cr-Commit-Position: refs/heads/master@{#35064}
-
titzer authored
R=jarin@chromium.org,bradnelson@chromium.org BUG= Review URL: https://codereview.chromium.org/1828223002 Cr-Commit-Position: refs/heads/master@{#35056}
-
bradnelson authored
This was previously undetected due to a now fixed typing bug. BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203 TEST=test-asm-validator,asm-wasm TBR=titzer@chromium.org LOG=N NOTRY=true Review URL: https://codereview.chromium.org/1823333005 Cr-Commit-Position: refs/heads/master@{#35048}
-
- 23 Mar, 2016 3 commits
-
-
bradnelson authored
Properly convert unsigned literals. Forbid using unary + on a kAsmInt. Forbid multiplies other than * 1.0 as being equivalent to unary +. BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203 TEST=test-asm-validator,asm-wasm R=titzer@chromium.org,aseemgarg@chromium.org LOG=N Review URL: https://codereview.chromium.org/1832603002 Cr-Commit-Position: refs/heads/master@{#35046}
-
titzer authored
R=bradnelson@chromium.org BUG= Review URL: https://codereview.chromium.org/1825333004 Cr-Commit-Position: refs/heads/master@{#35045}
-
bradnelson authored
This got fixed by this change: https://crrev.com/32a2ab0c724673961aa145ab63c79a29e6d28fa8 Adding a smaller mjsunit test capturing the issue (was with idiv register allocation). BUG= https://bugs.chromium.org/p/chromium/issues/detail?id=593283 R=aseemgarg@chromium.org,titzer@chromium.org LOG=N TEST=asm-wasm-copy Review URL: https://codereview.chromium.org/1820163002 Cr-Commit-Position: refs/heads/master@{#35041}
-
- 21 Mar, 2016 1 commit
-
-
bradnelson authored
Add missing conversions from other types to f32 in fround. Restrict fround() to only float, double, signed, unsigned (no unions / intish). Restrict Bitwise operations to intish, particularly |0, when not applied to a foreign function. Adding more exhaustive tests of stdlib Math, move to a separate file. Adding tests of interesting values for the stdlib asm.js functions. BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203 TEST=test-asm-validator,asm-wasm R=titzer@chromium.org,rossberg@chromium.org LOG=N Review URL: https://codereview.chromium.org/1804243003 Cr-Commit-Position: refs/heads/master@{#34967}
-