Title: [289503] branches/safari-614.1.1-branch/Source
Revision
289503
Author
repst...@apple.com
Date
2022-02-09 14:58:07 -0800 (Wed, 09 Feb 2022)

Log Message

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

Modified Paths

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
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to