-
mhahnenberg@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=96311 Reviewed by Oliver Hunt. Now that no one is using the ClassInfo in JSCell, we can remove it for the greater good. This is a 1.5% win on v8v7 and a 1.7% win on kraken, and is an overall performance progression. * dfg/DFGSpeculativeJIT.h: (JSC::DFG::SpeculativeJIT::emitAllocateBasicJSObject): Had to rearrange the order of when we take things off the free list and when we store the Structure in the object because we would clobber the free list otherwise. This made it not okay for the structure argument and the scratch register to alias one another. Also removed the store of the ClassInfo pointer in the object. Yay! (SpeculativeJIT): * dfg/DFGSpeculativeJIT32_64.cpp: Since it's no longer okay for for the scratch register and structure register to alias one another as stated above, had to add an extra temporary for passing the Structure. (JSC::DFG::SpeculativeJIT::compile): * dfg/DFGSpeculativeJIT64.cpp: Ditto. (JSC::DFG::SpeculativeJIT::compile): * jit/JITInlineMethods.h: (JSC::JIT::emitAllocateBasicJSObject): Similar changes to DFG's inline allocation except that it removed the object from the free list first, so no changes were necessary there. * llint/LowLevelInterpreter.asm: Change the constants for amount of inline storage to match PropertyOffset.h and remove the store of the ClassInfo pointer during inline allocation. * llint/LowLevelInterpreter32_64.asm: * llint/LowLevelInterpreter64.asm: * runtime/JSCell.h: Remove the m_classInfo field and associated methods. (JSCell): * runtime/JSObject.h: (JSObject): * runtime/PropertyOffset.h: Expand the number of inline storage properties to take up the extra space that we're freeing with the removal of the ClassInfo pointer. (JSC): * runtime/Structure.h: (JSC): (JSC::JSCell::JSCell): (JSC::JSCell::finishCreation): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128146 268f45cc-cd09-0410-ab3c-d52691b4dbfc
bd52e3e5