• fpizlo@apple.com's avatar
    jneq_ptr shouldn't have a pointer · 1271fa3a
    fpizlo@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=97739
    
    Reviewed by Oliver Hunt.
    
    Slamming pointers directly into bytecode is sometimes cool, but in this case it's
    unwieldy and confusing. Switched the instruction to use an enum instead. This has
    zero effect on code gen behavior in the JITs. In the LLInt, there is now more
    indirection, but that doesn't affect benchmarks.
    
    * CMakeLists.txt:
    * GNUmakefile.list.am:
    * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
    * JavaScriptCore.xcodeproj/project.pbxproj:
    * Target.pri:
    * bytecode/Instruction.h:
    (JSC::Instruction::Instruction):
    (Instruction):
    * bytecode/SpecialPointer.cpp: Added.
    (JSC):
    (JSC::actualPointerFor):
    * bytecode/SpecialPointer.h: Added.
    (JSC):
    (JSC::pointerIsFunction):
    (JSC::pointerIsCell):
    * bytecompiler/BytecodeGenerator.cpp:
    (JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
    (JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
    * dfg/DFGByteCodeParser.cpp:
    (JSC::DFG::ByteCodeParser::parseBlock):
    * jit/JITOpcodes.cpp:
    (JSC::JIT::emit_op_jneq_ptr):
    * jit/JITOpcodes32_64.cpp:
    (JSC::JIT::emit_op_jneq_ptr):
    * llint/LowLevelInterpreter32_64.asm:
    * llint/LowLevelInterpreter64.asm:
    * runtime/JSGlobalObject.cpp:
    (JSC::JSGlobalObject::reset):
    (JSC):
    * runtime/JSGlobalObject.h:
    (JSGlobalObject):
    (JSC::JSGlobalObject::actualPointerFor):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129713 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    1271fa3a