- 28 Nov, 2019 1 commit
-
-
Clemens Backes authored
Fix a TODO from Ben to change the macro argument order to match the actual order in wasm code. After this fix, we can remove the individual {WASM_CALL_INDIRECT[0-5]} macros and implement them via a common variadic macro. Also, rename {WASM_CALL_INDIRECT_TABLE0} to {WASM_CALL_INDIRECT_TABLE}. The name was confusing, because this macro explictly allows to set a table index different from 0. Thus, just drop the "0" in the name. The individual test changes were done via a vim macro, to avoid manual errors. R=mstarzinger@chromium.org Bug: v8:10021 Change-Id: I9f0f31511c5c6e20a0b07524bf75fe9cf1598eba Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940265Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65242}
-
- 15 Nov, 2019 1 commit
-
-
Maya Lekova authored
This helps reduce the number of false positives encountered by the dead variable analysis in gcmole. TBR=jgruber@chromium.org, verwaest@chromium.org, yangguo@chromium.org Bug: v8:9810 Change-Id: I1a34ccaab340e6abc37832b4ce1a0cabc56fa438 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1917146 Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64981}
-
- 06 Nov, 2019 1 commit
-
-
Michael Starzinger authored
The test coverage in question is by now provided by a different set of mjsunit tests, namely the "mjsunit/wasm/anyref-globals-interpreter" suite which run all globals tests in --wasm-interpret-all mode. R=ahaas@chromium.org TEST=cctest/test-run-wasm-interpreter/ReferenceTypeLocals Change-Id: I439b1ee74da3c36995bb3d5819e35d4074400868 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1901266Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#64812}
-
- 08 Oct, 2019 1 commit
-
-
Clemens Backes authored
This brings our constants back in line with the changed spec text. We already use kExprTableGet and kExprTableSet, but for locals and globals we still use the old wording. This renaming is mostly mechanical. PS1 was created using: ag -l 'kExpr(Get|Set|Tee)Local' src test | \ xargs -L1 sed -E 's/kExpr(Get|Set|Tee)Local\b/kExprLocal\1/g' -i PS2 contains manual fixes. R=mstarzinger@chromium.org Bug: v8:9810 Change-Id: I1617f1b2a100685a3bf56218e76845a9481959c5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1847354Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64161}
-
- 22 May, 2019 1 commit
-
-
Andreas Haas authored
Up until now, we cached export wrappers per export index. With the anyref proposal potentially many more functions will need export wrappers, e.g. any function that is stored in a table, and any function accessed by the new ref.func instruction. With this CL, we change the caching scheme an do the caching per signature. Thereby we can guarantee that any export wrapper which potentially exists can be stored in the cache. For cctests which use wasm-run-utils, we don't know the size of the cache anymore ahead of time. However, we assume that no more than 5 signatures will be used in any cctest. If this assumption is not true, we can just adjust the number. The cache is now accessed in all code paths where we need an export wrapper. Bug: chromium:962850 Change-Id: I32df60dfa7801d1e71f7d837da091f388198af1f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1615247 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61752}
-
- 21 May, 2019 1 commit
-
-
Yang Guo authored
Bug: v8:9247 TBR=bmeurer@chromium.org,neis@chromium.org NOPRESUBMIT=true Change-Id: Ia1e49d1aac09c4ff9e05d58fab9d08dd71198878 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621931Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61682}
-
- 05 Apr, 2019 1 commit
-
-
Michael Starzinger authored
This ensures the lifetime of reference values on the simulated operand stack of the interpreter is coupled to a lifetime of the {ThreadImpl}. We no longer directly store reference values on the stack, but maintain a separate "reference stack" on the GC'ed heap. This will ensure the GC traces such references properly. The new {StackValue} safety wrapper makes sure all use-sites that access the operand stack properly convert to/from handles when dealing with reference values. R=clemensh@chromium.org TEST=mjsunit/wasm/exceptions-interpreter BUG=v8:8091,v8:7581 Change-Id: I8c05f2d945a6def943b89be0cfca538a73df8855 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1552791 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60650}
-
- 03 Apr, 2019 1 commit
-
-
Michael Starzinger authored
This adds preliminary support for handling the "br_on_exn" opcode in the interpreter. It also makes "catch" and "rethrow" use a proper exception reference instead of a dummy value. To that end this also adds {Handle<>} as a new kind of {WasmValue} which is intended to pass reference values (e.g. "anyref" or "except_ref") to the runtime system. Therefore lifetime of such a {WasmValue} is directly coupled to any surrounding {HandleScope}. For now we just store {Handle<>} directly on the simulated operand stack of the interpreter. This is of course bogus, since the surrounding scope does not outlive the interpreter activation. Decoupling the lifetime of the operand stack from a {HandleScope} will be done in a follow-up CL. As a drive-by this change also implements support for the "ref_null" and the "ref_is_null" opcodes as a proof-of-concept that the new {WasmValue} is also applicable to the "anyref" reference type. R=clemensh@chromium.org TEST=cctest/test-run-wasm-interpreter/ReferenceTypeLocals BUG=v8:8091,v8:7581 Change-Id: I2307e0689a19c4aab1d67f1ba6742cb3cc31aa3c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1550299 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60598}
-
- 21 Mar, 2019 1 commit
-
-
Ben Smith authored
When running wasm tests, the interpreter previously used a static collection of function indexes stored in WasmTable to perform call_indirect calls internal to that module. This has the wrong behavior if the table is changed (via WasmTableObject::Set, `table.copy`, or `table.init`). This CL changes the cctests to always generate an intepreter entry for all functions, and stores those entries in the dispatch table. This allows us to use the same execution path as for non-testing code. The interpreter entry compiler needed to be changed to support multi-value returns too, since a 64-bit integer return value may be lowered to two 32-bit integer returns. Bug: v8:9016 Change-Id: I277df21ffde5c2eee0b691fcc9bab2b1a43eeffc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1531137 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#60380}
-
- 27 Feb, 2019 1 commit
-
-
Francis McCabe authored
Implement the ReturnCall functionality for the interpreter. Note that some tests have had to be deferred to the implementation of ReturnCall for TurboFan. This a reland of https://chromium-review.googlesource.com/c/v8/v8/+/1467343 Bug: v8:7431 Change-Id: Iac9392a6a81995e30009dac74035e4d728ac3dbb Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/1484905 Commit-Queue: Francis McCabe <fgm@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#59925}
-
- 22 Feb, 2019 2 commits
-
-
Deepti Gandluri authored
This reverts commit 6a88f0b1. Reason for revert: Fails UBSAN bots - https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20UBSan/4866 Original change's description: > [wasm] ReturnCall Implementation (interpreter) > > Implement the ReturnCall functionality for the interpreter. > > Note that some tests have had to be deferred to the implementation > of ReturnCall for TurboFan. > > Bug: v8:7431 > Change-Id: I091528e72f9113ddf1929bd1a5650b490bc8cc0c > Reviewed-on: https://chromium-review.googlesource.com/c/1467343 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Commit-Queue: Francis McCabe <fgm@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59803} TBR=adamk@chromium.org,ahaas@chromium.org,clemensh@chromium.org,fgm@chromium.org Change-Id: Ib2a85e586549e9c36f94d70f04f6e103a8272367 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7431 Reviewed-on: https://chromium-review.googlesource.com/c/1484574Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#59804}
-
Francis McCabe authored
Implement the ReturnCall functionality for the interpreter. Note that some tests have had to be deferred to the implementation of ReturnCall for TurboFan. Bug: v8:7431 Change-Id: I091528e72f9113ddf1929bd1a5650b490bc8cc0c Reviewed-on: https://chromium-review.googlesource.com/c/1467343Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Francis McCabe <fgm@chromium.org> Cr-Commit-Position: refs/heads/master@{#59803}
-
- 07 Feb, 2019 1 commit
-
-
Michael Starzinger authored
This adds a test case to check consistency of how an "unreachable" trap is handled by a surrounding "try" block in case those two operations are in different functions (i.e. not local to one function body). It also fixes a DCHECK for an as-of-yet untested interpreter state transition. R=clemensh@chromium.org TEST=cctest/test-run-wasm-exceptions BUG=v8:8729 Change-Id: I432c48d0bc664f7ab092aaafef6dfa29c5f262fd Reviewed-on: https://chromium-review.googlesource.com/c/1454605 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#59429}
-
- 01 Feb, 2019 1 commit
-
-
Clemens Hammacher authored
This CL changes the usage pattern from FOR_XXX_VALUES(i) { Use(*i); } to FOR_XXX_VALUES(i) { Use(i); } which is way more intuitive. Note that the replacement in the uses was done via regular expression, so it's purely mechanical. In two locations I removed unneeded braces around the macro, because they confused clang-format. I plan to do more cleanups (remove redundant assignments within the FOR_XXX_VALUES body) in a follow-up CL. R=mstarzinger@chromium.org Bug: v8:8562 Change-Id: I4329bfcf34e5b077d19b50f4204ceb3b4340fe61 Reviewed-on: https://chromium-review.googlesource.com/c/1449615 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59287}
-
- 29 Oct, 2018 1 commit
-
-
Clemens Hammacher authored
The "grow_memory" opcode was renamed to "memory.grow", and the spec repo was updated to use kExprMemoryGrow internally instead of kExprGrowMemory (https://github.com/WebAssembly/spec/pull/720). This CL does the same change for v8. Drive-by: Rename "current_size" to "memory.size", and a minor cleanup in wasm-graph-builder.js to bring it in line with the version in the js-api tests in the spec repo. R=titzer@chromium.org Change-Id: If525dba898b2c248890a616d3392c22b45f698ef Reviewed-on: https://chromium-review.googlesource.com/c/1302057Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#57089}
-
- 21 Aug, 2018 1 commit
-
-
Ben L. Titzer authored
R=mstarzinger@chromium.org Change-Id: Iacdff28dd1383d77d7708de4ee22d9f2a77d872a Reviewed-on: https://chromium-review.googlesource.com/1183440 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#55284}
-
- 27 Apr, 2018 1 commit
-
-
Clemens Hammacher authored
Linkage-related methods were declared in wasm-compiler.h and implemented in wasm-linkage.cc. This required all users of e.g. wasm call descriptors to include the whole wasm compiler header. Also, some wasm linkage information is independent of turbofan and also used outside of the compiler directory. This CL splits off wasm-linkage.h (with minimal includes) and puts it in src/wasm. This allows to use that information without including compiler headers (will clean up several uses in follow-up CLs). R=mstarzinger@chromium.org, titzer@chromium.org Bug: v8:7570 Change-Id: Ifcae70b4ea7932cda30953b325c2b87c4176c598 Reviewed-on: https://chromium-review.googlesource.com/1013701Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52849}
-
- 16 Apr, 2018 1 commit
-
-
Vincent Belliard authored
First version which can compile a very basic code. Change-Id: I3b98412a5ca39a28f8fe5b60516b82c6981dd187 Reviewed-on: https://chromium-review.googlesource.com/993232 Commit-Queue: Vincent Belliard <vincent.belliard@arm.com> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52622}
-
- 11 Jan, 2018 1 commit
-
-
Ben L. Titzer authored
This CL centralizes constants related to decoding from several places into one place and makes it no longer necessary to include wasm-opcodes.h for some simple constants. R=clemensh@chromium.org Bug: Change-Id: I53aa81e34167df467bc7455b717bf67083033943 Reviewed-on: https://chromium-review.googlesource.com/859764 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50503}
-
- 02 Nov, 2017 1 commit
-
-
Clemens Hammacher authored
After renaming the WasmExecutionMode constants, I should also have renamed the tests generated from the WASM_EXEC_TEST macro. This CL cleans this up. R=titzer@chromium.org Change-Id: Ifcb1a1e09422a06f89c3b44dc6b7799d3f84f7ac Reviewed-on: https://chromium-review.googlesource.com/744044 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#49082}
-
- 26 Oct, 2017 1 commit
-
-
Clemens Hammacher authored
The current implementation overapproximates the possible_nondeterminism_ bit by setting it whenever a NaN value is reinterpreted as integer, or stored to memory. This hides bugs in the interpreter that are handled as possible nondeterminism even though they are not. This CL fixes this by only setting the bit if a binary floating point operation is executed and one of the inputs is a NaN. R=ahaas@chromium.org Bug: v8:6954 Change-Id: Ib937ae7730dbb140c012d07fae23b40ae7ed3d6b Reviewed-on: https://chromium-review.googlesource.com/735599 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#48954}
-
- 21 Sep, 2017 1 commit
-
-
Mostyn Bramley-Moore authored
By adding a per test source file namespace, we can avoid a lot of symbol collisions in jumbo builds. While we're at it, let's remove some "using" statements that also cause trouble. Bug: chromium:746958 Change-Id: I6f8a723e1ba5905888638e0687b23193f3f012ca Reviewed-on: https://chromium-review.googlesource.com/676803Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com> Cr-Commit-Position: refs/heads/master@{#48102}
-
- 01 Sep, 2017 1 commit
-
-
Clemens Hammacher authored
This required splitting wasm-run-utils.h in header and implementation, since the anonymous namespace in wasm-run-utils.h is now gone. This is a reasonable refactoring in itself. R=titzer@chromium.org CC=mstarzinger@chromium.org, mostynb@opera.com Bug: chromium:746958 Change-Id: I0f3b30fef1865cd88eca37b69d0c3a9eb19e77ea Reviewed-on: https://chromium-review.googlesource.com/647587Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#47773}
-
- 19 Aug, 2017 2 commits
-
-
Mircea Trofin authored
This reverts commit 3913bde1. Reason for revert: Reason for revert fixed. Original change's description: > Revert "[wasm] Rename TestingModule to TestingModuleBuilder." > > This reverts commit ed06fc91. > > Reason for revert: Need to revert previous CL > > Original change's description: > > [wasm] Rename TestingModule to TestingModuleBuilder. > > > > This is a followup to moving the ModuleEnv to the compiler directory and > > making it immutable. > > > > R=mtrofin@chromium.org, ahaas@chromium.org > > > > Bug: > > Change-Id: I0f5ec1b697bdcfad0b4dc2bca577cc0f40de8dc0 > > Reviewed-on: https://chromium-review.googlesource.com/616762 > > Commit-Queue: Ben Titzer <titzer@chromium.org> > > Reviewed-by: Mircea Trofin <mtrofin@chromium.org> > > Reviewed-by: Andreas Haas <ahaas@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#47419} > > TBR=titzer@chromium.org,mtrofin@chromium.org,ahaas@chromium.org > > Change-Id: I9b3b379e89f523c2fcf205a1d268aa294bbc44ff > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://chromium-review.googlesource.com/622567 > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47448} TBR=machenbach@chromium.org,titzer@chromium.org,mtrofin@chromium.org,ahaas@chromium.org Change-Id: Idce6f1ca8ed0ea80edb50292e9b6e2d7712f29cf No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/622034Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Commit-Queue: Mircea Trofin <mtrofin@chromium.org> Cr-Commit-Position: refs/heads/master@{#47454}
-
Michael Achenbach authored
This reverts commit ed06fc91. Reason for revert: Need to revert previous CL Original change's description: > [wasm] Rename TestingModule to TestingModuleBuilder. > > This is a followup to moving the ModuleEnv to the compiler directory and > making it immutable. > > R=mtrofin@chromium.org, ahaas@chromium.org > > Bug: > Change-Id: I0f5ec1b697bdcfad0b4dc2bca577cc0f40de8dc0 > Reviewed-on: https://chromium-review.googlesource.com/616762 > Commit-Queue: Ben Titzer <titzer@chromium.org> > Reviewed-by: Mircea Trofin <mtrofin@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47419} TBR=titzer@chromium.org,mtrofin@chromium.org,ahaas@chromium.org Change-Id: I9b3b379e89f523c2fcf205a1d268aa294bbc44ff No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/622567Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#47448}
-
- 18 Aug, 2017 1 commit
-
-
Ben L. Titzer authored
This is a followup to moving the ModuleEnv to the compiler directory and making it immutable. R=mtrofin@chromium.org, ahaas@chromium.org Bug: Change-Id: I0f5ec1b697bdcfad0b4dc2bca577cc0f40de8dc0 Reviewed-on: https://chromium-review.googlesource.com/616762 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#47419}
-
- 18 Jul, 2017 1 commit
-
-
Clemens Hammacher authored
This allows to reuse the class e.g. in the baseline compiler. R=titzer@chromium.org Change-Id: I7251af16e8c74f267834a9cefb676edf3c9f3a07 Reviewed-on: https://chromium-review.googlesource.com/570020Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46735}
-
- 28 Apr, 2017 1 commit
-
-
Clemens Hammacher authored
This reduces the amount of special paths for testing. Setup the memory used for testing exactly the same way as in real world. Also, always connect the interpreter to the instance being executed, and to the existing WasmInstance struct. This keeps information synchronized between interpreter and test runner. These changes allow us to execute e.g. GrowMemory from cctests either in the interpreter or in compiled code. R=ahaas@chromium.org Change-Id: Id4726d061f3cdba789275350f500d769d27d2d63 Reviewed-on: https://chromium-review.googlesource.com/488561 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#44966}
-
- 25 Apr, 2017 1 commit
-
-
Clemens Hammacher authored
This header file is only used from tests. Also, move the LoadStoreOpcodeOf method (only used in tests) from wasm-opcodes.h to wasm-macro-gen.h. R=ahaas@chromium.org Change-Id: I8d4691be494b5c1fbe3084441329850930bad647 Reviewed-on: https://chromium-review.googlesource.com/486861 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#44845}
-
- 03 Apr, 2017 1 commit
-
-
Clemens Hammacher authored
For OOB checks on memory accesses, we first subtracted the size of the type to load/store from the memory size, and then compared against this effective_size. If the memory size is smaller than the size of the type, this would lead to an integer underflow, and we would try to load the value. This CL fixes this, and adds a test case for this. R=ahaas@chromium.org BUG=v8:5822 Change-Id: I26fcba0be7343c88b8459d029b0c0af095d2466a Reviewed-on: https://chromium-review.googlesource.com/465946 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#44345}
-
- 21 Mar, 2017 1 commit
-
-
Clemens Hammacher authored
This CL makes the interpreter reentrant by allowing different activations to be live at the same time. The wasm interpreter keeps a list of activations and stores the stack height at the start of each activation. This information is used to unwind just one activation, or show the right portion of the interpreter stack for each interpreter entry frame. The WasmDebugInfo object stores a mapping from frame pointer (of the interpreter entry) to the activation id in order to identify the activation based on the physical interpreter entry frame. R=titzer@chromium.org, ahaas@chromium.org BUG=v8:5822 Change-Id: Ibbf93f077f907213173a92e0a2f7f3556515e8eb Reviewed-on: https://chromium-review.googlesource.com/453958 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#43976}
-
- 14 Mar, 2017 1 commit
-
-
Clemens Hammacher authored
This is a cleanup in preparation to implement calling imported functions via the wasm interpreter. For imported functions, we do not create entries in the interpreter_code_ vector any more. I also simplified the interface and removed unused or redundant return values. More things are now DCHECKed instead of bailing out. Also, we previously had two PushFrame methods: One is supposed to initialize the interpreter from external code (i.e. adds the first frame to the stack), the other one is used to push new frames on the frame stack for called functions. This CL renames the first to InitFrame, and makes it use the second one. The other remaining user is the DoCall method. R=titzer@chromium.org BUG=v8:5822 Change-Id: Id09ff1e3256428fbd8c955e4664507a0c3167e53 Reviewed-on: https://chromium-review.googlesource.com/453482 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#43793}
-
- 23 Feb, 2017 1 commit
-
-
Marja Hölttä authored
BUG=v8:5294 Change-Id: If45f25aae8de526027b7851cb4efe0ccf4a7c4b1 Reviewed-on: https://chromium-review.googlesource.com/444226 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#43388}
-
- 03 Feb, 2017 1 commit
-
-
ahaas authored
Apparently it happens quite easily that different NaNs are produced in the interpreter than in the execution of the compiled code. This non-determinism caused problems for the fuzzer which compares the equality of the results of the interpreter and the compiled code. I decided therefore to refactor the detection of non-determinism in the interpreter. Instead of tracking whether potentially non-deterministic NaNs were produced, I track now whether potentially non-deterministic NaNs could have been observed. The only way the NaN non-determinism can be observed is by observing the non-deterministic bit pattern of the NaN. AFAICT the only way to observe the bit pattern is with a I(32|64)_REINTERPRET_F(32|64) instruction or with a F(32|64)_STORE followed by a load. Therefore I flag an execution as potentially non-deterministic when either a NaN is reinterpreted to an int, or when a NaN is stored to memory. R=titzer@chromium.org, eholk@chromium.org BUG=682180 Review-Url: https://codereview.chromium.org/2671803002 Cr-Commit-Position: refs/heads/master@{#42917}
-
- 27 Jan, 2017 1 commit
-
-
clemensh authored
Always execute the implicit return if we fell off the function bytes. This is not considered an additional "step" as it is not executing a wasm instruction. Otherwise, we might pause at an invalid position (one after the function bytes). R=titzer@chromium.org BUG=v8:5822 Review-Url: https://codereview.chromium.org/2650293003 Cr-Commit-Position: refs/heads/master@{#42730}
-
- 15 Jan, 2017 1 commit
-
-
titzer authored
R=rossberg@chromium.org BUG=chromium:575167 Review-Url: https://codereview.chromium.org/2630553002 Cr-Original-Original-Commit-Position: refs/heads/master@{#42286} Committed: https://chromium.googlesource.com/v8/v8/+/fcc6e85ec6b01e5367795f98aff104b1ff23f619 Review-Url: https://codereview.chromium.org/2630553002 Cr-Original-Commit-Position: refs/heads/master@{#42315} Committed: https://chromium.googlesource.com/v8/v8/+/74a2f9b7d3c3d9a9284ab8d5a9d08618b8194966 Review-Url: https://codereview.chromium.org/2630553002 Cr-Commit-Position: refs/heads/master@{#42350}
-
- 13 Jan, 2017 2 commits
-
-
titzer authored
Revert of [wasm] Enforce that function bodies end with the \"end\" opcode. (patchset #6 id:100001 of https://codereview.chromium.org/2630553002/ ) Reason for revert: Still breaks Win64 clang build. Original issue's description: > [wasm] Enforce that function bodies end with the \"end\" opcode. > > R=rossberg@chromium.org > BUG=chromium:575167 > > Review-Url: https://codereview.chromium.org/2630553002 > Cr-Original-Commit-Position: refs/heads/master@{#42286} > Committed: https://chromium.googlesource.com/v8/v8/+/fcc6e85ec6b01e5367795f98aff104b1ff23f619 > Review-Url: https://codereview.chromium.org/2630553002 > Cr-Commit-Position: refs/heads/master@{#42315} > Committed: https://chromium.googlesource.com/v8/v8/+/74a2f9b7d3c3d9a9284ab8d5a9d08618b8194966 TBR=mtrofin@chromium.org,rossberg@chromium.org,jbroman@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:575167 Review-Url: https://codereview.chromium.org/2636463002 Cr-Commit-Position: refs/heads/master@{#42317}
-
titzer authored
R=rossberg@chromium.org BUG=chromium:575167 Review-Url: https://codereview.chromium.org/2630553002 Cr-Original-Commit-Position: refs/heads/master@{#42286} Committed: https://chromium.googlesource.com/v8/v8/+/fcc6e85ec6b01e5367795f98aff104b1ff23f619 Review-Url: https://codereview.chromium.org/2630553002 Cr-Commit-Position: refs/heads/master@{#42315}
-
- 12 Jan, 2017 2 commits
-
-
littledan authored
Revert of [wasm] Enforce that function bodies end with the \"end\" opcode. (patchset #1 id:1 of https://codereview.chromium.org/2628203003/ ) Reason for revert: OK, the failure really does seem to be due to this patch: It triggers Clang to crash FAILED: obj/test/unittests/unittests/function-body-decoder-unittest.obj E:\b\build\slave\cache\cipd\goma/gomacc.exe ../../third_party/llvm-build/Release+Asserts/bin/clang-cl.exe /nologo /showIncludes /FC @obj/test/unittests/unittests/function-body-decoder-unittest.obj.rsp /c ../../test/unittests/wasm/function-body-decoder-unittest.cc /Foobj/test/unittests/unittests/function-body-decoder-unittest.obj /Fd"obj/test/unittests/unittests_cc.pdb" Assertion failed: (NumGaps == 0 || Bias < MaxDefRange) && "large ranges should not have gaps", file E:\b\build\slave\win_upload_clang\build\src\third_party\llvm\lib\MC\MCCodeView.cpp, line 531 Wrote crash dump file "C:\Users\CHROME~2\AppData\Local\Temp\goma_temp.5068\clang-cl.exe-563144.dmp" Let's leave it out for now. Original issue's description: > Reland of [wasm] Enforce that function bodies end with the \"end\" opcode. (patchset #1 id:1 of https://codereview.chromium.org/2628883006/ ) > > Reason for revert: > Try a reland; this might not have been the source of tree-closing. > > Original issue's description: > > Revert of [wasm] Enforce that function bodies end with the \"end\" opcode. (patchset #3 id:40001 of https://codereview.chromium.org/2630553002/ ) > > > > Reason for revert: > > Caused tree to close by failing compilation: > > > > https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20clang/builds/4451 > > > > Original issue's description: > > > [wasm] Enforce that function bodies end with the \"end\" opcode. > > > > > > R=rossberg@chromium.org > > > BUG=chromium:575167 > > > > > > Review-Url: https://codereview.chromium.org/2630553002 > > > Cr-Commit-Position: refs/heads/master@{#42286} > > > Committed: https://chromium.googlesource.com/v8/v8/+/fcc6e85ec6b01e5367795f98aff104b1ff23f619 > > > > TBR=mtrofin@chromium.org,rossberg@chromium.org,jbroman@chromium.org,titzer@chromium.org > > # Skipping CQ checks because original CL landed less than 1 days ago. > > NOPRESUBMIT=true > > NOTREECHECKS=true > > NOTRY=true > > BUG=chromium:575167 > > > > Review-Url: https://codereview.chromium.org/2628883006 > > Cr-Commit-Position: refs/heads/master@{#42287} > > Committed: https://chromium.googlesource.com/v8/v8/+/1d32a3989bc474745eeb618ebf094634f4efbb36 > > TBR=mtrofin@chromium.org,rossberg@chromium.org,jbroman@chromium.org,titzer@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=chromium:575167 > > Review-Url: https://codereview.chromium.org/2628203003 > Cr-Commit-Position: refs/heads/master@{#42296} > Committed: https://chromium.googlesource.com/v8/v8/+/e539bd8e0eb6afc8e7c98c38584928d6bc799b5b TBR=mtrofin@chromium.org,rossberg@chromium.org,jbroman@chromium.org,titzer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:575167 Review-Url: https://codereview.chromium.org/2633583002 Cr-Commit-Position: refs/heads/master@{#42298}
-
littledan authored
Reland of [wasm] Enforce that function bodies end with the \"end\" opcode. (patchset #1 id:1 of https://codereview.chromium.org/2628883006/ ) Reason for revert: Try a reland; this might not have been the source of tree-closing. Original issue's description: > Revert of [wasm] Enforce that function bodies end with the \"end\" opcode. (patchset #3 id:40001 of https://codereview.chromium.org/2630553002/ ) > > Reason for revert: > Caused tree to close by failing compilation: > > https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20clang/builds/4451 > > Original issue's description: > > [wasm] Enforce that function bodies end with the \"end\" opcode. > > > > R=rossberg@chromium.org > > BUG=chromium:575167 > > > > Review-Url: https://codereview.chromium.org/2630553002 > > Cr-Commit-Position: refs/heads/master@{#42286} > > Committed: https://chromium.googlesource.com/v8/v8/+/fcc6e85ec6b01e5367795f98aff104b1ff23f619 > > TBR=mtrofin@chromium.org,rossberg@chromium.org,jbroman@chromium.org,titzer@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=chromium:575167 > > Review-Url: https://codereview.chromium.org/2628883006 > Cr-Commit-Position: refs/heads/master@{#42287} > Committed: https://chromium.googlesource.com/v8/v8/+/1d32a3989bc474745eeb618ebf094634f4efbb36 TBR=mtrofin@chromium.org,rossberg@chromium.org,jbroman@chromium.org,titzer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:575167 Review-Url: https://codereview.chromium.org/2628203003 Cr-Commit-Position: refs/heads/master@{#42296}
-