2008-06-13 Cameron Zwarich <cwzwarich@uwaterloo.ca>
authorcwzwarich@webkit.org <cwzwarich@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 14 Jun 2008 04:40:45 +0000 (04:40 +0000)
committercwzwarich@webkit.org <cwzwarich@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 14 Jun 2008 04:40:45 +0000 (04:40 +0000)
commit55eca2dbc11a9405ab346012e47be9791ad15fa2
treea7bd560993dada21f61964b6bb0e312fb900e160
parentf6748858873024a5c731e74cebed79c6a01c4c42
2008-06-13  Cameron Zwarich  <cwzwarich@uwaterloo.ca>

        Reviewed by Maciej.

        Eliminate the use of temporaries to store the left hand side of an
        expression when the right hand side is a constant. This slightly
        improves the generated bytecode for a few SunSpider tests, but it is
        mostly in preparation for fixing

        Bug 19484: More instructions needs to use temporary registers
        <https://bugs.webkit.org/show_bug.cgi?id=19484>

        * VM/CodeGenerator.h:
        (KJS::CodeGenerator::leftHandSideNeedsCopy):
        (KJS::CodeGenerator::emitNodeForLeftHandSide):
        * kjs/nodes.cpp:
        (KJS::BracketAccessorNode::emitCode):
        (KJS::ReadModifyResolveNode::emitCode):
        (KJS::AssignDotNode::emitCode):
        (KJS::ReadModifyDotNode::emitCode):
        (KJS::AssignBracketNode::emitCode):
        (KJS::ReadModifyBracketNode::emitCode):
        * kjs/nodes.h:
        (KJS::ExpressionNode::):
        (KJS::FalseNode::):
        (KJS::TrueNode::):
        (KJS::NumberNode::):
        (KJS::StringNode::):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34528 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JavaScriptCore/ChangeLog
JavaScriptCore/VM/CodeGenerator.h
JavaScriptCore/kjs/nodes.cpp
JavaScriptCore/kjs/nodes.h