- 17 Dec, 2018 1 commit
-
-
Jakob Gruber authored
This changes Torque's builtin pointers to use a Smi representation underneath instead of storing the Code target object. Callsites look up the target entry point through IsolateData::builtin_entry_table. The notable effect of this CL is that builtin pointer calls no longer call any on-heap Code. Bug: v8:7777 Change-Id: Ibf6c749dd46cae7aba51494b09921229dd436f63 Reviewed-on: https://chromium-review.googlesource.com/c/1379880 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#58286}
-
- 14 Dec, 2018 1 commit
-
-
Jakob Gruber authored
In preparation for upcoming work on Torque function pointers. This table will be used to look up the entry address in order to call there directly without going through the (on-heap) trampoline. Bug: v8:7777 Change-Id: If713430c843e85371a5aaef8a3bfb5da9e0ea903 Reviewed-on: https://chromium-review.googlesource.com/c/1378172Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58245}
-
- 05 Dec, 2018 1 commit
-
-
Clemens Hammacher authored
We currently compute this value from the size of the external table, which we get from the Isolate. This size is isolate-independent though, so it can just be a constant. R=mstarzinger@chromium.org Bug: chromium:912043 Change-Id: If1c09a56b1a985b855f5b65818322979c194d772 Reviewed-on: https://chromium-review.googlesource.com/c/1362954Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58045}
-
- 29 Nov, 2018 2 commits
-
-
Peter Marshall authored
This is a reland of d5f4a33e Landing with test disabled for now. Original change's description: > [cpu-profiler] Fix stack iterability for fast C calls with no exit frame > > Before fast C calls, store the current FP and PC on the isolate. When > iterating frames in SafeStackFrameIterator, check if these fields are > set and start iterating at the calling frame's FP instead of the current > FP, which will be in C++ code. We need to do this because c_entry_fp is > not set on the Isolate for Fast-C-Calls because we don't build an exit > frame. > > This change makes stack samples that occur within 'Fast-C-Calls' > iterable, meaning we can properly attribute ticks within the JS caller. > > Fast-C-Calls can't call back into JS code, so we can only ever have one > such call on the stack at a time, allowing us to store the FP on the > isolate rather than the stack. > > TBR=v8-mips-ports@googlegroups.com > > Bug: v8:8464, v8:7202 > Change-Id: I7bf39eba779dad34754d5759d741c421b362a406 > Reviewed-on: https://chromium-review.googlesource.com/c/1340241 > Commit-Queue: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Martyn Capewell <martyn.capewell@arm.com> > Reviewed-by: Alexei Filippov <alph@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57896} TBR=v8-mips-ports@googlegroups.com TBR=jgruber@chromium.org Bug: v8:8464, v8:7202 Change-Id: I260d5ab3bc12c9c4529fb52a297a1040dcaa8ebf Reviewed-on: https://chromium-review.googlesource.com/c/1354466 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#57935}
-
Michael Achenbach authored
This reverts commit ddaa1f0a. Reason for revert: Still flaky on windows. Maybe reland and keep skipped on windows? https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win32%20-%20nosnap%20-%20shared/31002 https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64/27826 Original change's description: > Reland "[cpu-profiler] Fix stack iterability for fast C calls with no exit frame" > > This is a reland of d5f4a33e > > Original change's description: > > [cpu-profiler] Fix stack iterability for fast C calls with no exit frame > > > > Before fast C calls, store the current FP and PC on the isolate. When > > iterating frames in SafeStackFrameIterator, check if these fields are > > set and start iterating at the calling frame's FP instead of the current > > FP, which will be in C++ code. We need to do this because c_entry_fp is > > not set on the Isolate for Fast-C-Calls because we don't build an exit > > frame. > > > > This change makes stack samples that occur within 'Fast-C-Calls' > > iterable, meaning we can properly attribute ticks within the JS caller. > > > > Fast-C-Calls can't call back into JS code, so we can only ever have one > > such call on the stack at a time, allowing us to store the FP on the > > isolate rather than the stack. > > > > TBR=v8-mips-ports@googlegroups.com > > > > Bug: v8:8464, v8:7202 > > Change-Id: I7bf39eba779dad34754d5759d741c421b362a406 > > Reviewed-on: https://chromium-review.googlesource.com/c/1340241 > > Commit-Queue: Peter Marshall <petermarshall@chromium.org> > > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > > Reviewed-by: Martyn Capewell <martyn.capewell@arm.com> > > Reviewed-by: Alexei Filippov <alph@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#57896} > > TBR=v8-mips-ports@googlegroups.com > TBR=jgruber@chromium.org > > Bug: v8:8464, v8:7202 > Change-Id: I5f37ded4ea572e8e9890ba186aa3d74a0dfc1274 > Reviewed-on: https://chromium-review.googlesource.com/c/1354042 > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Commit-Queue: Peter Marshall <petermarshall@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57912} TBR=alph@chromium.org,jgruber@chromium.org,petermarshall@chromium.org,martyn.capewell@arm.com,v8-arm-ports@googlegroups.com,v8-mips-ports@googlegroups.com,ibogosavljevic@wavecomp.com Change-Id: If810648dbf60df2ff70455b6e8ef466136c90145 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8464, v8:7202 Reviewed-on: https://chromium-review.googlesource.com/c/1354461Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#57925}
-
- 28 Nov, 2018 3 commits
-
-
Peter Marshall authored
This is a reland of d5f4a33e Original change's description: > [cpu-profiler] Fix stack iterability for fast C calls with no exit frame > > Before fast C calls, store the current FP and PC on the isolate. When > iterating frames in SafeStackFrameIterator, check if these fields are > set and start iterating at the calling frame's FP instead of the current > FP, which will be in C++ code. We need to do this because c_entry_fp is > not set on the Isolate for Fast-C-Calls because we don't build an exit > frame. > > This change makes stack samples that occur within 'Fast-C-Calls' > iterable, meaning we can properly attribute ticks within the JS caller. > > Fast-C-Calls can't call back into JS code, so we can only ever have one > such call on the stack at a time, allowing us to store the FP on the > isolate rather than the stack. > > TBR=v8-mips-ports@googlegroups.com > > Bug: v8:8464, v8:7202 > Change-Id: I7bf39eba779dad34754d5759d741c421b362a406 > Reviewed-on: https://chromium-review.googlesource.com/c/1340241 > Commit-Queue: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Martyn Capewell <martyn.capewell@arm.com> > Reviewed-by: Alexei Filippov <alph@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57896} TBR=v8-mips-ports@googlegroups.com TBR=jgruber@chromium.org Bug: v8:8464, v8:7202 Change-Id: I5f37ded4ea572e8e9890ba186aa3d74a0dfc1274 Reviewed-on: https://chromium-review.googlesource.com/c/1354042Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#57912}
-
Maya Lekova authored
This reverts commit d5f4a33e. Reason for revert: Seems to cause a no snapshot build failure - https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20nosnap%20-%20debug/21967 Original change's description: > [cpu-profiler] Fix stack iterability for fast C calls with no exit frame > > Before fast C calls, store the current FP and PC on the isolate. When > iterating frames in SafeStackFrameIterator, check if these fields are > set and start iterating at the calling frame's FP instead of the current > FP, which will be in C++ code. We need to do this because c_entry_fp is > not set on the Isolate for Fast-C-Calls because we don't build an exit > frame. > > This change makes stack samples that occur within 'Fast-C-Calls' > iterable, meaning we can properly attribute ticks within the JS caller. > > Fast-C-Calls can't call back into JS code, so we can only ever have one > such call on the stack at a time, allowing us to store the FP on the > isolate rather than the stack. > > TBR=v8-mips-ports@googlegroups.com > > Bug: v8:8464, v8:7202 > Change-Id: I7bf39eba779dad34754d5759d741c421b362a406 > Reviewed-on: https://chromium-review.googlesource.com/c/1340241 > Commit-Queue: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Martyn Capewell <martyn.capewell@arm.com> > Reviewed-by: Alexei Filippov <alph@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57896} TBR=alph@chromium.org,jgruber@chromium.org,petermarshall@chromium.org,martyn.capewell@arm.com,v8-arm-ports@googlegroups.com,v8-mips-ports@googlegroups.com,ibogosavljevic@wavecomp.com Change-Id: I85f846e57b6fa845e7770c616435cebffdb2a245 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8464, v8:7202 Reviewed-on: https://chromium-review.googlesource.com/c/1352302Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#57899}
-
Peter Marshall authored
Before fast C calls, store the current FP and PC on the isolate. When iterating frames in SafeStackFrameIterator, check if these fields are set and start iterating at the calling frame's FP instead of the current FP, which will be in C++ code. We need to do this because c_entry_fp is not set on the Isolate for Fast-C-Calls because we don't build an exit frame. This change makes stack samples that occur within 'Fast-C-Calls' iterable, meaning we can properly attribute ticks within the JS caller. Fast-C-Calls can't call back into JS code, so we can only ever have one such call on the stack at a time, allowing us to store the FP on the isolate rather than the stack. TBR=v8-mips-ports@googlegroups.com Bug: v8:8464, v8:7202 Change-Id: I7bf39eba779dad34754d5759d741c421b362a406 Reviewed-on: https://chromium-review.googlesource.com/c/1340241 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Martyn Capewell <martyn.capewell@arm.com> Reviewed-by: Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#57896}
-
- 21 Nov, 2018 1 commit
-
-
Jakob Gruber authored
Verification has served its purpose now that kRootRegister is fully supported on ia32. Bug: v8:6666 Change-Id: I037617bf900f161c221228107c9f1352d4815d87 Reviewed-on: https://chromium-review.googlesource.com/c/1296130Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57666}
-
- 12 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: I413ce57f7fa91cef2445995ca22650477f92b0df Reviewed-on: https://chromium-review.googlesource.com/c/1321892Reviewed-by: Dan Elphick <delphick@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#57445}
-
- 30 Oct, 2018 1 commit
-
-
Igor Sheludko authored
to control how the memory for Isolate object is allocated. This is the support for pointer-compression friendly heap layout. Bug: v8:8182 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Ida36b81ee22bd865005c394748b62d4c0897d746 Reviewed-on: https://chromium-review.googlesource.com/c/1251548 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#57131}
-
- 26 Oct, 2018 1 commit
-
-
Igor Sheludko authored
and also move embedder fields from Isolate to IsolateData. The external memory counter fields are temporarily moved to IsolateData in order to avoid unexpected Node JS bot failures which happen if the fields are left in the Heap class. Bug: v8:8182 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I9d58f235c0ce40e110f595addd03b80b3617aa77 Reviewed-on: https://chromium-review.googlesource.com/c/1278793 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#57037}
-
- 25 Oct, 2018 1 commit
-
-
Igor Sheludko authored
Bug: v8:8182 Change-Id: I4dadd9cab071ecd4314c370be5f444e36acb708e Reviewed-on: https://chromium-review.googlesource.com/c/1297317Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#56973}
-
- 22 Oct, 2018 1 commit
-
-
Jakob Gruber authored
This removes a bunch of porting helpers, e.g. scopes that mark the addressability of ebx, printing embedded builtin candidates, and the call/jump mechanism through a virtual target register. This also disables root register verification by default on ia32. It can be completely removed in a bit. Bug: v8:6666 Change-Id: I4705d61991ddc57c30981c311a1c8c5e2f8ddf4d Reviewed-on: https://chromium-review.googlesource.com/c/1288271Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#56864}
-
- 16 Oct, 2018 3 commits
-
-
Jakob Gruber authored
This is a reland of 65070355 Original change's description: > [ia32,root] Add indirect calls and jumps through virtual register > > This adds a temporary mechanism for isolate-independent calls and > jumps. The problem was that - as ia32 doesn't have a scratch register > - Call and Jump cannot call through a register. This CL adds a > so-called virtual register (= a pointer-sized field) on IsolateData. > > The virtual register can be removed once pc-relative calls are > implemented and all builtins have been embedded. > > Bug: v8:6666 > Change-Id: I1f9d8a25643fad0b3919dd813dbe219d20fcc6bc > Reviewed-on: https://chromium-review.googlesource.com/c/1282991 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56693} TBR=sigurds@chromium.org Bug: v8:6666 Change-Id: If463e68036673c7873d0d5e1a8a01ef31263cbfa Reviewed-on: https://chromium-review.googlesource.com/c/1283052 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#56700}
-
Jakob Gruber authored
This reverts commit 65070355. Reason for revert: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20noi18n%20-%20debug/23308 Original change's description: > [ia32,root] Add indirect calls and jumps through virtual register > > This adds a temporary mechanism for isolate-independent calls and > jumps. The problem was that - as ia32 doesn't have a scratch register > - Call and Jump cannot call through a register. This CL adds a > so-called virtual register (= a pointer-sized field) on IsolateData. > > The virtual register can be removed once pc-relative calls are > implemented and all builtins have been embedded. > > Bug: v8:6666 > Change-Id: I1f9d8a25643fad0b3919dd813dbe219d20fcc6bc > Reviewed-on: https://chromium-review.googlesource.com/c/1282991 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56693} TBR=sigurds@chromium.org,jgruber@chromium.org,ishell@chromium.org Change-Id: I782651140eee3e75d57ad57d614a981e420fdfeb No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6666 Reviewed-on: https://chromium-review.googlesource.com/c/1283051Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#56694}
-
Jakob Gruber authored
This adds a temporary mechanism for isolate-independent calls and jumps. The problem was that - as ia32 doesn't have a scratch register - Call and Jump cannot call through a register. This CL adds a so-called virtual register (= a pointer-sized field) on IsolateData. The virtual register can be removed once pc-relative calls are implemented and all builtins have been embedded. Bug: v8:6666 Change-Id: I1f9d8a25643fad0b3919dd813dbe219d20fcc6bc Reviewed-on: https://chromium-review.googlesource.com/c/1282991 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#56693}
-
- 15 Oct, 2018 1 commit
-
-
Jakob Gruber authored
With this CL we finally actually set the root register to the correct value. Verification is still preserved by keeping a magic number in IsolateData. Bug: v8:6666 Change-Id: I89cb7cb36f977ac677ec33a814a2798baab4cec4 Reviewed-on: https://chromium-review.googlesource.com/c/1278277Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#56627}
-
- 11 Oct, 2018 1 commit
-
-
Igor Sheludko authored
... containing RootsTable, ExternalReferenceTable, builtins array and potentially some other data that can be accessed via the RootRegister. This is a preliminary step before adding support for pointer-compression friendly heap layout. Bug: v8:8182 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I2899f657aaff1351a5304afa0b1a4c5ae4cfc31d Reviewed-on: https://chromium-review.googlesource.com/c/1245426Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#56551}
-