<?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>207849</bug_id>
          
          <creation_ts>2020-02-17 11:12:05 -0800</creation_ts>
          <short_desc>[Wasm] REGRESSION(r256665): Wasm-&gt;JS call IC needs to save memory size register</short_desc>
          <delta_ts>2020-02-17 13:24:19 -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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tadeu Zagallo">tzagallo</reporter>
          <assigned_to name="Tadeu Zagallo">tzagallo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>Lawrence.j</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1619745</commentid>
    <comment_count>0</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2020-02-17 11:12:05 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619748</commentid>
    <comment_count>1</comment_count>
      <attachid>390944</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2020-02-17 11:16:58 -0800</bug_when>
    <thetext>Created attachment 390944
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619749</commentid>
    <comment_count>2</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2020-02-17 11:19:01 -0800</bug_when>
    <thetext>&lt;rdar://problem/59504154&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619770</commentid>
    <comment_count>3</comment_count>
      <attachid>390944</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-02-17 11:54:07 -0800</bug_when>
    <thetext>Comment on attachment 390944
Patch

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

&gt; Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:165
&gt; +    // Pessimistically save callee saves in BoundsChecking mode since the LLInt always bounds checks
&gt; +    return Wasm::PinnedRegisterInfo::get().toSave(Wasm::MemoryMode::BoundsChecking);

