<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>124945</bug_id>
          
          <creation_ts>2013-11-27 11:20:56 -0800</creation_ts>
          <short_desc>[MIPS] Small stack frame causes regressions.</short_desc>
          <delta_ts>2013-12-02 08:38:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Balazs Kilvady">kilvadyb</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>fu</cc>
    
    <cc>gergely</cc>
    
    <cc>ggaren</cc>
    
    <cc>jbriance</cc>
    
    <cc>msaboff</cc>
    
    <cc>palfia</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>954579</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-11-27 11:20:56 -0800</bug_when>
    <thetext>On MIPS the LLInt stack frame size was only 20 bytes while code generated for jsCodeEntryFor(JSC::CodeForConstruct) uses more stack space.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954581</commentid>
    <comment_count>1</comment_count>
      <attachid>217960</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-11-27 11:33:54 -0800</bug_when>
    <thetext>Created attachment 217960
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954674</commentid>
    <comment_count>2</comment_count>
      <attachid>217960</attachid>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-11-28 00:25:00 -0800</bug_when>
    <thetext>Comment on attachment 217960
proposed patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=217960&amp;action=review

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:193
&gt; +        const extraStackSpace = 28

FYI 28 seems to be not enough on my mips board, with run-fast-jsc I get:
- &quot;273 tests passed, 227 tests failed, 227 tests crashed.&quot; with extraStackSpace = 20
- &quot;437 tests passed, 63 tests failed, 63 tests crashed.&quot; with extraStackSpace = 28
- &quot;490 tests passed, 10 tests failed, 9 tests crashed.&quot; with extraStackSpace = 32</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955002</commentid>
    <comment_count>3</comment_count>
      <attachid>217960</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-11-29 10:46:06 -0800</bug_when>
    <thetext>Comment on attachment 217960
proposed patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=217960&amp;action=review

&gt;&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:193
&gt;&gt; +        const extraStackSpace = 28
&gt; 
&gt; FYI 28 seems to be not enough on my mips board, with run-fast-jsc I get:
&gt; - &quot;273 tests passed, 227 tests failed, 227 tests crashed.&quot; with extraStackSpace = 20
&gt; - &quot;437 tests passed, 63 tests failed, 63 tests crashed.&quot; with extraStackSpace = 28
&gt; - &quot;490 tests passed, 10 tests failed, 9 tests crashed.&quot; with extraStackSpace = 32

Due to alignment, I think you want to add space in amounts of 16.  What are the test results with 36?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955144</commentid>
    <comment_count>4</comment_count>
      <attachid>218110</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-12-01 06:12:19 -0800</bug_when>
    <thetext>Created attachment 218110
fixed patch.

I found that for 8 byte alignment reasons the 20 + x * 8 formula is reliable for extraStackSpace and in tests the lowest best value is 36 (It sees we have to add space for the four parameter registers on the stack also even if they aren&apos;t used). In mozilla tests there are still 13 regressions but they are caused by invalid register gp values. I think the fix of the gp problem should go to an other bug report/patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955274</commentid>
    <comment_count>5</comment_count>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-12-02 00:54:20 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Due to alignment, I think you want to add space in amounts of 16.  What are the test results with 36?

I get the same results with 32 and 36 for layout jsc tests.


