Skip to content
  • oliver@apple.com's avatar
    fourthTier: FTL should support Jump and ForceOSRExit · 0d018be1
    oliver@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=115942
    
    Reviewed by Oliver Hunt.
    
    Added two obvious nodes: Jump and ForceOSRExit. We already had everything we needed
    to support them.
    
    Adding these increases our coverage a fair bit, and revealed a bug: LLVM's full
    instruction selector currently appears to mishandle doubles in constant pools (or
    just constant pools in general) with the small code model in the MCJIT. But switching
    to FastISel "fixes" it. That's what this patch does, for now. This will probably
    actually be permanent; the FastISel does pretty much everything we would ever want,
    at least in the foreseeable future.
    
    * ftl/FTLCapabilities.cpp:
    (JSC::FTL::canCompile):
    (FTL):
    * ftl/FTLCompile.cpp:
    (JSC::FTL::compile):
    * ftl/FTLLowerDFGToLLVM.cpp:
    (JSC::FTL::LowerDFGToLLVM::compileBlock):
    (JSC::FTL::LowerDFGToLLVM::compileNode):
    (JSC::FTL::LowerDFGToLLVM::compileJSConstant):
    (LowerDFGToLLVM):
    (JSC::FTL::LowerDFGToLLVM::compileJump):
    (JSC::FTL::LowerDFGToLLVM::compileReturn):
    (JSC::FTL::LowerDFGToLLVM::compileForceOSRExit):
    * runtime/Options.h:
    (JSC):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153156 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    0d018be1