Changeset 129713 in webkit for trunk/Source/JavaScriptCore/dfg


Ignore:
Timestamp:
Sep 26, 2012, 5:04:48 PM (13 years ago)
Author:
[email protected]
Message:

jneq_ptr shouldn't have a pointer
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):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp

    r129588 r129713  
    27762776            // support simmer for a while before making it more general, since it's
    27772777            // already gnarly enough as it is.
     2778            ASSERT(pointerIsFunction(currentInstruction[2].u.specialPointer));
    27782779            addToGraph(
    2779                 CheckFunction, OpInfo(currentInstruction[2].u.jsCell.get()),
     2780                CheckFunction,
     2781                OpInfo(actualPointerFor(m_inlineStackTop->m_codeBlock, currentInstruction[2].u.specialPointer)),
    27802782                get(currentInstruction[1].u.operand));
    27812783            addToGraph(Jump, OpInfo(m_currentIndex + OPCODE_LENGTH(op_jneq_ptr)));
Note: See TracChangeset for help on using the changeset viewer.