- 05 Mar, 2021 1 commit
-
-
Shu-yu Guo authored
This is a reland of 0c63aa9e Fixes the correctness fuzzing BUILD.gn breakage. Original change's description: > [ptr-cage] Reserve base registers on x64 (r14) and arm64 (x28) > > Also add a V8_COMPRESS_POINTERS_IN_SHARED_CAGE define when pointer > compression is enabled. > > This CL is to get performance numbers for reserving an extra register. > There is no actual pointer cage yet, and the base register will always > have the same value as the root register. The pointer decompression code > is switched to using the base register instead of the root register. > > Bug: v8:11460 > Change-Id: I40bae556c2098608fb6fc193a52694e3f54754bd > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2716075 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Shu-yu Guo <syg@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73204} TBR=rmcilroy@chromium.org,jkummerow@chromium.org,leszeks@chromium.org Bug: v8:11460 Change-Id: Iecf6b783392a384b40ab33e0f4ce13538a8f81ee Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2737681Reviewed-by:
Shu-yu Guo <syg@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#73207}
-
- 04 Mar, 2021 3 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 0c63aa9e. Reason for revert: Breaking clusterfuzz builds Original change's description: > [ptr-cage] Reserve base registers on x64 (r14) and arm64 (x28) > > Also add a V8_COMPRESS_POINTERS_IN_SHARED_CAGE define when pointer > compression is enabled. > > This CL is to get performance numbers for reserving an extra register. > There is no actual pointer cage yet, and the base register will always > have the same value as the root register. The pointer decompression code > is switched to using the base register instead of the root register. > > Bug: v8:11460 > Change-Id: I40bae556c2098608fb6fc193a52694e3f54754bd > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2716075 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Shu-yu Guo <syg@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73204} Bug: v8:11460 Change-Id: Idebf1fc6eeeda880a21d65b6f2c674fa58690bfa No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2737812 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@{#73205}
-
Shu-yu Guo authored
Also add a V8_COMPRESS_POINTERS_IN_SHARED_CAGE define when pointer compression is enabled. This CL is to get performance numbers for reserving an extra register. There is no actual pointer cage yet, and the base register will always have the same value as the root register. The pointer decompression code is switched to using the base register instead of the root register. Bug: v8:11460 Change-Id: I40bae556c2098608fb6fc193a52694e3f54754bd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2716075Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#73204}
-
- 01 Mar, 2021 1 commit
-
-
Shu-yu Guo authored
Change-Id: I33999e33793662aad741d336018f3a099af17fec Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2728239 Commit-Queue: Shu-yu Guo <syg@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Auto-Submit: Shu-yu Guo <syg@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#73114}
-
- 26 Feb, 2021 3 commits
-
-
Deepti Gandluri authored
Change-Id: Id9b69f960887f55d26842ecad57c43367c7ddfcd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2704951Reviewed-by:
Zhi An Ng <zhin@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#73083}
-
Ng Zhi An authored
Optimize extadd_pairwise when AVX is supported. If SSE4_1 is available, we can use the SSE version of the same code sequence. However, there is a potentially better lowering that only requires SSE2, which has less instructions, but will only work better if we have rip-relative constants (otherwise even using ExternalReference it would be 2 moves). Bug: v8:11086,v8:11349 Change-Id: Iac6f31cf8052161846ff5242b4c18c638c83e0f6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2719298Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#73079}
-
Ng Zhi An authored
Drive-by cleanups to merge macro lists which now have the same instruction selector requirements. Bug: v8:11384 Change-Id: Id49c43dce897685d5ced19509f390274805739aa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2716069Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#73075}
-
- 25 Feb, 2021 3 commits
-
-
Ng Zhi An authored
Improve SSE codegen similar to suggestions in https://crrev.com/c/2698066: - s/movdqa/movaps/ - s/por/orps - s/pxor/xorps - s/pand/andps - use movshdup (SSSE3) insted of shuffle Bug: v8:11415 Change-Id: I2e76cbbe16267c055e24f258354b77994aed47b8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2713131Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#73057}
-
Ng Zhi An authored
Bug: v8:11346 Change-Id: I95a82da62feb6c42562f655f954407ad58c4ca33 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2718660Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#73055}
-
Victor Gomes authored
Change-Id: I59b26323bd8d2fd35379fb73c799943315d5422b Bug: v8:11502 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2719564 Commit-Queue: Victor Gomes <victorgomes@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Victor Gomes <victorgomes@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#73042}
-
- 24 Feb, 2021 1 commit
-
-
Ng Zhi An authored
Use external refs to load the masks neded for i8x16.swizzle. Before it would need 3 instructions (2 moves + 1 pshufd), now it requires 2 moves. Also on AVX we can relax the dst == src requirement, which can potentially save a move too. Bug: v8:11346 Change-Id: If350529de7272a7b178e12778a5e02813b34631c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2713168Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72989}
-
- 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
This is a reland of 0ef2eea7 The fixes are adding missing SSE4_1 scopes to ia32. I realize the x64 codegen is missing the scopes to, so fix them as well. Original change's description: > [wasm-simd][ia32] Optimize some signed integer widening sequences > > Optimize ia32 code sequences. This is the same sequences as x64, which > have been optimized based on supported extensions. > > Bug: v8:11464 > Change-Id: I10396a928a431cdd2de9b22bb8a395bc0adb4694 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2704897 > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> > Commit-Queue: Zhi An Ng <zhin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#72926} Bug: v8:11464 Change-Id: Ib66a63de26bcc3bb3626922b642fe5df6bff8bdb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2713211Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72983}
-
- 22 Feb, 2021 4 commits
-
-
Ng Zhi An authored
This is essentially a revert of 3 commits: - a1d39bba - 5a0938e5 - 74362ae3 with merge conflicts fixed. These instructions were not merged into the SIMD proposal. Bug: v8:11297 Change-Id: Ifffe7c61cae10fadc345d0faa1b0ba45ce74e946 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2704950Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72933}
-
Bill Budge authored
This reverts commit 8cf4eec7. Reason for revert: Rolling back to previous greedy slot allocator. tbr=neis@chromium.org,jgruber@chromium.org Original change's description: > [codegen][frames] Generalize argument padding slot code > > - Removes kPadArguments boolean. > - Changes ShouldPadArguments to ArgumentPaddingSlots to reflect > that on some architectures more than 1 padding slot may be needed. > - Adds AddArgumentPaddingSlots and ShouldPadArguments convenience > functions. > > Bug: v8:9198 > > Change-Id: Iba87518e071a75fb951b490d3f75a87ca715cc23 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2679109 > Commit-Queue: Bill Budge <bbudge@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#72605} Bug: v8:9198 Change-Id: Ie93d32d4b93c67840e4792acb017f28a826bd030 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2713205 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#72931}
-
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}
-
Toon Verwaest authored
Using StackFrame::MANUAL was a bit of a hack to avoid frame markers to be pushed, but manual in FrameScope means Enter/LeaveFrame aren't called at all. This decouples those things. Bug: v8:11429 Change-Id: Ie1603bb3c6858f0b97a75e4bb0b9bd1244de6cce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2707205 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#72909}
-
- 19 Feb, 2021 2 commits
-
-
Ng Zhi An authored
Use a slightly different instruction sequence for AVX, these instructions issue to different ports, resulting in less resource pressure. Full details in the bug. Bug: v8:11464 Change-Id: Ie915a532f7453bab5c458038e8da725aa0e5d55b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2703451Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72879}
-
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}
-
- 17 Feb, 2021 1 commit
-
-
Toon Verwaest authored
This threads through a JumpMode kJump/kReturn to JumpCodeObject so we can use a return instruction to jump instead by first pushing the jump target and then using a return instruction. Bug: v8:11429 Change-Id: I8658ed9c5bade28bd6efc76e26fd92bad22b3c68 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2697196 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#72804}
-
- 12 Feb, 2021 2 commits
-
-
Leszek Swirski authored
Currently we sometimes refer to baseline code or the baseline compiler by its codename (Sparkplug). The codename is fun, but we should be consistent and call things by one name or the other. Following the pattern of Ignition stuff being called "interpreter", we call Sparkplug "baseline", and leave the codename only in flags and variants. Bug: v8:11420 Change-Id: I432e5629518be7c7ad38b6acff024c91d4cfd6d3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2692186 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#72696}
-
Leszek Swirski authored
Sparkplug is a new baseline, non-optimising second-tier compiler, designed to fit in the compiler trade-off space between Ignition and TurboProp/TurboFan. Design doc: https://docs.google.com/document/d/13c-xXmFOMcpUQNqo66XWQt3u46TsBjXrHrh4c045l-A/edit?usp=sharing Bug: v8:11420 Change-Id: Ideb7270db3d6548eedd8337a3f596eb6f8fea6b1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2667514 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#72686}
-
- 11 Feb, 2021 1 commit
-
-
Deepti Gandluri authored
Bug: v8:11154 Change-Id: I71d524bb33dbc2f7583da9a7d9dc2c350b57bf51 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2686680 Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by:
Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72645}
-
- 10 Feb, 2021 2 commits
-
-
Ng Zhi An authored
Extract codegen into macro-assembler functions for reuse in Liftoff. Some minor tweaks in I32x4TruncSatF64x2SZero and I32x4TruncSatF64x2UZero to check dst and src overlap and move to scratch/dst accordingly. In TurboFan we can set these restrictions in the instruction-selector, but not in Liftoff. This doesn't make TurboFan codegen any worse, since those restrictions are still in place. Bug: v8:11265 Change-Id: Ib6b3ebeb5fed99eddd0700fb4aba91d4168c3213 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2683206 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@{#72638}
-
Ng Zhi An authored
This is a reland of 00babf07 No changes from original patch, previous CQ failures were likely a Mac infra issue https://chromium-review.googlesource.com/c/2682521. Original change's description: > [wasm-simd][x64][liftoff] Implement i8x16.popcnt > > Extract i8x16.popcnt implementation into a macro-assembler function, and > reuse it in Liftoff. > > Bug: v8:11002 > Change-Id: I86b2f5322c799d44f584cac28c70e0e393bf114f > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2676280 > 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@{#72565} Bug: v8:11002 Change-Id: Ic8bcbdb3444865805d8d2af3669ccb4a05c4426d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2682507Reviewed-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@{#72614}
-
- 09 Feb, 2021 3 commits
-
-
Bill Budge authored
- Removes kPadArguments boolean. - Changes ShouldPadArguments to ArgumentPaddingSlots to reflect that on some architectures more than 1 padding slot may be needed. - Adds AddArgumentPaddingSlots and ShouldPadArguments convenience functions. Bug: v8:9198 Change-Id: Iba87518e071a75fb951b490d3f75a87ca715cc23 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2679109 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#72605}
-
Ng Zhi An authored
pmovsxdq, pmovzxdq, and pcmpeqq requires SSE4.1. Bug: v8:11215,v8:10972 Change-Id: I77e17378f819ce44ccc09a42f1d5778d7f6cf0e2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2683222Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72602}
-
Milad Fa authored
WasmCompileLazy needs to save the content of vector parameter registers. If Simd is not enabled or the hardware does not support Simd operations then we need to saves the value of Double registers instead, therefore we need a way to retrieve the value of "CpuFeatures::SupportsWasmSimd128()" in builtins during runtime. Bug: v8:11377 Change-Id: I74a5f870d7077166548472adb25c3fb06d0ebdb9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2679682Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Junliang Yan <junyan@redhat.com> Reviewed-by:
Zhi An Ng <zhin@chromium.org> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#72584}
-
- 08 Feb, 2021 2 commits
-
-
Zhi An Ng authored
This reverts commit 00babf07. Reason for revert: Broke mac64 https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Mac64/38510/overview Original change's description: > [wasm-simd][x64][liftoff] Implement i8x16.popcnt > > Extract i8x16.popcnt implementation into a macro-assembler function, and > reuse it in Liftoff. > > Bug: v8:11002 > Change-Id: I86b2f5322c799d44f584cac28c70e0e393bf114f > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2676280 > 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@{#72565} TBR=gdeepti@chromium.org,clemensb@chromium.org,zhin@chromium.org Change-Id: I5795b71f65d59237db59907d40c34e4fa7779fe1 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:11002 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2682505Reviewed-by:
Zhi An Ng <zhin@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72566}
-
Ng Zhi An authored
Extract i8x16.popcnt implementation into a macro-assembler function, and reuse it in Liftoff. Bug: v8:11002 Change-Id: I86b2f5322c799d44f584cac28c70e0e393bf114f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2676280Reviewed-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@{#72565}
-
- 05 Feb, 2021 1 commit
-
-
Bill Budge authored
- Removes DCHECKs that will be incorrect when SIMD operands are intermixed. - Reworks the code structure to break out 3 major cases: Immediate, MemoryOperand, and LocationOperand. Bug: v8:9198 Change-Id: I1be426bc450dda0fd670a2483aae9afd2c96ce17 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2673271 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72551}
-
- 04 Feb, 2021 1 commit
-
-
Ng Zhi An authored
The previous instruction selection was too loose, it only required registers for the inputs. The codegen also used Unpcklps(dst, mask), and failed to use src at all. The test case was accidentally passing because dst == src (xmm0) by chance. We fix this bug requiring that for AVX, any register is fine, but for SSE, require dst == src. Also redefine Unpcklps to check dst == src in the no AVX case. Bug: v8:11265 Change-Id: I1988b2d2da8263512bf6e675e6297c50f55663f7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2668918Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72536}
-
- 27 Jan, 2021 2 commits
-
-
Ng Zhi An authored
vcvtdq2pd was incorrectly declared to take 3 operands, the use of the macro Cvtdq2pd meant that the call was vcvtdq2pd(dst, dst, src). This is an incorrect encoding. Our tests happen to pass because dst was xmm0, which made it accidentally correct. This fixes it by moving cvtdq2pd out of the macro list. Bug: v8:11265 Change-Id: I8b1baf4dd2c670021eafa76dc1a10b442f812805 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2654003Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72382}
-
Ng Zhi An authored
Use external references to hold splat values. Bug: v8:11349,v8:11086 Change-Id: I829d136ae7c7f8e28de991d06f6a321551402ae1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2648972Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72348}
-
- 26 Jan, 2021 2 commits
-
-
Ng Zhi An authored
movups is slower on older hardware (core2) than movaps, even if the operand is aligned. (Not an issue on modern hardware). Also move i8x16.splat(0x0F) to an external reference so we can load the mask directly. Bug: v8:11002 Change-Id: I0b01c27a142024d50b9faaa9e7bd6a1fe169e141 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643242Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72336}
-
Ng Zhi An authored
This is a reland of 5a0938e5 The fix is in instruction-selector-x64.cc, the OpParameter is a uint8_t, I typo-ed a int8_t. Drive-by fix to maro-assembler-x64.cc to use movaps instead of movapd. Original change's description: > [wasm-simd][x64] Prototype i32x4.widen_i8x16_{s,u} > > This prototypes i32x4.widen_i8x16_s and i32x4.widen_i8x16_u for x64. It > uses some masks and pshufb for the widening. These masks (3 for each > instruction) are stored as external references. > > Bug: v8:11297 > Change-Id: I6c8f55426bbb44b16ed552f393762c34c2524b55 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2617389 > Commit-Queue: Zhi An Ng <zhin@chromium.org> > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Cr-Commit-Position: refs/heads/master@{#72301} Bug: v8:11297 Change-Id: Ie1df32bd4ef3c71532cab6f82a515f619b6a2b67 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2648967Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72330}
-
- 25 Jan, 2021 3 commits
-
-
Zhi An Ng authored
This reverts commit 5a0938e5. Reason for revert: Broke build https://logs.chromium.org/logs/v8/buildbucket/cr-buildbucket.appspot.com/8857098178780038608/+/steps/Check/0/logs/RunWasm_I32x4WidenI8x16S_liftoff/0 Original change's description: > [wasm-simd][x64] Prototype i32x4.widen_i8x16_{s,u} > > This prototypes i32x4.widen_i8x16_s and i32x4.widen_i8x16_u for x64. It > uses some masks and pshufb for the widening. These masks (3 for each > instruction) are stored as external references. > > Bug: v8:11297 > Change-Id: I6c8f55426bbb44b16ed552f393762c34c2524b55 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2617389 > Commit-Queue: Zhi An Ng <zhin@chromium.org> > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Cr-Commit-Position: refs/heads/master@{#72301} TBR=neis@chromium.org,gdeepti@chromium.org,neis@google.com,ahaas@chromium.org,zhin@chromium.org Change-Id: I83aa2e86854e39ac6afd250fdc0dfac7cdd99e6d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:11297 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2648194Reviewed-by:
Zhi An Ng <zhin@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72302}
-
Ng Zhi An authored
This prototypes i32x4.widen_i8x16_s and i32x4.widen_i8x16_u for x64. It uses some masks and pshufb for the widening. These masks (3 for each instruction) are stored as external references. Bug: v8:11297 Change-Id: I6c8f55426bbb44b16ed552f393762c34c2524b55 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2617389 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#72301}
-
Ng Zhi An authored
Factor out the code sequence into macro-assembler functions to be reused by Liftoff. Bug: v8:10975 Change-Id: I82e253c94e09bf62197e7de87359d0e3956d2dcc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643662 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72300}
-