Ignore:
Timestamp:
Sep 27, 2018, 10:34:38 PM (7 years ago)
Author:
[email protected]
Message:

Verify the contents of AssemblerBuffer on arm64e
https://bugs.webkit.org/show_bug.cgi?id=190057
<rdar://problem/38916630>

Reviewed by Mark Lam.

JSTests:

  • stress/regress-189132.js:

Source/JavaScriptCore:

  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::ARM64Assembler):
(JSC::ARM64Assembler::fillNops):
(JSC::ARM64Assembler::link):
(JSC::ARM64Assembler::linkJumpOrCall):
(JSC::ARM64Assembler::linkCompareAndBranch):
(JSC::ARM64Assembler::linkConditionalBranch):
(JSC::ARM64Assembler::linkTestAndBranch):
(JSC::ARM64Assembler::unlinkedCode): Deleted.

  • assembler/ARMAssembler.h:

(JSC::ARMAssembler::fillNops):

  • assembler/ARMv7Assembler.h:

(JSC::ARMv7Assembler::unlinkedCode): Deleted.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::emitNops):
(JSC::AbstractMacroAssembler::AbstractMacroAssembler):

  • assembler/AssemblerBuffer.h:

(JSC::ARM64EHash::ARM64EHash):
(JSC::ARM64EHash::update):
(JSC::ARM64EHash::hash const):
(JSC::ARM64EHash::randomSeed const):
(JSC::AssemblerBuffer::AssemblerBuffer):
(JSC::AssemblerBuffer::putShort):
(JSC::AssemblerBuffer::putIntUnchecked):
(JSC::AssemblerBuffer::putInt):
(JSC::AssemblerBuffer::hash const):
(JSC::AssemblerBuffer::data const):
(JSC::AssemblerBuffer::putIntegralUnchecked):
(JSC::AssemblerBuffer::append): Deleted.

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode):

  • assembler/MIPSAssembler.h:

(JSC::MIPSAssembler::fillNops):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::jumpsToLink):
(JSC::MacroAssemblerARM64::link):
(JSC::MacroAssemblerARM64::unlinkedCode): Deleted.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::jumpsToLink):
(JSC::MacroAssemblerARMv7::unlinkedCode): Deleted.

  • assembler/X86Assembler.h:

(JSC::X86Assembler::fillNops):

Source/WTF:

  • wtf/PtrTag.h:

(WTF::tagInt):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/assembler/ARMv7Assembler.h

    r234984 r236589  
    20582058    }
    20592059
    2060     static void fillNops(void* base, size_t size, bool isCopyingToExecutableMemory)
     2060    template <typename CopyFunction>
     2061    static void fillNops(void* base, size_t size, CopyFunction copy)
    20612062    {
    20622063        RELEASE_ASSERT(!(size % sizeof(int16_t)));
     
    20662067        for (size_t i = 0; i < num32s; i++) {
    20672068            const int32_t insn = nopPseudo32();
    2068             if (isCopyingToExecutableMemory)
    2069                 performJITMemcpy(ptr, &insn, sizeof(int32_t));
    2070             else
    2071                 memcpy(ptr, &insn, sizeof(int32_t));
     2069            copy(ptr, &insn, sizeof(int32_t));
    20722070            ptr += sizeof(int32_t);
    20732071        }
     
    20782076        if (num16s) {
    20792077            const int16_t insn = nopPseudo16();
    2080             if (isCopyingToExecutableMemory)
    2081                 performJITMemcpy(ptr, &insn, sizeof(int16_t));
    2082             else
    2083                 memcpy(ptr, &insn, sizeof(int16_t));
     2078            copy(ptr, &insn, sizeof(int16_t));
    20842079        }
    20852080    }
     
    22482243    }
    22492244
    2250     void* unlinkedCode() { return m_formatter.data(); }
    22512245    size_t codeSize() const { return m_formatter.codeSize(); }
    22522246
Note: See TracChangeset for help on using the changeset viewer.