- 01 Jun, 2021 1 commit
-
-
Camillo Bruni authored
- Add d8.file.read() and d8.file.execute() helpers - Change tools and tests to use new d8.file helper - Unify error throwing in v8::Shell::ReadFile Change-Id: I5ef4cb27f217508a367106f01e872a4059d5e399 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2928505 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#74883}
-
- 05 May, 2021 1 commit
-
-
Manos Koukoutos authored
Element segments and tables in tests used an ad-hoc mechanism to describe the different types of initializer expressions, e.g. an number which could denote either the value of a constant or the index of a global. This CL tidies up and generalizes the test infrastructure by directly using WasmInitExpr in those cases. Additional changes: - Introduce WasmElemSegment class. - Remove obsolete --experimental-wasm-bulk-memory flag from tests. - Rename WasmInitExpr.type -> kind. - Remove dependency of wasm-module-builder from mjsunit.js (except in assertTraps). Change-Id: I716254a04ceea9ceb8ac6b848e12e1637f618f0d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857638 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74368}
-
- 27 Mar, 2020 1 commit
-
-
Andreas Haas authored
This CL fixes a spec violation that new spec tests uncovered. R=thibaudm@chromium.org CC=ecmziegler@chromium.org Change-Id: Ie8ae455117f1c719815bad78f14c3b2c5e404e79 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2122023 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#66885}
-
- 26 Mar, 2020 1 commit
-
-
Andreas Haas authored
This CL fixes a spec violation that new spec tests uncovered. R=thibaudm@chromium.org CC=ecmziegler@chromium.org Change-Id: I1004eca9e4f98a0960795907fea0ab263c907938 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2122022Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#66874}
-
- 03 Dec, 2019 1 commit
-
-
Emanuel Ziegler authored
The following changes were introduced with the recent proposal update: - OOB access with 0 length traps - Double drop of segments is allowed - Dropped segments are treated like having size 0 (OOB error) - Active segments are dropped right after initialization R=ahaas@chromium.org Change-Id: I4e9fc4d9212841c7d858585c672143f99287520d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1946355Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org> Cr-Commit-Position: refs/heads/master@{#65305}
-
- 21 Nov, 2019 1 commit
-
-
Emanuel Ziegler authored
InstanceBuilder::LoadTableSegments - Throw RuntimeError instead of LinkError WasmGraphBuilder::TableInit & WasmGraphBuilder::MemoryInit - Do not check for active/dropped status if size == 0 WasmGraphBuilder::MemoryFill - Throw out-of-bounds error BEFORE attempting any memory operations if necessary R=ahaas@chromium.org Bug: v8:9865 Change-Id: I6a67779dc99fdc1c6bda6a2526d0e9ee5385f3ed Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1924442Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org> Cr-Commit-Position: refs/heads/master@{#65098}
-
- 20 Nov, 2019 1 commit
-
-
Andreas Haas authored
This is necessary because the spec changed. R=mstarzinger@chromium.org Bug: v8:9865 Change-Id: Id8b4d85eafcf368d591666907036e6aa54664e63 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1921794 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#65072}
-
- 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}
-
- 21 May, 2019 1 commit
-
-
Andreas Haas authored
This parameter was just for convenience but did not end up in the generated bytes. R=clemensh@chromium.org Bug: v8:9183 Change-Id: Id4faf5b9ad20a357c069c3189db6ed14945dea8c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621929 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61681}
-
- 16 Apr, 2019 1 commit
-
-
Ben Smith authored
The bulk memory proposal changed behavior of segment initialization during instantiation. Previously, all segments would be bounds-checked, after which the segments would be initialized. The bulk memory proposal removes the up-front check, and always initializes active segments in order, starting with element segments and then continuing with data segments. Each active segment is initialized as-if they were being initialized with the `memory.init` and `table.init` instructions, so an out-of-bounds initialization may still modify the memory or table partially. Bug: v8:8892 Change-Id: I472fca2401e07d60b288f0cc745629a451b31088 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1565033 Commit-Queue: Ben Smith <binji@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60885}
-
- 05 Apr, 2019 1 commit
-
-
Ben Smith authored
This is a reland of 63608968 The previous CL failed on Windows, but it was a general bug. The dropped_elem_segments was not being set on the instance properly in cctests, so`table.init` instructions would fail by reading uninitialized data. I took this opportunity to also add an implementation of `elem.drop` in the interpreter, and ported the JS tests for those too. Original change's description: > [wasm] Implement table.init for interpreter > > This also fixes CheckCallViaJS when a trap occurs. In that case, the > trap callback is called instead of an exception being thrown, so if it > isn't handled, a bogus result will be returned instead. > > Bug: v8:8965 > Change-Id: I560e89f353756df23c062fb8c9484d9971c19253 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1539078 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Commit-Queue: Ben Smith <binji@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60473} Bug: v8:8965 Change-Id: Ia547d9530b7ca67fde5bd94539f49153b796e82d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547142 Commit-Queue: Ben Smith <binji@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60664}
-
- 15 Mar, 2019 1 commit
-
-
Ben Smith authored
This CL only provides the implementation of memory.{init,copy,fill} and data.drop. Bug: v8:8965 Change-Id: I439f2520bfee8f147e4b0d1d31f954aaad2e14ad Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1510575 Commit-Queue: Ben Smith <binji@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60253}
-
- 13 Mar, 2019 1 commit
-
-
Andreas Haas authored
This CL just adds a parameter to addElementSegment and adjusts all existing tests. Note that addElementSegment contains some convenience code to construct one initial table if it does not exist yet. I did not extend that code to multiple tables. If you want to use multiple tables, you have to create them first before calling addElementSegment. R=clemensh@chromium.org Bug: v8:7581 Change-Id: Ie131fd5dc19856703ab5cfb2fa8f7d576f70a18b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1520709Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#60211}
-
- 05 Mar, 2019 1 commit
-
-
Ben Smith authored
The bulk memory operations should not bounds check ahead of time, but instead should write as many bytes as possible until the first out-of-bounds access. Bug: v8:8890 Change-Id: Ia8179fe268fc65816c34a8f3461ed0a0d35600aa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497520 Commit-Queue: Ben Smith <binji@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60040}
-
- 31 Jan, 2019 2 commits
-
-
Ben Smith authored
The new names for memory.drop and table.drop are data.drop and elem.drop respectively. See https://github.com/WebAssembly/bulk-memory-operations/issues/23 and https://github.com/WebAssembly/bulk-memory-operations/pull/46. Change-Id: I07aab8448fabe24eb9734dc7dac6f91c570cb553 Reviewed-on: https://chromium-review.googlesource.com/c/1446148 Commit-Queue: Ben Smith <binji@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#59261}
-
Ben Smith authored
* There are now two indexes for table.copy and memory.copy, one for the source and the one for the destination table/memory. (see https://github.com/WebAssembly/bulk-memory-operations/pull/43) * Reverse the order of the table.init and memory.init indexes, so the segment index is first and the table/memory index is second. (see https://github.com/WebAssembly/bulk-memory-operations/pull/45) Change-Id: I1781edd4200a7b693e3d0814999e6292aafa58d3 Reviewed-on: https://chromium-review.googlesource.com/c/1446149Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#59259}
-
- 30 Jan, 2019 1 commit
-
-
Sven Sauleau authored
We noticed that almost every call site were loading both files, the split isn't necessary anymore. In some message tests, removed the absolute line number to allow future changes. Bug: v8:8726 Change-Id: I8527f0a1ecfa685aa01a5e2f5f47ddf1cb13a545 Reviewed-on: https://chromium-review.googlesource.com/c/1446452 Commit-Queue: Sven Sauleau <ssauleau@igalia.com> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#59220}
-
- 23 Jan, 2019 1 commit
-
-
Ben L. Titzer authored
The table.init bytecode copies a range of elements from an element segment into a table, trapping if the segment is not passive, is dropped, or would cause out-of-bounds accesses. R=mstarzinger@chromium.org CC=binji@chromium.org BUG=v8:7747 Change-Id: Ib27af9cca45a464fd1f876ddd092e99941481896 Reviewed-on: https://chromium-review.googlesource.com/c/1430063 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59037}
-
- 16 Jan, 2019 1 commit
-
-
Ben L. Titzer authored
The table.copy bytecode copies a range of table entries in a similar way to memcopy. This CL implements the behavior in a runtime call that calls into the wasm engine. R=mstarzinger@chromium.org,binji@chromium.org BUG=v8:7747 Change-Id: I420451202b1b78ea92cbd10387a644ed57e111c8 Reviewed-on: https://chromium-review.googlesource.com/c/1414919 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#58858}
-
- 15 Jan, 2019 1 commit
-
-
Ben L. Titzer authored
The table.drop bytecode "drops" the backing storage for an element initializer. In the V8 implementation, this is a nop, other than updating a per-instance boolean array so that two drops of the same segment or a drop of an active segment will trap. This is implemented with inline code in TurboFan in order to be symmetric to memory.drop, but could as easily be a runtime call to be supported in Liftoff. R=mstarzinger@chromium.org CC=binji@chromium.org BUG=v8:7747 Change-Id: Ic017398eaa764dd3a9ff19523453ff7142c9abf6 Reviewed-on: https://chromium-review.googlesource.com/c/1408996Reviewed-by:
Ben Smith <binji@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#58817}
-
- 14 Jan, 2019 1 commit
-
-
Ben L. Titzer authored
This CL adds two new runtime calls for table operations: - Runtime_WasmTableInit - Runtime_WasmTableCopy These runtime calls (will) implement the semantics for the corresponding bytecodes from the bulk memory proposal. The actual implementation of these runtime calls will be done in further CLs. The third table operation, table.drop, will be implemented with inline code, similar to memory.drop. This is also be done in a further CL. R=mstarzinger@chromium.org CC=binji@chromium.org BUG=v8:7747 Change-Id: I498aa054329baf9f72ae55d245b12c3ccd4157b7 Reviewed-on: https://chromium-review.googlesource.com/c/1408994 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#58786}
-
- 12 Dec, 2018 1 commit
-
-
Ben Smith authored
`memory.init` copies bytes from a passive data segment to linear memory. `memory.drop` is an instruction that informs the wasm VM that the instance no longer needs access to the passive data segment. Information about the passive data segments, including their contents, length, and whether they are dropped, is stored in the `WasmInstanceObject` as primitive arrays. Bug: v8:7747 Change-Id: I1515c8868c9be227743456a539126c15280b5365 Reviewed-on: https://chromium-review.googlesource.com/c/1370691Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#58196}
-
- 10 Dec, 2018 1 commit
-
-
Ben Smith authored
This implementation currently only supports the optimized tier. Bug: v8:7747 Change-Id: Ia1af29b11a5d3e8a48b122f6cf3240c9f5948bfb Reviewed-on: https://chromium-review.googlesource.com/c/1364710Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#58137}
-
- 27 Nov, 2018 1 commit
-
-
Clemens Hammacher authored
The {setTableLength} method is redundant and has a single user. Remove it, use {setTableBounds} instead. Drive-by: Add default to the table max, to document that this can actually be {undefined}, in which case the table has no maximum. R=binji@chromium.org Bug: v8:8238 Change-Id: I0d7a2f4d49d083f7adadbb4b6cd4933bcb1dc174 Reviewed-on: https://chromium-review.googlesource.com/c/1350126Reviewed-by:
Ben Smith <binji@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#57860}
-
- 12 Nov, 2018 1 commit
-
-
Ben Smith authored
See the WebAssembly bulk memory proposal here: https://github.com/WebAssembly/bulk-memory-operations This initial CL adds a wasm experimental flag: `--experimental-wasm-bulk-memory`, and also parsing of passive segments. A passive segment is one that is not copied into the table/memory on instantiation, but instead later via the `{table,memory}.init` instructions. The binary format of passive data segments is unlikely to change, but the format for passive element segments may change (see https://github.com/WebAssembly/bulk-memory-operations/pull/39). Bug: v8:7747 Change-Id: I2a7fb9bc7648a722a8c4aab4185c68d3d0843858 Reviewed-on: https://chromium-review.googlesource.com/c/1330015 Commit-Queue: Ben Smith <binji@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#57451}
-