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


Ignore:
Timestamp:
Apr 24, 2007, 7:11:33 PM (18 years ago)
Author:
mjs
Message:

Reviewed by Oliver.


  • use custom calling convention for everything in nodes.cpp on intel gcc for 1.5% speed boost

Nearly all functions in nodes.cpp were marked up to use the
regparm(3) calling convention under GCC for x86, since this is
faster and they are all guaranteed to be called only internally to
kjs.


The only exception is destructors, since delete doesn't know how to use a custom calling convention.


  • kjs/nodes.cpp: (dotExprDoesNotAllowCallsString):
  • kjs/nodes.h: (KJS::Node::): (KJS::StatementNode::): (KJS::NullNode::): (KJS::BooleanNode::): (KJS::NumberNode::): (KJS::StringNode::): (KJS::RegExpNode::): (KJS::ThisNode::): (KJS::ResolveNode::): (KJS::GroupNode::): (KJS::ElementNode::): (KJS::ArrayNode::): (KJS::PropertyNameNode::): (KJS::PropertyNode::): (KJS::PropertyListNode::): (KJS::ObjectLiteralNode::): (KJS::BracketAccessorNode::): (KJS::DotAccessorNode::): (KJS::ArgumentListNode::): (KJS::ArgumentsNode::): (KJS::NewExprNode::): (KJS::FunctionCallValueNode::): (KJS::FunctionCallResolveNode::): (KJS::FunctionCallBracketNode::): (KJS::FunctionCallParenBracketNode::): (KJS::FunctionCallDotNode::): (KJS::FunctionCallParenDotNode::): (KJS::PostfixResolveNode::): (KJS::PostfixBracketNode::): (KJS::PostfixDotNode::): (KJS::PostfixErrorNode::): (KJS::DeleteResolveNode::): (KJS::DeleteBracketNode::): (KJS::DeleteDotNode::): (KJS::DeleteValueNode::): (KJS::VoidNode::): (KJS::TypeOfResolveNode::): (KJS::TypeOfValueNode::): (KJS::PrefixResolveNode::): (KJS::PrefixBracketNode::): (KJS::PrefixDotNode::): (KJS::PrefixErrorNode::): (KJS::UnaryPlusNode::): (KJS::NegateNode::): (KJS::BitwiseNotNode::): (KJS::LogicalNotNode::): (KJS::MultNode::): (KJS::AddNode::): (KJS::ShiftNode::): (KJS::RelationalNode::): (KJS::EqualNode::): (KJS::BitOperNode::): (KJS::BinaryLogicalNode::): (KJS::ConditionalNode::): (KJS::AssignResolveNode::): (KJS::AssignBracketNode::): (KJS::AssignDotNode::): (KJS::AssignErrorNode::): (KJS::CommaNode::): (KJS::AssignExprNode::): (KJS::VarDeclListNode::): (KJS::VarStatementNode::): (KJS::EmptyStatementNode::): (KJS::ExprStatementNode::): (KJS::IfNode::): (KJS::DoWhileNode::): (KJS::WhileNode::): (KJS::ForNode::): (KJS::ContinueNode::): (KJS::BreakNode::): (KJS::ReturnNode::): (KJS::WithNode::): (KJS::LabelNode::): (KJS::ThrowNode::): (KJS::TryNode::): (KJS::ParameterNode::): (KJS::Parameter::): (KJS::FunctionBodyNode::): (KJS::FuncExprNode::): (KJS::FuncDeclNode::): (KJS::SourceElementsNode::): (KJS::CaseClauseNode::): (KJS::ClauseListNode::): (KJS::SwitchNode::):
File:
1 edited

Legend:

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

    r21032 r21080  
    185185}
    186186
     187static void substitute(UString &string, const UString &substring) KJS_FAST_CALL;
    187188static void substitute(UString &string, const UString &substring)
    188189{
     
    192193}
    193194
     195static inline int currentSourceId(ExecState* exec) KJS_FAST_CALL;
    194196static inline int currentSourceId(ExecState* exec)
    195197{
     
    197199}
    198200
     201static inline const UString& currentSourceURL(ExecState* exec) KJS_FAST_CALL;
    199202static inline const UString& currentSourceURL(ExecState* exec)
    200203{
     
    746749}
    747750
     751static const char *dotExprNotAnObjectString() KJS_FAST_CALL;
    748752static const char *dotExprNotAnObjectString()
    749753{
     
    751755}
    752756
    753 static const char *dotExprDoesNotAllowCallsString()
     757static const char *dotExprDoesNotAllowCallsString() KJS_FAST_CALL;
     758static const char *dotExprDoesNotAllowCallsString()
    754759{
    755760  return "Object %s (result of expression %s.%s) does not allow calls.";
     
    969974// ------------------------------ TypeOfValueNode -----------------------------------
    970975
     976static JSValue *typeStringForValue(JSValue *v) KJS_FAST_CALL;
    971977static JSValue *typeStringForValue(JSValue *v)
    972978{
     
    13621368// ECMA 11.13
    13631369
     1370static ALWAYS_INLINE JSValue *valueForReadModifyAssignment(ExecState * exec, JSValue *v1, JSValue *v2, Operator oper) KJS_FAST_CALL;
    13641371static ALWAYS_INLINE JSValue *valueForReadModifyAssignment(ExecState * exec, JSValue *v1, JSValue *v2, Operator oper)
    13651372{
Note: See TracChangeset for help on using the changeset viewer.