When would we ever not want to save the sizeRegister?  Why not get rid of the memoryMode condition and always save the register?  From gripping the code, I don&apos;t see a case where toSave() is ever called with anything other than MemoryMode::BoundsChecking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619771</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-02-17 11:57:36 -0800</bug_when>
    <thetext>(In reply to Mark Lam from comment #3)
&gt; &gt; Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:165
&gt; &gt; +    // Pessimistically save callee saves in BoundsChecking mode since the LLInt always bounds checks
&gt; &gt; +    return Wasm::PinnedRegisterInfo::get().toSave(Wasm::MemoryMode::BoundsChecking);
&gt; 
&gt; When would we ever not want to save the sizeRegister?  Why not get rid of
&gt; the memoryMode condition and always save the register?  From gripping the
&gt; code, I don&apos;t see a case where toSave() is ever called with anything other
&gt; than MemoryMode::BoundsChecking.

/gripping/grepping/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619805</commentid>
    <comment_count>5</comment_count>
      <attachid>390944</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-02-17 12:42:25 -0800</bug_when>
    <thetext>Comment on attachment 390944
Patch

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

r=me

&gt;&gt; Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:165
&gt;&gt; +    return Wasm::PinnedRegisterInfo::get().toSave(Wasm::MemoryMode::BoundsChecking);
&gt; 
&gt; When would we ever not want to save the sizeRegister?  Why not get rid of the memoryMode condition and always save the register?  From gripping the code, I don&apos;t see a case where toSave() is ever called with anything other than MemoryMode::BoundsChecking.

I&apos;m wrong, there&apos;s still one place where we may not pass MemoryMode::BoundsChecking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619832</commentid>
    <comment_count>6</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2020-02-17 13:15:14 -0800</bug_when>
    <thetext>*** Bug 207843 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619836</commentid>
    <comment_count>7</comment_count>
      <attachid>390944</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-17 13:24:18 -0800</bug_when>
    <thetext>Comment on attachment 390944
Patch

Clearing flags on attachment: 390944

Committed r256766: &lt;https://trac.webkit.org/changeset/256766&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619837</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-17 13:24:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390944</attachid>
            <date>2020-02-17 11:16:58 -0800</date>
            <delta_ts>2020-02-17 13:24:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207849-20200217111657.patch</filename>
            <type>text/plain</type>
            <size>3306</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZDc5NzZiMmM5NDRiNDA5OWU1NWViZWU5ZjA5NzBkNWM2MDVhODQ0Li4wNjk4NWRkNjlkZGIxY2Ji
YTE3MzY3ZjljZDI4MzIxYmZkYzRkZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMC0wMi0xNyAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBbV2FzbV0gUkVHUkVTU0lPTihyMjU2NjY1KTogV2FzbS0+SlMgY2FsbCBJ
QyBuZWVkcyB0byBzYXZlIG1lbW9yeSBzaXplIHJlZ2lzdGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc4NDkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGdlbmVyYXRpbmcgdGhlIGNhbGwgSUMs
IHdlIHNob3VsZCBzZWxlY3QgdGhlIGNhbGxlZSBzYXZlcyB1c2luZyBCb3VuZHNDaGVja2luZyBt
b2RlIGluIG9yZGVyCisgICAgICAgIHRvIG9iZXkgdG8gdGhlIGNhbGxpbmcgY29udmVudGlvbnMg
ZGVzY3JpYmVkIGluIHIyNTY2NjUuIEN1cnJlbnRseSwgd2Ugd29uJ3QgcmVzdG9yZSB0aGUgbWVt
b3J5IHNpemUKKyAgICAgICAgcmVnaXN0ZXIgd2hlbiBjYWxsaW5nIHRoZSBXYXNtIExMSW50IHRo
cm91Z2ggdGhlIGNhbGwgSUMuCisKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rp
b24uY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUZ1bmN0aW9uOjpjYWxsZWVTYXZlcyBj
b25zdCk6CisKIDIwMjAtMDItMTYgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29u
eS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHJlbWFpbmluZyBXVEZfRVhQT1JUIGFuZCBXVEZfSU1Q
T1JUIGJ5IHJlcGxhY2luZyB0aGVtIHdpdGggV1RGX0VYUE9SVF9ERUNMQVJBVElPTiBhbmQgV1RG
X0lNUE9SVF9ERUNMQVJBVElPTgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcAppbmRleCA0NGY5OWJlYzk5NzJiNTc5MmVjMWI4
NzE0MzkzMzcwMDIwYWIzZTY1Li4xNmVjZGFhNjFlODZlYzg4ZGUwNDQ4ZTI5ZjY2NTg2MDY2ZWM4
NGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eUZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUZ1bmN0aW9uLmNwcApAQCAtMTYxLDcgKzE2MSw4IEBAIGJvb2wgV2ViQXNzZW1ibHlGdW5j
dGlvbjo6dXNlVGFnUmVnaXN0ZXJzKCkgY29uc3QKIAogUmVnaXN0ZXJTZXQgV2ViQXNzZW1ibHlG
dW5jdGlvbjo6Y2FsbGVlU2F2ZXMoKSBjb25zdAogewotICAgIHJldHVybiBXYXNtOjpQaW5uZWRS
ZWdpc3RlckluZm86OmdldCgpLnRvU2F2ZShpbnN0YW5jZSgpLT5tZW1vcnlNb2RlKCkpOworICAg
IC8vIFBlc3NpbWlzdGljYWxseSBzYXZlIGNhbGxlZSBzYXZlcyBpbiBCb3VuZHNDaGVja2luZyBt
b2RlIHNpbmNlIHRoZSBMTEludCBhbHdheXMgYm91bmRzIGNoZWNrcworICAgIHJldHVybiBXYXNt
OjpQaW5uZWRSZWdpc3RlckluZm86OmdldCgpLnRvU2F2ZShXYXNtOjpNZW1vcnlNb2RlOjpCb3Vu
ZHNDaGVja2luZyk7CiB9CiAKIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IFdlYkFzc2VtYmx5RnVuY3Rp
b246OnVzZWRDYWxsZWVTYXZlUmVnaXN0ZXJzKCkgY29uc3QKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
Q2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjUyMTJmZmExZDc1YTk0MTY2MWYz
NzZjOWQyZWMwNTk1MmYzYjg2OC4uN2M2YmMwNjBiMDFiMjFjNzhkZDAyNmQ1MzEyZGM2MzUzMTcy
MmUwNCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wMi0xNyAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxv
QGFwcGxlLmNvbT4KKworICAgICAgICBbV2FzbV0gUkVHUkVTU0lPTihyMjU2NjY1KTogV2FzbS0+
SlMgY2FsbCBJQyBuZWVkcyB0byBzYXZlIG1lbW9yeSBzaXplIHJlZ2lzdGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc4NDkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdhc20vcmVncmVzcy9yZWdy
ZXNzLTI1NjY2NS5qczogQWRkZWQuCisgICAgICAgIChmKToKKwogMjAyMC0wMi0xNCAgVGFkZXUg
WmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkOiBmaXgg
YnJva2VuIHRlc3RzIGFkZGVkIGluIHIyNTY2NjUKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9y
ZWdyZXNzL3JlZ3Jlc3MtMjU2NjY1LmpzIGIvSlNUZXN0cy93YXNtL3JlZ3Jlc3MvcmVncmVzcy0y
NTY2NjUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uM2FiNmMxNmMxNTc5NWRiNmZhNzgwNWFhYjY0NGUwNzE3YWQ0
ZjJhNAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvd2FzbS9yZWdyZXNzL3JlZ3Jlc3MtMjU2
NjY1LmpzCkBAIC0wLDAgKzEsMTIgQEAKKy8vQCByZXF1aXJlT3B0aW9ucygiLS11c2VDb25jdXJy
ZW50SklUPWZhbHNlIiwgIi0taml0UG9saWN5U2NhbGU9MCIpCisKK2Z1bmN0aW9uIGYoKSB7Cisg
ICAgdmFyIGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KFswLCA5NywgMTE1LCAxMDksIDEsIDAsIDAs
IDAsIDEsIDYsIDEsIDk2LCAxLCAxMjcsIDEsIDEyNywgMywgMiwgMSwgMCwgNSwgMywgMSwgMCwg
MCwgNywgOCwgMSwgNCwgMTA4LCAxMTEsIDk3LCAxMDAsIDAsIDAsIDEwLCA5LCAxLCA3LCAwLCAz
MiwgMCwgNDAsIDAsIDEwMCwgMTFdKTsKKyAgICB2YXIgbW9kdWxlID0gbmV3IFdlYkFzc2VtYmx5
Lk1vZHVsZShidWZmZXIpOworICAgIHZhciBpbnN0YW5jZSA9IG5ldyBXZWJBc3NlbWJseS5JbnN0
YW5jZShtb2R1bGUpOworICAgIHRyeSB7IGluc3RhbmNlLmV4cG9ydHMubG9hZCgweDEwMDAwIC0g
MTAwIC0gNCk7IH0gY2F0Y2ggKGUpIHt9CisgICAgKDU1NSlbMF07Cit9CisKK2YoKTsKK2YoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>