- 01 Sep, 2021 1 commit
-
-
Hao Xu authored
This is a reland of commit 40af03b8 The original CL failed one test in Windows, and this CL fix this issue. Original changes's description: > [codegen] Align the code start at 64 byte in x64 > > In order to make loop header aligned at 64 byte (relative to memory address), code start should also be aligned at 64 byte. > > Bug: chromium:1231471 > Change-Id: I95390babd9cc78492e0beb0f1b03901eb481d5d5 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3094167 > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Hao A Xu <hao.a.xu@intel.com> > Cr-Commit-Position: refs/heads/main@{#76484} Bug: chromium:1231471 Change-Id: Ia927305c792c7486588bc15e9e87840d6db18478 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3133957Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Hao A Xu <hao.a.xu@intel.com> Cr-Commit-Position: refs/heads/main@{#76617}
-
- 25 Aug, 2021 2 commits
-
-
Leszek Swirski authored
This reverts commit 40af03b8. Reason for revert: Breaks on win https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Win64%20-%20debug/39151/overview Original change's description: > [codegen] Align the code start at 64 byte in x64 > > In order to make loop header aligned at 64 byte (relative to memory address), code start should also be aligned at 64 byte. > > Bug: chromium:1231471 > Change-Id: I95390babd9cc78492e0beb0f1b03901eb481d5d5 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3094167 > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Hao A Xu <hao.a.xu@intel.com> > Cr-Commit-Position: refs/heads/main@{#76484} Bug: chromium:1231471 Change-Id: I93ad896d40e8bb906a05eab8e03980ce2061b9c0 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3118005 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Owners-Override: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/main@{#76488}
-
Hao Xu authored
In order to make loop header aligned at 64 byte (relative to memory address), code start should also be aligned at 64 byte. Bug: chromium:1231471 Change-Id: I95390babd9cc78492e0beb0f1b03901eb481d5d5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3094167Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Hao A Xu <hao.a.xu@intel.com> Cr-Commit-Position: refs/heads/main@{#76484}
-
- 27 Jul, 2021 1 commit
-
-
Vasili Skurydzin authored
This changes builtin definition so that builtins are now located in GL .text section, to maintain their alignment in the resulting binaries and make sure the off-heap code is aligned to kCodeAlignment. Change-Id: I4662ca59273fa2dd11e7ecf63969597b9dd9664b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3054431Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Milad Fa <mfarazma@redhat.com> Commit-Queue: Vasili Skurydzin <vasili.skurydzin@ibm.com> Cr-Commit-Position: refs/heads/master@{#75940}
-
- 28 Oct, 2020 1 commit
-
-
Jakob Gruber authored
The embedded metadata section is the off-heap equivalent to an on-heap Code object's metadata section. It contains no executable data, thus .rodata is the natural home for it. Another motivation is that some platforms do not grant read permissions on the .text section. Embedded blob stats before: EmbeddedData: Total size: 1322944 Data size: 25952 Code size: 1296992 And after: EmbeddedData: Total size: 1323372 Data size: 121452 Code size: 1201920 (Slight size increase due to additional padding.) Bug: v8:11036,v8:10707 Change-Id: Ib6b54a7e947966c7bd2fcc1e7e44c85e352f0063 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2502334Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#70822}
-
- 20 Aug, 2020 1 commit
-
-
Milad Farazmand authored
Port 929dd374 Original Commit Message: When CFI is enabled this adds a check against this list whenever a new return address must be set in a deoptimized frame, as a mitigation for ROP attacks. The list is known at linking time so that its content and the pointer to it can be stored in a read-only memory section. The check is performed in the signing function, which is no longer generic, as well as when setting the current pc of the frame. Since the pc is now only signed when setting the caller's pc, there is no need for ReplaceContext anymore. R=salome.thirot@arm.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I5005096811c289707e2d080477c60ae2ed4bf38b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2365372Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#69502}
-
- 19 Aug, 2020 1 commit
-
-
Salome Thirot authored
When CFI is enabled this adds a check against this list whenever a new return address must be set in a deoptimized frame, as a mitigation for ROP attacks. The list is known at linking time so that its content and the pointer to it can be stored in a read-only memory section. The check is performed in the signing function, which is no longer generic, as well as when setting the current pc of the frame. Since the pc is now only signed when setting the caller's pc, there is no need for ReplaceContext anymore. Bug: v8:10026 Change-Id: I5e85a62b94722051716fdeba476db383c702a318 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2287490Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Rodolph Perfetta <rodolph.perfetta@arm.com> Cr-Commit-Position: refs/heads/master@{#69478}
-
- 17 Apr, 2020 1 commit
-
-
Jiaxun Yang authored
GAS have a auto-align function which will align all the directive data into it's nature boundary. And we're using .octa to present data in embedded.S, which will be auto-aligned into 128-bit boundary. It can break relatve offset in generated binary. So we workaround it by forcing generate .long DataDirective on MIPS. Also I rewoked WriteByteChunk so it can accept any kind of directive now. Further more, implementation of HexLiteral is indentical on generic, aix and mac so I merged them into base. Bug: v8:10420 Change-Id: I0ff791412360769510735659f909524c5f96d3e0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2153187Reviewed-by:
Dan Elphick <delphick@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#67198}
-
- 07 Nov, 2019 1 commit
-
-
Matheus Marchini authored
Lack of size information can cause debugging and observability tools to misbehave or to fail. We can see the size for all builtins is zero with objdump: $ objdump -t d8 | grep Builtins_ArgumentsAdaptorTrampoline 0000000001084a00 l F .text 0000000000000000 Builtins_ArgumentsAdaptorTrampoline ^ Size is zero Tools like bpftrace rely on the function size to guarantee a tracepoint is added within function boundaries. Without size information, those tools can't guarantee a tracepoint will be added safely. Add .size directive for each builtin function, as described in https://sourceware.org/binutils/docs-2.24/as/Size.html#Size, to fix this issue. We can see with objdump that the size is properly set: $ objdump -t d8 | grep Builtins_ArgumentsAdaptorTrampoline 00000000010bf820 l F .text 0000000000000140 Builtins_ArgumentsAdaptorTrampoline R=bmeurer@chromium.org, hpayer@chromium.org, verwaest@chromium.org, yangguo@chromium.org Change-Id: I4cd2b0a12b629498dd9d7465cc1002dda37028c7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1898807 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64824}
-
- 27 May, 2019 1 commit
-
-
Jakob Gruber authored
This moves the platform-specific WriteByteChunk (& friends) into platform-specific embedded file writers. Bug: v8:9103 Change-Id: I0113c90dbf661a39dabe62b420cf6a160ee1be1d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1631412 Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#61852}
-
- 23 May, 2019 1 commit
-
-
Jakob Gruber authored
Split out embedded file writers for AIX, Windows, and macOS. These are no longer selected by compile-time defines (e.g. V8_OS_WIN, V8_TARGET_ARCH_X64) but by --target-os and --target-arch runtime flags. Bug: v8:9103 Change-Id: I5d5cac15e48b5c743d74f8a382606a6194ba7865 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624216 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#61785}
-