<?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>160157</bug_id>
          
          <creation_ts>2016-07-25 02:13:57 -0700</creation_ts>
          <short_desc>REGRESSION(r203537): It made many tests crash on ARMv7 with ARM instruction set</short_desc>
          <delta_ts>2016-07-29 11:10:07 -0700</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>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>159720</dup_id>
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=159720</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>108645</blocked>
    
    <blocked>159649</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>ossy</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1214128</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-07-25 02:13:57 -0700</bug_when>
    <thetext>JSCOnly Linux ARMv7 Traditional Release:
- before: https://build.webkit.org/builders/JSCOnly%20Linux%20ARMv7%20Traditional%20Release/builds/1613
- after: https://build.webkit.org/builders/JSCOnly%20Linux%20ARMv7%20Traditional%20Release/builds/1623
( https://build.webkit.org/builders/JSCOnly%20Linux%20ARMv7%20Traditional%20Release/builds/1637 )

crash log on ARMv7 with ARM instruction set:

Running stress/exit-after-int52-to-double.js.default
stress/exit-after-int52-to-double.js.default: ASSERTION FAILED: linkBuffer.isValid()
stress/exit-after-int52-to-double.js.default: ../../Source/JavaScriptCore/jit/JITMathIC.h(130) : void JSC::JITMathIC&lt;Generator&gt;::generateOutOfLine(JSC::VM&amp;, JSC::CodeBlock*, JSC::FunctionPtr) [with GeneratorType = JSC::JITAddGenerator]
stress/exit-after-int52-to-double.js.default: 1   0xb6394fb0 WTFCrash
stress/exit-after-int52-to-double.js.default: 2   0xb5ea3104 JSC::JITMathIC&lt;JSC::JITAddGenerator&gt;::generateOutOfLine(JSC::VM&amp;, JSC::CodeBlock*, JSC::FunctionPtr)
stress/exit-after-int52-to-double.js.default: 3   0xb5e9a0b8
stress/exit-after-int52-to-double.js.default: Segmentation fault
stress/exit-after-int52-to-double.js.default: ERROR: Unexpected exit code: 139
FAIL: stress/exit-after-int52-to-double.js.default

It seems it is a similar to bug159720 .

Can&apos;t we disable this new feature somehow similar to https://trac.webkit.org/changeset/203272 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214148</commentid>
    <comment_count>1</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-07-25 05:15:48 -0700</bug_when>
    <thetext>I can confirm that this bug and bug159720 have the same root.
The problem is that &quot;auto jump = jit.jump();&quot; allocates a constant
on the constant pool which makes linkBuffer ctor not to allocate.

But the question is still open, can we disable IC generating on
ARM traditional until we can find the proper fix? Because now it
is completely broken and there are 2700 crashing stress tests.

*** This bug has been marked as a duplicate of bug 159720 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215215</commentid>
    <comment_count>2</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-07-28 05:16:26 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; Can&apos;t we disable this new feature somehow similar to
&gt; https://trac.webkit.org/changeset/203272 ?

ARM assembler is completely broken more than a month ago because of 
this IC refactoring work. It would be great to get an answer if
we can workaround it or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215233</commentid>
    <comment_count>3</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-28 08:50:20 -0700</bug_when>
    <thetext>You can make MathIC generateInline always return false before
generating any code. This will make the resulting code quite
slow though. It will lead to a C call for every JS add.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215611</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-07-29 11:10:07 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; You can make MathIC generateInline always return false before
&gt; generating any code. This will make the resulting code quite
&gt; slow though. It will lead to a C call for every JS add.

Uploaded a patch to bug159759 to disable it.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>