Changeset 35221 in webkit for trunk/JavaScriptCore/kjs/nodes.cpp


Ignore:
Timestamp:
Jul 17, 2008, 5:06:13 AM (17 years ago)
Author:
[email protected]
Message:

2008-07-17 Gavin Barraclough <[email protected]>

Reviewed by Cameron Zwarich.

Merge logical nodes to simplify the parse tree.
Sunspider results show 0.6% progression (no performance change expected).

  • kjs/grammar.y:
  • kjs/nodes.cpp:
  • kjs/nodes.h:
  • kjs/nodes2string.cpp:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/nodes.cpp

    r35218 r35221  
    809809// ------------------------------ Binary Logical Nodes ----------------------------
    810810
    811 RegisterID* LogicalAndNode::emitCode(CodeGenerator& generator, RegisterID* dst)
     811RegisterID* LogicalOpNode::emitCode(CodeGenerator& generator, RegisterID* dst)
    812812{
    813813    RefPtr<RegisterID> temp = generator.tempDestination(dst);
     
    815815   
    816816    generator.emitNode(temp.get(), m_expr1.get());
    817     generator.emitJumpIfFalse(temp.get(), target.get());
    818     generator.emitNode(temp.get(), m_expr2.get());
    819     generator.emitLabel(target.get());
    820 
    821     return generator.moveToDestinationIfNeeded(dst, temp.get());
    822 }
    823 
    824 RegisterID* LogicalOrNode::emitCode(CodeGenerator& generator, RegisterID* dst)
    825 {
    826     RefPtr<RegisterID> temp = generator.tempDestination(dst);
    827     RefPtr<LabelID> target = generator.newLabel();
    828    
    829     generator.emitNode(temp.get(), m_expr1.get());
    830     generator.emitJumpIfTrue(temp.get(), target.get());
     817    if (m_operator == OpLogicalAnd)
     818        generator.emitJumpIfFalse(temp.get(), target.get());
     819    else
     820        generator.emitJumpIfTrue(temp.get(), target.get());
    831821    generator.emitNode(temp.get(), m_expr2.get());
    832822    generator.emitLabel(target.get());
Note: See TracChangeset for help on using the changeset viewer.