- 24 Feb, 2021 4 commits
-
-
LiuYu authored
Besides, skip write barrier for storing Smis. Port: a3776a63 Port: 1c507667 Change-Id: I4626c1811e3e23e06adccd65fabc8bc41b6628f0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2717301 Auto-Submit: Liu yu <liuyu@loongson.cn> Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn> Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn> Cr-Commit-Position: refs/heads/master@{#72990}
-
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}
-
Ng Zhi An authored
Compact some of the name definitions for wasm opcodes. With the proposal being in phase 4, the instruction set is fixed, we can now merge some of the adhoc i64x2 instructions in with the rest. Bug: v8:11384 Change-Id: I94553b9f2daaa4804deaf1bb18933847897a4213 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2708759Reviewed-by: Bill Budge <bbudge@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72988}
-
Ng Zhi An authored
Extract code sequence into macro-assembler for reuse between Liftoff and TurboFan. Bug: v8:11086 Change-Id: I914051dd8126e89f297e892da1b5c1917b47d7f1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2707763Reviewed-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@{#72987}
-
- 23 Feb, 2021 36 commits
-
-
Ng Zhi An authored
Extract code sequence out into macro-assembler for sharing between Liftoff and TurboFan. Bug: v8:11415 Change-Id: I76a5124eea917dc15385c90ce82fccdb31619295 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2707772Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72986}
-
Ng Zhi An authored
Extract code sequence into macro-assembler for sharing between Liftoff and TurboFan. Bug: v8:11416 Change-Id: I8cdce30db8081f6b6c96cca1cbacd035dfc03de4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2707768 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72985}
-
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}
-
Milad Fa authored
Port 679af80e Original Commit Message: Avoid duplicating the list of parameter registers to push in the WasmCompileLazy builtin by reusing the existing arrays from wasm-linkage.h. Also verify the computed results against different constants. R=clemensb@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Bug: v8:11377 Change-Id: I7277e865c30d83dd4d13aa501d913fb0d88526b7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2716322Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#72982}
-
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}
-
Ng Zhi An authored
Bug: v8:11086 Change-Id: I3413a6cd3e9ea6078ce014a0596c51b092e44cfe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2707778Reviewed-by: Bill Budge <bbudge@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72980}
-
Omer Katz authored
Conservative tracing of an in construction objects might enter an infinite recursion if the object holds a reference to itself. The second time we try to trace the object it will be already marked and we can bail out of tracing it again. Bug: chromium:1056170 Change-Id: I74e99ca70c83f00d47299562d291adf7ba4a5808 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2715065 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72979}
-
Junliang Yan authored
Change-Id: I38197dc313b049a612fb34472db3b647990747dc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2715086Reviewed-by: Milad Fa <mfarazma@redhat.com> Commit-Queue: Junliang Yan <junyan@redhat.com> Cr-Commit-Position: refs/heads/master@{#72978}
-
Andreas Haas authored
With a recent change we reserve the maximum memory size also on 32-bit platforms, up to 1GB. This change, however, caused failing tests in the cases where no maximum memory size was defined and where WebAssembly defines an implicit maximum memory size of 4GB. With this CL we do not reserve more memory than the initial size if no maximum memory size is defined. R=clemensb@chromium.org Bug: v8:11493 Change-Id: I62b62fd4faa7a480275b75421a98f73539646eab Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2712756 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72977}
-
Thibaud Michaud authored
The arity depends on the exception type now. Take the max over all exceptions since we only need a conservative estimate. R=clemensb@chromium.org Bug: v8:8091 Change-Id: Id5a3e12d89c5d48219e8981e16c2b679d80b67db Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2691051Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#72976}
-
Manos Koukoutos authored
WasmGraphBuilder often failed to use GraphAssembler infrastructure and went with directly invoking graph()->NewNode(). This made the code more verbose, especially in cases where effect() and control() had to be passes directly to NewNode(). This CL eliminates these invocations in obvious cases. It does not try to refactor complicated code with branches, diamond patterns, etc. Additional changes: - Define a few more operators in GraphAssembler. - Move Branch() helper in WasmGraphAssembler. - Define NumberConstant() helper in WasmGraphAssembler. - Define Merge() helper with varargs in WasmGraphBuilder. - Omit IntPtrConstant() wrapper for constant offsets of Load and Store. Change-Id: I571d5286be8881504cb2060195fbd181d1fce67d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2712804Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#72975}
-
Deepti Gandluri authored
Bug: chromium:1177804 Change-Id: Ic8044fb4bfe414101edb923a9bb6e71282808e58 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2706351Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#72974}
-
Manos Koukoutos authored
Functional change: Allow rtts as exception values. Additional change: Remove liftoff subtyping TODO in anticipation of removal of full ValueType usage in Liftoff. Bug: v8:7748 Change-Id: I676a7fa6417d6e86bb148b4f5b9b086cc704928e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2714702Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#72973}
-
Thibaud Michaud authored
The flag should not be set after an exception is thrown in a runtime function. The unwinder still runs after the destructor, and should take care of setting the flag depending on the catching frame. R=ahaas@chromium.org,jkummerow@chromium.org Bug: chromium:1180690 Change-Id: I0013c90f759a5145309f6e08d61ed36aeecbac63 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2713103Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#72972}
-
Shu-yu Guo authored
Bug: v8:11375 Change-Id: I85503d4930a160026409761664e796c03de358d7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2707546Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#72971}
-
Thibaud Michaud authored
R=clemensb@chromium.org Bug: chromium:1180457 Change-Id: I50b776af243fa17856945fecc018a87356694a97 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2712242 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72970}
-
Ng Zhi An authored
Follow-up from https://crrev.com/c/2649147/. There are still 2 usages of _wrapper functions in the interpreter, these are slightly more annoying to get rid of since the definitions have a ifdef for MSCV/OS_WIN. Bug: v8:11384 Change-Id: Ic5ca860678f406e1c832c99398b235707da058f9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2713166Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72969}
-
Santiago Aboy Solanes authored
Its double methods were unused so we were using it as an ObjectData* wrapper. Bug: v8:7790 Change-Id: If6bd21fc23485f1e14aa3e71aea7c7821bd03315 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2715185Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#72968}
-
Andreas Haas authored
R=machenbach@chromium.org Bug: chromium:1177804 Change-Id: I4d94f9eb2b06743d6cbb46757efa66d14e089502 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2715186Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#72967}
-
Leszek Swirski authored
Bug: v8:11420,v8:11429 Change-Id: Id2680baf5d7db7eee342ca7b3c0cb636cacf1560 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2715194 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/master@{#72966}
-
Ross McIlroy authored
BUG=chromium:1180335 Change-Id: Idc2b59a4ae8298a2d8beb1dbcd3135214c6f7fdf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2715191 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Auto-Submit: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#72965}
-
Seth Brenith authored
This change adds a new abstract type Lazy<T> which can be used to interoperate with CSA code that uses LazyNode. This new type has special code-generation rules because its generated type is not TNode<...> but std::function<TNode<...>()>. Torque code can do nothing with this type except pass it around, but passing it to the CSA function RunLazy is an easy way to execute the std::function and get back a normal value. Torque code can also create Lazy<T> values using the intrinsic function %MakeLazy, which takes the name of a macro as its first parameter, followed by arguments to that macro which will be passed when the LazyNode is evaluated. We use the macro's name because the language doesn't support taking references to macros, and implementing such a feature would be complicated. Bug: v8:7793 Change-Id: I09120960e3492dd51be0d4c57e14ff3826b99262 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2701752 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#72964}
-
Victor Gomes authored
Change-Id: Iefbc2fe993ca7bed385624ecc6818c94b87f3915 Bug: v8:11429 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2715189 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@{#72963}
-
Milad Fa authored
Port 1bd29073 R=zhin@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Bug: v8:11086 Change-Id: I777874397514a4cbde6b6630aff9f6804568ea95 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2715184Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#72962}
-
Seth Brenith authored
This is a partial reland of https://crrev.com/c/v8/v8/+/2601880 . Change-Id: I7ad9ca42201c49df7037e65671a50caabc1fdf98 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2705256Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#72961}
-
Mike Stanton authored
When making inlining decisions, we are interested in CodeRef::inlined_bytecode_size(). Previously, we gated a check of this value on predicate JSFunctionRef::HasAttachedOptimizedCode(), but we removed this predicate because it only recorded a value seen at serialization time. Now, we look at attached CodeRefs "live," which means we might discover that the code is now optimized, where it wasn't at serialization time. This affects the inlining decision. This CL adds an additional check before returning a non-zero inlined_bytecode_size that the code object hasn't (already) been deoptimized. It's logical to do this, because the inlined_bytecode_size is actually a stale value at this point. Bug: chromium:1180749 Change-Id: I4d55132c5b47083413d3c6b1d934bfce6b550709 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2712565 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#72960}
-
Leszek Swirski authored
Baseline code is, like baseline frames, now considered unoptimized, sharing this name with interpreted code. Bug: v8:11420,v8:11429 Change-Id: If1f4a41725dd0d809a4412f5d2f827d19f9628fe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2713102 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#72959}
-
Clemens Backes authored
After the runtime call for dynamic tiering, the instance cache is invalidated. This was assumed to be done in {SpillAllRegisters}, but the instance is still being accessed after that call, so the instance cache register might still be set after the runtime call. R=ahaas@chromium.org Bug: chromium:1179065 Change-Id: I375e7c388e5a74789050e374db50d21c2efe27e2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2714544Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72958}
-
Clemens Backes authored
This avoids having to check both flags in two places, and prevents people from trying to enable WebAssembly in lite mode (which would currently build, but you still would not get Wasm support). The downside is that the default value shown by `gn args --list` now sais `""` instead of `true`. R=machenbach@chromium.org, rmcilroy@chromium.org CC=ecmziegler@chromium.org Bug: v8:11238 Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel Change-Id: Ib2fe6c32cbdeb89895265bb898abf7284c560cc3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2712783 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#72957}
-
Santiago Aboy Solanes authored
This is a reland of ed225df7 Reland changes: removed #if DEBUG from v8.h since it had compile errors in chromium + windows. Also wasn't needed anyway since the method it was calling was just a DCHECK. Original change's description: > [objects] Cache the ExternalString's data in its resource > > For external uncached strings (also called "Small External Strings") > with cacheable resources, we can cache its resource's data at the > string's creation time. This allows us to safely read the data from the > background as we wouldn't trigger a data() callback. > > For more information regarding the investigation and possible proposals > see > https://docs.google.com/document/d/101eAQqFpBPWFGNJicxtdlwYShJkTOUsEuxkVVeu5Hrk/edit?usp=sharing > > Bug: v8:7790, v8:11463 > Change-Id: I6164092b01a6ccb525a9516f476e066b35fb1f96 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2685177 > Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#72862} Bug: v8:7790 Bug: v8:11463 Change-Id: I7c8a54c814b92c8632fb0bcf5a33f57fec159443 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2710440Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#72956}
-
Georg Neis authored
AbstractBytecodeArray was introduced in order to let the bytecode array accessor work on either a Handle<BytecodeArray> or a serialized BytecodeArrayRef. We have since implemented direct heap access for bytecode arrays, so we can now remove the abstraction again. Note that this means that as far as bytecode iteration is concerned we no longer access the bytecode array through the BytecodeArrayRef. I will remove the obsolete methods from that class in a follow-up CL. The downside is the loss of this explicit interface. The upside is simplicity and less code. We can justify the downside with the fact that the bytecode array data is immutable and thus the Ref indirection less meaningful than in other cases. Bug: v8:7790 Change-Id: I0fe87b4efd0f77785f5a0917ab213c6031d9cc74 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2707166Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#72955}
-
Frank Emrich authored
This CL is part of a series that adds the C++ implementation of SwissNameDictionary, a deterministic property backing store based on Swiss Tables. This CL adds printing and verification functions. Bug: v8:11388 Change-Id: I6af8672f19589f5693ebafbcafb8d59b26749eef Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2704669 Commit-Queue: Frank Emrich <emrich@google.com> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#72954}
-
Michael Achenbach authored
No-Try: true Bug: v8:11338, v8:11413 Change-Id: I5a3365e557bc3727071d8d73e9b3f9da1ae6d011 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2714704 Auto-Submit: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#72953}
-
Jakob Gruber authored
.. which can return Undefined if reading out of bounds, so the return type is ObjectRef and not StringRef (if we had torque-like union types it'd be StringRef|OddballRef). Also change the function name to GetCharAsStringOrUndefined. Bug: v8:7790,chromium:1181246 Change-Id: Icf9e8fd03d11c3936e87a509b9117e547972d283 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2712965Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#72952}
-
Clemens Backes authored
If two call instructions were generated right after each other, the source position table could get populated with two entries for the same PC (triggered by the follow-up CL: https://crrev.com/c/2697359). This CL fixes that by slightly changing the carry-over of source positions from nodes to instructions. The call node which has a source position attached generates two instructions: 18: gap () ([rax|R|tp] = v16(-); [rbx|R|t] = v17(-);) [rax|R|t] = ArchCallWasmFunction [immediate:4] #-1 [rax|R|tp] [rbx|R|t] [immediate:5] 19: gap () () ArchJmp [immediate:6] Those are then reversed, and the source position is attached to the first one (the ArchJmp). After reversing it again later, the source position will be set to the pc *after* the call instruction, which in the example happened to be just another call instruction which already had a source position, resulting in this code: [...] 0x388ee467d426 66 e875feffff call 0x388ee467d2a0 ;; wasm stub: WasmThrow 0x388ee467d42b 6b e850feffff call 0x388ee467d280 ;; wasm stub: WasmStackGuard [...] Source positions: pc offset position 6b 5 6b 0 By attaching the source position to the *last* instruction (after reversing), we ensure that it will be generated for an instruction *before* the call, or the call itself if this is the first instruction emitted for that node. R=jgruber@chromium.org Bug: v8:11490, v8:11496 Change-Id: Ie95c87d0d9daea56ca14a811abcd02ac07a4cf84 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2697358 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#72951}
-