Unreviewed, follow-up fix after r249842
authorysuzuki@apple.com <ysuzuki@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 14 Sep 2019 01:12:15 +0000 (01:12 +0000)
committerysuzuki@apple.com <ysuzuki@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 14 Sep 2019 01:12:15 +0000 (01:12 +0000)
https://bugs.webkit.org/show_bug.cgi?id=201750

Michael reviewed this offline. When performing nearCall, we need to invalidate cache registers.

* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::nearCall):
(JSC::MacroAssemblerARM64::threadSafePatchableNearCall):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249864 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/assembler/MacroAssemblerARM64.h

index 480f716..d68bebc 100644 (file)
@@ -1,3 +1,14 @@
+2019-09-13  Yusuke Suzuki  <ysuzuki@apple.com>
+
+        Unreviewed, follow-up fix after r249842
+        https://bugs.webkit.org/show_bug.cgi?id=201750
+
+        Michael reviewed this offline. When performing nearCall, we need to invalidate cache registers.
+
+        * assembler/MacroAssemblerARM64.h:
+        (JSC::MacroAssemblerARM64::nearCall):
+        (JSC::MacroAssemblerARM64::threadSafePatchableNearCall):
+
 2019-09-13  Alexey Shvayka  <shvaikalesh@gmail.com>
 
         Date.prototype.toJSON does not execute steps 1-2
 2019-09-13  Alexey Shvayka  <shvaikalesh@gmail.com>
 
         Date.prototype.toJSON does not execute steps 1-2
index 10ebbef..559d8b7 100644 (file)
@@ -3247,6 +3247,7 @@ public:
 
     ALWAYS_INLINE Call nearCall()
     {
 
     ALWAYS_INLINE Call nearCall()
     {
+        invalidateAllTempRegisters();
         m_assembler.bl();
         return Call(m_assembler.label(), Call::LinkableNear);
     }
         m_assembler.bl();
         return Call(m_assembler.label(), Call::LinkableNear);
     }
@@ -3260,6 +3261,7 @@ public:
 
     ALWAYS_INLINE Call threadSafePatchableNearCall()
     {
 
     ALWAYS_INLINE Call threadSafePatchableNearCall()
     {
+        invalidateAllTempRegisters();
         m_assembler.bl();
         return Call(m_assembler.label(), Call::LinkableNear);
     }
         m_assembler.bl();
         return Call(m_assembler.label(), Call::LinkableNear);
     }