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/Target.pri

    r129685 r129713  
    6565    bytecode/ResolveGlobalStatus.cpp \
    6666    bytecode/SamplingTool.cpp \
     67    bytecode/SpecialPointer.cpp \
    6768    bytecode/SpeculatedType.cpp \
    6869    bytecode/StructureStubClearingWatchpoint.cpp \
Note: See TracChangeset for help on using the changeset viewer.