Skip to content

Commit f9142b8

Browse files
committed
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: #24875 Change-Id: I1f58606af294be65e74a1f107cd05fc21e032704 Reviewed-on: https://chromium-review.googlesource.com/c/1433778 Commit-Queue: Jakob Gruber <[email protected]> Reviewed-by: Jakob Gruber <[email protected]> Cr-Commit-Position: refs/heads/master@{#59058} Refs: v8/v8@fc0ddf5
1 parent 061446d commit f9142b8

File tree

3 files changed

+6
-7
lines changed

3 files changed

+6
-7
lines changed

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
@@ -364,13 +364,11 @@ void PlatformDependentEmbeddedFileWriter::AlignToCodeAlignment() {
364364
}
365365

366366
void PlatformDependentEmbeddedFileWriter::AlignToDataAlignment() {
367-
#if defined(V8_OS_WIN) && defined(V8_TARGET_ARCH_ARM64)
368-
// On Windows ARM64, instruction "ldr xt,[xn,v8_Default_embedded_blob_]" is
369-
// generated by clang-cl to load elements in v8_Default_embedded_blob_.
370-
// The generated instruction has scale 3 which requires the load target to be
371-
// aligned at 8 bytes (2^3).
367+
// On Windows ARM64, s390, PPC and possibly more platforms, aligned load
368+
// instructions are used to retrieve v8_Default_embedded_blob_ and/or
369+
// v8_Default_embedded_blob_size_. The generated instructions require the
370+
// load target to be aligned at 8 bytes (2^3).
372371
fprintf(fp_, ".balign 8\n");
373-
#endif
374372
}
375373

376374
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
@@ -196,6 +196,7 @@ class EmbeddedFileWriter {
196196

197197
w->Comment("The size of the embedded blob in bytes.");
198198
w->SectionRoData();
199+
w->AlignToDataAlignment();
199200
w->DeclareUint32(embedded_blob_size_symbol, blob->size());
200201
w->Newline();
201202
}

0 commit comments

Comments
 (0)