Title: [157521] trunk/Source/_javascript_Core
Revision
157521
Author
mark....@apple.com
Date
2013-10-16 10:26:56 -0700 (Wed, 16 Oct 2013)

Log 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:

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (157520 => 157521)


--- trunk/Source/_javascript_Core/ChangeLog	2013-10-16 17:18:05 UTC (rev 157520)
+++ trunk/Source/_javascript_Core/ChangeLog	2013-10-16 17:26:56 UTC (rev 157521)
@@ -1,3 +1,16 @@
+2013-10-16  Mark Lam  <mark....@apple.com>
+
+        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:
+
 2013-10-16  Julien Brianceau  <jbria...@cisco.com>
 
         Remove more of the UNINTERRUPTED_SEQUENCE thing

Modified: trunk/Source/_javascript_Core/jit/JITOpcodes32_64.cpp (157520 => 157521)


--- trunk/Source/_javascript_Core/jit/JITOpcodes32_64.cpp	2013-10-16 17:18:05 UTC (rev 157520)
+++ trunk/Source/_javascript_Core/jit/JITOpcodes32_64.cpp	2013-10-16 17:26:56 UTC (rev 157521)
@@ -389,9 +389,8 @@
 {
     int activation = currentInstruction[1].u.operand;
     Jump activationNotCreated = branch32(Equal, tagFor(activation), TrustedImm32(JSValue::EmptyValueTag));
-    JITStubCall stubCall(this, cti_op_tear_off_activation);
-    stubCall.addArgument(activation);
-    stubCall.call();
+    emitLoadPayload(activation, regT0);
+    callOperation(operationTearOffActivation, regT0);
     activationNotCreated.link(this);
 }
 
@@ -401,10 +400,9 @@
     int activation = currentInstruction[2].u.operand;
 
     Jump argsNotCreated = branch32(Equal, tagFor(unmodifiedArgumentsRegister(arguments).offset()), TrustedImm32(JSValue::EmptyValueTag));
-    JITStubCall stubCall(this, cti_op_tear_off_arguments);
-    stubCall.addArgument(unmodifiedArgumentsRegister(arguments).offset());
-    stubCall.addArgument(activation);
-    stubCall.call();
+    emitLoadPayload(unmodifiedArgumentsRegister(VirtualRegister(arguments)).offset(), regT0);
+    emitLoadPayload(activation, regT1);
+    callOperation(operationTearOffArguments, regT0, regT1);
     argsNotCreated.link(this);
 }
 

Modified: trunk/Source/_javascript_Core/jit/JITStubs.cpp (157520 => 157521)


--- trunk/Source/_javascript_Core/jit/JITStubs.cpp	2013-10-16 17:18:05 UTC (rev 157520)
+++ trunk/Source/_javascript_Core/jit/JITStubs.cpp	2013-10-16 17:26:56 UTC (rev 157521)
@@ -288,28 +288,6 @@
     return JSValue::encode(result);
 }
 
-DEFINE_STUB_FUNCTION(void, op_tear_off_activation)
-{
-    STUB_INIT_STACK_FRAME(stackFrame);
-
-    ASSERT(stackFrame.callFrame->codeBlock()->needsFullScopeChain());
-    jsCast<JSActivation*>(stackFrame.args[0].jsValue())->tearOff(*stackFrame.vm);
-}
-
-DEFINE_STUB_FUNCTION(void, op_tear_off_arguments)
-{
-    STUB_INIT_STACK_FRAME(stackFrame);
-
-    CallFrame* callFrame = stackFrame.callFrame;
-    ASSERT(callFrame->codeBlock()->usesArguments());
-    Arguments* arguments = jsCast<Arguments*>(stackFrame.args[0].jsValue());
-    if (JSValue activationValue = stackFrame.args[1].jsValue()) {
-        arguments->didTearOffActivation(callFrame, jsCast<JSActivation*>(activationValue));
-        return;
-    }
-    arguments->tearOff(callFrame);
-}
-
 static JSValue getByVal(
     CallFrame* callFrame, JSValue baseValue, JSValue subscript, ReturnAddressPtr returnAddress)
 {

Modified: trunk/Source/_javascript_Core/jit/JITStubs.h (157520 => 157521)


--- trunk/Source/_javascript_Core/jit/JITStubs.h	2013-10-16 17:18:05 UTC (rev 157520)
+++ trunk/Source/_javascript_Core/jit/JITStubs.h	2013-10-16 17:26:56 UTC (rev 157521)
@@ -361,8 +361,6 @@
 EncodedJSValue JIT_STUB cti_op_get_by_val_string(STUB_ARGS_DECLARATION) WTF_INTERNAL;
 void JIT_STUB cti_op_put_by_val(STUB_ARGS_DECLARATION) WTF_INTERNAL;
 void JIT_STUB cti_op_put_by_val_generic(STUB_ARGS_DECLARATION) WTF_INTERNAL;
-void JIT_STUB cti_op_tear_off_activation(STUB_ARGS_DECLARATION) WTF_INTERNAL;
-void JIT_STUB cti_op_tear_off_arguments(STUB_ARGS_DECLARATION) WTF_INTERNAL;
 void JIT_STUB cti_op_throw_static_error(STUB_ARGS_DECLARATION) WTF_INTERNAL;
 void* JIT_STUB cti_op_throw(STUB_ARGS_DECLARATION) WTF_INTERNAL;
 void* JIT_STUB cti_vm_throw(STUB_ARGS_DECLARATION) REFERENCED_FROM_ASM WTF_INTERNAL;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to