summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2022-04-14 08:13:40 +0200
committerMichal Klocek <michal.klocek@qt.io>2022-05-03 11:06:24 +0000
commit0eabfedb7d2a7b694a641d1fc082997c0433bb5a (patch)
treed2a05a08b220e587552260d8a6a21ce3cc864023
parent28e8a30f87a20cf8865c7ad0afb9582dd0f6bfab (diff)
downloadqtwebengine-chromium-0eabfedb7d2a7b694a641d1fc082997c0433bb5a.tar.gz
Fix cross-compilation arm64->x86_64
Task-number: QTBUG-100672 Change-Id: Ibb29c7caf19315956762d9528a6b56a833488e75 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
-rw-r--r--chromium/v8/src/objects/bigint.cc4
-rw-r--r--chromium/v8/src/trap-handler/handler-inside-posix.cc12
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<ucontext_t*>(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