- 17 Mar, 2020 1 commit
-
-
Georgia Kouveli authored
Generate a BTI instruction at each target of an indirect branch (BR/BLR). An indirect branch that doesn't jump to a BTI instruction will generate an exception on a BTI-enabled core. On cores that do not support the BTI extension, the BTI instruction is a NOP. Targets of indirect branch instructions include, among other things, function entrypoints, exception handlers and jump tables. Lazy deopt exits can potentially be reached through an indirect branch when an exception is thrown, so they also get an additional BTI instruction. Bug: v8:10026 Change-Id: I0ebf51071f1b604f60f524096e013dfd64fcd7ff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1967315 Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66751}
-
- 31 Jan, 2020 1 commit
-
-
Clemens Backes authored
This shipped in v7.9, which is stable since six weeks. We do not test the previous configuration any more and don't plan to move back, hence remove the flag and clean up the code. R=ahaas@chromium.org Bug: v8:10155 Change-Id: I6b981f4be686473a911f041952cb684749d9fe7e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2030732 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#66063}
-
- 10 Jan, 2020 1 commit
-
-
Zhao Jiazhong authored
Bug: v8:8974 Change-Id: Ib1e1c84b79190359d5ad519509b881e93d519604 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1989323 Commit-Queue: Clemens Backes <clemensb@chromium.org> Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65697}
-
- 13 Sep, 2019 2 commits
-
-
Clemens Hammacher authored
If the jump is too large for a near jump, we patch the far jump table instead, and patch the (near) jump table to jump to the far jump table slot. R=mstarzinger@chromium.org Bug: v8:9477 Change-Id: Ic9a929b405492c1cfe744738e0807ad4357c53ff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1799543 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63754}
-
Clemens Hammacher authored
The {JumpTableAssembler} should not include {wasm-code-manager.h}. It only depends on assembler headers in {src/codegen}. This removes the {flush_i_cache} parameter which is always set anyway, removes the last include from {src/wasm} and updates the DEPS file to forbid such includes for the future. R=mstarzinger@chromium.org Bug: v8:9396, v8:9477 Change-Id: Id57b35c93155c3eac7c4c9b6a41d3a1c98c0dddc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1801846 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63749}
-
- 12 Sep, 2019 1 commit
-
-
Clemens Hammacher authored
This moves the code to allocate the far jump table from {SetRuntimeStubs} to {AddCodeSpace} to allocate one such table per code space. Also, the {runtime_stub_table_} and {runtime_stub_entries_} fields do not make sense any more now and are replaced by calls to {GetNearRuntimeStubEntry} and {GetRuntimeStubId}. R=mstarzinger@chromium.org Bug: v8:9477 Change-Id: Ie1f5c9d4eb282270337a684c34f097d8077fdfbb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795348 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63700}
-
- 11 Sep, 2019 3 commits
-
-
Clemens Hammacher authored
The jump table assembler is implemented on all architectures now, so remove the default code. It would be untested otherwise. R=mstarzinger@chromium.org Change-Id: I45e42fc04ebb3bb07d975648b1498e2ea4e757d4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1796328 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63682}
-
Clemens Hammacher authored
This adds the --wasm-far-jump-table flag, which enables the extension of the far jump table with a slot for each wasm function. R=mstarzinger@chromium.org Bug: v8:9477 Change-Id: I61cb4592aa8ed75e2772371e9b7dbfdfe9bb0046 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1792907 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63680}
-
Clemens Hammacher authored
This CL renames the runtime stub table to far jump table, and changes the implementation so it can later be patched concurrently. A follow-up CL will extend this table to also contain slots for wasm functions (if needed). R=mstarzinger@chromium.org Bug: v8:9477 Change-Id: I20bf0a0bb66dc0333f794761c1506b27137b53e7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1789159 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63679}
-
- 06 Sep, 2019 1 commit
-
-
Clemens Hammacher authored
This reduces the size per runtime stub slot by using the same sequence we plan to use for far jumps. Note that alignment is not an issue here, since runtime stub slots are never patched. R=mstarzinger@chromium.org CC=joey.gouly@arm.com Bug: v8:9477 Change-Id: I38666c8fce93a977bc5b9ca5fafc54f6ae739f12 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1784293 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63591}
-
- 05 Sep, 2019 2 commits
-
-
Clemens Hammacher authored
This reduces the size per runtime stub slot by using the same sequence we plan to use for far jumps. Note that alignment is not an issue here, since runtime stub slots are never patched. R=mstarzinger@chromium.org CC=joey.gouly@arm.com Bug: v8:9477 Change-Id: Ib8f0f7b4930617b9c16dc54f6773572c70b681c4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1784292 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63567}
-
Clemens Hammacher authored
This reduces the size per runtime stub slot by using the same sequence we plan to use for far jumps. Note that alignment is not an issue here, since runtime stub slots are never patched. R=mstarzinger@chromium.org Bug: v8:9477 Change-Id: Ida73896bfc26d01f2a3fbccde785928d1ac92380 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1784291 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63564}
-
- 09 Aug, 2019 1 commit
-
-
Clemens Hammacher authored
This adds some documentation why concurrently emitting code, patching the jump table, and executing the jump table is safe. R=ahaas@chromium.org CC=mstarzinger@chromium.org, joey.gouly@arm.com Bug: v8:9477 Change-Id: Ibe295d538a1a330c6b1d94eb1f514d1078020754 No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1738856 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#63137}
-
- 17 Jul, 2019 2 commits
-
-
Clemens Hammacher authored
Instantiating a JumpTableAssembler has some overhead (at least one heap allocation), so use a single JumpTableAssembler to generate the whole table, just as the lazy compile table. R=mstarzinger@chromium.org Bug: v8:9477 Change-Id: I66622909ac06e6bda9fca3e71c83d4c9d1ded500 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1706054Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#62762}
-
Yu Yin authored
Port 56eaec9d https://crrev.com/c/1698393 Original Commit Message: We had both jump slots and lazy compile slots in the same table. This increases the space per slot to the maximum of the two, even though we often do not use lazy compilation and could have smaller jump slots. This CL splits the two into two separate tables. The lazy compile table will only be created on demand, and will never be patched. The jump table now only contains jumps, and is more compact (which might improve performance because of improved locality). Change-Id: I54a2985d777fd3fa30d420f5af27a3ddc79641b6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1703991Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Yu Yin <xwafish@gmail.com> Cr-Commit-Position: refs/heads/master@{#62759}
-
- 15 Jul, 2019 1 commit
-
-
Clemens Hammacher authored
We had both jump slots and lazy compile slots in the same table. This increases the space per slot to the maximum of the two, even though we often do not use lazy compilation and could have smaller jump slots. This CL splits the two into two separate tables. The lazy compile table will only be created on demand, and will never be patched. The jump table now only contains jumps, and is more compact (which might improve performance because of improved locality). R=mstarzinger@chromium.org Bug: v8:9477 Change-Id: Ie182873a1ec612f71d1b54447021a9a8f8ca59db Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1698393Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#62707}
-
- 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}
-
- 17 Apr, 2019 1 commit
-
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: I367bb962d422e570b51c82bc7b3ebbd3fbedfd2b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1570018Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60900}
-
- 27 Mar, 2019 1 commit
-
-
Sigurd Schneider authored
Bug: v8:9020 Change-Id: I3a939d65ec8468f034d4670d9b14a911e5ef5a61 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1541044Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#60492}
-
- 01 Mar, 2019 1 commit
-
-
Yu Yin authored
update the missing file in a2d9924c. see https://chromium-review.googlesource.com/c/1470129 port 591408cb to mips. see https://chromium-review.googlesource.com/c/1482915 Update the missing file in a4b19dcc. see https://chromium-review.googlesource.com/c/1460474 Update the missing file in ad3546ab. see https://chromium-review.googlesource.com/c/1434036 Fix compiler warnings. Change-Id: Ie47b1d5aaa3c7f558def92255ce135b0fc0406ec Reviewed-on: https://chromium-review.googlesource.com/c/1490995 Commit-Queue: Michael Hablich <hablich@chromium.org> Reviewed-by:
Predrag Rudic <prudic@wavecomp.com> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#59963}
-
- 15 Feb, 2019 1 commit
-
-
Farazmand authored
Port a4b19dcc Original Commit Message: This switches from copying entire runtime stubs into each module to only having small jump table slots in each module that act as a trampoline to the actual embedded builtin representing the runtime stub. This reduces the memory footprint of modules. R=mstarzinger@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com, miladfar@ca.ibm.com BUG= LOG=N Change-Id: Ibbe5fdf4d926b45582748ae8b15eb316107409dc Reviewed-on: https://chromium-review.googlesource.com/c/1470455Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#59629}
-
- 13 Feb, 2019 1 commit
-
-
Michael Starzinger authored
This switches from copying entire runtime stubs into each module to only having small jump table slots in each module that act as a trampoline to the actual embedded builtin representing the runtime stub. This reduces the memory footprint of modules. R=clemensh@chromium.org Change-Id: I3de528f7ebcc104f114ec32914d2b86e810d10d6 Reviewed-on: https://chromium-review.googlesource.com/c/1460474 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#59575}
-
- 07 Feb, 2019 1 commit
-
-
Sigurd Schneider authored
Drive-by: Refactor FlushInstructionCache to its own header. This removes dependencies of objects.cc and code.cc Bug: v8:8562 Change-Id: If23f3b9d4f2068e08c61c0f4b070ecfe1b9a6cc0 Reviewed-on: https://chromium-review.googlesource.com/c/1456081Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#59435}
-
- 17 Jan, 2019 1 commit
-
-
Clemens Hammacher authored
Refactor all call sites to use the new API introduced in https://crrev.com/c/1411347 and remove the legacy constructors. R=mstarzinger@chromium.org Bug: v8:8689, v8:8562 Change-Id: Id73686413726b2860f551dd200ef4b8823ef3034 Reviewed-on: https://chromium-review.googlesource.com/c/1415491Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58884}
-
- 08 Aug, 2018 1 commit
-
-
Michael Starzinger authored
We instantiate the JumpTableAssembler in patching mode (i.e. directly on existing code without an intermittent buffer). In this mode it is not possible to record reloc information. This makes sure we no longer just blindly write into the non-existing buffer. R=clemensh@chromium.org BUG=v8:8028 Change-Id: I4abb8f06cf819fef608e901c4740263f0cecd08a Reviewed-on: https://chromium-review.googlesource.com/1166834 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54966}
-
- 07 Aug, 2018 2 commits
-
-
Sigurd Schneider authored
The instruction size in bytes is now kInstrSize on all platforms. Bug: v8:6666 Change-Id: I2f9880a6a74199a439c8327a4117efb74240aa22 Reviewed-on: https://chromium-review.googlesource.com/1164955 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#54944}
-
Michael Starzinger authored
This adds initial support for concurrently patching jump table slots. It is needed once different Isolates share code (for the --wasm-shared-code feature). We need to ensure that instructions holding the target address within a jump table slot do not cross cache-line boundaries. To do this, the jump table has been split into consecutive pages. Note that this also adds a stress test for multiple threads hammering at a single slot concurrently. The test is currently limited to the ia32 and the x64 architecture, but will be extended to cover others. The test reliably triggers tearing of the target address on almost every run of the test and hence serves to prevent regressions. R=clemensh@chromium.org TEST=cctest/test-jump-table-assembler BUG=v8:8018 Change-Id: Ife56bbb61ffcae5d8906ca7b8c604b195603707c Reviewed-on: https://chromium-review.googlesource.com/1163664 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54942}
-
- 06 Aug, 2018 1 commit
-
-
Michael Starzinger authored
This is in preparation of making sure that jump table slots don't cross cache line boundaries. It is only introducing helper functions for back and forth conversion between "index" and "offset", but should not make any functional changes yet. R=ahaas@chromium.org BUG=v8:8018 Change-Id: I6ab525f9b89a6a15414c043a54c9fffb527a1ab6 Reviewed-on: https://chromium-review.googlesource.com/1163517Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54922}
-
- 06 Jul, 2018 1 commit
-
-
Sigurd Schneider authored
This CL surfaces AssemblerOptions to CodeAssembler::GenerateCode and to pipeline methods. To allow forward declaring AssemblerOptions, AssemblerBase::Options was moved out of the AssemblerBase class. Bug: v8:6666 Change-Id: If9fc50d3d4767bb5dd39a0c3b6e094021f4cae2b Reviewed-on: https://chromium-review.googlesource.com/1127039 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#54286}
-
- 21 Jun, 2018 1 commit
-
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: Ib8725fb5d7cd6909c522e3dca015e192a3dc6b01 Reviewed-on: https://chromium-review.googlesource.com/1110124Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53941}
-
- 20 Jun, 2018 2 commits
-
-
Predrag Rudic authored
Port of 733b7c82 Original description: > [wasm] Introduce jump table > > This introduces the concept of a jump table for WebAssembly, which is > used for every direct and indirect call to any WebAssembly function. > For lazy compilation, it will initially contain code to call the > WasmCompileLazy builtin, where it passes the function index to be > called. > For non-lazy-compilation, it will contain a jump to the actual code. > The jump table allows to easily redirect functions for lazy > compilation, tier-up, debugging and (in the future) code aging. After > this CL, we will not need to patch existing code any more for any of > these operations. > > R=mstarzinger@chromium.org, titzer@chromium.org > > Bug: v8:7758 > Change-Id: I45f9983c2b06ae81bf5ce9847f4542fb48844a4f > Reviewed-on: https://chromium-review.googlesource.com/1097075 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Ben Titzer <titzer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53805} Change-Id: Ifa7c2abe89a6dc5dbb03a547db2fab68e292f344 Reviewed-on: https://chromium-review.googlesource.com/1107630 Commit-Queue: Sreten Kovacevic <sreten.kovacevic@mips.com> Reviewed-by:
Ivica Bogosavljevic <ivica.bogosavljevic@mips.com> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53893}
-
Ben L. Titzer authored
This CL attempts to simplify the Assembler's dependency on the isolate, in particular on a global "serializer_enabled" mode contained therein. The "serializer_enabled" condition enabled and disabled a number of things in both the assemblers and macro assemblers. To make these dependencies explicit, the Assembler::IsolateData is refactored to be a proper Assembler::Options struct that controls specific assembler behaviors, with default settings easily computable from the isolate. This also helps make the contract for compiling WASM code more explicit (since WASM code needs to have reloc info recorded for external references) we can explicitly enable this recording without trying to "trick" the assembler using "serializer_enabled". R=jgruber@chromium.org CC=mstarzinger@chromium.org, herhut@chromium.org Change-Id: I7a8ba49df7b75b292d73ec2aa6e507c27a3d99c8 Reviewed-on: https://chromium-review.googlesource.com/1105982 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#53890}
-
- 19 Jun, 2018 3 commits
-
-
Junliang Yan authored
Port 733b7c82 Original Commit Message: This introduces the concept of a jump table for WebAssembly, which is used for every direct and indirect call to any WebAssembly function. For lazy compilation, it will initially contain code to call the WasmCompileLazy builtin, where it passes the function index to be called. For non-lazy-compilation, it will contain a jump to the actual code. The jump table allows to easily redirect functions for lazy compilation, tier-up, debugging and (in the future) code aging. After this CL, we will not need to patch existing code any more for any of these operations. R=clemensh@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG= v8:7758 Change-Id: I1a370910ffa56dbdd609be6922067842a6adf1df Reviewed-on: https://chromium-review.googlesource.com/1105060 Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53852}
-
Clemens Hammacher authored
Direct jumps only work for offset up to 64 MB on arm. For longer jumps, use indirect branches (load target from constant pool into the pc register). R=mstarzinger@chromium.org CC=pierre.langlois@arm.com Bug: v8:7758 Change-Id: I1cf66b7d1bfb62cfcd6b1619c02816909a1f651e Reviewed-on: https://chromium-review.googlesource.com/1105996 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53847}
-
Clemens Hammacher authored
This is a reland of 733b7c82. The arm64 bug was fixed in https://crrev.com/c/1105051. Original change's description: > [wasm] Introduce jump table > > This introduces the concept of a jump table for WebAssembly, which is > used for every direct and indirect call to any WebAssembly function. > For lazy compilation, it will initially contain code to call the > WasmCompileLazy builtin, where it passes the function index to be > called. > For non-lazy-compilation, it will contain a jump to the actual code. > The jump table allows to easily redirect functions for lazy > compilation, tier-up, debugging and (in the future) code aging. After > this CL, we will not need to patch existing code any more for any of > these operations. > > R=mstarzinger@chromium.org, titzer@chromium.org > > Bug: v8:7758 > Change-Id: I45f9983c2b06ae81bf5ce9847f4542fb48844a4f > Reviewed-on: https://chromium-review.googlesource.com/1097075 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Ben Titzer <titzer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53805} TBR=titzer@chromium.org,mstarzinger@chromium.org Bug: v8:7758 Change-Id: I68555230c6db97e70f0b8fef784188f55ee04794 Reviewed-on: https://chromium-review.googlesource.com/1105158 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53829}
-
- 18 Jun, 2018 2 commits
-
-
Clemens Hammacher authored
This reverts commit 733b7c82. Reason for revert: breaks arm64 gc-stress: https://ci.chromium.org/buildbot/client.v8.ports/V8%20Linux%20-%20arm64%20-%20sim%20-%20gc%20stress/11659 Original change's description: > [wasm] Introduce jump table > > This introduces the concept of a jump table for WebAssembly, which is > used for every direct and indirect call to any WebAssembly function. > For lazy compilation, it will initially contain code to call the > WasmCompileLazy builtin, where it passes the function index to be > called. > For non-lazy-compilation, it will contain a jump to the actual code. > The jump table allows to easily redirect functions for lazy > compilation, tier-up, debugging and (in the future) code aging. After > this CL, we will not need to patch existing code any more for any of > these operations. > > R=mstarzinger@chromium.org, titzer@chromium.org > > Bug: v8:7758 > Change-Id: I45f9983c2b06ae81bf5ce9847f4542fb48844a4f > Reviewed-on: https://chromium-review.googlesource.com/1097075 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Ben Titzer <titzer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53805} TBR=mstarzinger@chromium.org,titzer@chromium.org,clemensh@chromium.org,sreten.kovacevic@mips.com Change-Id: Iea358db2cf13656a65cf69a6d82cbbc10d3e7e1c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7758 Reviewed-on: https://chromium-review.googlesource.com/1105157Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53807}
-
Clemens Hammacher authored
This introduces the concept of a jump table for WebAssembly, which is used for every direct and indirect call to any WebAssembly function. For lazy compilation, it will initially contain code to call the WasmCompileLazy builtin, where it passes the function index to be called. For non-lazy-compilation, it will contain a jump to the actual code. The jump table allows to easily redirect functions for lazy compilation, tier-up, debugging and (in the future) code aging. After this CL, we will not need to patch existing code any more for any of these operations. R=mstarzinger@chromium.org, titzer@chromium.org Bug: v8:7758 Change-Id: I45f9983c2b06ae81bf5ce9847f4542fb48844a4f Reviewed-on: https://chromium-review.googlesource.com/1097075 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#53805}
-
- 14 Jun, 2018 1 commit
-
-
Clemens Hammacher authored
Extract code generation (for the trampoline) from {wasm-code-manager.cc} to a new {JumpTableAssembler}. This prepares a CL to add more logic to the {JumpTableAssembler} to also generate jump tables for lazy compilation and tier up. R=mstarzinger@chromium.org Change-Id: I383585b7e4b5a4af3ca08d07e374b44654c1a09f Reviewed-on: https://chromium-review.googlesource.com/1046585 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53729}
-