(In reply to comment #4)
&gt; Created an attachment (id=218110) [details]
&gt; fixed patch.

Patch looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955337</commentid>
    <comment_count>6</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-12-02 04:43:44 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #3)
&gt; &gt; Due to alignment, I think you want to add space in amounts of 16.  What are the test results with 36?
&gt; 
&gt; I get the same results with 32 and 36 for layout jsc tests.
Alignment problem comes up on mips32r2 boards where value 32 breaks the 8 by alignment of the stack and causes 1066 failures while value 36 is ok so stack is aligned.

&gt; (In reply to comment #4)
&gt; &gt; Created an attachment (id=218110) [details] [details]
&gt; &gt; fixed patch.
&gt; 
&gt; Patch looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955386</commentid>
    <comment_count>7</comment_count>
      <attachid>218110</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-02 08:38:47 -0800</bug_when>
    <thetext>Comment on attachment 218110
fixed patch.

Clearing flags on attachment: 218110

Committed r159935: &lt;http://trac.webkit.org/changeset/159935&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955387</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-02 08:38:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217960</attachid>
            <date>2013-11-27 11:33:54 -0800</date>
            <delta_ts>2013-12-01 06:12:19 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>stack.diff</filename>
            <type>text/plain</type>
            <size>1191</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDUyODVkMjUuLmQyZjE4MTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTExLTI3ICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgW01JUFNdIFNtYWxsIHN0YWNr
IGZyYW1lIGNhdXNlcyByZWdyZXNzaW9ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNDk0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEZpeCBzdGFjayBzcGFjZSBmb3IgTExJbnQgb24gTUlQUy4KKwor
ICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisKIDIwMTMtMTEt
MjcgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFN0cnVjdHVy
ZTo6bV9zdGF0aWNGdW5jdGlvblJlaWZpZWQgc2hvdWxkIGJlIGEgc2luZ2xlIGJpdC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJf
NjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIz
Ml82NC5hc20KaW5kZXggODA3NTRmZi4uYmM4N2YwMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTE5
MCw3ICsxOTAsNyBAQCBtYWNybyBkb0NhbGxUb0phdmFTY3JpcHQoKQogICAgICAgICBjb25zdCBl
bnRyeSA9IGEwCiAgICAgICAgIGNvbnN0IG5ld0NhbGxGcmFtZSA9IGExCiAgICAgZWxzaWYgTUlQ
UwotICAgICAgICBjb25zdCBleHRyYVN0YWNrU3BhY2UgPSAyMAorICAgICAgICBjb25zdCBleHRy
YVN0YWNrU3BhY2UgPSAyOAogICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9IHQyICAKICAgICAg
ICAgY29uc3QgcHJldmlvdXNQQyA9IGxyCiAgICAgICAgIGNvbnN0IGVudHJ5ID0gYTAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218110</attachid>
            <date>2013-12-01 06:12:19 -0800</date>
            <delta_ts>2013-12-02 08:38:47 -0800</delta_ts>
            <desc>fixed patch.</desc>
            <filename>stack.diff</filename>
            <type>text/plain</type>
            <size>1234</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGZlOWZjYzYuLjRjYjFmYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTEyLTAxICBCYWxhenMgS2lsdmFk
eSAgPGtpbHZhZHliQGhvbWVqaW5uaS5jb20+CisKKyAgICAgICAgW01JUFNdIFNtYWxsIHN0YWNr
IGZyYW1lIGNhdXNlcyByZWdyZXNzaW9ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNDk0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEZpeCBzdGFjayBzcGFjZSBmb3IgTExJbnQgb24gTUlQUy4KKwor
ICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisKIDIwMTMtMTEt
MjkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBGaW5hbGx5IHJl
bW92ZSB0aG9zZSBERkdfRU5BQkxFIHRoaW5ncwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRleCA2ODczNGRk
Li5hN2NhZmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtMTkwLDggKzE5MCw4IEBAIG1hY3JvIGRv
Q2FsbFRvSmF2YVNjcmlwdCgpCiAgICAgICAgIGNvbnN0IGVudHJ5ID0gYTAKICAgICAgICAgY29u
c3QgbmV3Q2FsbEZyYW1lID0gYTEKICAgICBlbHNpZiBNSVBTCi0gICAgICAgIGNvbnN0IGV4dHJh
U3RhY2tTcGFjZSA9IDIwCi0gICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0gdDIgIAorICAgICAg
ICBjb25zdCBleHRyYVN0YWNrU3BhY2UgPSAzNgorICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9
IHQyCiAgICAgICAgIGNvbnN0IHByZXZpb3VzUEMgPSBscgogICAgICAgICBjb25zdCBlbnRyeSA9
IGEwCiAgICAgICAgIGNvbnN0IG5ld0NhbGxGcmFtZSA9IGExCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>