Skip to content
  • msaboff@apple.com's avatar
    For ARMv7s use integer divide instruction for divide and modulo when possible · 068f7052
    msaboff@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=108840
    
    Reviewed in person by Filip Pizlo.
    
    Added ARMv7s integer divide path for ArithDiv and ArithMod where operands and results are integer.
    This is patterned after the similar code for X86.  Also added modulo power of 2 optimization
    that uses logical and.  Added sdiv and udiv to the ARMv7 disassembler.  Put all the changes
    behind #if CPU(APPLE_ARMV7S). 
    
    * assembler/ARMv7Assembler.h:
    (ARMv7Assembler):
    (JSC::ARMv7Assembler::sdiv):
    (JSC::ARMv7Assembler::udiv):
    * dfg/DFGCommon.h:
    (JSC::DFG::isARMv7s):
    * dfg/DFGFixupPhase.cpp:
    (JSC::DFG::FixupPhase::fixupNode):
    * dfg/DFGSpeculativeJIT.cpp:
    (JSC::DFG::SpeculativeJIT::compileSoftModulo):
    (JSC::DFG::SpeculativeJIT::compileIntegerArithDivForARMv7s):
    * dfg/DFGSpeculativeJIT.h:
    (SpeculativeJIT):
    * dfg/DFGSpeculativeJIT32_64.cpp:
    (JSC::DFG::SpeculativeJIT::compile):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141788 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    068f7052