Title: [163241] trunk/Source/_javascript_Core
Revision
163241
Author
msab...@apple.com
Date
2014-02-01 07:30:41 -0800 (Sat, 01 Feb 2014)

Log Message

REGRESSION (r163027?): CrashTracer: [USER] com.apple.WebKit.WebContent.Development at com.apple._javascript_Core: JSC::ArrayProfile::computeUpdatedPrediction + 4
https://bugs.webkit.org/show_bug.cgi?id=128037

Reviewed by Mark Lam.

op_call_varargs ops now needs an ArrayProfile since DFG inlines these since
change set r162739.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitCallVarargs):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (163240 => 163241)


--- trunk/Source/_javascript_Core/ChangeLog	2014-02-01 15:15:56 UTC (rev 163240)
+++ trunk/Source/_javascript_Core/ChangeLog	2014-02-01 15:30:41 UTC (rev 163241)
@@ -1,3 +1,18 @@
+2014-02-01  Michael Saboff  <msab...@apple.com>
+
+        REGRESSION (r163027?): CrashTracer: [USER] com.apple.WebKit.WebContent.Development at com.apple._javascript_Core: JSC::ArrayProfile::computeUpdatedPrediction + 4
+        https://bugs.webkit.org/show_bug.cgi?id=128037
+
+        Reviewed by Mark Lam.
+
+        op_call_varargs ops now needs an ArrayProfile since DFG inlines these since
+        change set r162739.
+
+        * bytecode/CodeBlock.cpp:
+        (JSC::CodeBlock::CodeBlock):
+        * bytecompiler/BytecodeGenerator.cpp:
+        (JSC::BytecodeGenerator::emitCallVarargs):
+
 2014-01-31  Mark Lam  <mark....@apple.com>
 
         Gardening: fix build breakage.

Modified: trunk/Source/_javascript_Core/bytecode/CodeBlock.cpp (163240 => 163241)


--- trunk/Source/_javascript_Core/bytecode/CodeBlock.cpp	2014-02-01 15:15:56 UTC (rev 163240)
+++ trunk/Source/_javascript_Core/bytecode/CodeBlock.cpp	2014-02-01 15:30:41 UTC (rev 163241)
@@ -1689,6 +1689,7 @@
             instructions[i + j].u.operand = pc[j].u.operand;
         }
         switch (pc[0].u.opcode) {
+        case op_call_varargs:
         case op_get_by_val:
         case op_get_argument_by_val: {
             int arrayProfileIndex = pc[opLength - 2].u.operand;
@@ -1697,8 +1698,7 @@
             instructions[i + opLength - 2] = &m_arrayProfiles[arrayProfileIndex];
             FALLTHROUGH;
         }
-        case op_get_by_id:
-        case op_call_varargs: {
+        case op_get_by_id: {
             ValueProfile* profile = "" - 1].u.operand];
             ASSERT(profile->m_bytecodeOffset == -1);
             profile->m_bytecodeOffset = i;

Modified: trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp (163240 => 163241)


--- trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp	2014-02-01 15:15:56 UTC (rev 163240)
+++ trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp	2014-02-01 15:30:41 UTC (rev 163241)
@@ -1777,6 +1777,7 @@
     emitExpressionInfo(divot, divotStart, divotEnd);
 
     // Emit call.
+    UnlinkedArrayProfile arrayProfile = newArrayProfile();
     UnlinkedValueProfile profile = ""
     ASSERT(dst != ignoredResult());
     instructions().append(dst->index());
@@ -1784,7 +1785,7 @@
     instructions().append(thisRegister->index());
     instructions().append(arguments->index());
     instructions().append(firstFreeRegister->index());
-    instructions().append(0); // Pad to make it as big as an op_call.
+    instructions().append(arrayProfile);
     instructions().append(profile);
     if (m_shouldEmitProfileHooks) {
         emitOpcode(op_profile_did_call);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to