Ignore:
Timestamp:
Nov 29, 2017, 4:16:19 PM (8 years ago)
Author:
[email protected]
Message:

Source/JavaScriptCore:
[MIPS][JSC] Implement MacroAssembler::probe support on MIPS
https://bugs.webkit.org/show_bug.cgi?id=175447

Patch by Stanislav Ocovaj <[email protected]> on 2017-11-29
Reviewed by Carlos Alberto Lopez Perez.

This patch allows DFG JIT to be enabled on MIPS platforms.

  • Sources.txt:
  • assembler/MIPSAssembler.h:

(JSC::MIPSAssembler::lastSPRegister):
(JSC::MIPSAssembler::numberOfSPRegisters):
(JSC::MIPSAssembler::sprName):

  • assembler/MacroAssemblerMIPS.cpp: Added.

(JSC::MacroAssembler::probe):

  • assembler/ProbeContext.cpp:

(JSC::Probe::executeProbe):

  • assembler/ProbeContext.h:

(JSC::Probe::CPUState::pc):

  • assembler/testmasm.cpp:

(JSC::isSpecialGPR):
(JSC::testProbePreservesGPRS):
(JSC::testProbeModifiesStackPointer):
(JSC::testProbeModifiesStackValues):

Source/WTF:
[DFG][MIPS] Enable DFG JIT on MIPS.
https://bugs.webkit.org/show_bug.cgi?id=175447

Patch by Stanislav Ocovaj <[email protected]> on 2017-11-29
Reviewed by Carlos Alberto Lopez Perez.

  • wtf/Platform.h:
File:
1 edited

Legend:

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

    r225293 r225301  
    4141    void* originalLR = cpu.gpr<void*>(ARM64Registers::lr);
    4242    void* originalPC = cpu.pc();
     43#elif CPU(MIPS)
     44    auto& cpu = context.cpu;
     45    void* originalRA = cpu.gpr<void*>(MIPSRegisters::ra);
     46    void* originalPC = cpu.pc();
    4347#endif
    4448
     
    5054    // The ARM64 probe trampoline does not support changing both lr and pc.
    5155    RELEASE_ASSERT(originalPC == cpu.pc() || originalLR == cpu.gpr<void*>(ARM64Registers::lr));
     56#elif CPU(MIPS)
     57    // The MIPS probe trampoline does not support changing both ra and pc.
     58    RELEASE_ASSERT(originalPC == cpu.pc() || originalRA == cpu.gpr<void*>(MIPSRegisters::ra));
    5259#endif
    5360
Note: See TracChangeset for help on using the changeset viewer.