Ignore:
Timestamp:
Feb 27, 2012, 10:26:23 AM (13 years ago)
Author:
[email protected]
Message:

Implement support for op_negate and op_bitnot in the DFG JIT
https://bugs.webkit.org/show_bug.cgi?id=79617

Reviewed by Sam Weinig.

Remove op_bitnop - this is redundant, ~x === x-1.
This is a fractional (<1%) progression.

Remove not32(X) from the MacroAssemblers - make this an optimization to add32(-1, X).
Remove CanReuse from the result type - this was unused.
Remove op_bitnot.

  • assembler/MacroAssemblerARM.h:

(MacroAssemblerARM):
(JSC::MacroAssemblerARM::xor32):

  • assembler/MacroAssemblerARMv7.h:

(MacroAssemblerARMv7):
(JSC::MacroAssemblerARMv7::xor32):

  • assembler/MacroAssemblerMIPS.h:

(MacroAssemblerMIPS):
(JSC::MacroAssemblerMIPS::xor32):

  • assembler/MacroAssemblerSH4.h:

(MacroAssemblerSH4):
(JSC::MacroAssemblerSH4::xor32):

  • assembler/MacroAssemblerX86Common.h:

(MacroAssemblerX86Common):
(JSC::MacroAssemblerX86Common::xor32):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dump):

  • bytecode/Opcode.h:

(JSC):
(JSC::padOpcodeName):

  • bytecompiler/NodesCodegen.cpp:

(JSC):
(JSC::BitwiseNotNode::emitBytecode):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::privateExecute):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JIT.h:

(JIT):

  • jit/JITArithmetic32_64.cpp:

(JSC):

  • jit/JITOpcodes.cpp:

(JSC):

  • jit/JITStubs.cpp:

(JSC):

  • jit/JITStubs.h:
  • llint/LLIntSlowPaths.cpp:

(LLInt):

  • llint/LLIntSlowPaths.h:

(LLInt):

  • llint/LowLevelInterpreter32_64.asm:
  • parser/NodeConstructors.h:

(JSC::NegateNode::NegateNode):
(JSC::BitwiseNotNode::BitwiseNotNode):
(JSC::MultNode::MultNode):
(JSC::DivNode::DivNode):
(JSC::ModNode::ModNode):
(JSC::SubNode::SubNode):
(JSC::UnsignedRightShiftNode::UnsignedRightShiftNode):

  • parser/Nodes.h:

(BitwiseNotNode):
(JSC::BitwiseNotNode::expr):
(JSC):

  • parser/ResultType.h:

(ResultType):
(JSC::ResultType::numberTypeIsInt32):
(JSC::ResultType::stringOrNumberType):
(JSC::ResultType::forAdd):
(JSC::ResultType::forBitOp):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/jit/JIT.h

    r108934 r109007  
    781781        void emit_op_add(Instruction*);
    782782        void emit_op_bitand(Instruction*);
    783         void emit_op_bitnot(Instruction*);
    784783        void emit_op_bitor(Instruction*);
    785784        void emit_op_bitxor(Instruction*);
     
    901900        void emitSlow_op_add(Instruction*, Vector<SlowCaseEntry>::iterator&);
    902901        void emitSlow_op_bitand(Instruction*, Vector<SlowCaseEntry>::iterator&);
    903         void emitSlow_op_bitnot(Instruction*, Vector<SlowCaseEntry>::iterator&);
    904902        void emitSlow_op_bitor(Instruction*, Vector<SlowCaseEntry>::iterator&);
    905903        void emitSlow_op_bitxor(Instruction*, Vector<SlowCaseEntry>::iterator&);
Note: See TracChangeset for help on using the changeset viewer.