- 10 Jun, 2021 1 commit
-
-
John Xu authored
For Cobalt's purpose in the past, we introduced base::Memcpy to intercept memcpy calls and replace it with SbMemoryCopy on Starboard/Cobalt. Recently Cobalt removed SbMemoryCopy because we found out that memcpy implementation is universal. To reduce the cost to maintain base::Memcpy, let us remove it and revert back to raw memcpy. Bug: v8:10927 Change-Id: I060f191f8f1aed8b78ffe4558a3743f3a2da008b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2951462Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: John Xu <johnx@google.com> Cr-Commit-Position: refs/heads/master@{#75070}
-
- 01 Jun, 2021 2 commits
-
-
Thibaud Michaud authored
The upper 32 bits of the 64 bit offset register are not guaranteed to be cleared, so a zero-extension is needed. We already do the zero-extension in the case of explicit bounds checking, but this should also be done if the trap handler is enabled. R=clemensb@chromium.org CC=jkummerow@chromium.org Bug: v8:11809 Change-Id: I21e2535c701041d11fa06c176fa683d82db0a3f1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2917612 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74881}
-
Camillo Bruni authored
Various behaviour preserving changes that make it easier to switch on callee-saved registers without having to land refactoring code at the same time. - Use MaybeStoreRegisters / MaybeRestoreRegisters - Use CallRecordWriteStubSaveRegisters everywhere for now. Eventually this will be replaced by CallRecordWriteStub in places with fixed registers. - Use WriteBarrierDescriptor::ComputeSavedRegisters, which for now returns the same as allocatable_registers Full x64 implementation: https://crrev.com/c/2922604 Bug: v8:11420 Change-Id: I04e6ac2f6333edc91cb1030a0217f59ad441a1d3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2922250Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#74876}
-
- 19 May, 2021 1 commit
-
-
Camillo Bruni authored
Inline the RememberedSetAction and SaveFPMode flags directly into the RecordWrite stubs: - Save two register for input arguments - Avoid branches in the RecordWrite stubs We end up with 2 stubs for the EphemeronKeyBarrier and 4 stubs for RecordWrite. Due to more inlined calls we have roughly 1KiB more builtins code for RecordWrite currently. We will address this in the future by splitting out common code into a separate stub. There is no additional code size overhead for EphemeronKeyBarrier. This saves 4 to 8 bytes on x64 per RecordWrite call and 2.5% sparkplug code size reduction on d3.min.js. Bug: v8:11420 Change-Id: Ib7170265dd6dd4b3aaf8275083f096e76fae8251 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2902731Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#74661}
-
- 13 May, 2021 1 commit
-
-
Wenyu Zhao authored
Change-Id: I16872f90a10702c3dcc8e556a8bc17fd63a0f858 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2881511Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Wenyu Zhao <wenyu.zhao@anu.edu.au> Cr-Commit-Position: refs/heads/master@{#74553}
-
- 11 May, 2021 1 commit
-
-
Camillo Bruni authored
Convert StoreOrigin, TypeOfMode, SaveFPRegsMode and ArgvMode to enum classes with k-prefixed values. Change-Id: Ib6ca3a9995297e8303a7e013b1d829613c0db510 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2885042Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Reviewed-by: Zhi An Ng <zhin@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#74497}
-
- 10 May, 2021 1 commit
-
-
Camillo Bruni authored
- Share RemeberedSetAction and SmiCheck enums between all platforms. - Convert to enum classes with k-prefixed values Bug: v8:11420 Change-Id: Ib265a229f12a850ea866fd01d8022cbae5e1a9d8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2885040Reviewed-by: Zhi An Ng <zhin@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#74489}
-
- 15 Apr, 2021 1 commit
-
-
Thibaud Michaud authored
We currently allow OSR (On-Stack Replacement) of arbitrarily deep return addresses. This is in direct violation of Intel CET's shadow stack, which we plan to enable eventually. This change works around this by postponing OSR until after we return to the old code. The main changes are: - Reserve a slot in Liftoff frames to store the OSR target, - Skip the return address modification, and instead store the new code pointer in the dedicated slot, - Upon returning to the old code, check the slot and do an indirect jump to the new code if needed. CET also prevents indirect jumps to arbitrary locations, so the last point is also a CET violation. Valid indirect jump targets must be marked with the ENDBRANCH instruction, which I will do in a follow-up CL. Bug: v8:11654 Change-Id: I6925005211aa95d60803b9409e3c07c7c226b25c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2826127 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#73977}
-
- 08 Apr, 2021 1 commit
-
-
Thibaud Michaud authored
This is a reland of f645d0b8 The issue was that converting an i64 to an i32 didn't clear the upper bits on arm64. This was not necessary before because we did the zero extension as part of the load operand, but this is required now that we use the full register. Original change's description: > [liftoff][arm64] Use 64 bit offset reg in mem op > > Accessing the Wasm memory with a 64 bit offset was truncated to 32 bit, > which is fine if we check bounds first, but not if we rely on the > trap handler to catch the OOB. > > R=clemensb@chromium.org > > Bug: v8:11587 > Change-Id: I82a3a2906e55d9d640c30e770a5c93532e3a442c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2808942 > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73829} Bug: v8:11587 Change-Id: Ibc182475745c6f697a0ba6d75c260b74ddf8fe52 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2810846Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#73853}
-
- 07 Apr, 2021 2 commits
-
-
Michael Achenbach authored
This reverts commit f645d0b8. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Mac%20-%20arm64%20-%20release/3544 Original change's description: > [liftoff][arm64] Use 64 bit offset reg in mem op > > Accessing the Wasm memory with a 64 bit offset was truncated to 32 bit, > which is fine if we check bounds first, but not if we rely on the > trap handler to catch the OOB. > > R=clemensb@chromium.org > > Bug: v8:11587 > Change-Id: I82a3a2906e55d9d640c30e770a5c93532e3a442c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2808942 > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73829} Bug: v8:11587 Change-Id: If7396981d43833f32ebc525c20abdbe78020e717 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2810785 Auto-Submit: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#73835}
-
Thibaud Michaud authored
Accessing the Wasm memory with a 64 bit offset was truncated to 32 bit, which is fine if we check bounds first, but not if we rely on the trap handler to catch the OOB. R=clemensb@chromium.org Bug: v8:11587 Change-Id: I82a3a2906e55d9d640c30e770a5c93532e3a442c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2808942Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#73829}
-
- 24 Mar, 2021 1 commit
-
-
Andreas Haas authored
By accident a "w"-register was used to push references on the stack instead of an "x"-register. This CL fixes the bug. CC=jkummerow@chromium.org R=thibaudm@chromium.org Bug: v8:11596 Change-Id: I5e0b6bebdc763f8d30fd2891786f6c82b9c1e7ac Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2783038Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#73633}
-
- 22 Mar, 2021 1 commit
-
-
Manos Koukoutos authored
This is a more canonical type name, and is in line with {kVoidCode}. Change-Id: Iaae9524b6fb6ecaafd63ce81cf30e3d01ca3e525 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2775565 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#73557}
-
- 15 Mar, 2021 1 commit
-
-
Thibaud Michaud authored
Only support empty exceptions for now. Unpacking i32s, and eventually arbitrary types, will be done in separate CLs. R=clemensb@chromium.org Bug: v8:11453 Change-Id: Ic3233e0bbdaad8b710cd836be9aef647d3131c9d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739590 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#73402}
-
- 10 Mar, 2021 1 commit
-
-
Ng Zhi An authored
This is done with a script that does something like: files=$(ag 'v\d\d?x\d\d?[._]?all_?true' -l) sed -i 's/V\(8x16\|16x8\|32x4\|64x2\)\([._]\?\)\([aA]ll_\?[tT]rue\)/I\1\2\3/g' $(files) sed -i 's/v\(8x16\|16x8\|32x4\|64x2\)\([._]\?\)\([aA]ll_\?[tT]rue\)/i\1\2\3/g' $(files) And manual fixups in test-run-wasm-simd.cc and wasm-opcodes-inl.h. Bug: v8:10946 Change-Id: Ib5dad388dd6dd9cd0fb575ad961dffc189a2e6ef Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2740488Reviewed-by: Bill Budge <bbudge@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#73309}
-
- 08 Mar, 2021 1 commit
-
-
Bill Budge authored
- Adds some missing types, to appease the fuzzers. Bug: chromium:1185464 Change-Id: I08c4ebe5f4ae0d036da9819b805aeac93be384fe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742017 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#73279}
-
- 05 Mar, 2021 1 commit
-
-
Bill Budge authored
This is a reland of 36a7cba2 Unchanged, so: tbr=clemensb@chromium.org Original change's description: > Reland "[wasm][liftoff] Respect CallDescriptor linkage" > > This is a reland of 94283811 > > Patchset #2 fixes the Arm bug. A vpush is used to push the slot, > so subtract kSimd128Size from the stack decrement to get padding. > > Original change's description: > > [wasm][liftoff] Respect CallDescriptor linkage > > > > - Adds the actual stack slot location to LiftoffStackSlots::Slot. > > - Adds SortInPushedOrder method for architectures that push > > parameters. > > - Changes the LiftoffStackSlots::Construct signature to take the > > number of parameter slots in total, and changes implementations > > to insert padding when slots aren't contiguous. > > - Changes Arm MacroAssembler::AllocateStackSpace to check the > > immediate value, and to be a nop when it's zero. > > > > Bug: v8:9198 > > Change-Id: Ibd5775dbed3a40051fa9e345556231a1c07cf4e9 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2717120 > > Reviewed-by: Andreas Haas <ahaas@chromium.org> > > Reviewed-by: Clemens Backes <clemensb@chromium.org> > > Commit-Queue: Bill Budge <bbudge@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#73191} > > Bug: v8:9198 > Change-Id: Iae4930e28dd7fc634e3709a5726379c6b37e5195 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2735984 > Reviewed-by: Bill Budge <bbudge@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Commit-Queue: Bill Budge <bbudge@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73195} Bug: v8:9198 Change-Id: I45c2b6fc8c38ef864a0bd7a7be5b431c7b8855a3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739737 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#73235}
-
- 04 Mar, 2021 7 commits
-
-
Ng Zhi An authored
This is a reland of fe00fbd9 Original change's description: > [wasm-simd][liftoff] Compile double precision conversions > > I missed actually handling these instructions in liftoff-compiler, so > even though the assembler functions were implemented for all archs, we > weren't running them. > > This properly handles the instructions and a couple of fixes: > > - for arm64, typos in using signed instructions for unsigned Wasm ops > - for arm, handle the case where dst == src, which leads to us > overwriting src and then reading junk from the overwritten portions to > convert > > Bug: v8:11265 > Change-Id: I7919280bdf395137e95075deb30ed815100df222 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2728382 > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> > Commit-Queue: Zhi An Ng <zhin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73178} Bug: v8:11265 Change-Id: Ib854b526e74710f03e83d5007e3a3f501363ce86 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2733661Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#73206}
-
Shu-yu Guo authored
This reverts commit 36a7cba2. Reason for revert: On suspicion of making breakpoints fail more reliably: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux/41129/overview Original change's description: > Reland "[wasm][liftoff] Respect CallDescriptor linkage" > > This is a reland of 94283811 > > Patchset #2 fixes the Arm bug. A vpush is used to push the slot, > so subtract kSimd128Size from the stack decrement to get padding. > > Original change's description: > > [wasm][liftoff] Respect CallDescriptor linkage > > > > - Adds the actual stack slot location to LiftoffStackSlots::Slot. > > - Adds SortInPushedOrder method for architectures that push > > parameters. > > - Changes the LiftoffStackSlots::Construct signature to take the > > number of parameter slots in total, and changes implementations > > to insert padding when slots aren't contiguous. > > - Changes Arm MacroAssembler::AllocateStackSpace to check the > > immediate value, and to be a nop when it's zero. > > > > Bug: v8:9198 > > Change-Id: Ibd5775dbed3a40051fa9e345556231a1c07cf4e9 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2717120 > > Reviewed-by: Andreas Haas <ahaas@chromium.org> > > Reviewed-by: Clemens Backes <clemensb@chromium.org> > > Commit-Queue: Bill Budge <bbudge@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#73191} > > Bug: v8:9198 > Change-Id: Iae4930e28dd7fc634e3709a5726379c6b37e5195 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2735984 > Reviewed-by: Bill Budge <bbudge@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Commit-Queue: Bill Budge <bbudge@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73195} Bug: v8:9198 Change-Id: I5e72a1f765eb49ec72198abd44798a6153e3dace No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2737796 Auto-Submit: Shu-yu Guo <syg@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#73202}
-
Bill Budge authored
This is a reland of 94283811 Patchset #2 fixes the Arm bug. A vpush is used to push the slot, so subtract kSimd128Size from the stack decrement to get padding. Original change's description: > [wasm][liftoff] Respect CallDescriptor linkage > > - Adds the actual stack slot location to LiftoffStackSlots::Slot. > - Adds SortInPushedOrder method for architectures that push > parameters. > - Changes the LiftoffStackSlots::Construct signature to take the > number of parameter slots in total, and changes implementations > to insert padding when slots aren't contiguous. > - Changes Arm MacroAssembler::AllocateStackSpace to check the > immediate value, and to be a nop when it's zero. > > Bug: v8:9198 > Change-Id: Ibd5775dbed3a40051fa9e345556231a1c07cf4e9 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2717120 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Commit-Queue: Bill Budge <bbudge@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73191} Bug: v8:9198 Change-Id: Iae4930e28dd7fc634e3709a5726379c6b37e5195 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2735984Reviewed-by: Bill Budge <bbudge@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#73195}
-
Maya Lekova authored
This reverts commit 94283811. Reason for revert: Breaks arm simulator - https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm%20-%20sim/27651/overview Original change's description: > [wasm][liftoff] Respect CallDescriptor linkage > > - Adds the actual stack slot location to LiftoffStackSlots::Slot. > - Adds SortInPushedOrder method for architectures that push > parameters. > - Changes the LiftoffStackSlots::Construct signature to take the > number of parameter slots in total, and changes implementations > to insert padding when slots aren't contiguous. > - Changes Arm MacroAssembler::AllocateStackSpace to check the > immediate value, and to be a nop when it's zero. > > Bug: v8:9198 > Change-Id: Ibd5775dbed3a40051fa9e345556231a1c07cf4e9 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2717120 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Commit-Queue: Bill Budge <bbudge@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73191} Bug: v8:9198 Change-Id: I59b4e84b5a54bcda65a9e96f75e5682713adbfd8 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2735639 Auto-Submit: Maya Lekova <mslekova@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#73192}
-
Bill Budge authored
- Adds the actual stack slot location to LiftoffStackSlots::Slot. - Adds SortInPushedOrder method for architectures that push parameters. - Changes the LiftoffStackSlots::Construct signature to take the number of parameter slots in total, and changes implementations to insert padding when slots aren't contiguous. - Changes Arm MacroAssembler::AllocateStackSpace to check the immediate value, and to be a nop when it's zero. Bug: v8:9198 Change-Id: Ibd5775dbed3a40051fa9e345556231a1c07cf4e9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2717120Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#73191}
-
Zhi An Ng authored
This reverts commit fe00fbd9. Reason for revert: Broke on noavx https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20-%20debug/36175/overview Original change's description: > [wasm-simd][liftoff] Compile double precision conversions > > I missed actually handling these instructions in liftoff-compiler, so > even though the assembler functions were implemented for all archs, we > weren't running them. > > This properly handles the instructions and a couple of fixes: > > - for arm64, typos in using signed instructions for unsigned Wasm ops > - for arm, handle the case where dst == src, which leads to us > overwriting src and then reading junk from the overwritten portions to > convert > > Bug: v8:11265 > Change-Id: I7919280bdf395137e95075deb30ed815100df222 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2728382 > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> > Commit-Queue: Zhi An Ng <zhin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73178} Bug: v8:11265 Change-Id: I9bce3418c5321ded38e339cd96a9e7e399190c96 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2733660 Auto-Submit: Zhi An Ng <zhin@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#73179}
-
Ng Zhi An authored
I missed actually handling these instructions in liftoff-compiler, so even though the assembler functions were implemented for all archs, we weren't running them. This properly handles the instructions and a couple of fixes: - for arm64, typos in using signed instructions for unsigned Wasm ops - for arm, handle the case where dst == src, which leads to us overwriting src and then reading junk from the overwritten portions to convert Bug: v8:11265 Change-Id: I7919280bdf395137e95075deb30ed815100df222 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2728382Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#73178}
-
- 26 Feb, 2021 1 commit
-
-
Clemens Backes authored
This renames more fields holding "ValueKind" or methods operating on "ValueKind" to contain "kind" instead of "type". It also renames "is_reference_type" to "is_reference" on both ValueType and ValueKind, as the "_type" prefix is kind of implicit from the argument. R=manoskouk@chromium.org, jgruber@chromium.org Bug: v8:11477 Change-Id: I7809f1af6e983aebca96e03fe1fbc6ccaa22db72 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2718063 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#73070}
-
- 25 Feb, 2021 1 commit
-
-
Ng Zhi An authored
This instruction is not in the final SIMD proposal. Bug: v8:6020 Change-Id: Ifef1b3d58bf660f2d30784f587aed85f327825ec Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2716073 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#73058}
-
- 24 Feb, 2021 3 commits
-
-
Ng Zhi An authored
arm64 is straightforward, for arm we extract the code sequence into a macro-assembler function. Bug: v8:11416 Change-Id: I6dddcee700c497e29f1ee8094cd81adfb1df2f4e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2707769Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#73030}
-
Ng Zhi An authored
Bug: v8:11086 Change-Id: I67f7aaeb1151b14678d6257a195efd19c86c5fbf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2707775Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#73028}
-
Clemens Backes authored
The precise type is only used for validation. For code generation, knowing the kind is more than enough. Hence, only store and pass the ValueKind in Liftoff, and not the full ValueType. R=manoskouk@chromium.org Bug: v8:11477 Change-Id: Ia42c0fa419f75b508bd2f210c767b631e93d3398 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2707170 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#72997}
-
- 23 Feb, 2021 2 commits
-
-
Ng Zhi An authored
Extract code sequence into macro-assembler for sharing between Liftoff and TurboFan. Relax the register aliasing requirements (remove the DCHECKS), this will not affect codegen for TurboFan since the instruction selector already sets the correct restrictions, but makes it more flexible for use in Liftoff. Bug: v8:11416 Change-Id: I5f3f37b21d8f7e96ff7e472cb96dcda5f28679cf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2707765 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#72984}
-
Ng Zhi An authored
Bug: v8:11415 Change-Id: I50a805cb97d4d2aadc064da61db2983e0557cf6a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2707771Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72981}
-
- 22 Feb, 2021 3 commits
-
-
Ng Zhi An authored
Extract code sequence into macro-assembler for reuse between Liftoff and TurboFan. Small tweaks to macro-assembler functions Pmaddwd and Pmaddubsw to move src1 to dst on SSE when src != dst. TurboFan codegen won't be affected by this since it sets the right restrictions in instruction-selector. Bug: v8:11086 Change-Id: I6c206dec332c8195a6a4d419d11a28e7058c905a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2707253Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72924}
-
Clemens Backes authored
There is no need for write barriers if the stored value is known to be a Smi. R=thibaudm@chromium.org Bug: v8:11453 Change-Id: Id1cf306b246686c245d1be5f72c46b54ba9829ca Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2707172Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72903}
-
Clemens Backes authored
Backends do not care about the concrete type, they only need to know the "kind" (e.g. "ref" or "i32"). In order to prepare Liftoff to use the value kind instead of the value type for all stored data, this CL moves the kind out of the ValueType and makes it a top-level enum. R=manoskouk@chromium.org Bug: v8:11477 Change-Id: I489d6c5207e6ff1b66e2afbe78a156d66df27eb3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2707169 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#72896}
-
- 19 Feb, 2021 1 commit
-
-
Ng Zhi An authored
Extract code sequence into macro-assembler for reuse between Liftoff and TurboFan. There is a bit of register-aliasing checking due to the rather strict requirements for the code sequence depending on the CpuFetures that are supported. Bug: v8:11415 Change-Id: Idbc0ca43475db5650d1747c8a741e9f11b80d8e3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2698063Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72875}
-
- 16 Feb, 2021 1 commit
-
-
Clemens Backes authored
This CL avoids redundant loads of the instance from the frame by caching it in a register if possible. This register will be the first one to be cleared once we run out of registers (hence it's called a "volatile register"). On local tests, this seems to reduce most redundant loads within a function, and it also reduces the load for the stack check in the function prologue. After the stack check, we need to discard the cached instance though, since the potential runtime call for the stack check might clobber it. This will be addressed in a follow-up CL by re-loading the cached instance after the stack check. This is expected to remove another good chunk of instance loads, because the instance would initially be available in a register when starting the function code. R=thibaudm@chromium.org Bug: v8:11336 Change-Id: Ie65ab81263fb9d972f4b7a6daaef86cf704874ef Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2695401 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#72779}
-
- 12 Feb, 2021 2 commits
-
-
Clemens Backes authored
This CL adds support for instrumentation breakpoints in wasm. The request for "break on entry" is set on the script, and we need to keep it stored there because there might not be any instances of that wasm module yet. Once instances get created, the flag value is transferred to all instances. The flag stored there is then checked in the function prologue in Liftoff debugging code. This ensures that we will stop at the first valid break position in any function within that module. Hitting that instrumentation breakpoint will then clear the flag from the script and from all other live instances (in the same isolate). A first basic test is contained in this CL. More tests will be added later. R=thibaudm@chromium.org, bmeurer@chromium.org Bug: chromium:1151211 Change-Id: I5442d4044934988269becececc03699b850d51d7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2690588Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72701}
-
Ng Zhi An authored
Extract code sequence for v64x2.alltrue into macro-assembler for sharing between TurboFan and Liftoff. Bug: v8:11347,v8:11348 Change-Id: I8119f5425c8cf11ddac77f69ed9e62a408f7049d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2686011 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72681}
-
- 11 Feb, 2021 2 commits
-
-
Ng Zhi An authored
Other archs will come later. Bug: v8:11347,v8:11348 Change-Id: I9ea656b9c7ce03c9dafb631dd67f6e2f7d4346a2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2686312Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72674}
-
Ng Zhi An authored
Did not factor out the codegen because it is short enough (1 or 2 instructions) and will unlikely be changed (for optimization reasons). Bug: v8:11265 Change-Id: Ic5e5bc7642e80448bdaa6d130dfe7c12018eb481 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2683209 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72664}
-