- 21 Feb, 2019 1 commit
-
-
Mythri authored
This cl moves the valid feeback vector checks to the builtins and uses fast paths runtime when possible even whithout a valid feedback vector. For LoadNamedProperty it calls LoadIC_Uninitialized which does not need any type feedback and for LoadKeyedProperty it follows the megamorphic path but doesnot use the stub cache. Bug: v8:8293 Change-Id: I6ef9653e3f43c15cb882cbf82c3c2f63fb705a81 Reviewed-on: https://chromium-review.googlesource.com/c/1475393Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#59755}
-
- 19 Feb, 2019 1 commit
-
-
Mythri authored
Updates CloneIC builtin to take the CloneIC_slow path when there is no feedback vector. Also fixes the CloneIC_Slow to handle proxies correctly. StoreInArrayLiteralIC doesn't change the behaviour but just makes it consistent with other ICs. Bug: v8:8293 Change-Id: Ib824b3ef06db1595ce06f04669857bb957cbe072 Reviewed-on: https://chromium-review.googlesource.com/c/1475750 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59682}
-
- 15 Feb, 2019 1 commit
-
-
Jaroslav Sevcik authored
If StoreIC stores into a kConst field, only take the slow path if the value is different from the current value. This recovers the ObjectAssign regression in crbug.com/930680. Bug: v8:8361, chromium:930680 Change-Id: Ie27d15d624b07ab1dcb58b244a46b87eec34bd0f Reviewed-on: https://chromium-review.googlesource.com/c/1470134 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#59618}
-
- 14 Feb, 2019 1 commit
-
-
Mythri authored
The megamorphic case in the KeyedStoreIC doesn't use/update any feedback. We could use this path to fast path some of the keyed stores instead of misssing to the runtime when the feedback vector is not available. This cl, moves the check for feedback vector from the bytecode handler to the KeyedStoreIC and calls the KeyedStoreIC_Megamorphic builtin when there is no valid feedback vector. This will help improve the performance of no feedback/jitless case. Bug: v8:8293 Change-Id: I71c128b355d47ac20e50fc836f4bc2cf0aab1154 Reviewed-on: https://chromium-review.googlesource.com/c/1460946 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59590}
-
- 13 Feb, 2019 3 commits
-
-
Mythri authored
The uninitialized case in the StoreIC doesn't use any feedback. We could use this path to fast path some of the named stores instead of missing to the runtime when the feedback vector is not available. Bug: v8:8293 Change-Id: Ib3c4f843b24a377708f8db18fae10983e5633484 Reviewed-on: https://chromium-review.googlesource.com/c/1463781 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#59580}
-
Mythri authored
When an error occurs when storing the properties we either need to throw or ignore the error depending on the language mode. We used to infer the language mode from the type feedback vector. This cl instead falls back to runtime to check and throw an error when needed. Bug: v8:8580 Change-Id: Iebeb3ca86d753157329dc1b5cfd1c07af2ff3dcd Reviewed-on: https://chromium-review.googlesource.com/c/1458220Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#59563}
-
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}
-
- 09 Feb, 2019 5 commits
-
-
Mike Stanton authored
This is a reland of 7179cdb1 The node integration build failure appears to be constant. Original change's description: > Reland "Introduce a PREMONOMORPHIC state to StoreGlobalIC" > > (Fixed test failure in lite-mode) > > Introduce a PREMONOMORPHIC state to StoreGlobalIC > > It's used rather narrowly for now -- only when we run into an > interceptor during the lookup. After the call to SetProperty, we know > more. That is, the interceptor was only there because it's a new > property, and the call to SetProperty ends up creating it. > > By delaying the initialization of the IC, we recognize the (now) > created property, and can provide good feedback downstream to > TurboFan. > > TBR=ishell@chromium.org > > Bug: v8:8712 > Change-Id: Ieb79dcf1354ee294ad0f479a4a6c41a77f389850 > Reviewed-on: https://chromium-review.googlesource.com/c/1460955 > Reviewed-by: Michael Stanton <mvstanton@chromium.org> > Commit-Queue: Michael Stanton <mvstanton@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59483} TBR=ishell@chromium.org Bug: v8:8712 Change-Id: I31aa4c066ff46cb39187eed392313d2e524f4445 Reviewed-on: https://chromium-review.googlesource.com/c/1461998Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#59485}
-
Michael Stanton authored
This reverts commit 7179cdb1. Reason for revert: Breaks node integration build. Original change's description: > Reland "Introduce a PREMONOMORPHIC state to StoreGlobalIC" > > (Fixed test failure in lite-mode) > > Introduce a PREMONOMORPHIC state to StoreGlobalIC > > It's used rather narrowly for now -- only when we run into an > interceptor during the lookup. After the call to SetProperty, we know > more. That is, the interceptor was only there because it's a new > property, and the call to SetProperty ends up creating it. > > By delaying the initialization of the IC, we recognize the (now) > created property, and can provide good feedback downstream to > TurboFan. > > TBR=ishell@chromium.org > > Bug: v8:8712 > Change-Id: Ieb79dcf1354ee294ad0f479a4a6c41a77f389850 > Reviewed-on: https://chromium-review.googlesource.com/c/1460955 > Reviewed-by: Michael Stanton <mvstanton@chromium.org> > Commit-Queue: Michael Stanton <mvstanton@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59483} TBR=mvstanton@chromium.org,ishell@chromium.org Change-Id: Ifd45908ee66760ef9199d9722b7e558c31f77830 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8712 Reviewed-on: https://chromium-review.googlesource.com/c/1461997Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#59484}
-
Mike Stanton authored
(Fixed test failure in lite-mode) Introduce a PREMONOMORPHIC state to StoreGlobalIC It's used rather narrowly for now -- only when we run into an interceptor during the lookup. After the call to SetProperty, we know more. That is, the interceptor was only there because it's a new property, and the call to SetProperty ends up creating it. By delaying the initialization of the IC, we recognize the (now) created property, and can provide good feedback downstream to TurboFan. TBR=ishell@chromium.org Bug: v8:8712 Change-Id: Ieb79dcf1354ee294ad0f479a4a6c41a77f389850 Reviewed-on: https://chromium-review.googlesource.com/c/1460955Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#59483}
-
Michael Stanton authored
This reverts commit ec06b5c4. Reason for revert: Breaks "lite" builder. Original change's description: > Introduce a PREMONOMORPHIC state to StoreGlobalIC > > It's used rather narrowly for now -- only when we run into an > interceptor during the lookup. After the call to SetProperty, we know > more. That is, the interceptor was only there because it's a new > property, and the call to SetProperty ends up creating it. > > By delaying the initialization of the IC, we recognize the (now) > created property, and can provide good feedback downstream to > TurboFan. > > Bug: v8:8712 > Change-Id: I4e10ba220c8363b393c6de84ce35fe5ef0e9c427 > Reviewed-on: https://chromium-review.googlesource.com/c/1456090 > Commit-Queue: Michael Stanton <mvstanton@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59481} TBR=mvstanton@chromium.org,ishell@google.com,ishell@chromium.org Change-Id: I072a55275d64315924090a68247bb430f5c4f03d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8712 Reviewed-on: https://chromium-review.googlesource.com/c/1460954Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#59482}
-
Mike Stanton authored
It's used rather narrowly for now -- only when we run into an interceptor during the lookup. After the call to SetProperty, we know more. That is, the interceptor was only there because it's a new property, and the call to SetProperty ends up creating it. By delaying the initialization of the IC, we recognize the (now) created property, and can provide good feedback downstream to TurboFan. Bug: v8:8712 Change-Id: I4e10ba220c8363b393c6de84ce35fe5ef0e9c427 Reviewed-on: https://chromium-review.googlesource.com/c/1456090 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#59481}
-
- 31 Jan, 2019 2 commits
-
-
Z Duong Nguyen-Huu authored
According to spec https://tc39.github.io/ecma262/#sec-object.assign, https://tc39.github.io/ecma262/#sec-ordinaryownpropertykeys, object.assign should copy symbols last. The current implementation ignores that order. The idea of the fix here is to do iteration twice, one to skip symbol first then one to skip string. Bug: v8:6705 Change-Id: I27a353e0c44a8f7adcf55d7143dd3ce26bea2724 Reviewed-on: https://chromium-review.googlesource.com/c/1432597 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#59258}
-
Benedikt Meurer authored
Previously AccessorAssembler::HandlePolymorphicCase() had 4 versions of the inner loop unrolled, but we always had to check against the length after 1 (POLYMORPHIC with name) or 2 (regular POLYMORPHIC) unrolled iterations anyways, so there's not a lot of benefit to unrolling besides the potentially better branch prediction in some cases. But that doesn't seem to be beneficial even in extreme cases (in fact on ARM cores we might get some benefit from having less code instead), and probably doesn't justify the additional C++ / generated code. I used the following extreme micro-benchmark to check the worst case performance impact: ```js function test(o, n) { var result; for (var i = 0; i < n; ++i) { result = o.x; } return result; } const N = 1e8; const objs = [{x: 0}, {x:1,a:1}, {x:2,b:2}, {x:3,c:3}]; for (var j = 0; j < objs.length; ++j) test(objs[j], N); console.time('Time'); for (var j = 0; j < objs.length; ++j) test(objs[j], N); console.timeEnd('Time'); ``` Running this with --noopt shows a ~1% performance regression with this patch on a beefy z840 gLinux workstation, which gives me some confidence that overall this patch is going to be neutral and maybe beneficial in case of less powerful ARM cores. Note to performance sheriffs: This could potentially tank some performance tests. In that case we may need to revisit the unrolling. Bug: v8:8562 Change-Id: I731599a7778da1992d981d36022c407ef5c735eb Reviewed-on: https://chromium-review.googlesource.com/c/1448275Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#59252}
-
- 30 Jan, 2019 1 commit
-
-
Benedikt Meurer authored
When the length is already available from an unrolled iteration (which seems to be the common case), we can just reuse that below for the actual loop. Also it's probably cheaper to always use IntPtr instead of Smi for the length, since that way we don't need expensive SmiConstant for the abort conditions in the unrolled iterations. Change-Id: I322c5d864d58bc56c181473ca8b796a7ab27a51f Reviewed-on: https://chromium-review.googlesource.com/c/1445984Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#59211}
-
- 28 Jan, 2019 2 commits
-
-
Clemens Hammacher authored
This reverts commit c9616b0f. Reason for revert: Fails gc-stress tests: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Mac64%20GC%20Stress/5460 Original change's description: > Infer the language mode instead of passing it as a parameter to builtins > > It is better to infer the language mode from the context and the closure > instead of getting it from the feedback vector. This will allow us to use > some of these builtins even when feedback vectors are not allocated. > Language mode is only needed to decide if we need to throw an exception > when a store fails. This is on a slow path and hence deriving the language > mode is not on critical path. > > Bug: v8:8580 > Change-Id: Id0d8e78d35046f015b5cdc15d5fc3f8a17dd8757 > Reviewed-on: https://chromium-review.googlesource.com/c/1421924 > Commit-Queue: Mythri Alle <mythria@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59113} TBR=mythria@chromium.org,verwaest@chromium.org Change-Id: I584b41ca4d396165a3a294b7facee30f0c4f4a7f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8580 Reviewed-on: https://chromium-review.googlesource.com/c/1436025Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#59114}
-
Mythri authored
It is better to infer the language mode from the context and the closure instead of getting it from the feedback vector. This will allow us to use some of these builtins even when feedback vectors are not allocated. Language mode is only needed to decide if we need to throw an exception when a store fails. This is on a slow path and hence deriving the language mode is not on critical path. Bug: v8:8580 Change-Id: Id0d8e78d35046f015b5cdc15d5fc3f8a17dd8757 Reviewed-on: https://chromium-review.googlesource.com/c/1421924 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59113}
-
- 25 Jan, 2019 1 commit
-
-
Mythri authored
SetProperty now infers the language mode from the closure and the context So we no longer have to pass around the language mode. Cleanup by removing the parameter where it is no longer needed. Bug: v8:8580 Change-Id: I89452b5a762eb48a911f158d22c7bfa9e3bb1be4 Reviewed-on: https://chromium-review.googlesource.com/c/1421840 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59089}
-
- 18 Jan, 2019 1 commit
-
-
Igor Sheludko authored
Bug: v8:8477, v8:8562 Change-Id: Ieb677e0989f77ed207567d468faec0bf92752967 Reviewed-on: https://chromium-review.googlesource.com/c/1388529Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#58922}
-
- 27 Dec, 2018 1 commit
-
-
Igor Sheludko authored
Bug: v8:8477, v8:8562 Change-Id: I54b857cdacf9360b95d64147a486a0d5fa1ffe10 Reviewed-on: https://chromium-review.googlesource.com/c/1388526 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#58473}
-
- 17 Dec, 2018 3 commits
-
-
Jakob Kummerow authored
Along with HeapNumberBase and MutableHeapNumber, of course. Bug: v8:5402 Change-Id: I14a7f8052de3839cad36bb7e4ebb6da38b2ac096 Reviewed-on: https://chromium-review.googlesource.com/c/1379884 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#58293}
-
Jakob Kummerow authored
Bug: v8:5402 Change-Id: Ifdbc61eb401160d03b98336292f1725d604e7f51 Reviewed-on: https://chromium-review.googlesource.com/c/1379936 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#58283}
-
Jakob Kummerow authored
Bug: v8:5402 Change-Id: Ibaf91722165df830fd14b3b4a659802bce809bf1 Reviewed-on: https://chromium-review.googlesource.com/c/1379873Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#58275}
-
- 12 Dec, 2018 1 commit
-
-
Mythri authored
Currently, the runtime IC functions deduce the IC kind and the language mode from the feedback slot kind. To support feedback free execution (for V8 lite mode and lazy allocation of feedback vectors) we need to infer the IC kind even when feedback vectors are not present. To be able to infer the language mode without feedback vectors, this cl forces context allocation in cases where we raise the language mode in the middle of a function. The language mode is the stricter of the language mode on the SFI and the language mode of the current context. This cl updates the bytecode handlers to check for valid feedback vectors and to call into runtime if the feedback vector is not allocated. It also adds new runtime functions to be able to infer the IC kind when there is no feedback vector. Most of the builtins and handlers remain unchanged because they are only used when feedback vector is present. Bug: v8:8394 Change-Id: I1f77740c0d68ddaa0de076597f5f6bcb2e966d70 Reviewed-on: https://chromium-review.googlesource.com/c/1358516 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#58191}
-
- 11 Dec, 2018 1 commit
-
-
Ben L. Titzer authored
This is purely a renaming change. The ES spec uses the term 'detach' for the process of removing the backing store of a typed array, while V8 uses the historical term 'neuter'. Update our internal implementation, including method names and flag names, to match the spec. Note that some error messages still use the term 'neuter' since error messages are asserted by some embedder tests, like layout tests. R=bmeurer@chromium.org, yangguo@chromium.org, mstarzinger@chromium.org, mlippautz@chromium.org BUG=chromium:913887 Change-Id: I62f1c3ac9ae67ba01d612a5221afa3d92deae272 Reviewed-on: https://chromium-review.googlesource.com/c/1370036 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#58149}
-
- 07 Dec, 2018 3 commits
-
-
Jakob Gruber authored
This is a reland of f849396c Original change's description: > [nojit] Remove code stubs > > All stubs have been migrated to builtins. This CL removes most related > code. > > Bug: v8:7777, v8:5784 > Change-Id: I4470cfef34788e6c8e0fd5fd09e40e250d088dad > Reviewed-on: https://chromium-review.googlesource.com/c/1365284 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58093} Tbr: mstarzinger@chromium.org,yangguo@chromium.org,jkummerow@chromium.org,bmeurer@chromium.org Bug: v8:7777, v8:5784 Change-Id: I005ee2a820d49a75a90481d262a310e4ccfd1391 Reviewed-on: https://chromium-review.googlesource.com/c/1367746Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58101}
-
Jakob Gruber authored
This reverts commit f849396c. Reason for revert: arm64: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/24229 Original change's description: > [nojit] Remove code stubs > > All stubs have been migrated to builtins. This CL removes most related > code. > > Bug: v8:7777, v8:5784 > Change-Id: I4470cfef34788e6c8e0fd5fd09e40e250d088dad > Reviewed-on: https://chromium-review.googlesource.com/c/1365284 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58093} TBR=jkummerow@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,jarin@chromium.org,jgruber@chromium.org,bmeurer@chromium.org Change-Id: I52c3abd3f4e5872fe26ed7e527a58b118e02b387 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7777, v8:5784 Reviewed-on: https://chromium-review.googlesource.com/c/1367804Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58095}
-
Jakob Gruber authored
All stubs have been migrated to builtins. This CL removes most related code. Bug: v8:7777, v8:5784 Change-Id: I4470cfef34788e6c8e0fd5fd09e40e250d088dad Reviewed-on: https://chromium-review.googlesource.com/c/1365284 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#58093}
-
- 05 Dec, 2018 1 commit
-
-
Jakob Gruber authored
Bug: v8:7777 Change-Id: Iee3e03b0a3fea245408de4d675caa634a74aa188 Reviewed-on: https://chromium-review.googlesource.com/c/1357053Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58036}
-
- 04 Dec, 2018 1 commit
-
-
Jakob Gruber authored
This is the first (and major) step towards converting CallApiCallback and CallApiGetter stubs into builtins. The CallApiCallbackStub was parameterized with the number of arguments passed on the stack. This CL converts the compile-time parameter into an explicit runtime parameter, and removes all uses of the stub parameter. Drive-by: The implementation is now mostly consistent across platforms. Drive-by: Refactor the calling convention to free up two registers (kCallData and kHolder are now passed on the stack). Bug: v8:7777 Change-Id: I212dccc2930de89c264a13755918c9fae7842f1f Reviewed-on: https://chromium-review.googlesource.com/c/1354887 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#58005}
-
- 27 Nov, 2018 1 commit
-
-
Caitlin Potter authored
This avoids leaving the heap in an invalid state if a GC occurs during population of the cloned property array, as is done in other IC builtins. BUG=chromium:904167, v8:7611 R=jkummerow@chromium.org, ishell@chromium.org Change-Id: I0350ed2d65b72e299f7109b7d5aa86331f60e940 Reviewed-on: https://chromium-review.googlesource.com/c/1350282 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#57879}
-
- 22 Nov, 2018 1 commit
-
-
Ulan Degenbaev authored
This fixes places that assume that DescriptorArray is a WeakFixedArray. In addition to the existing: - LoadDetailsByKeyIndex - LoadValueByKeyIndex - LoadFieldTypeByKeyIndex This introduces Load*ByDescriptorEntry versions and LoadKeyByKeyIndex. Bug: v8:8486 Change-Id: I958867138df7756c715ae3d449b3206a32076514 Reviewed-on: https://chromium-review.googlesource.com/c/1346501 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#57727}
-
- 08 Nov, 2018 1 commit
-
-
Caitlin Potter authored
Change the macros added in bf84766a to only do the hard work if FLAG_unbox_double_fields is unset (otherwise, they will attempt to dereference raw float64s, which is bad!) Also adds a write barrier in CopyPropertyArrayValues for each store if it's possible that a MutableHeapNumber is cloned. BUG=chromium:901301, chromium:902965, chromium:903070, v8:7611 R=cbruni@chromium.org, jkummerow@chromium.org, ishell@chromium.org Change-Id: I224d3c4e7b0a887684bff68985b4d97021ba4cfb Reviewed-on: https://chromium-review.googlesource.com/c/1323911 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#57368}
-
- 07 Nov, 2018 3 commits
-
-
Igor Sheludko authored
because otherwise cleared weak references require special treatment during decompression. Bug: v8:7703 Change-Id: I38761d656c606e7ba7fc3075dffbd855a9f72302 Reviewed-on: https://chromium-review.googlesource.com/c/1322909 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#57315}
-
Igor Sheludko authored
This is a reland of b8e8b0de Original change's description: > [ptr-compr] Fix incorrectly used machine types > > in TurboFan, CSA, Wasm and compiler tests. Tagged values decompression > logic will depend on the machine type of the value being loaded so it must > be correct. > > Bug: v8:7703 > Change-Id: Ia9e7cc1e273e5a458d9de8aaa4adb0c970413b8b > Reviewed-on: https://chromium-review.googlesource.com/c/1319573 > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57280} Bug: v8:7703 Change-Id: I2c740bab9a800520ebfb83334345bd5641b7e408 Reviewed-on: https://chromium-review.googlesource.com/c/1320850Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#57314}
-
Caitlin Potter authored
Adds a helper macro "CloneIfMutablePrimitive", which tests if the operand is a MutableHeapNumber, and if so, clones it, otherwise returning the original value. Also modifies the signature of "CopyPropertyArrayValues" to take a "DestroySource" enum, indicating whether or not the resulting object is supplanting the source object or not, and removes all default parameters from that macro (which were not used anyways). This corrects the issue reported in chromium:901301, where StaNamedOwnProperty was replacing the value of a MutableHeapNumber referenced by both the cloned object and the source object. BUG=chromium:901301, v8:7611 R=cbruni@chromium.org, jkummerow@chromium.org Change-Id: I43df1ddc84dfa4840e680b6affeba452ce0b6629 Reviewed-on: https://chromium-review.googlesource.com/c/1318096 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#57304}
-
- 06 Nov, 2018 3 commits
-
-
Michael Achenbach authored
This reverts commit b8e8b0de. Reason for revert: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Arm%20-%20debug/8276 Original change's description: > [ptr-compr] Fix incorrectly used machine types > > in TurboFan, CSA, Wasm and compiler tests. Tagged values decompression > logic will depend on the machine type of the value being loaded so it must > be correct. > > Bug: v8:7703 > Change-Id: Ia9e7cc1e273e5a458d9de8aaa4adb0c970413b8b > Reviewed-on: https://chromium-review.googlesource.com/c/1319573 > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57280} TBR=mstarzinger@chromium.org,ishell@chromium.org Change-Id: Ia97d5bfebf8d8fe1b2b7607f63024b60cf2c584f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7703 Reviewed-on: https://chromium-review.googlesource.com/c/1320349Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#57294}
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: I6e2782a7f8589c466b54987c850d41d4ff5f6489 Reviewed-on: https://chromium-review.googlesource.com/c/1316618Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#57292}
-
Igor Sheludko authored
in TurboFan, CSA, Wasm and compiler tests. Tagged values decompression logic will depend on the machine type of the value being loaded so it must be correct. Bug: v8:7703 Change-Id: Ia9e7cc1e273e5a458d9de8aaa4adb0c970413b8b Reviewed-on: https://chromium-review.googlesource.com/c/1319573 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57280}
-
- 05 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
and split Smi out of objects.h into smi.h. Bug: v8:3770, v8:5402 Change-Id: I5ff7461495d29c785a76c79aca2616816a29ab1e Reviewed-on: https://chromium-review.googlesource.com/c/1313035Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#57252}
-