- 26 Apr, 2019 1 commit
-
-
Santiago Aboy Solanes authored
I missed these cases when adding the branchful decompression on codegen. Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng Bug: v8:7703 Change-Id: Idb3f5ca81e00bb17fa08ba2b2506b642ffbd7b4b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1571623 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#61045}
-
- 25 Apr, 2019 1 commit
-
-
Jakob Gruber authored
This reverts commit 7a2651cb. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Android%20Arm64%20-%20N5X/4126 Original change's description: > [arm64] Cleanup TODO around handling of x18 > > Use `padreg` instead of x18 to maintain alignment in the CPURegList. > > Also clean up some comments and tidy up RequiredStackSizeForCallerSaved > and PushCallerSaved. > > Change-Id: I80a780e5649e69a1746c43f37c2d1d875120c7a0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1581609 > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Martyn Capewell <martyn.capewell@arm.com> > Cr-Commit-Position: refs/heads/master@{#60987} TBR=jgruber@chromium.org,martyn.capewell@arm.com,joey.gouly@arm.com Change-Id: Id95ac26142717f6503d284d20ca03b9de33a9122 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1582403Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#60999}
-
- 24 Apr, 2019 1 commit
-
-
Joey Gouly authored
Use `padreg` instead of x18 to maintain alignment in the CPURegList. Also clean up some comments and tidy up RequiredStackSizeForCallerSaved and PushCallerSaved. Change-Id: I80a780e5649e69a1746c43f37c2d1d875120c7a0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1581609Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Martyn Capewell <martyn.capewell@arm.com> Cr-Commit-Position: refs/heads/master@{#60987}
-
- 18 Apr, 2019 1 commit
-
-
Santiago Aboy Solanes authored
We translate stores with TaggedXXX (XXX in {"", "Signed", "Pointer"}) representation in CSA into stores of CompressedXXX with a ChangeTaggedXXXToCompressedXXX in the raw-machine-assembler. This way, CSA doesn't need to know about Compressed values since we are introducing an explicit "compress" node. Also, on ARM64, removed CheckPageFlagSet and CheckPageFlagClear since CheckPageFlag can be used for both cases. Moved CheckPageFlag to the TurboAssembler (from MacroAssembler) since it was needed on code-generator-arm64.cc. Bug: v8:8977, v8:7703 Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng Change-Id: Ia3a41b09a4d715588a36461620be0432ed064d13 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1566517Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#60915}
-
- 16 Apr, 2019 1 commit
-
-
Jakob Gruber authored
The arm64 ABI defines x18 as a platform register, and as such platforms may reserve it for their own purposes. This CL unconditionally removes x18 from the allocatable register list (previously it was only excluded from arm64 Windows). If, for some reason, we want to keep x18 allocatable on some platforms, we can explicitly enable it for specific platforms in the future. Bug: v8:8940,v8:9140 Change-Id: I28c4f6aad714e21a0a54bab6041c13a1b28fd467 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1564194Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#60870}
-
- 11 Apr, 2019 1 commit
-
-
Clemens Hammacher authored
Some code - especially WebAssembly - does not make use of the code target vector. Unconditionally reserving 100 entries adds unnecessary overhead e.g. to jump table patching (~10%). This CL just removes this reservation. R=mstarzinger@chromium.org Bug: v8:8916 Change-Id: I671820f3eb413fa2d03cef4bbf06adfc7a585266 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1559868Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60772}
-
- 09 Apr, 2019 1 commit
-
-
Sigurd Schneider authored
Change-Id: I2855af444db5dad910d99acc8179aef75e56d000 Bug: v8:9020 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1559734Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#60703}
-
- 08 Apr, 2019 1 commit
-
-
Pierre Langlois authored
We would only increment write barrier counters from the the MacroAssembler's RecordWrite method which is only used in limited cases. Instead, we should increment it inside the RecordWrite stub, this way we catch all uses, including WASM. Also, we had a static counter aimed at telling us how many barriers exist in generated code, as opposed to how many are executed. This counter was not functional since the compiler isn't aware of counters at the moment. Let's just remove it to avoid confusion. Change-Id: I6b173ab858c8984ef03ede225afdc999ba82b5c9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1524483Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Cr-Commit-Position: refs/heads/master@{#60673}
-
- 01 Apr, 2019 1 commit
-
-
Sigurd Schneider authored
This is a reland of 6604f182 Original change's description: > [heap] Clean-up keys of oldspace weakmaps during scavenge > > This CL adds handling for cleaning up weakmap (EphemeronHashTable) > keys during scavenge, even if the weakmap resides in oldspace. > > Change-Id: If8d711c050ddbcae4dd6e8da549e0c0d08ba47b2 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523787 > Commit-Queue: Sigurd Schneider <sigurds@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60432} CQ_INCLUDE_TRYBOTS=luci.chrome.try:Mac Builder Perf Change-Id: Ie640f2b0340637a5391fb17ba3c9e6422eaf306a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1541476 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#60554}
-
- 28 Mar, 2019 2 commits
-
-
Pierre Langlois authored
This is a reland of 93716b9e Original change's description: > [snapshot] Add support for native counters. > > Counters in generated code, as enabled with --native-code-counters, do not work > in the snapshot. This adds a `v8_enable_snapshot_code_counters` build option > enabled by defaut in debug mode that allows code from the snapshot to increment > the current isolate's set of counters. > > For this to work, we need to add native code counters in the external reference > table. > > To keep the no snapshot configuration similar, we've also enabled the > --native-code-counters flag by default for debug builds. > > Change-Id: I4478b79858c9b04f57e06e7ec67449e9e3a76f53 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1528998 > Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60495} Change-Id: Ib6427caf068ca196a032e3f3b97d9f9219e0fe60 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1543349Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Cr-Commit-Position: refs/heads/master@{#60507}
-
Michael Achenbach authored
This reverts commit 93716b9e. Reason for revert: Breaks asan debug: https://ci.chromium.org/p/v8/builders/ci/V8%20Clusterfuzz%20Mac64%20ASAN%20-%20debug%20builder/7872 https://ci.chromium.org/p/v8/builders/ci/V8%20Clusterfuzz%20Linux64%20ASAN%20-%20debug%20builder/7874 Original change's description: > [snapshot] Add support for native counters. > > Counters in generated code, as enabled with --native-code-counters, do not work > in the snapshot. This adds a `v8_enable_snapshot_code_counters` build option > enabled by defaut in debug mode that allows code from the snapshot to increment > the current isolate's set of counters. > > For this to work, we need to add native code counters in the external reference > table. > > To keep the no snapshot configuration similar, we've also enabled the > --native-code-counters flag by default for debug builds. > > Change-Id: I4478b79858c9b04f57e06e7ec67449e9e3a76f53 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1528998 > Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60495} TBR=sigurds@chromium.org,jgruber@chromium.org,petermarshall@chromium.org,pierre.langlois@arm.com Change-Id: I93f1ed714e3dcd309f3100685e4bd282db471d46 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1543209Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#60500}
-
- 27 Mar, 2019 1 commit
-
-
Pierre Langlois authored
Counters in generated code, as enabled with --native-code-counters, do not work in the snapshot. This adds a `v8_enable_snapshot_code_counters` build option enabled by defaut in debug mode that allows code from the snapshot to increment the current isolate's set of counters. For this to work, we need to add native code counters in the external reference table. To keep the no snapshot configuration similar, we've also enabled the --native-code-counters flag by default for debug builds. Change-Id: I4478b79858c9b04f57e06e7ec67449e9e3a76f53 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1528998 Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#60495}
-
- 25 Mar, 2019 2 commits
-
-
Sigurd Schneider authored
This reverts commit 6604f182. Bug: chromium:945341 Original change's description: > [heap] Clean-up keys of oldspace weakmaps during scavenge > > This CL adds handling for cleaning up weakmap (EphemeronHashTable) > keys during scavenge, even if the weakmap resides in oldspace. > > Change-Id: If8d711c050ddbcae4dd6e8da549e0c0d08ba47b2 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523787 > Commit-Queue: Sigurd Schneider <sigurds@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60432} TBR=ulan@chromium.org,jarin@chromium.org,sigurds@chromium.org,leszeks@chromium.org Change-Id: I9dd9b11990a262a457fd1bedc2b45b4a786a81f7 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1538133Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#60447}
-
Sigurd Schneider authored
This CL adds handling for cleaning up weakmap (EphemeronHashTable) keys during scavenge, even if the weakmap resides in oldspace. Change-Id: If8d711c050ddbcae4dd6e8da549e0c0d08ba47b2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523787 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#60432}
-
- 22 Mar, 2019 1 commit
-
-
Santiago Aboy Solanes authored
Similar to x64's https://chromium-review.googlesource.com/c/v8/v8/+/1511486 Bug: v8:7703 Change-Id: Ifd634a36bb56a53cb9901d9dd0899b66229607ef Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535828 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Auto-Submit: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#60412}
-
- 18 Mar, 2019 1 commit
-
-
Matheus Marchini authored
On LoadCodeObjectEntry check for IsOffHeapTrampoline instead of BuiltinIndexOffset so LoadCodeObjectEntry can correctly jump to the on-heap trampoline when we use --interpreted-frames-native-stack. R=jgruber@chromium.org, yangguo@google.com Bug: v8:8911 Change-Id: I172d4735671726d32328de246990b513106e3a7f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1516692 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#60288}
-
- 15 Mar, 2019 1 commit
-
-
Michael Starzinger authored
This slot has become obsolete now that all CEntry stubs are builtins (which are part of the rootset) and no longer need to be kept alive explicitly by a slot in the frame. R=verwaest@chromium.org BUG=v8:8834 Change-Id: I7b791cc509ef800bcf7aa5faab31ddf35370f944 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1520725Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60267}
-
- 14 Mar, 2019 1 commit
-
-
Ulan Degenbaev authored
This should have no effect unless the embedder uses an old version of the standard library with missing overloads of <math.h> functions, which causes such functions to perform implicit conversion to double. In such cases, the CL removes the implicit conversion. Change-Id: Ib90a461c81b1f354f7acdf32df88257bff20aca8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523549 Auto-Submit: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#60243}
-
- 12 Mar, 2019 1 commit
-
-
Hannes Payer authored
Bug: v8:8945 Change-Id: I14ca4b29f1b12ff95e718d431f65d88ab1238c53 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1511478Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60177}
-
- 11 Mar, 2019 1 commit
-
-
Santiago Aboy Solanes authored
Since kTaggedSize got shrinked and we are actually compressing the pointers (as oppposed to zeroing their upper bits), we need to update the arm64 codebase to accommodate this change. Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng Bug: v8:7703 Change-Id: I890f3ab8c046f47232e80f85830f9ae8f4dbced4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1499498 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60172}
-
- 08 Mar, 2019 1 commit
-
-
Pavel Medvedev authored
instead of forwarding template constructors for these classes introduced in edab9a20 commit. TurboAssemblerBase constructors were declared as public to make the inherited TurboAssembler, and MacroAssembler ctors also public. This fixes Visual C++ 2017 compile error, when the template ctor in TurboAssemblerBase class matches deleted copy ctor. Bug: v8:8935 Change-Id: I1144a7025830c3a0ab86acaa8ea81def02d293b1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1496977Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#60114}
-
- 05 Mar, 2019 1 commit
-
-
Pierre Langlois authored
The `TurboAssembler::CallRecordWriteStub()` method which generates out-of-line code to call the write barrier would push and pop arguments to move them to different registers. Let's use `mov` instructions instead, making sure we handle overlapping registers. Change-Id: Ideb654cd558e984ccb90c7cf44b1c2c49f1c5b50 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1499496 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#60026}
-
- 01 Mar, 2019 1 commit
-
-
Tom Tan authored
When running under simulator, all arm64 JIT instructions are interpreted by simulator via normal memory read, then no need to do icache/dcache flush. Also when running under simulator, cache_type_register_ is set to 0 explicitly in above CacheLineSizes class, which results in 0 value in both dstart and istart, then causes flush on this incorrect range. Bug: chromium:893460 Change-Id: Ief6cb09a0e89f7ede0761ad676ea6a882e9f4600 Reviewed-on: https://chromium-review.googlesource.com/c/1492514 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#59987}
-
- 28 Feb, 2019 1 commit
-
-
Tom Tan authored
Assembler::AbortedCodeGeneration() is defined in assembler-arm64.h, but it calls into Constant::Clear() which is defined in assembler-arm64.cc. This introduces dependency to v8_base component when including assembler-arm64.h which is not always possible like for V8 unittests target. To fix this, we could define both in the same file, like Assembler::IsConstPoolEmpty() calls Constant::Clear() and both are defined in assembler-arm64.h, so it works fine. Bug: chromium:893460 Change-Id: I895cf0147950fca20142ea5ed18bcd020c1ab866 Reviewed-on: https://chromium-review.googlesource.com/c/1493293Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#59955}
-
- 25 Feb, 2019 1 commit
-
-
Benedikt Meurer authored
We'll need one bit in the SharedFunctionInfo::flags to record whether it's safe to skip arguments adaptor frames (for v8:8895), so this just removes the SharedFunctionInfo::IsDerivedConstructorBit which is redundant, since the same information is already available in the SharedFunctionInfo::FunctionKindBits, and most places in the code use that already, with the exception of the JSConstructStubGeneric builtin. This changes the JSConstructStubGeneric builtin to just check the function kind instead of testing the explicit bit, which also makes this more consistent. It seems like there's not much overhead to that, doing an additional bitmasking plus two comparisons instead of one. This shouldn't really matter since invocation and execution of the constructors is going to dominate and optimized code inlines all of this anyways. If this turns out to affect performance, we can still look into encoding the FunctionKindBits more cleverly. Drive-by-fix: Move the FunctionKindBits first in the flags to avoid the shift when accessing the function kind. This seems logic, since for the actual boolean bit fields it doesn't matter where they are in the flags, whereas for the function kind this saves one shift. Bug: v8:8834, v8:8895 Change-Id: I184a8f5cc5c140bdc272cf9a5ad546093c457306 Reviewed-on: https://chromium-review.googlesource.com/c/1482915Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#59821}
-
- 22 Feb, 2019 1 commit
-
-
Jon Kunkee authored
When Assembler::nop is in the header, it is considered an inline function. With GN arg is_component_build=true, the V8_EXPORT_PRIVATE mark on the class causes it to be exported every time the header is included. This, in turn, produces a reference to Register::XRegFromCode. Register::XRegFromCode is only ever defined as an inlined function, so that reference is never fulfilled. Clang can avoid this using the /Fc:dllexportInlines- flag to suppress the export of Assembler::nop and so avoid generating the reference to Register::XRegFromCode. MSVC does not support this flag, so this change suppresses the export by moving Assembler::nop's definition to the .cc file. This also allows it to use the inline definition of Register::XRegFromCode. Bug: v8:8870 Change-Id: I1cd33195677256c9dd06c7047fe84e1b912d3151 Reviewed-on: https://chromium-review.googlesource.com/c/1478216Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#59785}
-
- 21 Feb, 2019 1 commit
-
-
Tom Tan authored
Windows ARM64 does cross build for V8 and runs snapshot tool on build host under simulator. Simulator is built with LLP64 data model so 0xFFFFL is 32-bit long by default. It causes problem for the expression "0xFFFFL << shift" when shift is 32, which actually does nothing on x64 because 0xFFFFL is only 32-bit. The issue happens for instruction "movk rd, NUM lsl 32" which is simulated in Simulator::VisitMoveWideImmediate. "0xFFFL << shift" acts as mask to clear bits 32-47 of the orignal value in rd. Under LLP64, the mask happens unexpectedly to the lowest 16 bits of rd register and corrupts the result of rd. Specify 0xFFFFL as 64 bit as 0xFFFFLL fixes this problem. Bug: chromium:893460 Change-Id: Ibd911ce595e83637432a3e1f79a9bf28fcbe09f6 Reviewed-on: https://chromium-review.googlesource.com/c/1475330 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#59778}
-
- 19 Feb, 2019 1 commit
-
-
Santiago Aboy Solanes authored
to kTaggedSize or kSystemPointerSize. Like X64's CLs, but combined: https://chromium-review.googlesource.com/c/v8/v8/+/1384092 https://chromium-review.googlesource.com/c/v8/v8/+/1384309 and https://chromium-review.googlesource.com/c/v8/v8/+/1473291 Bug: v8:8477, v8:8834 Change-Id: I832999996a0b56bd34ec6aa4fd86d9a5476e1065 Reviewed-on: https://chromium-review.googlesource.com/c/1477215 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#59681}
-
- 18 Feb, 2019 2 commits
-
-
Santiago Aboy Solanes authored
Also adding LoadTaggedPointerField and LoadAnyTaggedField that were missed on previous CLs. Similar to X64's CL: https://chromium-review.googlesource.com/c/v8/v8/+/1460953 Bug: v8:7703 Change-Id: I9c917aadace65d45204c3360aeeb7e9ece296e70 Reviewed-on: https://chromium-review.googlesource.com/c/1475474Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#59655}
-
Jon Kunkee authored
In the current version of the MSVC toolchain, it seems that the compiler finds a near-match for the FlushInstructionCache call in v8::internal::, so instead of looking in other namespaces for matching overrides it emits this error: C2660: 'v8::internal::FlushInstructionCache': function does not take 3 arguments This change works around this by explicitly stating the expected namespace. Bug: chromium:927113 Change-Id: Ie39d6fdd458646fc86a4a2b16a93d6888ef1a5ae Reviewed-on: https://chromium-review.googlesource.com/c/1462260Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#59644}
-
- 15 Feb, 2019 1 commit
-
-
Jakob Kummerow authored
This takes heap-inl.h out of the "Giant Include Cluster". Naturally, that means adding a bunch of explicit includes in a bunch of places that relied on transitively including them before. As of this patch, no header file outside src/heap/ includes heap-inl.h. Bug: v8:8562,v8:8499 Change-Id: I65fa763f90e66afc30d105b9277792721f05a6d4 Reviewed-on: https://chromium-review.googlesource.com/c/1459659 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#59617}
-
- 14 Feb, 2019 1 commit
-
-
Benedikt Meurer authored
When calling into API callbacks from TurboFan optimized, we can currently only take a fast-path when TurboFan is able to find some information about the receiver in the graph, or when the API callback specifies that it neither requires an access check (aka "accepts any receiver") nor an interface check (aka "compatible receiver check"). This change introduces a new CallFunctionTemplate builtin that sits in front of the CallApiCallback builtin and does both the access as well as the interface check as necessary (and raises appropriate exceptions). This way TurboFan can still call into the API callback via the fast-path even without ahead knowledge about the receiver, which is significantly faster than the generic call machinery for API callbacks. On the test case from the Angular team[1], the interesting metrics improve from DOM_mono: 0.273 ms DOM_mega: 0.571 ms DOM_call: 0.649 ms to DOM_mono: 0.264 ms DOM_mega: 0.572 ms DOM_call: 0.368 ms so the DOM_call is only about **1.4 times slower** than the DOM_mono and about **1.5 times faster** than the DOM_mega case (compared to **2.4 times slower**). Execution time in the DOM_call was reduced by around **~45%**. Currently this new code path is limited to TurboFan optimized code, but the idea is to eventually migrate the API calls from baseline to also use the new CSA functionality, but there are lot's of subleties to take into account, so starting with small changes to get coverage for the basic building blocks. [1]: https://mhevery.github.io/perf-tests/DOM-megamorphic.html Bug: v8:8820 Change-Id: Ie1029cf182ce05a6e519fd9a9d4fa825db8adb4c Cq-Include-Trybots: luci.chromium.try:linux-blink-rel Reviewed-on: https://chromium-review.googlesource.com/c/1470129 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59598}
-
- 13 Feb, 2019 2 commits
-
-
Nico Weber authored
For macros expanding to function definitions, I removed the spurious ; after macro invocations. For macros expandign to function declarations, I made the ; required and consistently inserted it. No behavior change. Bug: chromium:926235 Change-Id: Ib8085d85d913d74307e3481f7fee4b7dc78c7549 Reviewed-on: https://chromium-review.googlesource.com/c/1467545Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59558}
-
Benedikt Meurer authored
Refactor the CallApiCallback builtin to - pass the context as with other stubs, and - pass holder and call data in registers. This avoids having to place holder and call data onto the stack, and thus makes it possible to easily call the CallApiCallback builtin from other builtins while just forwarding the (stack) arguments. The idea is to use this in the future to optimize the general case of calling into any API method via a FunctionTemplateInfo and doing appropriate security and/or interface checks upfront as necessary (eventually making the HandleApiCall C++ builtin obsolete at some point). Bug: v8:8820, chromium:913553 Change-Id: I10c0065016df4d0c24bac3d46945ea597b65ed02 Cq-Include-Trybots: luci.chromium.try:linux-blink-rel Reviewed-on: https://chromium-review.googlesource.com/c/1469821 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#59551}
-
- 12 Feb, 2019 1 commit
-
-
Santiago Aboy Solanes authored
containing smi value and untags it. This CL finishes up the parity with x64 with regards to (https://chromium-review.googlesource.com/c/v8/v8/+/1382740) Bug: v8:7703 Change-Id: I3c88fbbfd3e47e944a6891171d6555f330cd5fd2 Reviewed-on: https://chromium-review.googlesource.com/c/1463523Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#59521}
-
- 11 Feb, 2019 2 commits
-
-
Santiago Aboy Solanes authored
tagged fields. Implemented TurboAssembler::StoreTaggedField for tagged fields's store. Instead of pushes like x64 does, in arm64 do loads due to doing a load-poke combination rather than just a push. See https://chromium-review.googlesource.com/c/v8/v8/+/1382740 for the x64 version. Bug: v8:7703 Change-Id: I79fbba4b03260c0dba5624e990c5af51290b28c6 Reviewed-on: https://chromium-review.googlesource.com/c/1462956 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#59502}
-
Santiago Aboy Solanes authored
This CL introduces TurboAssembler::LoadTaggedPointerField() and TurboAssembler::LoadAnyTaggedField(), which respectively loads a field containing a HeapObject, or any tagged value, and decompresses it if necessary. Bug: v8:7703 Change-Id: I71ace74d7433a3a78d56bdcef6d2ec041df630e4 Reviewed-on: https://chromium-review.googlesource.com/c/1456098 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#59501}
-
- 07 Feb, 2019 2 commits
-
-
Sigurd Schneider authored
Drive-by: Refactor FlushInstructionCache to its own header. This removes dependencies of objects.cc and code.cc Bug: v8:8562 Change-Id: If23f3b9d4f2068e08c61c0f4b070ecfe1b9a6cc0 Reviewed-on: https://chromium-review.googlesource.com/c/1456081Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#59435}
-
deepak1556 authored
When BUILDING_V8_SHARED in release builds __declspec(dllexport) causes generation of implicit constructors in the forwarding class while its deleted in TurboAssemblerBase, which leads to compilation errors like: In file included from gen/v8/v8_base_jumbo_6.cc:41: In file included from .\../../v8/src/interface-descriptors.cc:7: In file included from ../../v8\src/macro-assembler.h:40: ../../v8\src/x64/macro-assembler-x64.h(92,9): error: call to deleted constructor of 'v8::internal::TurboAssemblerBase' : TurboAssemblerBase(std::forward<Args>(args)...) {} ^ ~~~~~~~~~~~~~~~~~~~~~~~~ ../../v8\src/x64/macro-assembler-x64.h(536,25): note: in instantiation of function template specialization 'v8::internal::TurboAssembler::TurboAssembler<v8::internal::TurboAssembler>' requested here class V8_EXPORT_PRIVATE MacroAssembler : public TurboAssembler { ^ ../../v8\src/turbo-assembler.h(127,34): note: 'TurboAssemblerBase' has been explicitly marked deleted here DISALLOW_IMPLICIT_CONSTRUCTORS(TurboAssemblerBase); ^ 1 error generated. The original changes were made in https://chromium-review.googlesource.com/c/v8/v8/+/1414913 R=mstarzinger@chromium.org,jgruber@chromium.org,clemensh@chromium.org Bug: NONE Change-Id: I87a5a678b8bae13b3adc6f1c6ac0b9313ed18d85 Reviewed-on: https://chromium-review.googlesource.com/c/1454676 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#59427}
-
- 06 Feb, 2019 1 commit
-
-
Sigurd Schneider authored
This unifies the RelocInfo::Visit method across architectures. Bug: v8:8562 Change-Id: I36fdfb2f456aebb4d69977bb84727c9b49b22f69 Reviewed-on: https://chromium-review.googlesource.com/c/1456106 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59423}
-