Title: [147669] trunk/Source/_javascript_Core
Revision
147669
Author
[email protected]
Date
2013-04-04 14:16:43 -0700 (Thu, 04 Apr 2013)

Log Message

Removed a defunct comment
https://bugs.webkit.org/show_bug.cgi?id=113948

Reviewed by Oliver Hunt.

This is also a convenient way to test the EWS.

* bytecompiler/BytecodeGenerator.cpp:
(JSC):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (147668 => 147669)


--- trunk/Source/_javascript_Core/ChangeLog	2013-04-04 21:08:08 UTC (rev 147668)
+++ trunk/Source/_javascript_Core/ChangeLog	2013-04-04 21:16:43 UTC (rev 147669)
@@ -1,3 +1,15 @@
+2013-04-04  Geoffrey Garen  <[email protected]>
+
+        Removed a defunct comment
+        https://bugs.webkit.org/show_bug.cgi?id=113948
+
+        Reviewed by Oliver Hunt.
+
+        This is also a convenient way to test the EWS.
+
+        * bytecompiler/BytecodeGenerator.cpp:
+        (JSC):
+
 2013-04-04  Martin Robinson  <[email protected]>
 
         [GTK] Remove the gyp build

Modified: trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp (147668 => 147669)


--- trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp	2013-04-04 21:08:08 UTC (rev 147668)
+++ trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp	2013-04-04 21:16:43 UTC (rev 147669)
@@ -46,81 +46,6 @@
 
 namespace JSC {
 
-/*
-    The layout of a register frame looks like this:
-
-    For
-
-    function f(x, y) {
-        var v1;
-        function g() { }
-        var v2;
-        return (x) * (y);
-    }
-
-    assuming (x) and (y) generated temporaries t1 and t2, you would have
-
-    ------------------------------------
-    |  x |  y |  g | v2 | v1 | t1 | t2 | <-- value held
-    ------------------------------------
-    | -5 | -4 | -3 | -2 | -1 | +0 | +1 | <-- register index
-    ------------------------------------
-    | params->|<-locals      | temps->
-
-    Because temporary registers are allocated in a stack-like fashion, we
-    can reclaim them with a simple popping algorithm. The same goes for labels.
-    (We never reclaim parameter or local registers, because parameters and
-    locals are DontDelete.)
-
-    The register layout before a function call looks like this:
-
-    For
-
-    function f(x, y)
-    {
-    }
-
-    f(1);
-
-    >                        <------------------------------
-    <                        >  reserved: call frame  |  1 | <-- value held
-    >         >snip<         <------------------------------
-    <                        > +0 | +1 | +2 | +3 | +4 | +5 | <-- register index
-    >                        <------------------------------
-    | params->|<-locals      | temps->
-
-    The call instruction fills in the "call frame" registers. It also pads
-    missing arguments at the end of the call:
-
-    >                        <-----------------------------------
-    <                        >  reserved: call frame  |  1 |  ? | <-- value held ("?" stands for "undefined")
-    >         >snip<         <-----------------------------------
-    <                        > +0 | +1 | +2 | +3 | +4 | +5 | +6 | <-- register index
-    >                        <-----------------------------------
-    | params->|<-locals      | temps->
-
-    After filling in missing arguments, the call instruction sets up the new
-    stack frame to overlap the end of the old stack frame:
-
-                             |---------------------------------->                        <
-                             |  reserved: call frame  |  1 |  ? <                        > <-- value held ("?" stands for "undefined")
-                             |---------------------------------->         >snip<         <
-                             | -7 | -6 | -5 | -4 | -3 | -2 | -1 <                        > <-- register index
-                             |---------------------------------->                        <
-                             |                        | params->|<-locals       | temps->
-
-    That way, arguments are "copied" into the callee's stack frame for free.
-
-    If the caller supplies too many arguments, this trick doesn't work. The
-    extra arguments protrude into space reserved for locals and temporaries.
-    In that case, the call instruction makes a real copy of the call frame header,
-    along with just the arguments expected by the callee, leaving the original
-    call frame header and arguments behind. (The call instruction can't just discard
-    extra arguments, because the "arguments" object may access them later.)
-    This copying strategy ensures that all named values will be at the indices
-    expected by the callee.
-*/
-
 void Label::setLocation(unsigned location)
 {
     m_location = location;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to