Skip to content

Commit 1ccca91

Browse files
addaleaxtargos
authored andcommitted
deps: cherry-pick fc0ddf5 from upstream V8
Original commit message: [snapshot] Always align embedded blob code pointer and size Other platforms besides ARM64 Windows may also have alignment requirements, e.g. PPC and s390. These requirements may affect both the code pointer field and the size field, and so they each need alignment directives because they are stored in different sections. Since aligning wastes a handful of bytes at most, not making alignment conditional on the platform type seems like a good idea. Refs: nodejs#24875 Change-Id: I1f58606af294be65e74a1f107cd05fc21e032704 Reviewed-on: https://chromium-review.googlesource.com/c/1433778 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#59058} Refs: v8/v8@fc0ddf5
1 parent ebc1347 commit 1ccca91

3 files changed

Lines changed: 6 additions & 7 deletions

File tree

common.gypi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838

3939
# Reset this number to 0 on major V8 upgrades.
4040
# Increment by one for each non-official patch applied to deps/v8.
41-
'v8_embedder_string': '-node.0',
41+
'v8_embedder_string': '-node.1',
4242

4343
##### V8 defaults for Node.js #####
4444

deps/v8/src/snapshot/embedded-file-writer.cc

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -553,13 +553,11 @@ void PlatformDependentEmbeddedFileWriter::AlignToCodeAlignment() {
553553
}
554554

555555
void PlatformDependentEmbeddedFileWriter::AlignToDataAlignment() {
556-
#if defined(V8_OS_WIN) && defined(V8_TARGET_ARCH_ARM64)
557-
// On Windows ARM64, instruction "ldr xt,[xn,v8_Default_embedded_blob_]" is
558-
// generated by clang-cl to load elements in v8_Default_embedded_blob_.
559-
// The generated instruction has scale 3 which requires the load target to be
560-
// aligned at 8 bytes (2^3).
556+
// On Windows ARM64, s390, PPC and possibly more platforms, aligned load
557+
// instructions are used to retrieve v8_Default_embedded_blob_ and/or
558+
// v8_Default_embedded_blob_size_. The generated instructions require the
559+
// load target to be aligned at 8 bytes (2^3).
561560
fprintf(fp_, ".balign 8\n");
562-
#endif
563561
}
564562

565563
void PlatformDependentEmbeddedFileWriter::Comment(const char* string) {

deps/v8/src/snapshot/embedded-file-writer.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,7 @@ class EmbeddedFileWriter : public EmbeddedFileWriterInterface {
286286

287287
w->Comment("The size of the embedded blob in bytes.");
288288
w->SectionRoData();
289+
w->AlignToDataAlignment();
289290
w->DeclareUint32(embedded_blob_size_symbol, blob->size());
290291
w->Newline();
291292
}

0 commit comments

Comments
 (0)