-
fpizlo@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=105400 Reviewed by Gavin Barraclough. The interesting bit of this change is allowing out-of-line slow path generators to emit speculation checks. This is accomplished by having a version of speculationCheck() that returns a jump placeholder instead of taking a jump (or jump list) as an argument. You can then fill in that jump placeholder at a later time, so long as you do it before OSR exit linking. Slow path generators run before linking, so that just naturally ends up working. This isn't really a big win, but we know that out-of-lining slow paths is generally a good thing to do, so it's fair to assume that this is a move in the right direction. * CMakeLists.txt: * GNUmakefile.list.am: * JavaScriptCore.xcodeproj/project.pbxproj: * Target.pri: * dfg/DFGArrayifySlowPathGenerator.h: Added. (DFG): (ArrayifySlowPathGenerator): (JSC::DFG::ArrayifySlowPathGenerator::ArrayifySlowPathGenerator): (JSC::DFG::ArrayifySlowPathGenerator::generateInternal): * dfg/DFGOSRExitJumpPlaceholder.cpp: Added. (DFG): (JSC::DFG::OSRExitJumpPlaceholder::fill): * dfg/DFGOSRExitJumpPlaceholder.h: Added. (DFG): (OSRExitJumpPlaceholder): (JSC::DFG::OSRExitJumpPlaceholder::OSRExitJumpPlaceholder): (JSC::DFG::OSRExitJumpPlaceholder::operator!): * dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::speculationCheck): (DFG): (JSC::DFG::SpeculativeJIT::arrayify): * dfg/DFGSpeculativeJIT.h: (SpeculativeJIT): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
97e94ddd