Title: [230765] trunk/Source/_javascript_Core
Revision
230765
Author
[email protected]
Date
2018-04-18 10:16:05 -0700 (Wed, 18 Apr 2018)

Log Message

[ARM] Fix build error and crash after PtrTag change
https://bugs.webkit.org/show_bug.cgi?id=184732

Patch by Dominik Infuehr <[email protected]> on 2018-04-18
Reviewed by Mark Lam.

Do not pass NoPtrTag in callOperation and fix misspelled JSEntryPtrTag. Use
MacroAssemblerCodePtr::createFromExecutableAddress to avoid tagging a pointer
twice with ARM-Thumb2.

* assembler/MacroAssemblerCodeRef.h:
(JSC::MacroAssemblerCodeRef::MacroAssemblerCodeRef):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emitSlow_op_put_by_val):
* jit/Repatch.cpp:
(JSC::linkPolymorphicCall):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (230764 => 230765)


--- trunk/Source/_javascript_Core/ChangeLog	2018-04-18 16:50:36 UTC (rev 230764)
+++ trunk/Source/_javascript_Core/ChangeLog	2018-04-18 17:16:05 UTC (rev 230765)
@@ -1,3 +1,21 @@
+2018-04-18  Dominik Infuehr  <[email protected]>
+
+        [ARM] Fix build error and crash after PtrTag change
+        https://bugs.webkit.org/show_bug.cgi?id=184732
+
+        Reviewed by Mark Lam.
+
+        Do not pass NoPtrTag in callOperation and fix misspelled JSEntryPtrTag. Use
+        MacroAssemblerCodePtr::createFromExecutableAddress to avoid tagging a pointer
+        twice with ARM-Thumb2.
+
+        * assembler/MacroAssemblerCodeRef.h:
+        (JSC::MacroAssemblerCodeRef::MacroAssemblerCodeRef):
+        * jit/JITPropertyAccess32_64.cpp:
+        (JSC::JIT::emitSlow_op_put_by_val):
+        * jit/Repatch.cpp:
+        (JSC::linkPolymorphicCall):
+
 2018-04-18  Yusuke Suzuki  <[email protected]>
 
         [WebAssembly][Modules] Import globals from wasm modules

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerCodeRef.h (230764 => 230765)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerCodeRef.h	2018-04-18 16:50:36 UTC (rev 230764)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerCodeRef.h	2018-04-18 17:16:05 UTC (rev 230765)
@@ -472,7 +472,7 @@
 private:
     template<PtrTag otherTag>
     MacroAssemblerCodeRef(const MacroAssemblerCodeRef<otherTag>& otherCodeRef)
-        : m_codePtr(otherCodeRef.code().template retaggedExecutableAddress<tag>())
+        : m_codePtr(MacroAssemblerCodePtr<tag>::createFromExecutableAddress(otherCodeRef.code().template retaggedExecutableAddress<tag>()))
         , m_executableMemory(otherCodeRef.m_executableMemory)
     { }
 

Modified: trunk/Source/_javascript_Core/jit/JITPropertyAccess32_64.cpp (230764 => 230765)


--- trunk/Source/_javascript_Core/jit/JITPropertyAccess32_64.cpp	2018-04-18 16:50:36 UTC (rev 230764)
+++ trunk/Source/_javascript_Core/jit/JITPropertyAccess32_64.cpp	2018-04-18 17:16:05 UTC (rev 230765)
@@ -564,7 +564,7 @@
     emitLoad(base, regT2, regT1);
     emitLoad(property, regT3, regT0);
     emitLoad(value, regT5, regT4);
-    Call call = callOperation(isDirect ? operationDirectPutByValOptimize : operationPutByValOptimize, NoPtrTag, JSValueRegs(regT2, regT1), JSValueRegs(regT3, regT0), JSValueRegs(regT5, regT4), byValInfo);
+    Call call = callOperation(isDirect ? operationDirectPutByValOptimize : operationPutByValOptimize, JSValueRegs(regT2, regT1), JSValueRegs(regT3, regT0), JSValueRegs(regT5, regT4), byValInfo);
 #endif
 
     m_byValCompilationInfo[m_byValInstructionIndex].slowPathTarget = slowPath;

Modified: trunk/Source/_javascript_Core/jit/Repatch.cpp (230764 => 230765)


--- trunk/Source/_javascript_Core/jit/Repatch.cpp	2018-04-18 16:50:36 UTC (rev 230764)
+++ trunk/Source/_javascript_Core/jit/Repatch.cpp	2018-04-18 17:16:05 UTC (rev 230765)
@@ -1091,7 +1091,7 @@
         // with a non-decorated bottom bit but a normal call calls an address with a decorated bottom bit.
         bool isTailCall = callToCodePtr.call.isFlagSet(CCallHelpers::Call::Tail);
         void* target = isTailCall ? callToCodePtr.codePtr.dataLocation() : callToCodePtr.codePtr.executableAddress();
-        patchBuffer.link(callToCodePtr.call, FunctionPtr<JSEntryPtrTag>(MacroAssemblerCodePtr<JSEntrtPtrTag>::createFromExecutableAddress(target)));
+        patchBuffer.link(callToCodePtr.call, FunctionPtr<JSEntryPtrTag>(MacroAssemblerCodePtr<JSEntryPtrTag>::createFromExecutableAddress(target)));
 #else
         patchBuffer.link(callToCodePtr.call, FunctionPtr<JSEntryPtrTag>(callToCodePtr.codePtr));
 #endif
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to