- 14 Apr, 2018 1 commit
-
-
Jakob Kummerow authored
The "Address" type is V8's general-purpose type for manipulating memory addresses. Per the C++ spec, pointer arithmetic and pointer comparisons are undefined behavior except within the same array; since we generally don't operate within a C++ array, our general-purpose type shouldn't be a pointer type. Bug: v8:3770 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ib96016c24a0f18bcdba916dabd83e3f24a1b5779 Reviewed-on: https://chromium-review.googlesource.com/988657 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#52601}
-
- 16 Mar, 2018 1 commit
-
-
Stephan Herhut authored
The streaming compilation pipeline did not parse the names section and this is also not longer needed for getting function or local names. However, the module name still needs to be set eagerly. Change-Id: I1ac12e98b970ea0781302dc44ee684510bdf2d69 Reviewed-on: https://chromium-review.googlesource.com/962452Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Stephan Herhut <herhut@chromium.org> Cr-Commit-Position: refs/heads/master@{#51979}
-
- 19 Dec, 2017 3 commits
-
-
Andreas Haas authored
The problem was that parts of Simd8x16ShuffleOperand were uninitialized. Original message: [wasm] Stop decoding operands after error. When we decode operands of WebAssembly instructions, we do not use the current pc but a pc of the instruction plus some offset. However, the pc of the instruction + offset can become invalid in case of a decoder error. Therefore we have to stop decoding operands explicitly in case of an error. R=clemensh@chromium.org Bug: chromium:795131 Change-Id: I732bc23547dbe531019d81a4397d22165a26d46b Reviewed-on: https://chromium-review.googlesource.com/833934Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#50211}
-
Michael Achenbach authored
This reverts commit 6633ad56. Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/builds/18850 Original change's description: > [wasm] Stop decoding operands after error. > > When we decode operands of WebAssembly instructions, we do not use the > current pc but a pc of the instruction plus some offset. However, the > pc of the instruction + offset can become invalid in case of a decoder > error. Therefore we have to stop decoding operands explicitly in case > of an error. > > R=clemensh@chromium.org > > Bug: chromium:795131 > Change-Id: I3b7b45782c71a70364adf930bee3e94a1be88fea > Reviewed-on: https://chromium-review.googlesource.com/832867 > Commit-Queue: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#50196} TBR=ahaas@chromium.org,clemensh@chromium.org Change-Id: I5a67f77285fdedc7f4645f8efaaf0087b4046011 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:795131 Reviewed-on: https://chromium-review.googlesource.com/832650Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#50199}
-
Andreas Haas authored
When we decode operands of WebAssembly instructions, we do not use the current pc but a pc of the instruction plus some offset. However, the pc of the instruction + offset can become invalid in case of a decoder error. Therefore we have to stop decoding operands explicitly in case of an error. R=clemensh@chromium.org Bug: chromium:795131 Change-Id: I3b7b45782c71a70364adf930bee3e94a1be88fea Reviewed-on: https://chromium-review.googlesource.com/832867 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50196}
-
- 13 Dec, 2017 1 commit
-
-
Clemens Hammacher authored
We really just need one check instead of three. This also unifies the error message to be the same on 32 and 64 bit systems. Drive-by: Fix potential overflow in {validate_size}. R=titzer@chromium.org Bug: chromium:794353 Change-Id: I63c1f5ef53c1f245b9e82bcbf86a5d9ac0d2725e Reviewed-on: https://chromium-review.googlesource.com/824082Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50071}
-
- 06 Dec, 2017 1 commit
-
-
Clemens Hammacher authored
This saves us 14.2kB binary size in libv8.so (in release mode), and probably also improves performance a little bit. R=titzer@chromium.org Bug: v8:7109 Change-Id: I345a48369aaf054572a4fd4368bf5cd526ed146a Reviewed-on: https://chromium-review.googlesource.com/797270Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#49905}
-
- 16 Oct, 2017 1 commit
-
-
Andreas Haas authored
Calls like read_leb<int32_t, true, true, true>(...) can be hard to read and understand. This CL replaces the three boolean template parameters with enums so that the call is read_leb<int32_t, kChecked, kAdvancePC, kTrace>(...) now. R=clemensh@chromium.org Bug: v8:6921 Change-Id: Id876a727d5e17df721444e7e5a117ad5395071aa Reviewed-on: https://chromium-review.googlesource.com/718204 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48607}
-
- 28 Sep, 2017 1 commit
-
-
Ben L. Titzer authored
Note that this also makes it possible to move several classes into the module-compiler.cc file and inline their implementations. This also allows removing several uses of wasm-module.h from other places in V8 that include wasm-objects.h. R=yangguo@chromium.org,clemensh@chromium.org,ahaas@chromium.org Bug: Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I303ee2bb49dc53c951d377a1b65699c1e0e91da7 Reviewed-on: https://chromium-review.googlesource.com/687494Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48204}
-
- 15 Sep, 2017 1 commit
-
-
Andreas Haas authored
In this CL I implement streaming compilation for WebAssembly, as described in the design doc I have sent out already. In this implementation the decoding of sections other than the code section is done immediately on the foreground thread. Eventually all decoding should happen in the background. I think it is acceptable to do the decoding on the foreground thread for now because I have finished it already, and decoding in the background would add even more complexity to this CL. Bug:v8:6785 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I285e1e5e1a5a243113c92571b25ee9bae551d0ed Reviewed-on: https://chromium-review.googlesource.com/631721Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Reviewed-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@{#48022}
-
- 08 Aug, 2017 1 commit
-
-
Clemens Hammacher authored
We are only calling {checkAvailable} with uint32_t, thus the type received should also be uint32_t. This also gives better error messages for integers >kMaxInt. R=titzer@chromium.org Change-Id: I40655b80dcc601e05fbb0c92cedba72ca806e2b3 Reviewed-on: https://chromium-review.googlesource.com/605893 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#47227}
-
- 31 Jul, 2017 1 commit
-
-
Clemens Hammacher authored
This reverts commit 072d0e3e. Reason for revert: Performance regressions (https://crbug.com/749041). Original change's description: > [wasm] Allow for arbitrarily long error messages > > We currently have a fixed limit of 256 characters for error messages > generated in the decoder. However, we sometimes embed names in it, > which makes it easy to generate a crash by using long names (e.g. for > exports) in invalid wasm modules. > This CL fixes this by switching to a stream based interface, allowing > to pass arbitrary objects to be printed. With this interface, we can > easily limit the length of output later. > > R=titzer@chromium.org > > Bug: chromium:740023 > Change-Id: I2848c31c63a015157e2a3a9458b54e523060cd69 > Reviewed-on: https://chromium-review.googlesource.com/565282 > Reviewed-by: Ben Titzer <titzer@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46860} TBR=titzer@chromium.org,clemensh@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:740023, chromium:749041 Change-Id: I005a60d55dcf01d350230f8d98f715bab9c43886 Reviewed-on: https://chromium-review.googlesource.com/593807 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#47008}
-
- 25 Jul, 2017 1 commit
-
-
Clemens Hammacher authored
We currently have a fixed limit of 256 characters for error messages generated in the decoder. However, we sometimes embed names in it, which makes it easy to generate a crash by using long names (e.g. for exports) in invalid wasm modules. This CL fixes this by switching to a stream based interface, allowing to pass arbitrary objects to be printed. With this interface, we can easily limit the length of output later. R=titzer@chromium.org Bug: chromium:740023 Change-Id: I2848c31c63a015157e2a3a9458b54e523060cd69 Reviewed-on: https://chromium-review.googlesource.com/565282Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46860}
-
- 13 Jul, 2017 2 commits
-
-
Clemens Hammacher authored
It used to be module-relative, but since we switched to decoding sections individually, the offsets would be section-relative. This CL fixes this by adding the buffer offset to the reported locations. R=ahaas@chromium.org Change-Id: I27240832e5cbd625d6b952678503252017dd83f3 Reviewed-on: https://chromium-review.googlesource.com/568488 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#46623}
-
Clemens Hammacher authored
The DCHECK is supposed to check that the read in the next line does not read out of bounds. Hence we have to use {pc} and not {pc_}. I accidentally triggered this while writing an unrelated test case, but now fail to reproduce. R=ahaas@chromium.org Change-Id: Ia3fa9a9874866dc14180b22b9af526459fbda495 Reviewed-on: https://chromium-review.googlesource.com/568487Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46621}
-
- 29 May, 2017 1 commit
-
-
Clemens Hammacher authored
It happens frequently that unrelated compiler errors lead to the instantiation of {read_leb_tail} with an invalid {byte_index}, which again triggers compiler errors. This change fixes this, such that illegal instantiation just triggers a static_assert and nothing more. This helps to spot the actual error. Drive-by: Mark {Min} and {Max} constexpr, such that they can produce constexpr results. Note that the result will only be constexpr if both arguments are constexpr. R=ahaas@chromium.org Change-Id: I35d6865a7f569d72ace0debb045ac615cfd87d92 Reviewed-on: https://chromium-review.googlesource.com/518005Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45558}
-
- 17 May, 2017 1 commit
-
-
Andreas Haas authored
This CL refactors the module decoder so that it can process a list of section buffers instead of one module buffer. This change is needed for streaming compilation. Streaming compilation may require additional changes. This CL introduces the following interface to the module decoder: StartDecoding -- starts the decoding DecodeModuleHeader -- decodes the module header DecodeSection -- decodes the section FinishDecoding -- finishes the decoding and returns the WasmModule Aside from the different interface the biggest change to the module decoder is the introduction of a buffer_offset, which is the offset of the current section buffer of the module decoder in the module bytes. This buffer_offset is used to translate from section offsets to module offsets and back. Another nice change is that the module decoder does not have a zone anymore. Instead the zone is stored directly in the WasmModule where it belongs. Zone ownership is also more obvious now. R=mtrofin@chromium.org, clemensh@chromium.org Change-Id: I815d777ec380f4c617c39e828ea0c9746c0bae20 Reviewed-on: https://chromium-review.googlesource.com/505490 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45374}
-
- 15 May, 2017 1 commit
-
-
Clemens Hammacher authored
Speed up LEB decoding by forcing the decoding loop to be unrolled. Even though the compiler was free to unroll the loop before, clang did not do so. We now manually unroll by using a template function which calls itself recursively, passing the byte index to be decoded next. For efficient execution, we still depend on the compiler to inline the recursive calls (which clang does). This optimization speeds up interpreted execution of the Jetstream benchmarks by 15 percent. Speedup on module decoding is negligible though. Drive-by: Change "unsigned" to "uint32_t". R=ahaas@chromium.org BUG=v8:5822 Change-Id: I06d4230f92bfb2a80cdc5029d965fc3bf84ca1cc Reviewed-on: https://chromium-review.googlesource.com/506188 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#45308}
-
- 11 May, 2017 1 commit
-
-
Andreas Haas authored
The error_pc was only used to calculated the relative error offset. Switching to an error_offset directly will allow us later to give the decoder a base offset. Thereby we can get correct error positions even when the decoder is executed on multiple memory chunks, which will happen with streaming compilation. With this change I also had to provide "kind of" reasonable error position in the StreamingDecoder. R=clemensh@chromium.org Change-Id: I736fa082c51c64334d23771061acf97e2c47778e Reviewed-on: https://chromium-review.googlesource.com/502909 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45264}
-
- 28 Apr, 2017 1 commit
-
-
Clemens Hammacher authored
This avoids generating redundant code for different template instantiations. I also introduce getters instead of accessing the fields directly. R=ahaas@chromium.org BUG=v8:6325 Change-Id: I3e0eca9ef6a01e0a3ebb73f4f357bcb59e120f43 Reviewed-on: https://chromium-review.googlesource.com/490166Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44976}
-
- 11 Apr, 2017 1 commit
-
-
kmackay authored
One of our internal Chromecast builds was failing due to undefined va_list in wasm-result.h. I also searched for other files where va_list was used without including stdarg.h and added it as necessary (since include-what-you-use is a thing). BUG=chromium:706443 Review-Url: https://codereview.chromium.org/2780913002 Cr-Commit-Position: refs/heads/master@{#44588}
-
- 10 Apr, 2017 3 commits
-
-
Clemens Hammacher authored
We went on decoding the next section, which happened to be the start section. But since the function section had an error, the signature pointer was not still {nullptr} on the start function, leading to a segfault. Drive-by fix: Improve decoder trace output. R=ahaas@chromium.org BUG=chromium:708714, chromium:708787 Change-Id: I5ae2adb32764b9d154f1ca878019f26ac31839b4 Reviewed-on: https://chromium-review.googlesource.com/472847Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44521}
-
Clemens Hammacher authored
- Store std::string instead of std::unique_ptr<char[]> for the error message. - Remove ErrorCode, which was just kSuccess and kError anyway. Error is now detected on whether error_msg_ is empty or not. - Refactor constructors for perfect forwarding; this will allow us to implement Result<std::unique_ptr<X*>>. - Refactor Decoder::toResult for perfect forwarding. - Remove output operators (operator<<) for Result; it was only used in the error case anyway. Print error message directly instead. The operator was problematic since it assumed the existence of an output operator for every T which is used in Result<T>. - Remove ModuleError and FunctionError, introduce general static Result<T>::Error method instead. R=ahaas@chromium.org Change-Id: I1e0f602a61ee9780fee2a3ed33147d431fb092ba Reviewed-on: https://chromium-review.googlesource.com/472748 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#44518}
-
Andreas Haas authored
Instead of storing {start} and {error_pc} we now store the {error_offset}, which is anyways the only value we use. R=clemensh@chromium.org Change-Id: Ifd9791eff5c9efce2e7e2a1989bf3b5eaa464a02 Reviewed-on: https://chromium-review.googlesource.com/471527 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44510}
-
- 05 Apr, 2017 2 commits
-
-
Clemens Hammacher authored
In the C++ wasm interpreter, we decode LEB encoded immediates each time we execute the respective instruction. The whole instruction sequence was validated before, thus we know that all integers are valid. This CL refactors several Decoder methods to allow for either checked or unchecked decoding. In the checked case, an error is set if a check fails, in the unchecked case, a DCHECK will fail. This improves performance of the interpreter by 20.5%. R=ahaas@chromium.org BUG=v8:5822 Change-Id: If69efd4f6fbe19d84bfc2f4aa000f429a8e22bf5 Reviewed-on: https://chromium-review.googlesource.com/468786 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#44406}
-
Clemens Hammacher authored
Both methods decoded a LEB128 encoded integer, but only consume_leb incremented the pc pointer accordingly. This CL implements consume_leb by using checked_read_leb. It also refactors a few things: 1) It removes error_pt, which was only avaible in checked_read_leb. 2) It renames the error method to errorf, since it receives a format string. This also avoids a name clash. 3) It implements sign extension directly in checked_read_leb instead of doing this in the caller. R=ahaas@chromium.org BUG=v8:5822 Change-Id: I8058f57418493861e5df26d4949041f6766d5138 Reviewed-on: https://chromium-review.googlesource.com/467150 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#44405}
-
- 02 Feb, 2017 1 commit
-
-
ahaas authored
First discovery by the names section fuzzer I think. During the decoding of the names of locals only ok() of the outer decoder was checked, not the ok() of the actual names section decoder. R=tizer@chromium.org BUG=chromium:684855 Review-Url: https://codereview.chromium.org/2648383007 Cr-Commit-Position: refs/heads/master@{#42880}
-
- 24 Jan, 2017 1 commit
-
-
titzer authored
R=ahaas@chromium.org BUG=v8:5882 Review-Url: https://codereview.chromium.org/2657463003 Cr-Commit-Position: refs/heads/master@{#42629}
-
- 06 Jan, 2017 3 commits
-
-
mtrofin authored
Separated: - decoding of locals - loop assignment analysis - determination of opcode length as statics that work on a Decoder. Neither need the context of a Module, and were used in scenarios where one wasn't available either. Changed BodyLocalDecls to match the usecases for the type. In all but one (a printer), we want the list (in order of declaration, with repetitions) of types of locals. Removed a now-unnecessary constructor for the WasmFullDecoder. BUG= Review-Url: https://codereview.chromium.org/2610813009 Cr-Commit-Position: refs/heads/master@{#42115}
-
mtrofin authored
BUG= Review-Url: https://codereview.chromium.org/2618743004 Cr-Commit-Position: refs/heads/master@{#42110}
-
mtrofin authored
Removing "limit_", using just "end_". BUG= Review-Url: https://codereview.chromium.org/2613193002 Cr-Commit-Position: refs/heads/master@{#42105}
-
- 12 Oct, 2016 1 commit
-
-
clemensh authored
If passing <nullptr, 0> to the decoder and trying to decode something, it correctly detects the error and sets an error message, but still returns true on ok(), and returns a valid result. I triggered this error by passing a null Vector, returned by FindSection(), to the decoder. R=titzer@chromium.org Review-Url: https://codereview.chromium.org/2410913002 Cr-Commit-Position: refs/heads/master@{#40204}
-
- 11 Oct, 2016 1 commit
-
-
clemensh authored
I use it in a follow-up commit to delta-encode asm.js source positions. This commit also removes the redundant consume_bytes function. R=ahaas@chromium.org, titzer@chromium.org BUG=v8:4203 Review-Url: https://codereview.chromium.org/2406163002 Cr-Commit-Position: refs/heads/master@{#40157}
-
- 27 Sep, 2016 1 commit
-
-
titzer authored
[0xC] Convert to stack machine semantics. [0xC] Use section codes instead of names. [0xC] Add elements section decoding. [0xC] Decoding of globals section. [0xC] Decoding of memory section. [0xC] Decoding of imports section. [0xC] Decoding of exports section. [0xC] Decoding of data section. [0xC] Remove CallImport bytecode. [0xC] Function bodies have an implicit block. [0xC] Remove the bottom label from loops. [0xC] Add signatures to blocks. [0xC] Remove arities from branches. Add tests for init expression decoding. Rework compilation of import wrappers and how they are patched. Rework function indices in debugging. Fix ASM->WASM builder for stack machine. Reorganize asm.js foreign functions due to import indices change. R=ahaas@chromium.org,rossberg@chromium.org,bradnelson@chromium.org BUG=chromium:575167 LOG=Y Committed: https://crrev.com/76eb976a67273b8c03c744f64ad850b0432554b9 Review-Url: https://codereview.chromium.org/2345593003 Cr-Original-Commit-Position: refs/heads/master@{#39678} Cr-Commit-Position: refs/heads/master@{#39795}
-
- 23 Sep, 2016 2 commits
-
-
machenbach authored
Revert of [wasm] Master CL for Binary 0xC changes. (patchset #26 id:490001 of https://codereview.chromium.org/2345593003/ ) Reason for revert: Main suspect for tsan: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/11893 Also changes layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/10036 +mips builder: https://build.chromium.org/p/client.v8.ports/builders/V8%20Mips%20-%20builder/builds/4032 Original issue's description: > [wasm] Master CL for Binary 0xC changes. > > [0xC] Convert to stack machine semantics. > [0xC] Use section codes instead of names. > [0xC] Add elements section decoding. > [0xC] Decoding of globals section. > [0xC] Decoding of memory section. > [0xC] Decoding of imports section. > [0xC] Decoding of exports section. > [0xC] Decoding of data section. > [0xC] Remove CallImport bytecode. > [0xC] Function bodies have an implicit block. > [0xC] Remove the bottom label from loops. > [0xC] Add signatures to blocks. > [0xC] Remove arities from branches. > Add tests for init expression decoding. > Rework compilation of import wrappers and how they are patched. > Rework function indices in debugging. > Fix ASM->WASM builder for stack machine. > Reorganize asm.js foreign functions due to import indices change. > > R=ahaas@chromium.org,rossberg@chromium.org,bradnelson@chromium.org > BUG=chromium:575167 > LOG=Y > > Committed: https://crrev.com/76eb976a67273b8c03c744f64ad850b0432554b9 > Cr-Commit-Position: refs/heads/master@{#39678} TBR=ahaas@chromium.org,bradnelson@chromium.org,mtrofin@chromium.org,rossberg@chromium.org,bradnelson@google.com,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/2361053004 Cr-Commit-Position: refs/heads/master@{#39685}
-
titzer authored
[0xC] Convert to stack machine semantics. [0xC] Use section codes instead of names. [0xC] Add elements section decoding. [0xC] Decoding of globals section. [0xC] Decoding of memory section. [0xC] Decoding of imports section. [0xC] Decoding of exports section. [0xC] Decoding of data section. [0xC] Remove CallImport bytecode. [0xC] Function bodies have an implicit block. [0xC] Remove the bottom label from loops. [0xC] Add signatures to blocks. [0xC] Remove arities from branches. Add tests for init expression decoding. Rework compilation of import wrappers and how they are patched. Rework function indices in debugging. Fix ASM->WASM builder for stack machine. Reorganize asm.js foreign functions due to import indices change. R=ahaas@chromium.org,rossberg@chromium.org,bradnelson@chromium.org BUG=chromium:575167 LOG=Y Review-Url: https://codereview.chromium.org/2345593003 Cr-Commit-Position: refs/heads/master@{#39678}
-
- 20 Sep, 2016 1 commit
-
-
heimbuef authored
This is some initial cleanup to keep /src clean. The AccountingAllocator is actually exclusively used by zones and this common subfolder makes that more clear. BUG=v8:5409 Review-Url: https://codereview.chromium.org/2344143003 Cr-Commit-Position: refs/heads/master@{#39558}
-
- 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}
-
- 29 Jun, 2016 1 commit
-
-
ivica.bogosavljevic authored
Reland of https://codereview.chromium.org/2034093002 (reverted by https://codereview.chromium.org/2080153002). Original commit message: Implement WASM support on big-endian platforms. WASM has an implicit requirement that it is running on little-endian machine. We achieve WASM support on BE by keeping data in memory in little-endian order, and changing data endianness before storing to memory and after loading from memory. BUG= Review-Url: https://codereview.chromium.org/2083523002 Cr-Commit-Position: refs/heads/master@{#37373}
-