Changeset 157521 in webkit


Ignore:
Timestamp:
Oct 16, 2013, 10:26:56 AM (11 years ago)
Author:
mark.lam@apple.com
Message:

Transition void cti_op_tear_off* methods to JIT operations for 32 bit.
https://bugs.webkit.org/show_bug.cgi?id=122899.

Reviewed by Michael Saboff.

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_tear_off_activation):
(JSC::JIT::emit_op_tear_off_arguments):

  • jit/JITStubs.cpp:
  • jit/JITStubs.h:
Location:
trunk/Source/JavaScriptCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r157500 r157521  
     12013-10-16  Mark Lam  <mark.lam@apple.com>
     2
     3        Transition void cti_op_tear_off* methods to JIT operations for 32 bit.
     4        https://bugs.webkit.org/show_bug.cgi?id=122899.
     5
     6        Reviewed by Michael Saboff.
     7
     8        * jit/JITOpcodes32_64.cpp:
     9        (JSC::JIT::emit_op_tear_off_activation):
     10        (JSC::JIT::emit_op_tear_off_arguments):
     11        * jit/JITStubs.cpp:
     12        * jit/JITStubs.h:
     13
    1142013-10-16  Julien Brianceau  <jbriance@cisco.com>
    215
  • trunk/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp

    r157457 r157521  
    390390    int activation = currentInstruction[1].u.operand;
    391391    Jump activationNotCreated = branch32(Equal, tagFor(activation), TrustedImm32(JSValue::EmptyValueTag));
    392     JITStubCall stubCall(this, cti_op_tear_off_activation);
    393     stubCall.addArgument(activation);
    394     stubCall.call();
     392    emitLoadPayload(activation, regT0);
     393    callOperation(operationTearOffActivation, regT0);
    395394    activationNotCreated.link(this);
    396395}
     
    402401
    403402    Jump argsNotCreated = branch32(Equal, tagFor(unmodifiedArgumentsRegister(arguments).offset()), TrustedImm32(JSValue::EmptyValueTag));
    404     JITStubCall stubCall(this, cti_op_tear_off_arguments);
    405     stubCall.addArgument(unmodifiedArgumentsRegister(arguments).offset());
    406     stubCall.addArgument(activation);
    407     stubCall.call();
     403    emitLoadPayload(unmodifiedArgumentsRegister(VirtualRegister(arguments)).offset(), regT0);
     404    emitLoadPayload(activation, regT1);
     405    callOperation(operationTearOffArguments, regT0, regT1);
    408406    argsNotCreated.link(this);
    409407}
  • trunk/Source/JavaScriptCore/jit/JITStubs.cpp

    r157480 r157521  
    289289}
    290290
    291 DEFINE_STUB_FUNCTION(void, op_tear_off_activation)
    292 {
    293     STUB_INIT_STACK_FRAME(stackFrame);
    294 
    295     ASSERT(stackFrame.callFrame->codeBlock()->needsFullScopeChain());
    296     jsCast<JSActivation*>(stackFrame.args[0].jsValue())->tearOff(*stackFrame.vm);
    297 }
    298 
    299 DEFINE_STUB_FUNCTION(void, op_tear_off_arguments)
    300 {
    301     STUB_INIT_STACK_FRAME(stackFrame);
    302 
    303     CallFrame* callFrame = stackFrame.callFrame;
    304     ASSERT(callFrame->codeBlock()->usesArguments());
    305     Arguments* arguments = jsCast<Arguments*>(stackFrame.args[0].jsValue());
    306     if (JSValue activationValue = stackFrame.args[1].jsValue()) {
    307         arguments->didTearOffActivation(callFrame, jsCast<JSActivation*>(activationValue));
    308         return;
    309     }
    310     arguments->tearOff(callFrame);
    311 }
    312 
    313291static JSValue getByVal(
    314292    CallFrame* callFrame, JSValue baseValue, JSValue subscript, ReturnAddressPtr returnAddress)
  • trunk/Source/JavaScriptCore/jit/JITStubs.h

    r157480 r157521  
    362362void JIT_STUB cti_op_put_by_val(STUB_ARGS_DECLARATION) WTF_INTERNAL;
    363363void JIT_STUB cti_op_put_by_val_generic(STUB_ARGS_DECLARATION) WTF_INTERNAL;
    364 void JIT_STUB cti_op_tear_off_activation(STUB_ARGS_DECLARATION) WTF_INTERNAL;
    365 void JIT_STUB cti_op_tear_off_arguments(STUB_ARGS_DECLARATION) WTF_INTERNAL;
    366364void JIT_STUB cti_op_throw_static_error(STUB_ARGS_DECLARATION) WTF_INTERNAL;
    367365void* JIT_STUB cti_op_throw(STUB_ARGS_DECLARATION) WTF_INTERNAL;
Note: See TracChangeset for help on using the changeset viewer.