Title: [229856] trunk/Source/_javascript_Core
Revision
229856
Author
[email protected]
Date
2018-03-22 11:03:36 -0700 (Thu, 22 Mar 2018)

Log Message

[ARM] Thumb: Do not decorate bottom bit twice
https://bugs.webkit.org/show_bug.cgi?id=183906

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

Use MacroAssemblerCodePtr::createFromExecutableAddress instead of
MacroAssemblerCodePtr(void*) to avoid decorating the pointer twice as
a thumb pointer.

* jit/Repatch.cpp:
(JSC::linkPolymorphicCall):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (229855 => 229856)


--- trunk/Source/_javascript_Core/ChangeLog	2018-03-22 17:07:26 UTC (rev 229855)
+++ trunk/Source/_javascript_Core/ChangeLog	2018-03-22 18:03:36 UTC (rev 229856)
@@ -1,3 +1,17 @@
+2018-03-22  Dominik Infuehr  <[email protected]>
+
+        [ARM] Thumb: Do not decorate bottom bit twice
+        https://bugs.webkit.org/show_bug.cgi?id=183906
+
+        Reviewed by Mark Lam.
+
+        Use MacroAssemblerCodePtr::createFromExecutableAddress instead of
+        MacroAssemblerCodePtr(void*) to avoid decorating the pointer twice as
+        a thumb pointer.
+
+        * jit/Repatch.cpp:
+        (JSC::linkPolymorphicCall):
+
 2018-03-22  Yusuke Suzuki  <[email protected]>
 
         [JSC] Clear MustGenerate for ToString(Number) converted from NumberToStringWithRadix

Modified: trunk/Source/_javascript_Core/jit/Repatch.cpp (229855 => 229856)


--- trunk/Source/_javascript_Core/jit/Repatch.cpp	2018-03-22 17:07:26 UTC (rev 229855)
+++ trunk/Source/_javascript_Core/jit/Repatch.cpp	2018-03-22 18:03:36 UTC (rev 229856)
@@ -1072,7 +1072,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(MacroAssemblerCodePtr(target)));
+        patchBuffer.link(callToCodePtr.call, FunctionPtr(MacroAssemblerCodePtr::createFromExecutableAddress(target)));
 #else
         patchBuffer.link(callToCodePtr.call, FunctionPtr(callToCodePtr.codePtr.retagged(CodeEntryPtrTag, NearCallPtrTag)));
 #endif
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to