Diff
Modified: branches/safari-614.1.1-branch/Source/_javascript_Core/ChangeLog (289502 => 289503)
--- branches/safari-614.1.1-branch/Source/_javascript_Core/ChangeLog 2022-02-09 22:55:59 UTC (rev 289502)
+++ branches/safari-614.1.1-branch/Source/_javascript_Core/ChangeLog 2022-02-09 22:58:07 UTC (rev 289503)
@@ -1,3 +1,46 @@
+2022-02-09 Russell Epstein <repst...@apple.com>
+
+ Cherry-pick r288970. rdar://problem/88710933
+
+ Update computation of FAST_TLS base.
+ https://bugs.webkit.org/show_bug.cgi?id=235934
+
+ Reviewed by Yusuke Suzuki.
+
+ Source/_javascript_Core:
+
+ * assembler/MacroAssemblerARM64.h:
+ (JSC::MacroAssemblerARM64::loadFromTLS32):
+ (JSC::MacroAssemblerARM64::loadFromTLS64):
+ (JSC::MacroAssemblerARM64::storeToTLS32):
+ (JSC::MacroAssemblerARM64::storeToTLS64):
+ * assembler/SecureARM64EHashPinsInlines.h:
+ (JSC::SecureARM64EHashPins::keyForCurrentThread):
+ * offlineasm/arm64.rb:
+
+ Source/WTF:
+
+ * wtf/PlatformHave.h:
+
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288970 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2022-02-02 Mark Lam <mark....@apple.com>
+
+ Update computation of FAST_TLS base.
+ https://bugs.webkit.org/show_bug.cgi?id=235934
+
+ Reviewed by Yusuke Suzuki.
+
+ * assembler/MacroAssemblerARM64.h:
+ (JSC::MacroAssemblerARM64::loadFromTLS32):
+ (JSC::MacroAssemblerARM64::loadFromTLS64):
+ (JSC::MacroAssemblerARM64::storeToTLS32):
+ (JSC::MacroAssemblerARM64::storeToTLS64):
+ * assembler/SecureARM64EHashPinsInlines.h:
+ (JSC::SecureARM64EHashPins::keyForCurrentThread):
+ * offlineasm/arm64.rb:
+
2022-01-21 Commit Queue <commit-qu...@webkit.org>
Unreviewed, reverting r288400.
Modified: branches/safari-614.1.1-branch/Source/_javascript_Core/assembler/MacroAssemblerARM64.h (289502 => 289503)
--- branches/safari-614.1.1-branch/Source/_javascript_Core/assembler/MacroAssemblerARM64.h 2022-02-09 22:55:59 UTC (rev 289502)
+++ branches/safari-614.1.1-branch/Source/_javascript_Core/assembler/MacroAssemblerARM64.h 2022-02-09 22:58:07 UTC (rev 289503)
@@ -4521,7 +4521,9 @@
void loadFromTLS32(uint32_t offset, RegisterID dst)
{
m_assembler.mrs_TPIDRRO_EL0(dst);
+#if !HAVE(SIMPLIFIED_FAST_TLS_BASE)
and64(TrustedImm32(~7), dst);
+#endif
load32(Address(dst, offset), dst);
}
@@ -4528,7 +4530,9 @@
void loadFromTLS64(uint32_t offset, RegisterID dst)
{
m_assembler.mrs_TPIDRRO_EL0(dst);
+#if !HAVE(SIMPLIFIED_FAST_TLS_BASE)
and64(TrustedImm32(~7), dst);
+#endif
load64(Address(dst, offset), dst);
}
@@ -4542,7 +4546,9 @@
RegisterID tmp = getCachedDataTempRegisterIDAndInvalidate();
ASSERT(src != tmp);
m_assembler.mrs_TPIDRRO_EL0(tmp);
+#if !HAVE(SIMPLIFIED_FAST_TLS_BASE)
and64(TrustedImm32(~7), tmp);
+#endif
store32(src, Address(tmp, offset));
}
@@ -4551,7 +4557,9 @@
RegisterID tmp = getCachedDataTempRegisterIDAndInvalidate();
ASSERT(src != tmp);
m_assembler.mrs_TPIDRRO_EL0(tmp);
+#if !HAVE(SIMPLIFIED_FAST_TLS_BASE)
and64(TrustedImm32(~7), tmp);
+#endif
store64(src, Address(tmp, offset));
}
Modified: branches/safari-614.1.1-branch/Source/_javascript_Core/assembler/SecureARM64EHashPinsInlines.h (289502 => 289503)
--- branches/safari-614.1.1-branch/Source/_javascript_Core/assembler/SecureARM64EHashPinsInlines.h 2022-02-09 22:55:59 UTC (rev 289502)
+++ branches/safari-614.1.1-branch/Source/_javascript_Core/assembler/SecureARM64EHashPinsInlines.h 2022-02-09 22:58:07 UTC (rev 289503)
@@ -40,6 +40,9 @@
:
:
);
+#if !HAVE(SIMPLIFIED_FAST_TLS_BASE)
+ result = result & ~0x7ull;
+#endif
return result + 1;
}
Modified: branches/safari-614.1.1-branch/Source/_javascript_Core/offlineasm/arm64.rb (289502 => 289503)
--- branches/safari-614.1.1-branch/Source/_javascript_Core/offlineasm/arm64.rb 2022-02-09 22:55:59 UTC (rev 289502)
+++ branches/safari-614.1.1-branch/Source/_javascript_Core/offlineasm/arm64.rb 2022-02-09 22:58:07 UTC (rev 289503)
@@ -1313,7 +1313,10 @@
offset = operands[0].arm64Operand(:word)
end
$asm.puts "mrs #{tmp}, tpidrro_el0"
+ $asm.puts "#if !HAVE(SIMPLIFIED_FAST_TLS_BASE)"
$asm.puts "bic #{tmp}, #{tmp}, #7"
+ $asm.puts "#endif"
+
$asm.puts "ldr #{operands[1].arm64Operand(:ptr)}, [#{tmp}, #{offset}]"
when "tls_storep"
tmp = ARM64_EXTRA_GPRS[0].arm64Operand(:ptr)
@@ -1323,7 +1326,9 @@
offset = operands[1].arm64Operand(:word)
end
$asm.puts "mrs #{tmp}, tpidrro_el0"
+ $asm.puts "#if !HAVE(SIMPLIFIED_FAST_TLS_BASE)"
$asm.puts "bic #{tmp}, #{tmp}, #7"
+ $asm.puts "#endif"
$asm.puts "str #{operands[0].arm64Operand(:ptr)}, [#{tmp}, #{offset}]"
when "loadlinkacqb"
$asm.puts "ldaxrb #{operands[1].arm64Operand(:word)}, #{operands[0].arm64Operand(:word)}"
Modified: branches/safari-614.1.1-branch/Source/WTF/ChangeLog (289502 => 289503)
--- branches/safari-614.1.1-branch/Source/WTF/ChangeLog 2022-02-09 22:55:59 UTC (rev 289502)
+++ branches/safari-614.1.1-branch/Source/WTF/ChangeLog 2022-02-09 22:58:07 UTC (rev 289503)
@@ -1,3 +1,39 @@
+2022-02-09 Russell Epstein <repst...@apple.com>
+
+ Cherry-pick r288970. rdar://problem/88710933
+
+ Update computation of FAST_TLS base.
+ https://bugs.webkit.org/show_bug.cgi?id=235934
+
+ Reviewed by Yusuke Suzuki.
+
+ Source/_javascript_Core:
+
+ * assembler/MacroAssemblerARM64.h:
+ (JSC::MacroAssemblerARM64::loadFromTLS32):
+ (JSC::MacroAssemblerARM64::loadFromTLS64):
+ (JSC::MacroAssemblerARM64::storeToTLS32):
+ (JSC::MacroAssemblerARM64::storeToTLS64):
+ * assembler/SecureARM64EHashPinsInlines.h:
+ (JSC::SecureARM64EHashPins::keyForCurrentThread):
+ * offlineasm/arm64.rb:
+
+ Source/WTF:
+
+ * wtf/PlatformHave.h:
+
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288970 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2022-02-02 Mark Lam <mark....@apple.com>
+
+ Update computation of FAST_TLS base.
+ https://bugs.webkit.org/show_bug.cgi?id=235934
+
+ Reviewed by Yusuke Suzuki.
+
+ * wtf/PlatformHave.h:
+
2022-01-21 Yusuke Suzuki <ysuz...@apple.com>
[JSC] Relax Date.parse requirement
Modified: branches/safari-614.1.1-branch/Source/WTF/wtf/PlatformHave.h (289502 => 289503)
--- branches/safari-614.1.1-branch/Source/WTF/wtf/PlatformHave.h 2022-02-09 22:55:59 UTC (rev 289502)
+++ branches/safari-614.1.1-branch/Source/WTF/wtf/PlatformHave.h 2022-02-09 22:58:07 UTC (rev 289503)
@@ -247,8 +247,14 @@
#if __has_include(<System/pthread_machdep.h>)
#define HAVE_FAST_TLS 1
+
+#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 120000) \
+ || ((PLATFORM(IOS) && !PLATFORM(IOS_FAMILY_SIMULATOR) && !PLATFORM(MACCATALYST)) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 150000)
+#define HAVE_SIMPLIFIED_FAST_TLS_BASE 1
#endif
+#endif
+
#if COMPILER(GCC_COMPATIBLE)
#define HAVE_COMPUTED_GOTO 1
#endif