Changeset 238439 in webkit


Ignore:
Timestamp:
Nov 21, 2018 9:47:05 PM (5 years ago)
Author:
yusukesuzuki@slowstart.org
Message:

[JSC] Drop ARM_TRADITIONAL support in LLInt, baseline JIT, and DFG
https://bugs.webkit.org/show_bug.cgi?id=191675

Reviewed by Mark Lam.

Source/JavaScriptCore:

We no longer maintain ARM_TRADITIONAL LLInt and JIT in JSC. This architecture will use
CLoop instead. This patch removes ARM_TRADITIONAL support in LLInt and JIT.

Discussed in https://lists.webkit.org/pipermail/webkit-dev/2018-October/030220.html.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • assembler/ARMAssembler.cpp: Removed.
  • assembler/ARMAssembler.h: Removed.
  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::linkCode):
(JSC::LinkBuffer::dumpCode):

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::patchableBranch32):

  • assembler/MacroAssemblerARM.cpp: Removed.
  • assembler/MacroAssemblerARM.h: Removed.
  • assembler/PerfLog.cpp:
  • assembler/PerfLog.h:
  • assembler/ProbeContext.h:

(JSC::Probe::CPUState::pc):
(JSC::Probe::CPUState::fp):
(JSC::Probe::CPUState::sp):

  • assembler/testmasm.cpp:

(JSC::isPC):
(JSC::testProbeModifiesStackPointer):
(JSC::testProbeModifiesStackValues):

  • bytecode/InlineAccess.h:

(JSC::InlineAccess::sizeForPropertyAccess):
(JSC::InlineAccess::sizeForPropertyReplace):
(JSC::InlineAccess::sizeForLengthAccess):

  • dfg/DFGSpeculativeJIT.h:
  • disassembler/CapstoneDisassembler.cpp:

(JSC::tryToDisassemble):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::debugCall):

  • jit/AssemblyHelpers.h:
  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsImpl):
(JSC::CCallHelpers::prepareForTailCallSlow):

  • jit/CallFrameShuffler.cpp:

(JSC::CallFrameShuffler::prepareForTailCall):

  • jit/HostCallReturnValue.cpp:
  • jit/JITMathIC.h:

(JSC::isProfileEmpty):

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::reservedHardwareRegisters):
(JSC::RegisterSet::calleeSaveRegisters):
(JSC::RegisterSet::llintBaselineCalleeSaveRegisters):
(JSC::RegisterSet::dfgCalleeSaveRegisters):

  • jit/Repatch.cpp:

(JSC::forceICFailure):

  • jit/ThunkGenerators.cpp:

(JSC::nativeForGenerator):

  • llint/LLIntOfflineAsmConfig.h:
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • offlineasm/arm.rb:
  • offlineasm/backends.rb:
  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::generateEnter):
(JSC::Yarr::YarrGenerator::generateReturn):

Source/WTF:

  • wtf/InlineASM.h:
  • wtf/Platform.h:
