mirror of
https://github.com/dart-lang/sdk
synced 2024-09-04 16:03:44 +00:00
[vm/ffi] Fix host-target word mismatch breaking AOT callbacks in ARM_X64.
Addresses https://github.com/dart-lang/sdk/issues/38718 Change-Id: If416feb182da1d3a13d4a78770c9e240a0fe17cc Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/120584 Reviewed-by: Martin Kustermann <kustermann@google.com> Commit-Queue: Samir Jindel <sjindel@google.com>
This commit is contained in:
parent
5f7b837195
commit
8c5236f55e
|
@ -750,6 +750,7 @@ class PrecompilerCompilerConfiguration extends CompilerConfiguration
|
|||
case Architecture.ia32:
|
||||
case Architecture.simarm:
|
||||
case Architecture.arm:
|
||||
case Architecture.arm_x64:
|
||||
case Architecture.arm64:
|
||||
ccFlags = null;
|
||||
break;
|
||||
|
|
|
@ -925,16 +925,17 @@ void BlobImageWriter::WriteText(WriteStream* clustered_stream, bool vm) {
|
|||
|
||||
// This header provides the gap to make the instructions snapshot look like a
|
||||
// HeapPage.
|
||||
instructions_blob_stream_.WriteWord(instructions_length);
|
||||
instructions_blob_stream_.WriteTargetWord(instructions_length);
|
||||
#if defined(DART_PRECOMPILER)
|
||||
instructions_blob_stream_.WriteWord(elf_ != nullptr ? bss_base - segment_base
|
||||
: 0);
|
||||
instructions_blob_stream_.WriteTargetWord(
|
||||
elf_ != nullptr ? bss_base - segment_base : 0);
|
||||
#else
|
||||
instructions_blob_stream_.WriteWord(0); // No relocations.
|
||||
instructions_blob_stream_.WriteTargetWord(0); // No relocations.
|
||||
#endif
|
||||
intptr_t header_words = Image::kHeaderSize / sizeof(uword);
|
||||
const intptr_t header_words =
|
||||
Image::kHeaderSize / sizeof(compiler::target::uword);
|
||||
for (intptr_t i = Image::kHeaderFields; i < header_words; i++) {
|
||||
instructions_blob_stream_.WriteWord(0);
|
||||
instructions_blob_stream_.WriteTargetWord(0);
|
||||
}
|
||||
|
||||
intptr_t text_offset = 0;
|
||||
|
|
Loading…
Reference in a new issue