- 30 Aug, 2016 1 commit
-
-
titzer authored
This CL is a prequisite for the stack machine changes, which will need to use temporaries in various places due to the stack height requirements on blocks. R=ahaas@chromium.org,bradnelson@chromium.org BUG= Review-Url: https://codereview.chromium.org/2280063002 Cr-Commit-Position: refs/heads/master@{#39001}
-
- 29 Aug, 2016 2 commits
-
-
mtrofin authored
This unblocks moving off having to hold on to a compiled module template. Once we don't have the template, when we have a single instance, the instance and wasm module share the same compiled code. We will want to clear that code off instance-specific stuff, when the instance is unreferenced and should be GC-ed (stuff like the instance heap, for instance). However, the deopt data will maintain a strong reference, blocking the GC: the module object strongly references the compiled code, which strongly references the instance object through the deopt data. This change addresses that by making that last reference weak. BUG=v8:5316 Review-Url: https://codereview.chromium.org/2284683005 Cr-Commit-Position: refs/heads/master@{#38990}
-
bradnelson authored
This adds: * A script (tools/update-wasm-fuzzers.sh), which creates a new fuzzing seed corpus and uploads to google storage (you must have the right credentials). * A new pair of DEPS entries to pull in the current version of the corpus based on a checked in pair of hash files. BUG=None TEST=None R=ahaas@chromium.org,kcc@chromium.org,mvstanton@chromium.org Review-Url: https://codereview.chromium.org/2273303002 Cr-Commit-Position: refs/heads/master@{#38987}
-
- 26 Aug, 2016 1 commit
-
-
ahaas authored
This CL fixes the first bug I found with the new fuzzing. The problem is that the number of locals is unbounded. This CL bounds the number of locals of one type with 8000000, an arbitrary number. R=titzer@chromium.org BUG= Review-Url: https://codereview.chromium.org/2271803004 Cr-Commit-Position: refs/heads/master@{#38936}
-
- 24 Aug, 2016 1 commit
-
-
mtrofin authored
When compiling a wasm module, we initially generate placeholders for imports, which store the index corresponding to that import. Later, at instantiation time, we use that index to correctly link the provided import. In this scheme, supporting multiple instantiations requires we preserve a template (set of unlinked compiled wasm functions) which we clone for each instance. To avoid holding on to this template, which may be large (wasm compiled code should be expected to be in the order of tens of MB), we must enable cloning from an instance's linked wasm functions. This change is a step in that direction. Instead of assuming the wasm functions reference placeholders, we store a table of the code objects used for imports together with the compiled module, and use that information to determine the index of the import. Initially, that table contains placeholders. For instances, however, that table contains their actual imports. BUG= Review-Url: https://codereview.chromium.org/2269323002 Cr-Commit-Position: refs/heads/master@{#38848}
-
- 23 Aug, 2016 4 commits
-
-
jpp authored
Introduces support for using try { } finally { } in wasm. BUG= Review-Url: https://codereview.chromium.org/2240743003 Cr-Commit-Position: refs/heads/master@{#38845}
-
gdeepti authored
- Instruction selection, code generation, test for Splat/Extract - Fixes for AstS128 Locals in wasm R=bbudge@chromium.org, titzer@chromium.org Review-Url: https://codereview.chromium.org/2264533002 Cr-Commit-Position: refs/heads/master@{#38843}
-
mtrofin authored
Clone the indirect function table(s) when instantiating. This is in preparation to avoiding having a compiled code template. BUG= Review-Url: https://codereview.chromium.org/2273483002 Cr-Commit-Position: refs/heads/master@{#38807}
-
bradnelson authored
Make use of %IsAsmWasmCode in place of Wasm.instantiateModuleFromAsm, in order to reduce the surface area of the Wasm object, and to focus on testing asm.js coming in via the parser. Ignore extra CONST_LEGACY assignment introduced by the parser when modules have the form: (function Foo(a, b, c) {..}); This requires both a validator and AsmWasmBuilder change. Move stdlib use collection to import time, to reject modules that import a function, even if not used. BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203 LOG=N R=jpp@chromium.org,titzer@chromium.org Review-Url: https://codereview.chromium.org/2264913002 Cr-Commit-Position: refs/heads/master@{#38806}
-
- 22 Aug, 2016 2 commits
-
-
ahaas authored
The new operators are implemented similar to the Float64(Max|Min) which already exist. The purpose of the new operators is the implementation of the F32Max and F32Min instructions in WebAssembly. R=titzer@chromium.org, v8-arm-ports@googlegroups.com, v8-mips-ports@googlegroups.com Review-Url: https://codereview.chromium.org/2252863003 Cr-Commit-Position: refs/heads/master@{#38784}
-
marja authored
This makes us able to get rid of dependencies to parser.h from places which only need the ParseInfo, and also gets rid of the curious Parser <-> Compiler circular dependency. Also IWYUd where necessary. BUG= Review-Url: https://codereview.chromium.org/2268513002 Cr-Commit-Position: refs/heads/master@{#38777}
-
- 19 Aug, 2016 2 commits
-
-
bradnelson authored
Record which asm.js stdlib members are used and add a check that NaN is actually correctly set. Other stdlib members to be added in a later change. Also add a stdlib argument to Wasm.instantiateModuleFromAsm, in preparation for that function to be replaced by normal asm.js instantiation. BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203 LOG=N R=jpp@chromium.org,titzer@chromium.org Review-Url: https://codereview.chromium.org/2251433002 Cr-Commit-Position: refs/heads/master@{#38760}
-
ahaas authored
TEST=mjsunit/wasm/stack.js:testStackOverflow R=titzer@chromium.org Review-Url: https://codereview.chromium.org/2256603002 Cr-Commit-Position: refs/heads/master@{#38742}
-
- 16 Aug, 2016 2 commits
-
-
titzer authored
R=ahaas@chromium.org BUG= Review-Url: https://codereview.chromium.org/2253543003 Cr-Commit-Position: refs/heads/master@{#38658}
-
mtrofin authored
A test exercising the public APIs for wasm serialization and simulates the serialization scenario - serialize in one isolate, deserialize in another. BUG=v8:5072 Review-Url: https://codereview.chromium.org/2249973002 Cr-Commit-Position: refs/heads/master@{#38644}
-
- 11 Aug, 2016 2 commits
-
-
jpp authored
------------------------------------------------------------------------ This CL adds support for decoding eh-related wasm opcodes: * Throw: used for raising an exception; the thrown value lives on top of the evaluation stack; * TryCatch: used to start a try block that has a catch clause; * TryFinally: used to start a try block that has a finally clause; * TryCatchFinally: used to start a try block that has both catch and finally clauses; * Catch <local>: used to start the catch block of a TryCatch/TryCatchFinally block; the thrown value is stored in local <local>; and * Finally: used to start a finally block of TryFinally/TryCatchFinally. Three different opcodes are used to start a try block to simplify the AST construction during bytecode parsing. BUG= Review-Url: https://codereview.chromium.org/2222193004 Cr-Commit-Position: refs/heads/master@{#38579}
-
ahaas authored
With this CL all kinds of Callable can imported into wasm. Please take a special look at the context that is used now in the WasmToJSWrapper. BUG=633895 TEST=mjsunit/wasm/ffi.js Review-Url: https://codereview.chromium.org/2208703002 Cr-Commit-Position: refs/heads/master@{#38569}
-
- 09 Aug, 2016 1 commit
-
-
mtrofin authored
Implementation of serialization/deserialization for compiled wasm module. BUG=v8:5072 Review-Url: https://codereview.chromium.org/2205973003 Cr-Commit-Position: refs/heads/master@{#38498}
-
- 08 Aug, 2016 3 commits
-
-
bradnelson authored
While we might at some point want to explore if this is a win versus whole modules, for now we have the Tables interface planned. R=titzer@chromium.org,ahaas@chromium.org,mtrofin@chromium.org,rossberg@chromium.org BUG=v8:5044 Review-Url: https://codereview.chromium.org/2226053002 Cr-Commit-Position: refs/heads/master@{#38461}
-
jgruber authored
Revert of Fix an OOB read through CallSite.GetFunctionName (patchset #1 id:1 of https://codereview.chromium.org/2199333002/ ) Reason for revert: We can revert this now that it's landed on 5.3. Original issue's description: > Fix an OOB read through CallSite.GetFunctionName > > The func_index parameter passed to GetWasmFunctionNameFromTable can be > user-controlled through the CallSite constructor. Catch out-of-bounds > reads and return null as the function name in such cases. > > This applies to the 5.3 branch and will be reverted on TOT in a bit. > > BUG=632965 > > Committed: https://crrev.com/8592c450a68581d7257c1b2002983c0092cd749a > Cr-Commit-Position: refs/heads/master@{#38276} TBR=ahaas@chromium.org,yangguo@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=632965 Review-Url: https://codereview.chromium.org/2225773002 Cr-Commit-Position: refs/heads/master@{#38414}
-
ahaas authored
I had to adjust Float64Max/Min on x64 slightly to return the default wasm NaN (0x7FF0000000000000) instead of the all-ones NaN (0xFFFFFFFFFFFFFFFF). R=titzer@chromium.org, bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2204963002 Cr-Commit-Position: refs/heads/master@{#38410}
-
- 04 Aug, 2016 2 commits
-
-
gdeepti authored
Return -1 instead of out of throwing errors, update tests. R=titzer@chromium.org, ahaas@chromium.org Review-Url: https://codereview.chromium.org/2216443002 Cr-Commit-Position: refs/heads/master@{#38350}
-
clarkchenwang authored
Review-Url: https://codereview.chromium.org/2204703002 Cr-Commit-Position: refs/heads/master@{#38349}
-
- 03 Aug, 2016 2 commits
-
-
titzer authored
R=ahaas@chromium.org,bradnelson@chromium.org BUG=chromium:628542 Review-Url: https://codereview.chromium.org/2207183002 Cr-Commit-Position: refs/heads/master@{#38317}
-
jgruber authored
The func_index parameter passed to GetWasmFunctionNameFromTable can be user-controlled through the CallSite constructor. Catch out-of-bounds reads and return null as the function name in such cases. This applies to the 5.3 branch and will be reverted on TOT in a bit. BUG=632965 Review-Url: https://codereview.chromium.org/2199333002 Cr-Commit-Position: refs/heads/master@{#38276}
-
- 02 Aug, 2016 2 commits
-
-
mtrofin authored
A fix would be to walk the reloc info and RecordWriteIntoCode. Doing so, however, upsets a scavenger DCHECK. We stumbled upon this issue because we were placing wasm objects (fixed arrays) in NEW_SPACE, rather than OLD_SPACE. These fixed arrays were subsequently referenced from Code objects, which were then cloned. The current CL ensures wasm constructs are allocated in OLD_SPACE, by pre-tenuring them (consistent with other wasm allocations). In addition, it adds a DCHECK for CopyCode clarifying its lack of support for references to NEW_SPACE. We can investigate in a subsequent CL making CopyCode more robust, pending understanding of the Scavenger's assumptions. BUG= Review-Url: https://codereview.chromium.org/2201663003 Cr-Commit-Position: refs/heads/master@{#38263}
-
titzer authored
R=ahaas@chromium.org,bradnelson@chromium.org BUG= Review-Url: https://codereview.chromium.org/2209433002 Cr-Commit-Position: refs/heads/master@{#38262}
-
- 28 Jul, 2016 2 commits
-
-
cbruni authored
This CL introduces a new fast flat instantiations cache for the first 1024 object templates. After that we fall back to the existing slower dictionary cache. Drive-by-fix: de-handlify and clean up some code in api-natives.cc BUG=chromium:630217 Review-Url: https://codereview.chromium.org/2170743003 Cr-Commit-Position: refs/heads/master@{#38146}
-
ddchen authored
This patch updates internal data structures used by V8 to support multiple indirect function tables (WebAssembly/design#682). But, since this feature is post-MVP, the functionality is not directly exposed and parsing/generation of WebAssembly is left unchanged. Nevertheless, it is being used in an experiment to implement fine-grained control flow integrity based on C/C++ types. BUG= Review-Url: https://codereview.chromium.org/2174123002 Cr-Commit-Position: refs/heads/master@{#38110}
-
- 26 Jul, 2016 1 commit
-
-
ivica.bogosavljevic authored
Fix failure in mjsunit/wasm/embenchen/box2d on 32-bit architectures that do not support unaligned access. This test fails because WasmGraphBuilder::BuildCFuncInstruction allocates space for doubles using StackSlot turbofan operator, but this space is not guaranteed to be 8 bytes aligned if SP itself is not 8 bytes aligned (which is the case on 32-bit architectures). BUG=mjsunit/wasm/embenchen/box2d Review-Url: https://codereview.chromium.org/2177863002 Cr-Commit-Position: refs/heads/master@{#38039}
-
- 25 Jul, 2016 2 commits
-
-
jochen authored
R=ishell@chromium.org,bmeurer@chromium.org TBR=rossberg@chromium.org BUG= Review-Url: https://codereview.chromium.org/2175233003 Cr-Commit-Position: refs/heads/master@{#38009}
-
jochen authored
R=bmeurer@chromium.org BUG= Review-Url: https://codereview.chromium.org/2173403002 Cr-Commit-Position: refs/heads/master@{#38007}
-
- 22 Jul, 2016 1 commit
-
-
ritesht authored
Revert "[wasm] Adding a convolution matrix filter test to highlight the performance advantages of JITing" GC-Stress asserts in filter-jit. This reverts commit ccfd224e. BUG=v8:5044 R=bradnelson@chromium.org Review-Url: https://codereview.chromium.org/2168343002 Cr-Commit-Position: refs/heads/master@{#37961}
-
- 21 Jul, 2016 3 commits
-
-
ritesht authored
This cl also fixes two bugs in the previous code: 1) JITed functions were not allowed access to the heap because the module instance wasn't correctly synthesized. This wasn't discovered in the previous test. 2) Decoding of functions with the JITSingleFunction opcode was off by 1 as the length of the opcode wasn't computed correctly. BUG=5044 Review-Url: https://codereview.chromium.org/2168183002 Cr-Commit-Position: refs/heads/master@{#37957}
-
titzer authored
R=ahaas@chromium.org,rossberg@chromium.org,bradnelson@chromium.org BUG= Review-Url: https://codereview.chromium.org/2165633006 Cr-Commit-Position: refs/heads/master@{#37945}
-
titzer authored
R=ahaas@chromium.org, rossberg@chromium.org BUG= Review-Url: https://codereview.chromium.org/2170773003 Cr-Commit-Position: refs/heads/master@{#37939}
-
- 20 Jul, 2016 1 commit
-
-
ahaas authored
This CL more or less reverts commit https://codereview.chromium.org/2107733002/ The use of the MathPow code stub that was introduced by that commit caused problems on arm64, and the MathPow code stub was also an obstacle in the implementation of parallel code generation. In addition this CL turns on the mjsunit/wasm/embenchen tests for arm64 which were turned off because of problems with MathPow on arm64. R=titzer@chromium.org, bradnelson@chromium.org Review-Url: https://codereview.chromium.org/2166793002 Cr-Commit-Position: refs/heads/master@{#37911}
-
- 16 Jul, 2016 1 commit
-
-
gdeepti authored
- Add Simd128 type to Wasm AST types - Decode SIMD prefix, wasm opcodes correctly - Add a pass that converts SIMD machine ops to runtime calls - Sample opcodes Int32x4Splat, Int32x4ExtractLane and test LOG=N BUG=v8:4124 R=bradnelson@chromium.org, bbudge@chromium.org, titzer@chromium.org Committed: https://crrev.com/73df92fc2fdbbfadc17e8ab4e58ec56ae2b3d91a Review-Url: https://codereview.chromium.org/1991143002 Cr-Original-Commit-Position: refs/heads/master@{#37789} Cr-Commit-Position: refs/heads/master@{#37807}
-
- 15 Jul, 2016 2 commits
-
-
machenbach authored
Revert of Convert SIMD wasm ops to runtime function calls (patchset #17 id:320001 of https://codereview.chromium.org/1991143002/ ) Reason for revert: [Sheriff] Violates msan and tsan: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/builds/9663 https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/10670 Original issue's description: > Convert SIMD machine ops to runtime function calls > - Add Simd128 type to Wasm AST types > - Add a pass that converts SIMD machine ops to runtime calls > - Sample opcodes Int32x4Splat, Int32x4ExtractLane and test > - Separate out generic SIMD Machine ops as these cannot be > handled by runtime functions just yet. > > LOG=N > BUG=v8:4124 > > R=bradnelson@chromium.org, bbudge@chromium.org, titzer@chromium.org > > Committed: https://crrev.com/73df92fc2fdbbfadc17e8ab4e58ec56ae2b3d91a > Cr-Commit-Position: refs/heads/master@{#37789} TBR=bbudge@chromium.org,bradnelson@chromium.org,titzer@chromium.org,gdeepti@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4124 Review-Url: https://codereview.chromium.org/2154723002 Cr-Commit-Position: refs/heads/master@{#37790}
-
gdeepti authored
- Add Simd128 type to Wasm AST types - Add a pass that converts SIMD machine ops to runtime calls - Sample opcodes Int32x4Splat, Int32x4ExtractLane and test - Separate out generic SIMD Machine ops as these cannot be handled by runtime functions just yet. LOG=N BUG=v8:4124 R=bradnelson@chromium.org, bbudge@chromium.org, titzer@chromium.org Review-Url: https://codereview.chromium.org/1991143002 Cr-Commit-Position: refs/heads/master@{#37789}
-