Ignore:
Timestamp:
Jul 22, 2011, 3:08:52 PM (14 years ago)
Author:
[email protected]
Message:

https://bugs.webkit.org/show_bug.cgi?id=65047
DFG JIT - Add support for op_resolve/op_resolve_base

Reviewed by Sam Weinig.

These are necessary for any significant eval code coverage
(and as such increase LayoutTest coverage).

  • dfg/DFGAliasTracker.h:

(JSC::DFG::AliasTracker::recordResolve):

  • Conservatively blow aliasing optimizations for now.
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • Add support for op_resolve/op_resolve_base.
  • dfg/DFGJITCodeGenerator.h:

(JSC::DFG::JITCodeGenerator::callOperation):

  • Add call with exec, identifer aguments.
  • dfg/DFGNode.h:
    • Add new node types.

(JSC::DFG::Node::hasIdentifier):

  • Resolve nodes have identifiers, too!
  • dfg/DFGNonSpeculativeJIT.cpp:

(JSC::DFG::NonSpeculativeJIT::compile):

  • Add generation for new Nodes.
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
    • Added new operations.
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • Add generation for new Nodes.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/dfg/DFGOperations.h

    r91226 r91607  
    4343typedef EncodedJSValue (*J_DFGOperation_EJP)(ExecState*, EncodedJSValue, void*);
    4444typedef EncodedJSValue (*J_DFGOperation_EJI)(ExecState*, EncodedJSValue, Identifier*);
     45typedef EncodedJSValue (*J_DFGOperation_EP)(ExecState*, void*);
     46typedef EncodedJSValue (*J_DFGOperation_EI)(ExecState*, Identifier*);
    4547typedef bool (*Z_DFGOperation_EJ)(ExecState*, EncodedJSValue);
    4648typedef bool (*Z_DFGOperation_EJJ)(ExecState*, EncodedJSValue, EncodedJSValue);
     
    6668EncodedJSValue operationGetMethodOptimize(ExecState*, EncodedJSValue encodedBase, Identifier*);
    6769EncodedJSValue operationInstanceOf(ExecState*, EncodedJSValue value, EncodedJSValue base, EncodedJSValue prototype);
     70EncodedJSValue operationResolve(ExecState*, Identifier*);
     71EncodedJSValue operationResolveBase(ExecState*, Identifier*);
     72EncodedJSValue operationResolveBaseStrictPut(ExecState*, Identifier*);
    6873void operationThrowHasInstanceError(ExecState*, EncodedJSValue base);
    6974void operationPutByValStrict(ExecState*, EncodedJSValue encodedBase, EncodedJSValue encodedProperty, EncodedJSValue encodedValue);
Note: See TracChangeset for help on using the changeset viewer.