Ignore:
Timestamp:
Jan 29, 2014, 11:18:54 AM (12 years ago)
Author:
[email protected]
Message:

Merge the jsCStack branch
https://bugs.webkit.org/show_bug.cgi?id=127763

Reviewed by Mark Hahnenberg.

Source/JavaScriptCore:

Changes from http://svn.webkit.org/repository/webkit/branches/jsCStack
up to changeset 162958.

Source/WebCore:

Changes from http://svn.webkit.org/repository/webkit/branches/jsCStack
up to changeset 162958.

Source/WTF:

Changes from http://svn.webkit.org/repository/webkit/branches/jsCStack
up to changeset 162958.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/dfg/DFGOSREntrypointCreationPhase.cpp

    r161126 r163027  
    11/*
    2  * Copyright (C) 2013 Apple Inc. All rights reserved.
     2 * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    6464            if (!block)
    6565                continue;
     66            unsigned nodeIndex = 0;
    6667            Node* firstNode = block->at(0);
     68            while (firstNode->isSemanticallySkippable())
     69                firstNode = block->at(++nodeIndex);
    6770            if (firstNode->op() == LoopHint
    6871                && firstNode->codeOrigin == CodeOrigin(bytecodeIndex)) {
     
    8487        CodeOrigin codeOrigin = target->at(0)->codeOrigin;
    8588       
    86         for (int argument = 0; argument < baseline->numParameters(); ++argument) {
    87             Node* oldNode = target->variablesAtHead.argument(argument);
    88             if (!oldNode) {
    89                 // Just for sanity, always have a SetArgument even if it's not needed.
    90                 oldNode = m_graph.m_arguments[argument];
    91             }
    92             Node* node = newRoot->appendNode(
    93                 m_graph, SpecNone, SetArgument, codeOrigin,
    94                 OpInfo(oldNode->variableAccessData()));
    95             m_graph.m_arguments[argument] = node;
    96         }
    9789        Vector<Node*> locals(baseline->m_numCalleeRegisters);
    9890        for (int local = 0; local < baseline->m_numCalleeRegisters; ++local) {
     
    109101                Edge(locals[local]));
    110102        }
     103
     104        for (int argument = 0; argument < baseline->numParameters(); ++argument) {
     105            Node* oldNode = target->variablesAtHead.argument(argument);
     106            if (!oldNode) {
     107                // Just for sanity, always have a SetArgument even if it's not needed.
     108                oldNode = m_graph.m_arguments[argument];
     109            }
     110            Node* node = newRoot->appendNode(
     111                m_graph, SpecNone, SetArgument, codeOrigin,
     112                OpInfo(oldNode->variableAccessData()));
     113            m_graph.m_arguments[argument] = node;
     114        }
     115       
    111116        for (int local = 0; local < baseline->m_numCalleeRegisters; ++local) {
    112117            Node* previousHead = target->variablesAtHead.local(local);
Note: See TracChangeset for help on using the changeset viewer.