-
oliver@apple.com authored
Reviewed by Gavin Barraclough. Ensure all values are correctly tagged in the registerfile https://bugs.webkit.org/show_bug.cgi?id=56214 This patch makes sure that all JSCell pointers written to the registerfile are correctly tagged as JSCells, and replaces raw int usage with the immediate representation. For performance, register pressure, and general saneness reasons I've added abstractions for reading and writing the tag and payload of integer registers directly for the JSVALUE64 encoding. * interpreter/Register.h: (JSC::Register::withInt): (JSC::Register::withCallee): (JSC::Register::operator=): (JSC::Register::i): (JSC::Register::activation): (JSC::Register::function): (JSC::Register::propertyNameIterator): (JSC::Register::scopeChain): * jit/JIT.h: * jit/JITCall.cpp: (JSC::JIT::compileOpCallInitializeCallFrame): (JSC::JIT::compileOpCallVarargs): (JSC::JIT::compileOpCall): * jit/JITCall32_64.cpp: (JSC::JIT::compileOpCallInitializeCallFrame): (JSC::JIT::compileOpCallVarargs): (JSC::JIT::compileOpCall): (JSC::JIT::compileOpCallSlowCase): * jit/JITInlineMethods.h: (JSC::JIT::emitPutToCallFrameHeader): (JSC::JIT::emitPutCellToCallFrameHeader): (JSC::JIT::emitPutIntToCallFrameHeader): * jit/JITOpcodes.cpp: (JSC::JIT::privateCompileCTINativeCall): (JSC::JIT::emit_op_get_pnames): (JSC::JIT::emit_op_next_pname): (JSC::JIT::emit_op_load_varargs): (JSC::JIT::emitSlow_op_load_varargs): * jit/JITOpcodes32_64.cpp: (JSC::JIT::privateCompileCTINativeCall): (JSC::JIT::emit_op_get_pnames): (JSC::JIT::emit_op_next_pname): * jit/JSInterfaceJIT.h: (JSC::JSInterfaceJIT::intPayloadFor): (JSC::JSInterfaceJIT::intTagFor): * jit/SpecializedThunkJIT.h: (JSC::SpecializedThunkJIT::returnJSValue): (JSC::SpecializedThunkJIT::returnDouble): (JSC::SpecializedThunkJIT::returnInt32): (JSC::SpecializedThunkJIT::returnJSCell): 2011-03-11 Oliver Hunt <oliver@apple.com> Reviewed by Gavin Barraclough. Ensure all values are correctly tagged in the registerfile https://bugs.webkit.org/show_bug.cgi?id=56214 Make sure everything builds still. * bridge/c/c_class.cpp: * bridge/c/c_runtime.cpp: * bridge/jni/JavaMethod.cpp: * plugins/PluginViewNone.cpp: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@81040 268f45cc-cd09-0410-ab3c-d52691b4dbfc
9d4f0eca