Changeset 220823 in webkit


Ignore:
Timestamp:
Aug 16, 2017 10:09:06 PM (7 years ago)
Author:
mark.lam@apple.com
Message:

Add back the ability to disable MASM_PROBE from the build.
https://bugs.webkit.org/show_bug.cgi?id=175656
<rdar://problem/33933720>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

This is needed for ports that the existing MASM_PROBE implementation doesn't work
well with e.g. GTK with ARM_THUMB2. Note that if the DFG_JIT will be disabled by
default if !ENABLE(MASM_PROBE).

  • assembler/AbstractMacroAssembler.h:
  • assembler/MacroAssembler.cpp:
  • assembler/MacroAssembler.h:
  • assembler/MacroAssemblerARM.cpp:
  • assembler/MacroAssemblerARM64.cpp:
  • assembler/MacroAssemblerARMv7.cpp:
  • assembler/MacroAssemblerPrinter.cpp:
  • assembler/MacroAssemblerPrinter.h:
  • assembler/MacroAssemblerX86Common.cpp:
  • assembler/testmasm.cpp:

(JSC::run):

  • b3/B3LowerToAir.cpp:
  • b3/air/AirPrintSpecial.cpp:
  • b3/air/AirPrintSpecial.h:

Source/WTF:

  • wtf/Platform.h:
Location:
trunk/Source
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r220822 r220823  
     12017-08-16  Mark Lam  <mark.lam@apple.com>
     2
     3        Add back the ability to disable MASM_PROBE from the build.
     4        https://bugs.webkit.org/show_bug.cgi?id=175656
     5        <rdar://problem/33933720>
     6
     7        Reviewed by Yusuke Suzuki.
     8
     9        This is needed for ports that the existing MASM_PROBE implementation doesn't work
     10        well with e.g. GTK with ARM_THUMB2.  Note that if the DFG_JIT will be disabled by
     11        default if !ENABLE(MASM_PROBE).
     12
     13        * assembler/AbstractMacroAssembler.h:
     14        * assembler/MacroAssembler.cpp:
     15        * assembler/MacroAssembler.h:
     16        * assembler/MacroAssemblerARM.cpp:
     17        * assembler/MacroAssemblerARM64.cpp:
     18        * assembler/MacroAssemblerARMv7.cpp:
     19        * assembler/MacroAssemblerPrinter.cpp:
     20        * assembler/MacroAssemblerPrinter.h:
     21        * assembler/MacroAssemblerX86Common.cpp:
     22        * assembler/testmasm.cpp:
     23        (JSC::run):
     24        * b3/B3LowerToAir.cpp:
     25        * b3/air/AirPrintSpecial.cpp:
     26        * b3/air/AirPrintSpecial.h:
     27
    1282017-08-16  Dan Bernstein  <mitz@apple.com>
    229
  • trunk/Source/JavaScriptCore/assembler/AbstractMacroAssembler.h

    r220579 r220823  
    4444#if ENABLE(ASSEMBLER)
    4545
     46#if ENABLE(MASM_PROBE)
    4647struct ProbeContext;
    4748typedef void (*ProbeFunction)(struct ProbeContext*);
     49#endif
    4850   
    4951class AllowMacroScratchRegisterUsage;
  • trunk/Source/JavaScriptCore/assembler/MacroAssembler.cpp

    r220579 r220823  
    3535const double MacroAssembler::twoToThe32 = (double)0x100000000ull;
    3636
     37#if ENABLE(MASM_PROBE)
    3738static void stdFunctionCallback(ProbeContext* context)
    3839{
     
    4546    probe(stdFunctionCallback, new std::function<void(ProbeContext*)>(func));
    4647}
     48#endif // ENABLE(MASM_PROBE)
    4749
    4850} // namespace JSC
  • trunk/Source/JavaScriptCore/assembler/MacroAssembler.h

    r220807 r220823  
    18251825    }
    18261826
     1827#if ENABLE(MASM_PROBE)
    18271828    struct CPUState;
    18281829
     
    18861887
    18871888    void print(Printer::PrintRecordList*);
     1889#endif // ENABLE(MASM_PROBE)
    18881890};
    18891891
     1892#if ENABLE(MASM_PROBE)
    18901893struct MacroAssembler::CPUState {
    18911894    static inline const char* gprName(RegisterID id) { return MacroAssembler::gprName(id); }
     
    20472050    template<typename T> T sp() { return cpu.sp<T>(); }
    20482051};
    2049    
     2052#endif // ENABLE(MASM_PROBE)
     2053
    20502054} // namespace JSC
    20512055
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp

    r220807 r220823  
    9696}
    9797#endif // CPU(ARMV5_OR_LOWER)
     98
     99#if ENABLE(MASM_PROBE)
    98100
    99101extern "C" void ctiMasmProbeTrampoline();
     
    394396
    395397}
     398#endif // ENABLE(MASM_PROBE)
    396399
    397400} // namespace JSC
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp

    r220807 r220823  
    3232
    3333namespace JSC {
     34
     35#if ENABLE(MASM_PROBE)
    3436
    3537extern "C" void ctiMasmProbeTrampoline();
     
    557559}
    558560
     561#endif // ENABLE(MASM_PROBE)
     562
    559563} // namespace JSC
    560564
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.cpp

    r220807 r220823  
    3232
    3333namespace JSC {
     34
     35#if ENABLE(MASM_PROBE)
    3436
    3537extern "C" void ctiMasmProbeTrampoline();
     
    337339    m_assembler.blx(RegisterID::ip);
    338340}
     341#endif // ENABLE(MASM_PROBE)
    339342
    340343} // namespace JSC
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerPrinter.cpp

    r220600 r220823  
    2828
    2929#if ENABLE(ASSEMBLER)
     30#if ENABLE(MASM_PROBE)
    3031
    3132#include "MacroAssembler.h"
     
    185186} // namespace JSC
    186187
     188#endif // ENABLE(MASM_PROBE)
    187189#endif // ENABLE(ASSEMBLER)
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerPrinter.h

    r220579 r220823  
    3232
    3333#if ENABLE(ASSEMBLER)
     34#if ENABLE(MASM_PROBE)
    3435
    3536// What is MacroAssembler::print()?
     
    239240}
    240241
     242#endif // ENABLE(MASM_PROBE)
    241243#endif // ENABLE(ASSEMBLER)
    242244
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.cpp

    r220807 r220823  
    3232
    3333namespace JSC {
     34
     35#if ENABLE(MASM_PROBE)
    3436
    3537extern "C" void ctiMasmProbeTrampoline();
     
    576578    call(RegisterID::eax);
    577579}
     580#endif // ENABLE(MASM_PROBE)
    578581
    579582#if CPU(X86) && !OS(MAC_OS_X)
  • trunk/Source/JavaScriptCore/assembler/testmasm.cpp

    r220807 r220823  
    5151#if ENABLE(JIT)
    5252
     53#if ENABLE(MASM_PROBE)
    5354namespace WTF {
    5455
     
    5960
    6061} // namespace WTF
     62#endif // ENABLE(MASM_PROBE)
    6163
    6264using namespace JSC;
     
    6466namespace {
    6567
     68#if ENABLE(MASM_PROBE)
    6669using CPUState = MacroAssembler::CPUState;
     70#endif
    6771
    6872StaticLock crashLock;
     
    9498    } while (false)
    9599
     100#if ENABLE(MASM_PROBE)
    96101bool isPC(MacroAssembler::RegisterID id)
    97102{
     
    124129    return false;
    125130}
     131#endif // ENABLE(MASM_PROBE)
    126132
    127133MacroAssemblerCodeRef compile(Generator&& generate)
     
    156162}
    157163
     164#if ENABLE(MASM_PROBE)
    158165void testProbeReadsArgumentRegisters()
    159166{
     
    662669    CHECK_EQ(probeCallCount, 3);
    663670}
     671#endif // ENABLE(MASM_PROBE)
    664672
    665673#define RUN(test) do {                          \
     
    689697    RUN(testSimple());
    690698
     699#if ENABLE(MASM_PROBE)
    691700    RUN(testProbeReadsArgumentRegisters());
    692701    RUN(testProbeWritesArgumentRegisters());
     
    696705    RUN(testProbeModifiesProgramCounter());
    697706    RUN(testProbeModifiesStackWithCallback());
     707#endif // ENABLE(MASM_PROBE)
    698708
    699709    if (tasks.isEmpty())
  • trunk/Source/JavaScriptCore/b3/B3LowerToAir.cpp

    r220625 r220823  
    11511151    }
    11521152
     1153#if ENABLE(MASM_PROBE)
    11531154    template<typename... Arguments>
    11541155    void print(Arguments&&... arguments)
     
    11671168        append(WTFMove(inst));
    11681169    }
     1170#endif // ENABLE(MASM_PROBE)
    11691171
    11701172    template<typename... Arguments>
  • trunk/Source/JavaScriptCore/b3/air/AirPrintSpecial.cpp

    r220579 r220823  
    2828
    2929#if ENABLE(B3_JIT)
     30#if ENABLE(MASM_PROBE)
    3031
    3132#include "MacroAssemblerPrinter.h"
     
    125126} // namespace JSC
    126127
     128#endif // ENABLE(MASM_PROBE)
    127129#endif // ENABLE(B3_JIT)
  • trunk/Source/JavaScriptCore/b3/air/AirPrintSpecial.h

    r220579 r220823  
    2727
    2828#if ENABLE(B3_JIT)
     29#if ENABLE(MASM_PROBE)
    2930
    3031#include "AirInst.h"
     
    129130} } } // namespace JSC::B3::Air
    130131
     132#endif // ENABLE(MASM_PROBE)
    131133#endif // ENABLE(B3_JIT)
  • trunk/Source/WTF/ChangeLog

    r220816 r220823  
     12017-08-16  Mark Lam  <mark.lam@apple.com>
     2
     3        Add back the ability to disable MASM_PROBE from the build.
     4        https://bugs.webkit.org/show_bug.cgi?id=175656
     5        <rdar://problem/33933720>
     6
     7        Reviewed by Yusuke Suzuki.
     8
     9        * wtf/Platform.h:
     10
    1112017-08-16  Mark Lam  <mark.lam@apple.com>
    212
  • trunk/Source/WTF/wtf/Platform.h

    r220816 r220823  
    806806#endif
    807807
    808 /* If the baseline jit is not available, then disable upper tiers as well: */
    809 #if !ENABLE(JIT)
     808#if CPU(X86) || CPU(X86_64) || CPU(ARM_THUMB2) || CPU(ARM64) || CPU(ARM_TRADITIONAL)
     809#define ENABLE_MASM_PROBE 1
     810#else
     811#define ENABLE_MASM_PROBE 0
     812#endif
     813
     814#if OS(WINDOW)
     815#undef ENABLE_MASM_PROBE
     816#define ENABLE_MASM_PROBE 0
     817#endif
     818#if PLATFORM(GTK) && CPU(ARM_THUMB2)
     819/* FIXME: https://bugs.webkit.org/show_bug.cgi?id=175514 */
     820#undef ENABLE_MASM_PROBE
     821#define ENABLE_MASM_PROBE 0
     822#endif
     823
     824/* If the baseline jit is not available, then disable upper tiers as well.
     825   The MacroAssembler::probe() is also required for supporting the upper tiers. */
     826#if !ENABLE(JIT) || !ENABLE(MASM_PROBE)
    810827#undef ENABLE_DFG_JIT
    811828#undef ENABLE_FTL_JIT
Note: See TracChangeset for help on using the changeset viewer.