Location:
trunk/Source
Files:
4 deleted
31 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/CMakeLists.txt

    r238192 r238439  
    241241    elseif (ARM_THUMB2_DETECTED)
    242242        set(OFFLINE_ASM_BACKEND "ARMv7")
    243     elseif (ARM_TRADITIONAL_DETECTED)
    244         set(OFFLINE_ASM_BACKEND "ARMv7_TRADITIONAL")
    245243    elseif (WTF_CPU_MIPS)
    246244        set(OFFLINE_ASM_BACKEND "MIPS")
     
    425423
    426424    assembler/ARM64Assembler.h
    427     assembler/ARMAssembler.h
    428425    assembler/ARMv7Assembler.h
    429426    assembler/AbortReason.h
     
    437434    assembler/MIPSAssembler.h
    438435    assembler/MacroAssembler.h
    439     assembler/MacroAssemblerARM.h
    440436    assembler/MacroAssemblerARM64.h
    441437    assembler/MacroAssemblerARMv7.h
  • trunk/Source/JavaScriptCore/ChangeLog

    r238437 r238439  
     12018-11-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
     2
     3        [JSC] Drop ARM_TRADITIONAL support in LLInt, baseline JIT, and DFG
     4        https://bugs.webkit.org/show_bug.cgi?id=191675
     5
     6        Reviewed by Mark Lam.
     7
     8        We no longer maintain ARM_TRADITIONAL LLInt and JIT in JSC. This architecture will use
     9        CLoop instead. This patch removes ARM_TRADITIONAL support in LLInt and JIT.
     10
     11        Discussed in https://lists.webkit.org/pipermail/webkit-dev/2018-October/030220.html.
     12
     13        * CMakeLists.txt:
     14        * JavaScriptCore.xcodeproj/project.pbxproj:
     15        * Sources.txt:
     16        * assembler/ARMAssembler.cpp: Removed.
     17        * assembler/ARMAssembler.h: Removed.
     18        * assembler/LinkBuffer.cpp:
     19        (JSC::LinkBuffer::linkCode):
     20        (JSC::LinkBuffer::dumpCode):
     21        * assembler/MacroAssembler.h:
     22        (JSC::MacroAssembler::patchableBranch32):
     23        * assembler/MacroAssemblerARM.cpp: Removed.
     24        * assembler/MacroAssemblerARM.h: Removed.
     25        * assembler/PerfLog.cpp:
     26        * assembler/PerfLog.h:
     27        * assembler/ProbeContext.h:
     28        (JSC::Probe::CPUState::pc):
     29        (JSC::Probe::CPUState::fp):
     30        (JSC::Probe::CPUState::sp):
     31        * assembler/testmasm.cpp:
     32        (JSC::isPC):
     33        (JSC::testProbeModifiesStackPointer):
     34        (JSC::testProbeModifiesStackValues):
     35        * bytecode/InlineAccess.h:
     36        (JSC::InlineAccess::sizeForPropertyAccess):
     37        (JSC::InlineAccess::sizeForPropertyReplace):
     38        (JSC::InlineAccess::sizeForLengthAccess):
     39        * dfg/DFGSpeculativeJIT.h:
     40        * disassembler/CapstoneDisassembler.cpp:
     41        (JSC::tryToDisassemble):
     42        * jit/AssemblyHelpers.cpp:
     43        (JSC::AssemblyHelpers::debugCall):
     44        * jit/AssemblyHelpers.h:
     45        * jit/CCallHelpers.h:
     46        (JSC::CCallHelpers::setupArgumentsImpl):
     47        (JSC::CCallHelpers::prepareForTailCallSlow):
     48        * jit/CallFrameShuffler.cpp:
     49        (JSC::CallFrameShuffler::prepareForTailCall):
     50        * jit/HostCallReturnValue.cpp:
     51        * jit/JITMathIC.h:
     52        (JSC::isProfileEmpty):
     53        * jit/RegisterSet.cpp:
     54        (JSC::RegisterSet::reservedHardwareRegisters):
     55        (JSC::RegisterSet::calleeSaveRegisters):
     56        (JSC::RegisterSet::llintBaselineCalleeSaveRegisters):
     57        (JSC::RegisterSet::dfgCalleeSaveRegisters):
     58        * jit/Repatch.cpp:
     59        (JSC::forceICFailure):
     60        * jit/ThunkGenerators.cpp:
     61        (JSC::nativeForGenerator):
     62        * llint/LLIntOfflineAsmConfig.h:
     63        * llint/LowLevelInterpreter.asm:
     64        * llint/LowLevelInterpreter32_64.asm:
     65        * offlineasm/arm.rb:
     66        * offlineasm/backends.rb:
     67        * yarr/YarrJIT.cpp:
     68        (JSC::Yarr::YarrGenerator::generateEnter):
     69        (JSC::Yarr::YarrGenerator::generateReturn):
     70
    1712018-11-21  Saam barati  <sbarati@apple.com>
    272
  • trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj

    r238219 r238439  
    12111211                86CCEFDE0F413F8900FD7F9E /* JITCode.h in Headers */ = {isa = PBXBuildFile; fileRef = 86CCEFDD0F413F8900FD7F9E /* JITCode.h */; settings = {ATTRIBUTES = (Private, ); }; };
    12121212                86D2221A167EF9440024C804 /* testapi.mm in Sources */ = {isa = PBXBuildFile; fileRef = 86D22219167EF9440024C804 /* testapi.mm */; };
    1213                 86D3B2C410156BDE002865E7 /* ARMAssembler.h in Headers */ = {isa = PBXBuildFile; fileRef = 86D3B2C010156BDE002865E7 /* ARMAssembler.h */; settings = {ATTRIBUTES = (Private, ); }; };
    12141213                86D3B2C510156BDE002865E7 /* AssemblerBufferWithConstantPool.h in Headers */ = {isa = PBXBuildFile; fileRef = 86D3B2C110156BDE002865E7 /* AssemblerBufferWithConstantPool.h */; settings = {ATTRIBUTES = (Private, ); }; };
    1215                 86D3B2C610156BDE002865E7 /* MacroAssemblerARM.h in Headers */ = {isa = PBXBuildFile; fileRef = 86D3B2C210156BDE002865E7 /* MacroAssemblerARM.h */; settings = {ATTRIBUTES = (Private, ); }; };
    12161214                86D3B3C310159D7F002865E7 /* LinkBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 86D3B3C110159D7F002865E7 /* LinkBuffer.h */; settings = {ATTRIBUTES = (Private, ); }; };
    12171215                86E116B10FE75AC800B512BC /* CodeLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 86E116B00FE75AC800B512BC /* CodeLocation.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    38713869                86BF642A148DB2B5004DE36A /* Intrinsic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Intrinsic.h; sourceTree = "<group>"; };
    38723870                86C36EE90EE1289D00B3DF59 /* MacroAssembler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MacroAssembler.h; sourceTree = "<group>"; };
    3873                 86C568DD11A213EE0007F7F0 /* MacroAssemblerARM.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MacroAssemblerARM.cpp; sourceTree = "<group>"; };
    38743871                86C568DE11A213EE0007F7F0 /* MacroAssemblerMIPS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MacroAssemblerMIPS.h; sourceTree = "<group>"; };
    38753872                86C568DF11A213EE0007F7F0 /* MIPSAssembler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MIPSAssembler.h; sourceTree = "<group>"; };
     
    38793876                86CCEFDD0F413F8900FD7F9E /* JITCode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JITCode.h; sourceTree = "<group>"; };
    38803877                86D22219167EF9440024C804 /* testapi.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; name = testapi.mm; path = API/tests/testapi.mm; sourceTree = "<group>"; };
    3881                 86D3B2BF10156BDE002865E7 /* ARMAssembler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ARMAssembler.cpp; sourceTree = "<group>"; };
    3882                 86D3B2C010156BDE002865E7 /* ARMAssembler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARMAssembler.h; sourceTree = "<group>"; };
    38833878                86D3B2C110156BDE002865E7 /* AssemblerBufferWithConstantPool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssemblerBufferWithConstantPool.h; sourceTree = "<group>"; };
    3884                 86D3B2C210156BDE002865E7 /* MacroAssemblerARM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MacroAssemblerARM.h; sourceTree = "<group>"; };
    38853879                86D3B3C110159D7F002865E7 /* LinkBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LinkBuffer.h; sourceTree = "<group>"; };
    38863880                86E116B00FE75AC800B512BC /* CodeLocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CodeLocation.h; sourceTree = "<group>"; };
     
    76227616                                AD412B351E7B57C0008AF157 /* AllowMacroScratchRegisterUsageIf.h */,
    76237617                                8640923B156EED3B00566CB2 /* ARM64Assembler.h */,
    7624                                 86D3B2BF10156BDE002865E7 /* ARMAssembler.cpp */,
    7625                                 86D3B2C010156BDE002865E7 /* ARMAssembler.h */,
    76267618                                86ADD1430FDDEA980006EEC2 /* ARMv7Assembler.h */,
    76277619                                9688CB130ED12B4E001D649F /* AssemblerBuffer.h */,
     
    76357627                                0FEB3ECE16237F6700AB67AD /* MacroAssembler.cpp */,
    76367628                                86C36EE90EE1289D00B3DF59 /* MacroAssembler.h */,
    7637                                 86C568DD11A213EE0007F7F0 /* MacroAssemblerARM.cpp */,
    7638                                 86D3B2C210156BDE002865E7 /* MacroAssemblerARM.h */,
    76397629                                FEB137561BB11EEE00CD5100 /* MacroAssemblerARM64.cpp */,
    76407630                                8640923C156EED3B00566CB2 /* MacroAssemblerARM64.h */,
     
    83728362                                0F6B1CB91861244C00845D97 /* ArityCheckMode.h in Headers */,
    83738363                                A1A009C11831A26E00CF8711 /* ARM64Assembler.h in Headers */,
    8374                                 86D3B2C410156BDE002865E7 /* ARMAssembler.h in Headers */,
    83758364                                86ADD1450FDDEA980006EEC2 /* ARMv7Assembler.h in Headers */,
    83768365                                0F8335B81639C1EA001443B5 /* ArrayAllocationProfile.h in Headers */,
     
    93589347                                14B723B812D7DA6F003BD5ED /* MachineStackMarker.h in Headers */,
    93599348                                86C36EEA0EE1289D00B3DF59 /* MacroAssembler.h in Headers */,
    9360                                 86D3B2C610156BDE002865E7 /* MacroAssemblerARM.h in Headers */,
    93619349                                A1A009C01831A22D00CF8711 /* MacroAssemblerARM64.h in Headers */,
    93629350                                86ADD1460FDDEA980006EEC2 /* MacroAssemblerARMv7.h in Headers */,
  • trunk/Source/JavaScriptCore/Sources.txt

    r238192 r238439  
    4242API/OpaqueJSString.cpp
    4343
    44 assembler/ARMAssembler.cpp
    4544assembler/AbstractMacroAssembler.cpp
    4645assembler/LinkBuffer.cpp
    4746assembler/MacroAssembler.cpp
    48 assembler/MacroAssemblerARM.cpp
    4947assembler/MacroAssemblerARM64.cpp
    5048assembler/MacroAssemblerARMv7.cpp
  • trunk/Source/JavaScriptCore/assembler/LinkBuffer.cpp

    r236883 r238439  
    299299    AssemblerBuffer& buffer = macroAssembler.m_assembler.buffer();
    300300    void* code = m_code.dataLocation();
    301 #if CPU(ARM_TRADITIONAL)
    302     macroAssembler.m_assembler.prepareExecutableCopy(code);
    303 #elif CPU(ARM64)
     301#if CPU(ARM64)
    304302    RELEASE_ASSERT(roundUpToMultipleOf<Assembler::instructionSize>(code) == code);
    305303#endif
     
    401399    for (unsigned i = 0; i < tsize; i++)
    402400        dataLogF("\t.short\t0x%x\n", tcode[i]);
    403 #elif CPU(ARM_TRADITIONAL)
    404     //   gcc -c jit.s
    405     //   objdump -D jit.o
    406     static unsigned codeCount = 0;
    407     unsigned int* tcode = static_cast<unsigned int*>(code);
    408     size_t tsize = size / sizeof(unsigned int);
    409     char nameBuf[128];
    410     snprintf(nameBuf, sizeof(nameBuf), "_jsc_jit%u", codeCount++);
    411     dataLogF("\t.globl\t%s\n"
    412             "\t.align 4\n"
    413             "\t.code 32\n"
    414             "\t.text\n"
    415             "# %p\n"
    416             "%s:\n", nameBuf, code, nameBuf);
    417 
    418     for (unsigned i = 0; i < tsize; i++)
    419         dataLogF("\t.long\t0x%x\n", tcode[i]);
    420401#endif
    421402}
  • trunk/Source/JavaScriptCore/assembler/MacroAssembler.h

    r237173 r238439  
    4646#include "MacroAssemblerARM64.h"
    4747
    48 #elif CPU(ARM_TRADITIONAL)
    49 #define TARGET_ASSEMBLER ARMAssembler
    50 #define TARGET_MACROASSEMBLER MacroAssemblerARM
    51 #include "MacroAssemblerARM.h"
    52 
    5348#elif CPU(MIPS)
    5449#define TARGET_ASSEMBLER MIPSAssembler
     
    143138    using MacroAssemblerBase::branchAdd32;
    144139    using MacroAssemblerBase::branchMul32;
    145 #if CPU(ARM64) || CPU(ARM_THUMB2) || CPU(ARM_TRADITIONAL) || CPU(X86_64) || CPU(MIPS)
     140#if CPU(ARM64) || CPU(ARM_THUMB2) || CPU(X86_64) || CPU(MIPS)
    146141    using MacroAssemblerBase::branchPtr;
    147142#endif
     
    435430    }
    436431
    437 #if !CPU(ARM_TRADITIONAL)
    438432    PatchableJump patchableJump()
    439433    {
     
    460454        return PatchableJump(branch32(cond, address, imm));
    461455    }
    462 #endif
    463456#endif
    464457
  • trunk/Source/JavaScriptCore/assembler/PerfLog.cpp

    r236883 r238439  
    3131#include <elf.h>
    3232#include <fcntl.h>
     33#include <mutex>
    3334#include <sys/mman.h>
    3435#include <sys/stat.h>
     
    3637#include <sys/types.h>
    3738#include <unistd.h>
     39#include <wtf/DataLog.h>
    3840#include <wtf/MonotonicTime.h>
    3941#include <wtf/PageBlock.h>
  • trunk/Source/JavaScriptCore/assembler/PerfLog.h

    r236883 r238439  
    3030#include <stdio.h>
    3131#include <wtf/Lock.h>
     32#include <wtf/text/CString.h>
    3233
    3334namespace JSC {
  • trunk/Source/JavaScriptCore/assembler/ProbeContext.h

    r237173 r238439  
    113113#elif CPU(ARM64)
    114114    return *reinterpret_cast<void**>(&spr(ARM64Registers::pc));
    115 #elif CPU(ARM_THUMB2) || CPU(ARM_TRADITIONAL)
     115#elif CPU(ARM_THUMB2)
    116116    return *reinterpret_cast<void**>(&gpr(ARMRegisters::pc));
    117117#elif CPU(MIPS)
     
    128128#elif CPU(ARM64)
    129129    return *reinterpret_cast<void**>(&gpr(ARM64Registers::fp));
    130 #elif CPU(ARM_THUMB2) || CPU(ARM_TRADITIONAL)
     130#elif CPU(ARM_THUMB2)
    131131    return *reinterpret_cast<void**>(&gpr(ARMRegisters::fp));
    132132#elif CPU(MIPS)
     
    143143#elif CPU(ARM64)
    144144    return *reinterpret_cast<void**>(&gpr(ARM64Registers::sp));
    145 #elif CPU(ARM_THUMB2) || CPU(ARM_TRADITIONAL)
     145#elif CPU(ARM_THUMB2)
    146146    return *reinterpret_cast<void**>(&gpr(ARMRegisters::sp));
    147147#elif CPU(MIPS)
  • trunk/Source/JavaScriptCore/assembler/testmasm.cpp

    r237080 r238439  
    112112bool isPC(MacroAssembler::RegisterID id)
    113113{
    114 #if CPU(ARM_THUMB2) || CPU(ARM_TRADITIONAL)
     114#if CPU(ARM_THUMB2)
    115115    return id == ARMRegisters::pc;
    116116#else
     
    574574    auto flagsSPR = X86Registers::eflags;
    575575    uintptr_t flagsMask = 0xc5;
    576 #elif CPU(ARM_THUMB2) || CPU(ARM_TRADITIONAL)
     576#elif CPU(ARM_THUMB2)
    577577    auto flagsSPR = ARMRegisters::apsr;
    578578    uintptr_t flagsMask = 0xf8000000;
     
    754754    MacroAssembler::SPRegisterID flagsSPR = X86Registers::eflags;
    755755    uintptr_t flagsMask = 0xc5;
    756 #elif CPU(ARM_THUMB2) || CPU(ARM_TRADITIONAL)
     756#elif CPU(ARM_THUMB2)
    757757    MacroAssembler::SPRegisterID flagsSPR = ARMRegisters::apsr;
    758758    uintptr_t flagsMask = 0xf8000000;
  • trunk/Source/JavaScriptCore/bytecode/InlineAccess.h

    r235517 r238439  
    5050#elif CPU(ARM64)
    5151        return 40;
    52 #elif CPU(ARM)
    53 #if CPU(ARM_THUMB2)
     52#elif CPU(ARM_THUMB2)
    5453        return 48;
    55 #else
    56         return 52;
    57 #endif
    5854#elif CPU(MIPS)
    5955        return 72;
     
    7268#elif CPU(ARM64)
    7369        return 40;
    74 #elif CPU(ARM)
    75 #if CPU(ARM_THUMB2)
     70#elif CPU(ARM_THUMB2)
    7671        return 48;
    77 #else
    78         return 48;
    79 #endif
    8072#elif CPU(MIPS)
    8173        return 72;
     
    9789#elif CPU(ARM64)
    9890        size_t size = 32;
    99 #elif CPU(ARM)
    100 #if CPU(ARM_THUMB2)
     91#elif CPU(ARM_THUMB2)
    10192        size_t size = 30;
    102 #else
    103         size_t size = 32;
    104 #endif
    10593#elif CPU(MIPS)
    10694        size_t size = 56;
  • trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h

    r237285 r238439  
    984984    }
    985985   
    986 #if !defined(NDEBUG) && !CPU(ARM) && !CPU(MIPS)
     986#if !defined(NDEBUG) && !CPU(ARM_THUMB2) && !CPU(MIPS)
    987987    void prepareForExternalCall()
    988988    {
     
    10601060        return call;
    10611061    }
    1062 #elif CPU(ARM) && !CPU(ARM_HARDFP)
     1062#elif CPU(ARM_THUMB2) && !CPU(ARM_HARDFP)
    10631063    JITCompiler::Call appendCallSetResult(const FunctionPtr<CFunctionPtrTag> function, FPRReg result)
    10641064    {
     
    10681068        return call;
    10691069    }
    1070 #else // CPU(X86_64) || (CPU(ARM) && CPU(ARM_HARDFP)) || CPU(ARM64) || CPU(MIPS)
     1070#else // CPU(X86_64) || (CPU(ARM_THUMB2) && CPU(ARM_HARDFP)) || CPU(ARM64) || CPU(MIPS)
    10711071    JITCompiler::Call appendCallSetResult(const FunctionPtr<CFunctionPtrTag> function, FPRReg result)
    10721072    {
  • trunk/Source/JavaScriptCore/disassembler/CapstoneDisassembler.cpp

    r236768 r238439  
    4545    if (cs_open(CS_ARCH_X86, CS_MODE_64, &handle) != CS_ERR_OK)
    4646        return false;
    47 #elif CPU(ARM_TRADITIONAL)
    48     if (cs_open(CS_ARCH_ARM, CS_MODE_ARM, &handle) != CS_ERR_OK)
    49         return false;
    5047#elif CPU(ARM_THUMB2)
    5148    if (cs_open(CS_ARCH_ARM, CS_MODE_THUMB, &handle) != CS_ERR_OK)
  • trunk/Source/JavaScriptCore/jit/AssemblyHelpers.cpp

    r236734 r238439  
    983983    storePtr(TrustedImmPtr(scratchSize), GPRInfo::regT0);
    984984
    985 #if CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(MIPS)
     985#if CPU(X86_64) || CPU(ARM_THUMB2) || CPU(ARM64) || CPU(MIPS)
    986986    move(TrustedImmPtr(buffer), GPRInfo::argumentGPR2);
    987987    move(TrustedImmPtr(argument), GPRInfo::argumentGPR1);
  • trunk/Source/JavaScriptCore/jit/AssemblyHelpers.h

    r237173 r238439  
    522522#endif // CPU(X86_64) || CPU(X86)
    523523
    524 #if CPU(ARM) || CPU(ARM64)
     524#if CPU(ARM_THUMB2) || CPU(ARM64)
    525525    static size_t prologueStackPointerDelta()
    526526    {
  • trunk/Source/JavaScriptCore/jit/CCallHelpers.h

    r237051 r238439  
    184184    }
    185185
    186 #if CPU(MIPS) || (CPU(ARM) && !CPU(ARM_HARDFP))
     186#if CPU(MIPS) || (CPU(ARM_THUMB2) && !CPU(ARM_HARDFP))
    187187    template<unsigned NumCrossSources, unsigned NumberOfRegisters>
    188188    ALWAYS_INLINE void setupStubCrossArgs(std::array<GPRReg, NumberOfRegisters> destinations, std::array<FPRReg, NumberOfRegisters> sources) {
     
    449449    }
    450450
    451 #elif CPU(ARM) || CPU(MIPS)
     451#elif CPU(ARM_THUMB2) || CPU(MIPS)
    452452
    453453    template<typename OperationType, unsigned numGPRArgs, unsigned numGPRSources, unsigned numFPRArgs, unsigned numFPRSources, unsigned numCrossSources, unsigned extraGPRArgs, unsigned extraPoke, typename... Args>
     
    467467            return;
    468468        }
    469 #elif CPU(ARM) && CPU(ARM_HARDFP)
     469#elif CPU(ARM_THUMB2) && CPU(ARM_HARDFP)
    470470        unsigned numberOfFPArgumentRegisters = FPRInfo::numberOfArgumentRegisters;
    471471        unsigned currentFPArgCount = argSourceRegs.argCount(arg);
     
    478478#endif
    479479
    480 #if CPU(MIPS) || (CPU(ARM) && !CPU(ARM_HARDFP))
     480#if CPU(MIPS) || (CPU(ARM_THUMB2) && !CPU(ARM_HARDFP))
    481481        // On MIPS and ARM-softfp FP arguments can be passed in GP registers.
    482482        unsigned numberOfGPArgumentRegisters = GPRInfo::numberOfArgumentRegisters;
     
    593593    }
    594594
    595 #endif // CPU(ARM) || CPU(MIPS)
     595#endif // CPU(ARM_THUMB2) || CPU(MIPS)
    596596#endif // USE(JSVALUE64)
    597597
     
    674674#endif
    675675        setupStubArgs<numGPRSources, GPRReg>(clampArrayToSize<numGPRSources, GPRReg>(argSourceRegs.gprDestinations), clampArrayToSize<numGPRSources, GPRReg>(argSourceRegs.gprSources));
    676 #if CPU(MIPS) || (CPU(ARM) && !CPU(ARM_HARDFP))
     676#if CPU(MIPS) || (CPU(ARM_THUMB2) && !CPU(ARM_HARDFP))
    677677        setupStubCrossArgs<numCrossSources>(argSourceRegs.crossDestinations, argSourceRegs.crossSources);
    678678#else
     
    803803        // We don't need the current frame beyond this point. Masquerade as our
    804804        // caller.
    805 #if CPU(ARM) || CPU(ARM64)
     805#if CPU(ARM_THUMB2) || CPU(ARM64)
    806806        loadPtr(Address(framePointerRegister, CallFrame::returnPCOffset()), linkRegister);
    807807        subPtr(TrustedImm32(2 * sizeof(void*)), newFrameSizeGPR);
  • trunk/Source/JavaScriptCore/jit/CallFrameShuffler.cpp

    r230129 r238439  
    384384    // manually
    385385    m_newFrameOffset = 0;
    386 #elif CPU(ARM) || CPU(MIPS)
     386#elif CPU(ARM_THUMB2) || CPU(MIPS)
    387387    // We load the frame pointer and link register
    388388    // manually. We could ask the algorithm to load them for us,
     
    446446
    447447    // We load the link register manually for architectures that have one
    448 #if CPU(ARM) || CPU(ARM64)
     448#if CPU(ARM_THUMB2) || CPU(ARM64)
    449449    m_jit.loadPtr(MacroAssembler::Address(MacroAssembler::framePointerRegister, CallFrame::returnPCOffset()),
    450450        MacroAssembler::linkRegister);
  • trunk/Source/JavaScriptCore/jit/HostCallReturnValue.cpp

    r236450 r238439  
    8686);
    8787
    88 #elif COMPILER(GCC_COMPATIBLE) && CPU(ARM_TRADITIONAL)
    89 asm (
    90 ".text" "\n"
    91 ".globl " SYMBOL_STRING(getHostCallReturnValue) "\n"
    92 HIDE_SYMBOL(getHostCallReturnValue) "\n"
    93 INLINE_ARM_FUNCTION(getHostCallReturnValue)
    94 SYMBOL_STRING(getHostCallReturnValue) ":" "\n"
    95     "sub r0, sp, #8" "\n"
    96     "b " LOCAL_REFERENCE(getHostCallReturnValueWithExecState) "\n"
    97 );
    98 
    9988#elif CPU(ARM64)
    10089asm (
  • trunk/Source/JavaScriptCore/jit/JITMathIC.h

    r237547 r238439  
    6969    bool generateInline(CCallHelpers& jit, MathICGenerationState& state, bool shouldEmitProfiling = true)
    7070    {
    71 #if CPU(ARM_TRADITIONAL)
    72         // FIXME: Remove this workaround once the proper fixes are landed.
    73         // [ARM] Disable Inline Caching on ARMv7 traditional until proper fix
    74         // https://bugs.webkit.org/show_bug.cgi?id=159759
    75         return false;
    76 #endif
    77 
    7871        state.fastPathStart = jit.label();
    7972        size_t startSize = jit.m_assembler.buffer().codeSize();
  • trunk/Source/JavaScriptCore/jit/RegisterSet.cpp

    r238414 r238439  
    5252    return RegisterSet(ARM64Registers::lr);
    5353#endif // PLATFORM(IOS_FAMILY)
    54 #elif CPU(ARM_THUMB2) || CPU(ARM_TRADITIONAL)
     54#elif CPU(ARM_THUMB2)
    5555    return RegisterSet(ARMRegisters::lr, ARMRegisters::pc);
    5656#else
     
    136136    result.set(ARMRegisters::r9);
    137137#endif
    138     result.set(ARMRegisters::r10);
    139     result.set(ARMRegisters::r11);
    140 #elif CPU(ARM_TRADITIONAL)
    141     result.set(ARMRegisters::r4);
    142     result.set(ARMRegisters::r5);
    143     result.set(ARMRegisters::r6);
    144     result.set(ARMRegisters::r7);
    145     result.set(ARMRegisters::r8);
    146     result.set(ARMRegisters::r9);
    147138    result.set(ARMRegisters::r10);
    148139    result.set(ARMRegisters::r11);
     
    240231#elif CPU(ARM_THUMB2)
    241232    result.set(GPRInfo::regCS0);
    242 #elif CPU(ARM_TRADITIONAL)
    243233#elif CPU(ARM64)
    244234    result.set(GPRInfo::regCS6);
     
    277267#endif
    278268#elif CPU(ARM_THUMB2)
    279 #elif CPU(ARM_TRADITIONAL)
    280269#elif CPU(ARM64)
    281270    ASSERT(GPRInfo::regCS8 == GPRInfo::tagTypeNumberRegister);
  • trunk/Source/JavaScriptCore/jit/Repatch.cpp

    r235517 r238439  
    131131static bool forceICFailure(ExecState*)
    132132{
    133 #if CPU(ARM_TRADITIONAL)
    134     // FIXME: Remove this workaround once the proper fixes are landed.
    135     // [ARM] Disable Inline Caching on ARMv7 traditional until proper fix
    136     // https://bugs.webkit.org/show_bug.cgi?id=159759
    137     return true;
    138 #else
    139133    return Options::forceICFailure();
    140 #endif
    141134}
    142135
  • trunk/Source/JavaScriptCore/jit/ThunkGenerators.cpp

    r237266 r238439  
    351351    jit.call(ARM64Registers::x2, JSEntryPtrTag);
    352352
    353 #elif CPU(ARM) || CPU(MIPS)
     353#elif CPU(ARM_THUMB2) || CPU(MIPS)
    354354#if CPU(MIPS)
    355355    // Allocate stack space for (unused) 16 bytes (8-byte aligned) for 4 arguments.
  • trunk/Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h

    r237173 r238439  
    3535#define OFFLINE_ASM_X86 0
    3636#define OFFLINE_ASM_X86_WIN 0
    37 #define OFFLINE_ASM_ARM 0
    3837#define OFFLINE_ASM_ARMv7 0
    39 #define OFFLINE_ASM_ARMv7_TRADITIONAL 0
    4038#define OFFLINE_ASM_ARM64 0
    4139#define OFFLINE_ASM_ARM64E 0
     
    7876#else
    7977#define OFFLINE_ASM_ARMv7 0
    80 #endif
    81 
    82 #if CPU(ARM_TRADITIONAL)
    83 #if WTF_ARM_ARCH_AT_LEAST(7)
    84 #define OFFLINE_ASM_ARMv7_TRADITIONAL 1
    85 #define OFFLINE_ASM_ARM 0
    86 #else
    87 #define OFFLINE_ASM_ARM 1
    88 #define OFFLINE_ASM_ARMv7_TRADITIONAL 0
    89 #endif
    90 #else
    91 #define OFFLINE_ASM_ARMv7_TRADITIONAL 0
    92 #define OFFLINE_ASM_ARM 0
    9378#endif
    9479
  • trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.asm

    r238414 r238439  
    7272#  registers on all architectures.
    7373#
    74 #  - lr is defined on non-X86 architectures (ARM64, ARM64E, ARMv7, ARM,
    75 #  ARMv7_TRADITIONAL, MIPS and CLOOP) and holds the return PC
    76 #
    77 #  - pc holds the (native) program counter on 32-bits ARM architectures (ARM,
    78 #  ARMv7, ARMv7_TRADITIONAL)
     74#  - lr is defined on non-X86 architectures (ARM64, ARM64E, ARMv7, MIPS and CLOOP)
     75#  and holds the return PC
     76#
     77#  - pc holds the (native) program counter on 32-bits ARM architectures (ARMv7)
    7978#
    8079#  - t0, t1, t2, t3, t4 and optionally t5 are temporary registers that can get trashed on
     
    613612            # improvement from avoiding useless work.
    614613        else
    615             if ARM or ARMv7 or ARMv7_TRADITIONAL
     614            if ARMv7
    616615                # ARM can't do logical ops with the sp as a source
    617616                move sp, tempReg
     
    630629if C_LOOP or ARM64 or ARM64E or X86_64 or X86_64_WIN
    631630    const CalleeSaveRegisterCount = 0
    632 elsif ARM or ARMv7_TRADITIONAL or ARMv7
     631elsif ARMv7
    633632    const CalleeSaveRegisterCount = 7
    634633elsif MIPS
     
    646645macro pushCalleeSaves()
    647646    if C_LOOP or ARM64 or ARM64E or X86_64 or X86_64_WIN
    648     elsif ARM or ARMv7_TRADITIONAL
    649         emit "push {r4-r10}"
    650647    elsif ARMv7
    651648        emit "push {r4-r6, r8-r11}"
     
    668665macro popCalleeSaves()
    669666    if C_LOOP or ARM64 or ARM64E or X86_64 or X86_64_WIN
    670     elsif ARM or ARMv7_TRADITIONAL
    671         emit "pop {r4-r10}"
    672667    elsif ARMv7
    673668        emit "pop {r4-r6, r8-r11}"
     
    687682
    688683macro preserveCallerPCAndCFR()
    689     if C_LOOP or ARM or ARMv7 or ARMv7_TRADITIONAL or MIPS
     684    if C_LOOP or ARMv7 or MIPS
    690685        push lr
    691686        push cfr
     
    702697macro restoreCallerPCAndCFR()
    703698    move cfr, sp
    704     if C_LOOP or ARM or ARMv7 or ARMv7_TRADITIONAL or MIPS
     699    if C_LOOP or ARMv7 or MIPS
    705700        pop cfr
    706701        pop lr
     
    716711    if C_LOOP
    717712        storep metadataTable, -PtrSize[cfr]
    718     elsif ARM or ARMv7_TRADITIONAL
    719713    elsif ARMv7
    720714        storep metadataTable, -4[cfr]
     
    741735    if C_LOOP
    742736        loadp -PtrSize[cfr], metadataTable
    743     elsif ARM or ARMv7_TRADITIONAL
    744737    elsif ARMv7
    745738        loadp -4[cfr], metadataTable
     
    852845
    853846macro preserveReturnAddressAfterCall(destinationRegister)
    854     if C_LOOP or ARM or ARMv7 or ARMv7_TRADITIONAL or ARM64 or ARM64E or MIPS
     847    if C_LOOP or ARMv7 or ARM64 or ARM64E or MIPS
    855848        # In C_LOOP case, we're only preserving the bytecode vPC.
    856849        move lr, destinationRegister
     
    875868    elsif ARM64 or ARM64E
    876869        push cfr, lr
    877     elsif C_LOOP or ARM or ARMv7 or ARMv7_TRADITIONAL or MIPS
     870    elsif C_LOOP or ARMv7 or MIPS
    878871        push lr
    879872        push cfr
     
    887880    elsif ARM64 or ARM64E
    888881        pop lr, cfr
    889     elsif C_LOOP or ARM or ARMv7 or ARMv7_TRADITIONAL or MIPS
     882    elsif C_LOOP or ARMv7 or MIPS
    890883        pop cfr
    891884        pop lr
     
    959952    andi ~StackAlignmentMask, temp2
    960953
    961     if ARM or ARMv7_TRADITIONAL or ARMv7 or ARM64 or ARM64E or C_LOOP or MIPS
     954    if ARMv7 or ARM64 or ARM64E or C_LOOP or MIPS
    962955        addp CallerFrameAndPCSize, sp
    963956        subi CallerFrameAndPCSize, temp2
     
    11181111            pop lr, cfr
    11191112            untagReturnAddress sp
    1120         elsif ARM or ARMv7 or ARMv7_TRADITIONAL or MIPS
     1113        elsif ARMv7 or MIPS
    11211114            pop cfr
    11221115            pop lr
     
    13251318            move pc, pcBase
    13261319            subp 3, pcBase   # Need to back up the PC and set the Thumb2 bit
    1327         elsif ARM or ARMv7_TRADITIONAL
    1328         _relativePCBase:
    1329             move pc, pcBase
    1330             subp 8, pcBase
    13311320        elsif MIPS
    13321321            la _relativePCBase, pcBase
     
    13591348        move index, t4
    13601349        storep t2, [map, t4, PtrSize]
    1361     elsif ARM or ARMv7 or ARMv7_TRADITIONAL
     1350    elsif ARMv7
    13621351        mvlbl (label - _relativePCBase), t4
    13631352        addp t4, t2, t4
  • trunk/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm

    r238435 r238439  
    8989
    9090macro cCall2(function)
    91     if ARM or ARMv7 or ARMv7_TRADITIONAL or MIPS
     91    if ARMv7 or MIPS
    9292        call function
    9393    elsif X86 or X86_WIN
     
    113113
    114114macro cCall4(function)
    115     if ARM or ARMv7 or ARMv7_TRADITIONAL or MIPS
     115    if ARMv7 or MIPS
    116116        call function
    117117    elsif X86 or X86_WIN
     
    175175        andp ~StackAlignmentMask, t3
    176176        subp t3, CallFrameAlignSlots * SlotSize, sp
    177     elsif ARM or ARMv7 or ARMv7_TRADITIONAL
     177    elsif ARMv7
    178178        addp CallFrameAlignSlots * SlotSize, sp, t3
    179179        clrbp t3, StackAlignmentMask, t3
    180         if ARMv7
    181             subp t3, CallFrameAlignSlots * SlotSize, t3
    182             move t3, sp
    183         else
    184             subp t3, CallFrameAlignSlots * SlotSize, sp
    185         end
     180        subp t3, CallFrameAlignSlots * SlotSize, t3
     181        move t3, sp
    186182    end
    187183
     
    20362032        loadp MarkedBlockFooterOffset + MarkedBlock::Footer::m_vm[t3], t3
    20372033        addp 8, sp
    2038     elsif ARM or ARMv7 or ARMv7_TRADITIONAL or C_LOOP or MIPS
     2034    elsif ARMv7 or C_LOOP or MIPS
    20392035        if MIPS
    20402036        # calling convention says to save stack space for 4 first registers in
     
    21032099        loadp MarkedBlockFooterOffset + MarkedBlock::Footer::m_vm[t3], t3
    21042100        addp 8, sp
    2105     elsif ARM or ARMv7 or ARMv7_TRADITIONAL or C_LOOP or MIPS
     2101    elsif ARMv7 or C_LOOP or MIPS
    21062102        subp 8, sp # align stack pointer
    21072103        # t1 already contains the Callee.
  • trunk/Source/JavaScriptCore/offlineasm/arm.rb

    r237803 r238439  
    6060    when "ARMv7"
    6161        true
    62     when "ARMv7_TRADITIONAL", "ARM"
    63         false
    64     else
    65         raise "bad value for $activeBackend: #{$activeBackend}"
    66     end
    67 end
    68 
    69 def isARMv7Traditional
    70     case $activeBackend
    71     when "ARMv7_TRADITIONAL"
    72         true
    73     when "ARMv7", "ARM"
    74         false
    7562    else
    7663        raise "bad value for $activeBackend: #{$activeBackend}"
     
    10592    elsif (~value) >= 0 && (~value) < 256
    10693        $asm.puts "mvn #{register.armOperand}, \##{~value}"
    107     elsif isARMv7 or isARMv7Traditional
     94    elsif isARMv7
    10895        $asm.puts "movw #{register.armOperand}, \##{value & 0xffff}"
    10996        if (value & 0xffff0000) != 0
     
    302289
    303290class Sequence
    304     def getModifiedListARM
    305         raise unless $activeBackend == "ARM"
    306         getModifiedListARMCommon
    307     end
    308 
    309291    def getModifiedListARMv7
    310292        raise unless $activeBackend == "ARMv7"
    311         getModifiedListARMCommon
    312     end
    313 
    314     def getModifiedListARMv7_TRADITIONAL
    315         raise unless $activeBackend == "ARMv7_TRADITIONAL"
    316293        getModifiedListARMCommon
    317294    end
     
    415392
    416393class Instruction
    417     def lowerARM
    418         raise unless $activeBackend == "ARM"
    419         lowerARMCommon
    420     end
    421 
    422394    def lowerARMv7
    423395        raise unless $activeBackend == "ARMv7"
    424         lowerARMCommon
    425     end
    426 
    427     def lowerARMv7_TRADITIONAL
    428         raise unless $activeBackend == "ARMv7_TRADITIONAL"
    429396        lowerARMCommon
    430397    end
  • trunk/Source/JavaScriptCore/offlineasm/backends.rb

    r237173 r238439  
    4141     "X86_64",
    4242     "X86_64_WIN",
    43      "ARM",
    4443     "ARMv7",
    45      "ARMv7_TRADITIONAL",
    4644     "ARM64",
    4745     "ARM64E",
     
    6159     "X86_64",
    6260     "X86_64_WIN",
    63      "ARM",
    6461     "ARMv7",
    65      "ARMv7_TRADITIONAL",
    6662     "ARM64",
    6763     "ARM64E",
  • trunk/Source/JavaScriptCore/yarr/YarrJIT.cpp

    r235648 r238439  
    4444class YarrGenerator : public YarrJITInfo, private MacroAssembler {
    4545
    46 #if CPU(ARM)
     46#if CPU(ARM_THUMB2)
    4747    static const RegisterID input = ARMRegisters::r0;
    4848    static const RegisterID index = ARMRegisters::r1;
     
    37243724        zeroExtend32ToPtr(index, index);
    37253725        zeroExtend32ToPtr(length, length);
    3726 #elif CPU(ARM)
     3726#elif CPU(ARM_THUMB2)
    37273727        push(ARMRegisters::r4);
    37283728        push(ARMRegisters::r5);
     
    37773777        if (m_decodeSurrogatePairs)
    37783778            popPair(framePointerRegister, linkRegister);
    3779 #elif CPU(ARM)
     3779#elif CPU(ARM_THUMB2)
    37803780        pop(ARMRegisters::r8);
    37813781        pop(ARMRegisters::r6);
  • trunk/Source/WTF/ChangeLog

    r238434 r238439  
     12018-11-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
     2
     3        [JSC] Drop ARM_TRADITIONAL support in LLInt, baseline JIT, and DFG
     4        https://bugs.webkit.org/show_bug.cgi?id=191675
     5
     6        Reviewed by Mark Lam.
     7
     8        * wtf/InlineASM.h:
     9        * wtf/Platform.h:
     10
    1112018-11-21  Andy Estes  <aestes@apple.com>
    212
  • trunk/Source/WTF/wtf/InlineASM.h

    r237266 r238439  
    9494#endif
    9595
    96 #if (CPU(ARM_TRADITIONAL) && (defined(thumb2) || defined(__thumb2__) || defined(__thumb) || defined(__thumb__))) || CPU(ARM_THUMB2)
     96#if CPU(ARM_THUMB2)
    9797#define INLINE_ARM_FUNCTION(name) ".thumb" "\n" ".thumb_func " THUMB_FUNC_PARAM(name) "\n"
    9898#else
  • trunk/Source/WTF/wtf/Platform.h

    r238434 r238439  
    822822#define ENABLE_DFG_JIT 1
    823823#endif
    824 /* Enable the DFG JIT on ARM. */
    825 #if CPU(ARM_TRADITIONAL)
    826 #define ENABLE_DFG_JIT 1
    827 #endif
    828824/* Enable the DFG JIT on MIPS. */
    829825#if CPU(MIPS)
     
    848844#endif
    849845
    850 #if CPU(X86) || CPU(X86_64) || CPU(ARM_THUMB2) || CPU(ARM64) || CPU(ARM_TRADITIONAL) || CPU(MIPS)
     846#if CPU(X86) || CPU(X86_64) || CPU(ARM_THUMB2) || CPU(ARM64) || CPU(MIPS)
    851847#define ENABLE_MASM_PROBE 1
    852848#else
Note: See TracChangeset for help on using the changeset viewer.