summaryrefslogtreecommitdiff
path: root/dev-lang/spidermonkey/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-11-24 07:10:12 +0000
committerV3n3RiX <venerix@koprulu.sector>2022-11-24 07:10:12 +0000
commita59ffccce3bf214fae9932cc42400eeeaec25c6c (patch)
tree62251d3d21f2b36c2fbc08a3343513934bc06a36 /dev-lang/spidermonkey/files
parente33383d972aad8129fd4c1ee2b87f529f6efa8e9 (diff)
gentoo auto-resync : 24:11:2022 - 07:10:12
Diffstat (limited to 'dev-lang/spidermonkey/files')
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-60.5.2-ia64-fix-virtual-address-length.patch59
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-60.5.2-ia64-support.patch44
2 files changed, 0 insertions, 103 deletions
diff --git a/dev-lang/spidermonkey/files/spidermonkey-60.5.2-ia64-fix-virtual-address-length.patch b/dev-lang/spidermonkey/files/spidermonkey-60.5.2-ia64-fix-virtual-address-length.patch
deleted file mode 100644
index 8b2245f1e353..000000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-60.5.2-ia64-fix-virtual-address-length.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 8099213b51180254b322332ecd573239da4212c4 Mon Sep 17 00:00:00 2001
-From: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Thu, 23 Jan 2020 22:57:53 +0000
-Subject: [PATCH] ProcessExecutableMemory.cpp: fix virtual address length on
- ia64
-
-ia64's usable virtual address space is page dependent. For 16K
-pages with 3 levels of page tables de can address only 44 bits
-of virtual memory, not default 47.
-
-The change makes page size detection dynamic and adapts to
-addressable bits. On ia64 it is '4 * log2(page_size/8)'.
-
-Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
----
- js/src/jit/ProcessExecutableMemory.cpp | 25 +++++++++++++++++++++++++
- 1 file changed, 25 insertions(+)
-
-diff --git a/js/src/jit/ProcessExecutableMemory.cpp b/js/src/jit/ProcessExecutableMemory.cpp
-index 9e55c262..8581c150 100644
---- a/js/src/jit/ProcessExecutableMemory.cpp
-+++ b/js/src/jit/ProcessExecutableMemory.cpp
-
-@@ -248,7 +248,32 @@ static void* ComputeRandomAllocationAddress() {
- // x64 CPUs have a 48-bit address space and on some platforms the OS will
- // give us access to 47 bits, so to be safe we right shift by 18 to leave
- // 46 bits.
-+# ifdef __ia64__
-+ // On ia64 virtual address space looks like one of:
-+ // virt_addr_64 = [ <63..61> | <unimplemented> | L3 | L2 | L1 | offset ]
-+ // virt_addr_64 = [ <63..61> | <unimplemented> | L4 | L3 | L2 | L1 | offset ]
-+ // where L{1..L4} are page tables. Each page table (except top-level L3 or L4)
-+ // is itself a page-size entry and can store PageSize / 8 entries. Top-level
-+ // entry is 1/8 of of L1/L2 (as 3 upper bits are part of <63..61> address part).
-+ // Note: that makes addressable size directly depend on page size.
-+ //
-+ // We conservatively assume 3 levels of page tables here. This makes the
-+ // following formula:
-+ // L3 = log2(PAGE / 8 / 8) = log2(PAGE / 8) - 3
-+ // L2 = log2(PAGE / 8)
-+ // L1 = log2(PAGE / 8)
-+ // offset = log2(PAGE) = log2(PAGE / 8) + 3
-+ // thus
-+ // L3 + L2 + L1 + offset = 4 * log2(PAGE / 8)
-+ // For more details see http://www.ia64-linux.org/doc/IA64linuxkernel.PDF
-+ // (slide 19: "user regions").
-+ static uint64_t ia64_virt_bits = std::min<uint64_t>(
-+ 4 * (mozilla::FloorLog2(gc::SystemPageSize() / 8)),
-+ 46);
-+ rand >>= (64 - ia64_virt_bits);
-+# else
- rand >>= 18;
-+# endif
- #else
- // On 32-bit, right shift by 34 to leave 30 bits, range [0, 1GiB). Then add
- // 512MiB to get range [512MiB, 1.5GiB), or [0x20000000, 0x60000000). This
---
-2.25.0
-
diff --git a/dev-lang/spidermonkey/files/spidermonkey-60.5.2-ia64-support.patch b/dev-lang/spidermonkey/files/spidermonkey-60.5.2-ia64-support.patch
deleted file mode 100644
index 90c8a4c9da3b..000000000000
--- a/dev-lang/spidermonkey/files/spidermonkey-60.5.2-ia64-support.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 35d787c782a075c0a01e29605d254950fd1e81a6 Mon Sep 17 00:00:00 2001
-From: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Thu, 25 Jul 2019 10:17:39 -0500
-Subject: [PATCH] Add support for ia64 atomic-ops
-
-Signed-off-by: Jory Pratt <anarchy@gentoo.org>
----
- js/src/jit/AtomicOperations.h | 2 ++
- js/src/jit/none/AtomicOperations-feeling-lucky.h | 6 ++++++
- 2 files changed, 8 insertions(+)
-
-diff --git a/js/src/jit/AtomicOperations.h b/js/src/jit/AtomicOperations.h
-index 3501e65b..44c3f358 100644
---- a/js/src/jit/AtomicOperations.h
-+++ b/js/src/jit/AtomicOperations.h
-@@ -393,6 +393,8 @@ inline bool AtomicOperations::isLockfreeJS(int32_t size) {
- #include "jit/none/AtomicOperations-feeling-lucky.h"
- #elif defined(__s390__) || defined(__s390x__)
- #include "jit/none/AtomicOperations-feeling-lucky.h"
-+#elif defined(__ia64__)
-+#include "jit/none/AtomicOperations-feeling-lucky.h"
- #else
- #error "No AtomicOperations support provided for this platform"
- #endif
-diff --git a/js/src/jit/none/AtomicOperations-feeling-lucky.h b/js/src/jit/none/AtomicOperations-feeling-lucky.h
-index c0b43699..a3f4497e 100644
---- a/js/src/jit/none/AtomicOperations-feeling-lucky.h
-+++ b/js/src/jit/none/AtomicOperations-feeling-lucky.h
-@@ -80,6 +80,12 @@
- #define GNUC_COMPATIBLE
- #endif
-
-+#ifdef __ia64__
-+#define HAS_64BIT_ATOMICS
-+#define HAS_64BIT_LOCKFREE
-+#define GNUC_COMPATIBLE
-+#endif
-+
- // The default implementation tactic for gcc/clang is to use the newer
- // __atomic intrinsics added for use in C++11 <atomic>. Where that
- // isn't available, we use GCC's older __sync functions instead.
---
-2.22.0
-