From 0eabfedb7d2a7b694a641d1fc082997c0433bb5a Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Thu, 14 Apr 2022 08:13:40 +0200 Subject: Fix cross-compilation arm64->x86_64 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTBUG-100672 Change-Id: Ibb29c7caf19315956762d9528a6b56a833488e75 Reviewed-by: Michael BrĂ¼ning --- chromium/v8/src/objects/bigint.cc | 4 ++-- chromium/v8/src/trap-handler/handler-inside-posix.cc | 12 ++++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/chromium/v8/src/objects/bigint.cc b/chromium/v8/src/objects/bigint.cc index 7c562465cb0..fa0e1abeada 100644 --- a/chromium/v8/src/objects/bigint.cc +++ b/chromium/v8/src/objects/bigint.cc @@ -2643,7 +2643,7 @@ inline BigInt::digit_t MutableBigInt::digit_mul(digit_t a, digit_t b, BigInt::digit_t MutableBigInt::digit_div(digit_t high, digit_t low, digit_t divisor, digit_t* remainder) { DCHECK(high < divisor); -#if V8_TARGET_ARCH_X64 && (__GNUC__ || __clang__) +#if defined(__x86_64__) && (defined(__GNUC__) || defined(__clang__)) digit_t quotient; digit_t rem; __asm__("divq %[divisor]" @@ -2654,7 +2654,7 @@ BigInt::digit_t MutableBigInt::digit_div(digit_t high, digit_t low, : "d"(high), "a"(low), [divisor] "rm"(divisor)); *remainder = rem; return quotient; -#elif V8_TARGET_ARCH_IA32 && (__GNUC__ || __clang__) +#elif defined(__i386__) && (defined(__GNUC__) || defined(__clang__)) digit_t quotient; digit_t rem; __asm__("divl %[divisor]" diff --git a/chromium/v8/src/trap-handler/handler-inside-posix.cc b/chromium/v8/src/trap-handler/handler-inside-posix.cc index 908c8c832ca..182043d43dd 100644 --- a/chromium/v8/src/trap-handler/handler-inside-posix.cc +++ b/chromium/v8/src/trap-handler/handler-inside-posix.cc @@ -106,14 +106,18 @@ bool TryHandleSignal(int signum, siginfo_t* info, void* context) { SigUnmaskStack unmask(sigs); ucontext_t* uc = reinterpret_cast(context); -#if V8_OS_LINUX && V8_TARGET_ARCH_X64 +#if V8_OS_LINUX && V8_HOST_ARCH_X64 auto* context_ip = &uc->uc_mcontext.gregs[REG_RIP]; -#elif V8_OS_MACOSX && V8_TARGET_ARCH_ARM64 +#elif V8_OS_LINUX && V8_HOST_ARCH_ARM64 + auto* context_ip = &uc->uc_mcontext.gregs[REG_PC]; +#elif V8_OS_MACOSX && V8_HOST_ARCH_ARM64 auto* context_ip = &uc->uc_mcontext->__ss.__pc; -#elif V8_OS_MACOSX && V8_TARGET_ARCH_X64 +#elif V8_OS_MACOSX && V8_HOST_ARCH_X64 auto* context_ip = &uc->uc_mcontext->__ss.__rip; -#elif V8_OS_FREEBSD && V8_TARGET_ARCH_X64 +#elif V8_OS_FREEBSD && V8_HOST_ARCH_X64 auto* context_ip = &uc->uc_mcontext.mc_rip; +#elif V8_OS_FREEBSD && V8_HOST_ARCH_ARM64 + auto* context_ip = &uc->uc_mcontext.mc_pc; #else #error Unsupported platform #endif -- cgit v1.2.1