Changeset 37366 in webkit for trunk/JavaScriptCore/VM/CTI.cpp


Ignore:
Timestamp:
Oct 6, 2008, 8:53:47 PM (17 years ago)
Author:
[email protected]
Message:

2008-10-06 Cameron Zwarich <[email protected]>

Reviewed by Oliver Hunt.

Bug 21396: Remove the OptionalCalleeActivation call frame slot
<https://bugs.webkit.org/show_bug.cgi?id=21396>

Remove the OptionalCalleeActivation call frame slot. We have to be
careful to store the activation object in a register, because objects
in the scope chain do not get marked.

This is a 0.3% speedup on both SunSpider and the V8 benchmark.

  • VM/CTI.cpp: (JSC::CTI::privateCompileMainPass):
  • VM/CodeBlock.cpp: (JSC::CodeBlock::dump):
  • VM/CodeGenerator.cpp: (JSC::CodeGenerator::CodeGenerator): (JSC::CodeGenerator::emitReturn):
  • VM/CodeGenerator.h:
  • VM/Machine.cpp: (JSC::Machine::dumpRegisters): (JSC::Machine::unwindCallFrame): (JSC::Machine::privateExecute): (JSC::Machine::cti_op_call_JSFunction): (JSC::Machine::cti_op_push_activation): (JSC::Machine::cti_op_tear_off_activation): (JSC::Machine::cti_op_construct_JSConstruct):
  • VM/Machine.h: (JSC::Machine::initializeCallFrame):
  • VM/RegisterFile.h: (JSC::RegisterFile::):
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/VM/CTI.cpp

    r37324 r37366  
    11721172        }
    11731173        case op_tear_off_activation: {
     1174            emitGetPutArg(instruction[i + 1].u.operand, 0, X86::ecx);
    11741175            emitCall(i, Machine::cti_op_tear_off_activation);
    1175             i += 1;
     1176            i += 2;
    11761177            break;
    11771178        }
     
    19421943        }
    19431944        case op_enter_with_activation: {
    1944             emitCall(i, Machine::cti_op_push_activation);
    1945 
    19461945            // Even though CTI doesn't use them, we initialize our constant
    19471946            // registers to zap stale pointers, to avoid unnecessarily prolonging
     
    19511950                emitInitRegister(j);
    19521951
    1953             i+= 1;
     1952            emitCall(i, Machine::cti_op_push_activation);
     1953            emitPutResult(instruction[i + 1].u.operand);
     1954
     1955            i+= 2;
    19541956            break;
    19551957        }
Note: See TracChangeset for help on using the changeset viewer.