Ignore:
Timestamp:
Aug 10, 2017, 10:31:32 PM (8 years ago)
Author:
[email protected]
Message:

Make the MASM_PROBE mechanism mandatory for DFG and FTL builds.
https://bugs.webkit.org/show_bug.cgi?id=175446
<rdar://problem/33836545>

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • assembler/AbstractMacroAssembler.h:
  • assembler/MacroAssembler.cpp:

(JSC::MacroAssembler::probe):

  • assembler/MacroAssembler.h:
  • assembler/MacroAssemblerARM.cpp:

(JSC::MacroAssembler::probe):

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::trustedImm32FromPtr):

  • assembler/MacroAssemblerARM64.cpp:

(JSC::MacroAssembler::probe):

  • assembler/MacroAssemblerARMv7.cpp:

(JSC::MacroAssembler::probe):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::trustedImm32FromPtr):

  • assembler/MacroAssemblerPrinter.cpp:
  • assembler/MacroAssemblerPrinter.h:
  • assembler/MacroAssemblerX86Common.cpp:
  • assembler/testmasm.cpp:

(JSC::isSpecialGPR):
(JSC::testProbeModifiesProgramCounter):
(JSC::run):

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::print):

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

Source/WTF:

This is needed in order to support https://bugs.webkit.org/show_bug.cgi?id=174645.
One consequence of this is that the DFG will now be disabled for the MIPS and
Windows ports. See:

https://bugs.webkit.org/show_bug.cgi?id=175447
https://bugs.webkit.org/show_bug.cgi?id=175449

Also, we should only ENABLE_SIGNAL_BASED_VM_TRAPS if the DFG is enabled. It was
never meaningful to use SIGNAL_BASED_VM_TRAPS with the baseline JIT anyway. This
is a mis-configuration error that is now fixed.

  • wtf/Platform.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerPrinter.cpp

    r219790 r220579  
    2727#include "MacroAssemblerPrinter.h"
    2828
    29 #if ENABLE(MASM_PROBE)
    30 
    3129#include "MacroAssembler.h"
     30#include <inttypes.h>
    3231
    3332namespace JSC {
     
    5453
    5554#if USE(JSVALUE32_64)
    56     #define INTPTR_HEX_VALUE_FORMAT "0x%08lx"
     55    #define INTPTR_HEX_VALUE_FORMAT "0x%08" PRIxPTR
    5756#else
    58     #define INTPTR_HEX_VALUE_FORMAT "0x%016lx"
     57    #define INTPTR_HEX_VALUE_FORMAT "0x%016" PRIxPTR
    5958#endif
    6059
    6160    for (auto id = MacroAssembler::firstRegister(); id <= MacroAssembler::lastRegister(); id = nextID(id)) {
    6261        intptr_t value = static_cast<intptr_t>(cpu.gpr(id));
    63         INDENT, out.printf("    %6s: " INTPTR_HEX_VALUE_FORMAT "  %ld\n", cpu.gprName(id), value, value);
     62        INDENT, out.printf("    %6s: " INTPTR_HEX_VALUE_FORMAT "  %" PRIdPTR "\n", cpu.gprName(id), value, value);
    6463    }
    6564    for (auto id = MacroAssembler::firstSPRegister(); id <= MacroAssembler::lastSPRegister(); id = nextID(id)) {
    6665        intptr_t value = static_cast<intptr_t>(cpu.spr(id));
    67         INDENT, out.printf("    %6s: " INTPTR_HEX_VALUE_FORMAT "  %ld\n", cpu.sprName(id), value, value);
     66        INDENT, out.printf("    %6s: " INTPTR_HEX_VALUE_FORMAT "  %" PRIdPTR "\n", cpu.sprName(id), value, value);
    6867    }
    6968    #undef INTPTR_HEX_VALUE_FORMAT
     
    7271        uint64_t u = bitwise_cast<uint64_t>(cpu.fpr(id));
    7372        double d = cpu.fpr(id);
    74         INDENT, out.printf("    %6s: 0x%016llx  %.13g\n", cpu.fprName(id), u, d);
     73        INDENT, out.printf("    %6s: 0x%016" PRIx64 "  %.13g\n", cpu.fprName(id), u, d);
    7574    }
    7675
     
    10099    const char* name = CPUState::fprName(regID);
    101100    double value = context.probeContext.fpr(regID);
    102     out.printf("%s:<0x%016llx %.13g>", name, bitwise_cast<uint64_t>(value), value);
     101    out.printf("%s:<0x%016" PRIx64 " %.13g>", name, bitwise_cast<uint64_t>(value), value);
    103102}
    104103
     
    147146        if (memory.numBytes == sizeof(int64_t)) {
    148147            auto p = reinterpret_cast<int64_t*>(ptr);
    149             out.printf("%p:<0x%016llx %lld>", p, *p, *p);
     148            out.printf("%p:<0x%016" PRIx64 " %" PRId64 ">", p, *p, *p);
    150149            return;
    151150        }
     
    184183} // namespace JSC
    185184
    186 #endif // ENABLE(MASM_PROBE)
Note: See TracChangeset for help on using the changeset viewer.