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