Title: [197558] releases/WebKitGTK/webkit-2.4/Source/_javascript_Core
Revision
197558
Author
[email protected]
Date
2016-03-04 05:01:29 -0800 (Fri, 04 Mar 2016)

Log Message

Merge r167031 - Ensure that LLINT accessing of the ProtoCallFrame is big endian friendly.
<https://webkit.org/b/131449>

Reviewed by Mark Hahnenberg.

Change ProtoCallFrame::paddedArgCount to be of type uint32_t.  The argCount
that it pads is of type int anyway.  It doesn't need to be 64 bit.  This
also makes it work with the LLINT which is loading it with a loadi
instruction.

We should add the PayLoadOffset to ProtoCallFrame::argCountAndCodeOriginValue
when loading the argCount.

* interpreter/ProtoCallFrame.h:
(JSC::ProtoCallFrame::setPaddedArgCount):
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/ChangeLog (197557 => 197558)


--- releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/ChangeLog	2016-03-04 12:57:48 UTC (rev 197557)
+++ releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/ChangeLog	2016-03-04 13:01:29 UTC (rev 197558)
@@ -1,3 +1,23 @@
+2014-04-09  Mark Lam  <[email protected]>
+
+        Ensure that LLINT accessing of the ProtoCallFrame is big endian friendly.
+        <https://webkit.org/b/131449>
+
+        Reviewed by Mark Hahnenberg.
+
+        Change ProtoCallFrame::paddedArgCount to be of type uint32_t.  The argCount
+        that it pads is of type int anyway.  It doesn't need to be 64 bit.  This
+        also makes it work with the LLINT which is loading it with a loadi
+        instruction.
+
+        We should add the PayLoadOffset to ProtoCallFrame::argCountAndCodeOriginValue
+        when loading the argCount.
+
+        * interpreter/ProtoCallFrame.h:
+        (JSC::ProtoCallFrame::setPaddedArgCount):
+        * llint/LowLevelInterpreter32_64.asm:
+        * llint/LowLevelInterpreter64.asm:
+
 2015-01-12  Geoffrey Garen  <[email protected]>
 
         Out of bounds read in IdentifierArena::makeIdentifier

Modified: releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/interpreter/ProtoCallFrame.h (197557 => 197558)


--- releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/interpreter/ProtoCallFrame.h	2016-03-04 12:57:48 UTC (rev 197557)
+++ releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/interpreter/ProtoCallFrame.h	2016-03-04 13:01:29 UTC (rev 197558)
@@ -36,7 +36,7 @@
     Register calleeValue;
     Register argCountAndCodeOriginValue;
     Register thisArg;
-    size_t paddedArgCount;
+    uint32_t paddedArgCount;
     JSValue *args;
 
     void init(CodeBlock*, JSScope*, JSObject*, JSValue, int, JSValue* otherArgs = 0);
@@ -53,7 +53,7 @@
     int argumentCountIncludingThis() const { return argCountAndCodeOriginValue.payload(); }
     int argumentCount() const { return argumentCountIncludingThis() - 1; }
     void setArgumentCountIncludingThis(int count) { argCountAndCodeOriginValue.payload() = count; }
-    void setPaddedArgsCount(size_t argCount) { paddedArgCount = argCount; }
+    void setPaddedArgsCount(uint32_t argCount) { paddedArgCount = argCount; }
 
     void clearCurrentVPC() { argCountAndCodeOriginValue.tag() = 0; }
     

Modified: releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm (197557 => 197558)


--- releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm	2016-03-04 12:57:48 UTC (rev 197557)
+++ releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm	2016-03-04 13:01:29 UTC (rev 197558)
@@ -282,7 +282,7 @@
     storep temp3, CodeBlock+4[cfr, temp1, 8]
     btinz temp1, .copyHeaderLoop
 
-    loadi ProtoCallFrame::argCountAndCodeOriginValue[protoCallFrame], temp2
+    loadi PayloadOffset + ProtoCallFrame::argCountAndCodeOriginValue[protoCallFrame], temp2
     subi 1, temp2
     loadi ProtoCallFrame::paddedArgCount[protoCallFrame], temp3
     subi 1, temp3

Modified: releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/llint/LowLevelInterpreter64.asm (197557 => 197558)


--- releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/llint/LowLevelInterpreter64.asm	2016-03-04 12:57:48 UTC (rev 197557)
+++ releases/WebKitGTK/webkit-2.4/Source/_javascript_Core/llint/LowLevelInterpreter64.asm	2016-03-04 13:01:29 UTC (rev 197558)
@@ -171,7 +171,7 @@
     storep temp3, CodeBlock[cfr, temp1, 8]
     btinz temp1, .copyHeaderLoop
 
-    loadi ProtoCallFrame::argCountAndCodeOriginValue[protoCallFrame], temp2
+    loadi PayloadOffset + ProtoCallFrame::argCountAndCodeOriginValue[protoCallFrame], temp2
     subi 1, temp2
     loadi ProtoCallFrame::paddedArgCount[protoCallFrame], temp3
     subi 1, temp3
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to