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):
(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.