[vm, ffi] Fix Fuchsia ARM64 build.

TEST=ci
Bug: https://github.com/dart-lang/sdk/issues/52579
Cq-Include-Trybots: luci.dart.try:vm-fuchsia-release-x64-try,vm-fuchsia-release-arm64-try
Change-Id: I3e3377d0c973614b83664bfd704d5efe532d329f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/493968
Commit-Queue: Liam Appelbe <liama@google.com>
Auto-Submit: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Liam Appelbe <liama@google.com>
This commit is contained in:
Ryan Macnak
2026-04-08 20:29:40 -07:00
committed by Commit Queue
parent 9bec262263
commit a0ab33ac52
2 changed files with 11 additions and 3 deletions
+7 -2
View File
@@ -144,7 +144,9 @@ _SimulatorFfiCallbackTrampoline:
SimulatorFfiCallbackTrampoline:
#endif
LOCAL_SYMBOL(start):
#if defined(__APPLE__)
#if defined(__Fuchsia__)
.rept 483 // FfiCallbackMetadata::NumCallbackTrampolinesPerPage()
#elif defined(__APPLE__)
.rept 2019 // FfiCallbackMetadata::NumCallbackTrampolinesPerPage()
#else
.rept 8163 // FfiCallbackMetadata::NumCallbackTrampolinesPerPage()
@@ -176,7 +178,10 @@ LOCAL_SYMBOL(body):
mov x1, x9 // I.e., which callback.
adr x2, LOCAL_SYMBOL(start)
#if defined(__APPLE__)
#if defined(__Fuchsia__)
and x2, x2, ~(0x1000-1) // FfiCallbackMetadata::kPageSize = 4k
add x2, x2, 0x2000
#elif defined(__APPLE__)
and x2, x2, ~(0x4000-1) // FfiCallbackMetadata::kPageSize = 16k
add x2, x2, 0x8000
#else
+4 -1
View File
@@ -1834,7 +1834,10 @@ extern "C" void DoRedirectedFfiCallback(CallbackContext* ctxt,
// Assumptions in ffi_trampolines_arm64.S
COMPILE_ASSERT(sizeof(CallbackContext) == 144);
COMPILE_ASSERT(FfiCallbackMetadata::kDoRedirectedFfiCallback == 1);
#if defined(DART_TARGET_OS_MACOS)
#if defined(DART_TARGET_OS_FUCHSIA)
COMPILE_ASSERT(FfiCallbackMetadata::kPageSize == 4 * KB);
COMPILE_ASSERT(FfiCallbackMetadata::NumCallbackTrampolinesPerPage() == 483);
#elif defined(DART_TARGET_OS_MACOS)
COMPILE_ASSERT(FfiCallbackMetadata::kPageSize == 16 * KB);
COMPILE_ASSERT(FfiCallbackMetadata::NumCallbackTrampolinesPerPage() == 2019);
#else