Changeset 230765 in webkit


Ignore:
Timestamp:
Apr 18, 2018 10:16:05 AM (6 years ago)
Author:
commit-queue@webkit.org
Message:

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

Patch by Dominik Infuehr <dinfuehr@igalia.com> 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):

Location:
trunk/Source/JavaScriptCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r230763 r230765  
     12018-04-18  Dominik Infuehr  <dinfuehr@igalia.com>
     2
     3        [ARM] Fix build error and crash after PtrTag change
     4        https://bugs.webkit.org/show_bug.cgi?id=184732
     5
     6        Reviewed by Mark Lam.
     7
     8        Do not pass NoPtrTag in callOperation and fix misspelled JSEntryPtrTag. Use
     9        MacroAssemblerCodePtr::createFromExecutableAddress to avoid tagging a pointer
     10        twice with ARM-Thumb2.
     11
     12        * assembler/MacroAssemblerCodeRef.h:
     13        (JSC::MacroAssemblerCodeRef::MacroAssemblerCodeRef):
     14        * jit/JITPropertyAccess32_64.cpp:
     15        (JSC::JIT::emitSlow_op_put_by_val):
     16        * jit/Repatch.cpp:
     17        (JSC::linkPolymorphicCall):
     18
    1192018-04-18  Yusuke Suzuki  <utatane.tea@gmail.com>
    220
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h

    r230748 r230765  
    473473    template<PtrTag otherTag>
    474474    MacroAssemblerCodeRef(const MacroAssemblerCodeRef<otherTag>& otherCodeRef)
    475         : m_codePtr(otherCodeRef.code().template retaggedExecutableAddress<tag>())
     475        : m_codePtr(MacroAssemblerCodePtr<tag>::createFromExecutableAddress(otherCodeRef.code().template retaggedExecutableAddress<tag>()))
    476476        , m_executableMemory(otherCodeRef.m_executableMemory)
    477477    { }
  • trunk/Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp

    r230748 r230765  
    565565    emitLoad(property, regT3, regT0);
    566566    emitLoad(value, regT5, regT4);
    567     Call call = callOperation(isDirect ? operationDirectPutByValOptimize : operationPutByValOptimize, NoPtrTag, JSValueRegs(regT2, regT1), JSValueRegs(regT3, regT0), JSValueRegs(regT5, regT4), byValInfo);
     567    Call call = callOperation(isDirect ? operationDirectPutByValOptimize : operationPutByValOptimize, JSValueRegs(regT2, regT1), JSValueRegs(regT3, regT0), JSValueRegs(regT5, regT4), byValInfo);
    568568#endif
    569569
  • trunk/Source/JavaScriptCore/jit/Repatch.cpp

    r230748 r230765  
    10921092        bool isTailCall = callToCodePtr.call.isFlagSet(CCallHelpers::Call::Tail);
    10931093        void* target = isTailCall ? callToCodePtr.codePtr.dataLocation() : callToCodePtr.codePtr.executableAddress();
    1094         patchBuffer.link(callToCodePtr.call, FunctionPtr<JSEntryPtrTag>(MacroAssemblerCodePtr<JSEntrtPtrTag>::createFromExecutableAddress(target)));
     1094        patchBuffer.link(callToCodePtr.call, FunctionPtr<JSEntryPtrTag>(MacroAssemblerCodePtr<JSEntryPtrTag>::createFromExecutableAddress(target)));
    10951095#else
    10961096        patchBuffer.link(callToCodePtr.call, FunctionPtr<JSEntryPtrTag>(callToCodePtr.codePtr));
Note: See TracChangeset for help on using the changeset viewer.