- 18 Mar, 2020 1 commit
-
-
Milad Farazmand authored
Port 3e1b6b40 R=jing.bao@intel.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I3f4837a896217dd3331b60e1477806d05f106c24 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2107727Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#66769}
-
- 13 Mar, 2020 1 commit
-
-
Milad Farazmand authored
Port 11da29a7 R=fanchen.kong@intel.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I5ea7bc62dcbd2411b84c5b9bfbe1fb6cdf0ee592 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2102769Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#66705}
-
- 12 Mar, 2020 1 commit
-
-
Milad Farazmand authored
Port f3b4167f Original Commit Message: In preparation for adding reference types, which need an additional parameter to indicate the referenced type. R=jkummerow@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: Ia6d933611440096247dda159846f6c119f5167d5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2101607Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#66689}
-
- 11 Mar, 2020 1 commit
-
-
Milad Farazmand authored
Port 485e66ba R=fanchen.kong@intel.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I2e1b79a995661243ff05b3d13e310f6315de0c97 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2097450Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#66662}
-
- 06 Mar, 2020 1 commit
-
-
Milad Farazmand authored
Port fd735e84 R=fanchen.kong@intel.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I8a46492241be9686da2220cb99162c9610962b5c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2091212Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#66614}
-
- 04 Mar, 2020 1 commit
-
-
Andreas Haas authored
There was an issue in the register allocation in the original CL. The register of the new_value did not get pinned, so it was used for the expected value as well. Bug: v8:10108 Change-Id: I2589fc31f8fbfda39c94ea5801f63ed370a3b7ce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2084815 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66579}
-
- 03 Mar, 2020 1 commit
-
-
Milad Farazmand authored
Port 9245e3b4 R=zhiguo.zhou@intel.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I9a6358dfd2bfd69e421c85fe3bbf343e7aee3b8c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2081575Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#66564}
-
- 02 Mar, 2020 1 commit
-
-
Andreas Haas authored
R=clemensb@chromium.org Bug: v8:10108 Change-Id: I3bdb4c2abe0b1db1babec370921463dbdfcd0a32 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2074403 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66544}
-
- 28 Feb, 2020 1 commit
-
-
Andreas Haas authored
This reverts commit c8e10a16. Reason for revert: This CL causes problems with webpages in the wild: https://crbug.com/1056295 Original change's description: > [wasm][liftoff] Implement Atomic(Compare)Exchange on x64 > > R=clemensb@chromium.org > > Bug: v8:10108 > Change-Id: Ic9ef9ba35218450d3f9e7838890c82b785c34da4 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2037433 > Commit-Queue: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#66429} TBR=ahaas@chromium.org,clemensb@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:10108 Change-Id: I69251b9e3de13d8314e413a4196c8185a73bfb5c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2078544Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#66494}
-
- 27 Feb, 2020 1 commit
-
-
Clemens Backes authored
Most function signatures are created once and never changed. Hence pass them as const pointer. This makes it clear in function signatures that these parameters will not be modified. This also avoids a few ugly const_casts where we were passing pointers to constexpr FunctionSigs via non-const pointers. R=jkummerow@chromium.org Bug: v8:10155 Change-Id: Ieb658ab5582bff276f76babdaf7ddb8f72bd4790 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072739Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66478}
-
- 25 Feb, 2020 1 commit
-
-
Andreas Haas authored
R=clemensb@chromium.org Bug: v8:10108 Change-Id: Ic9ef9ba35218450d3f9e7838890c82b785c34da4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2037433 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66429}
-
- 18 Feb, 2020 1 commit
-
-
Milad Farazmand authored
Port 59e96890 R=zhiguo.zhou@intel.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I01be626d6017d0d76daffc281f64352e3b8ead2b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2062248Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#66310}
-
- 10 Feb, 2020 1 commit
-
-
Pierre Langlois authored
Each assembler has it's own way to place breakpoints: - stop() for arm, mips*, ppc* and s390. - debug() for arm64. - int3() for ia32 and x64. We can mandate a macro-assembler `DebugBreak()` method that all should implement so one can place a breakpoint in a portable way using a macro-assembler. This way also assemblers are in line with TurboFan, CSA, Torque and Liftoff which all have a DebugBreak() facility. Change-Id: Ic4332bd19ca4db53e01441d54af6632c2c1189f1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2020954Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Cr-Commit-Position: refs/heads/master@{#66198}
-
- 30 Jan, 2020 1 commit
-
-
Milad Farazmand authored
Port c10153b4 R=zhin@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I6668e7d7b260b62838d609e27e240bb670977250 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2030744Reviewed-by: Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#66052}
-
- 28 Jan, 2020 1 commit
-
-
Andreas Haas authored
R=clemensb@chromium.org Bug: v8:10108 Change-Id: I0a561a007ffd5327f47f68cc605b9eae57829d8e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2016596 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66010}
-
- 24 Jan, 2020 1 commit
-
-
Milad Farazmand authored
Port b110d480 Original Commit Message: This relands commit 009993ad. The fix is in liftoff-assembler-ia32.h, the codegen was incorrect. Original change's description: > Implement f32x4.splat and enable handling this in Liftoff. > > We add a new macro for defining test cases to run on TurboFan, Liftoff, > interpreter, and scalar lowering. > > Also add an assertion that the execution tier used is what we expected > it to be. This is useful for Liftoff, because by default it falls back > to TurboFan when it encounters an unimplemented opcode. > > Bug: v8:9909 R=zhin@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I0fc54cd04379a6c65aa2bee64bf4cf9dad5b9636 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2019582Reviewed-by: Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#65977}
-
- 22 Jan, 2020 1 commit
-
-
Andreas Haas authored
R=clemensb@chromium.org Bug: v8:10108 Change-Id: Ia4fb73e1771971638ca646702838b5722dafe140 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2010112 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65926}
-
- 17 Jan, 2020 1 commit
-
-
Georgia Kouveli authored
Memory access offsets are unsigned. Sign-extending them incorrectly treats some large offsets as negative numbers and results in out-of-bounds errors for in-bounds accesses. This caused a failure in test/mjsunit/wasm/huge-memory.js for arm64, and for x64 with --nowasm_trap_handler. Change-Id: If58fead1d115f16ba4a6c3680252111fba6843d1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2002821 Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65838}
-
- 16 Jan, 2020 1 commit
-
-
Andreas Haas authored
DebugBreak allows you to put break points into generated code. When executed in gdb, the execution will stop in the generated code at the break point. R=clemensb@chromium.org Change-Id: I5607d7ec45d4910412c7adff5ae9bea2c9498909 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2002536 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65802}
-
- 14 Jan, 2020 2 commits
-
-
Milad Farazmand authored
Port 83b115c3 R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I46030004c893430abf693b67f8f7b0bb56c49e7a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2001145Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#65770}
-
Clemens Backes authored
This saves the addition when accessing the stack slot, and (more importantly) will make it easier to access the stack slot for debugging, since there is no platform-specific constant to be added any more. R=zhin@chromium.org Bug: v8:10019 Change-Id: I3eaf1838b78c2b7b343a435d7c8a32e7e71508ed Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1998082Reviewed-by: Zhi An Ng <zhin@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65749}
-
- 13 Jan, 2020 1 commit
-
-
Clemens Backes authored
To follow the style guide, and potentially improve performance, we switch to {int} for all stack offsets. The size of the stack cannot grow anywhere near {kMaxInt} anyway, and we have limits in place (for number of locals, number of parameters, and function body size) which also prevent this number from ever growing near that limit. R=jkummerow@chromium.org Change-Id: I05ca9124d2def79edd212464739bc12315f7b813 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1997445Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65740}
-
- 10 Jan, 2020 1 commit
-
-
Milad Farazmand authored
Port 57168634 Original Commit Message: Declare an inline method for the various backends to define based on alignment requirements. That way backends that might take a performance hit when data is not naturally aligned can specify the requirements. With this requirement defined, we can then specify that SIMD values require 16 bytes on the stack. This also opens up the possibility of storing 32-bit values in 32-bits, rather than the fixed kStackSlotSize. R=zhin@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: Ic61ba7508d37971a04fddad9e25025d038fdc3bd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1994181Reviewed-by: Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#65706}
-
- 16 Dec, 2019 1 commit
-
-
Ng Zhi An authored
Liftoff supports unfixed stack slot sizes now, so we can have SlotSizeForType return different values based on the value type it is spilling. We make the change for architectures that support unaligned access, x64, ia32, arm64. Note for ppc/s390/mips/mips64 ports: SlotSizeForType remains as 8 byte (old behavior), but can be changed. This patch also makes adjustments to PatchPrepareStackFrame to align sp to appropriate values (pointer size). Bug: v8:9909 Change-Id: Iddd2dcd652b162a04a02ed704c5b06f6af8a186d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1956165 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65467}
-
- 04 Dec, 2019 2 commits
-
-
Milad Farazmand authored
Port 785fa6b4 R=zhin@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I34f98cef7b78c694ba909e02d8c7bb251c7b5301 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1949153Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#65336}
-
Ng Zhi An authored
Bug: v8:9909 Change-Id: I997ae6f19c580f08eb9ff8ee039e0dd647091616 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1947350 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65320}
-
- 03 Dec, 2019 1 commit
-
-
Ng Zhi An authored
Calculate the number of bytes of the stack frame used in PatchPrepareStackFrame using the size of the spill instead of the number of slots. We only need the number of bytes spilled (without adding the number of locals) because whenever we spill, we already track the largest offset, with RecordUsedSpillSlot. GetTotalFrameSlotCount can also be changed to remove the num_locals, in a future patch. Change-Id: I08fe3e81eaebf5f2cf1e11292645663474483447 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1945944 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65303}
-
- 02 Dec, 2019 1 commit
-
-
Ng Zhi An authored
Convert more uses of index into offsets. We record spill in terms of offsets (bytes) rather than slot index, so the name of the method can be changed, and in GetTotalFrameSlotCount we calculate the number of slots used in terms of number of bytes spilled. Bug: v8:9909 Change-Id: I26484c1b040cd4711cc7998cb29d68955bf8ddb6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1934528Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#65284}
-
- 21 Nov, 2019 2 commits
-
-
Ng Zhi An authored
This patch changes many callers of GetStackOffsetFromIndex to directly use the offset that is stored in the VarState (and other structures). The tricky part here is that in all archs, GetStackSlotOffset no longer relies on kFirstStackSlotOffset, because the offset stored in VarState is relative to the constant space (instance offset), and not offset of the first stack slot. For example, for slot 0, the offset was also 0, because it was relative to the first stack slot offset (which in x64 is fp-24). With this change, the offset of slot 0 is now 8, but since GetStackSlotOffset is relative to fp-16, it ends up being fp-24 still. Because of this change, callers of GetStackOffsetFromIndex need to add 1 to whatever index they were passing. Instead of doing that, we change GetStackOffsetFromIndex to add 1 inside the body. After this change, the only callers of GetStackOffsetFromIndex will be inside of FillStackSlotsWithZero, because they still rely on index to keep track of how many params were processed, and also how many locals there are in order to zero those slots, and these is relied on by RecordUsedSpillSlot to allocate sufficient stack space. Bug: v8:9909 Change-Id: I52aa4572950565a39e9395192706a9934ac296d4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1925524 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65109}
-
Ng Zhi An authored
This is a reland of 20727725 The fix is in liftoff-assembler-arm64.h in FillStackSlotsWithZero, in the else case for bigger counts to fill, the argument passed to Sub was incorrect. We were passing offset relative to first slot, but it should be offset relative to instance, so there is an off by 1 slot error when zeroing, and ended up zeroing the stack slot holding instance. Original change's description: > [liftoff] Use stack slot offsets instead of indices > > Spill/fill now take offsets instead of indices. We provide a > helper, GetStackOffsetFromIndex, for callers. This is currently only > useful while slot sizes are still fixed to 8 bytes. > > StackTransferRecipe's RegisterLoad now works in terms of offset. > > LiftoffStackSlots work in terms of offset as well. > > TransferStackSlot currently still works in terms of indicies, but can be > converted to use offsets in a subsequent change. > > Bug: v8:9909 > Change-Id: If54fb844309bdfd641720d063135dd59551813e0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1922489 > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Commit-Queue: Zhi An Ng <zhin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65049} Bug: v8:9909 Change-Id: I311da9d3bb1db8faf8693079177c77a7b3754243 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1925131Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#65107}
-
- 20 Nov, 2019 1 commit
-
-
Zhi An Ng authored
This reverts commit 20727725. Reason for revert: Many bugs/crashes, https://crbug.com/v8/9999 https://crbug.com/1026500 https://crbug.com/1026514 Original change's description: > [liftoff] Use stack slot offsets instead of indices > > Spill/fill now take offsets instead of indices. We provide a > helper, GetStackOffsetFromIndex, for callers. This is currently only > useful while slot sizes are still fixed to 8 bytes. > > StackTransferRecipe's RegisterLoad now works in terms of offset. > > LiftoffStackSlots work in terms of offset as well. > > TransferStackSlot currently still works in terms of indicies, but can be > converted to use offsets in a subsequent change. > > Bug: v8:9909 > Change-Id: If54fb844309bdfd641720d063135dd59551813e0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1922489 > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Commit-Queue: Zhi An Ng <zhin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65049} TBR=clemensb@chromium.org,zhin@chromium.org Change-Id: I972b72346c87d1d55488911938e3f3cdbe69abe5 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9909 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1925560Reviewed-by: Zhi An Ng <zhin@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#65080}
-
- 19 Nov, 2019 1 commit
-
-
Ng Zhi An authored
Spill/fill now take offsets instead of indices. We provide a helper, GetStackOffsetFromIndex, for callers. This is currently only useful while slot sizes are still fixed to 8 bytes. StackTransferRecipe's RegisterLoad now works in terms of offset. LiftoffStackSlots work in terms of offset as well. TransferStackSlot currently still works in terms of indicies, but can be converted to use offsets in a subsequent change. Bug: v8:9909 Change-Id: If54fb844309bdfd641720d063135dd59551813e0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1922489Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#65049}
-
- 05 Nov, 2019 5 commits
-
-
Milad Farazmand authored
Port 42e8c231 Original Commit Message: Especially on ia32 and x64, shifts with immediate generate much shorter and more efficient code. R=clemensb@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: Iab474cdf6de91820e7f55ddd9a386efa03f03b6f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1899423Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#64786}
-
Milad Farazmand authored
Port d710756a Original Commit Message: This is the last remaining missing instruction from the MVP. This CL adds support for ia32, x64, arm, and arm64. For CPUs which do not support the POPCNT instruction, there exists a fallback implementation in C. R=clemensb@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I8965f4312c5e8ac6510c754772ba3d60394dfc4a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1899908Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#64778}
-
Milad Farazmand authored
Port 9c4ffc38 Original Commit Message: In fact, shifts are used most often with a fixed shift amount. This CL adds special handling for this in Liftoff, to generate shorter and faster code. R=clemensb@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I20f8cfa6930bc20eb8db33a99bd07fce49f3f74d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1899907Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#64777}
-
Milad Farazmand authored
Port e554dec4 Original Commit Message: These are two of the remaining missing instructions from the MVP. This CL adds support to {LiftoffCompiler} and provides assembly implementations for ia32, x64, arm, and arm64. R=clemensb@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I00b9b7ef4c3b7e022e7cf57255a030949e7dca89 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1899886Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#64775}
-
Clemens Backes authored
The {pinned} argument is always an empty register list now. Hence this CL removes it. R=jkummerow@chromium.org Bug: v8:9919 Change-Id: I3b7612d90b0577f2763c5ab70c34eeb11307657b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1899607 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#64761}
-
- 31 Oct, 2019 1 commit
-
-
Milad Farazmand authored
Port 9c3e94b2 R=clemensb@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I61d15d3314752408505cf91e4db454318efa2047 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893587Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#64702}
-
- 17 Oct, 2019 1 commit
-
-
Milad Farazmand authored
Port 7d09b270 Original Commit Message: It turns out that because we are *subtracting* from fp, we need to *subtract less* to get a higher address. Who knew. R=clemensb@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: Ide47f62b5fbfd309a2892fcd934175db7e390a8c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864586Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#64340}
-
- 15 Oct, 2019 1 commit
-
-
Milad Farazmand authored
Port a8cdda99 Original Commit Message: WebAssembly locals are specified to be zero on function entry. Liftoff implements this by just storing the constant 0 in the virtual stack for integer types, and using one floating point register initialized to zero for all floating point types. For big counts of locals this leads to problems (manifesting as huge blocks of code being generated) once we hit a merge point: All those constants (for int) and all duplicate register uses (for floats) need to be fixed up, by using separate registers for the locals or spilling to the stack if no more registers are available. All this spilling generates a lot of code, and can even happen multiple times within a function. This CL optimizes for such cases by spilling all locals to the stack initially. All merges within the function body get much smaller then. The spilled values rarely have to be loaded anyway, because the initial zero value is usually overwritten before the first use. To optimize the code size for initializing big numbers of locals on the stack, this CL also introduces the platform-specific {FillStackSlotsWithZero} method which uses a loop for bigger local counts. This often saves dozens of kilobytes for very big functions, and shows an overall code size reduction of 4-5 percent for big modules. R=clemensb@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I2459080a1f6acfdd212e9a93a868d028980c5554 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1863370Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Reviewed-by: Milad Farazmand <miladfar@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#64301}
-