Skip to content
  • oliver@apple.com's avatar
    2011-03-11 Oliver Hunt <oliver@apple.com> · 88d8cfa7
    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@80919 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    88d8cfa7