<?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>148337</bug_id>
          
          <creation_ts>2015-08-21 15:48:35 -0700</creation_ts>
          <short_desc>Add a bunch of operators</short_desc>
          <delta_ts>2015-09-04 10:16:55 -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>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>148662</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Basile Clement">basile_clement</reporter>
          <assigned_to name="Basile Clement">basile_clement</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1119962</commentid>
    <comment_count>0</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-08-21 15:48:35 -0700</bug_when>
    <thetext>jsc-tailcall: Add a bunch of operators</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119964</commentid>
    <comment_count>1</comment_count>
      <attachid>259675</attachid>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-08-21 15:49:02 -0700</bug_when>
    <thetext>Created attachment 259675
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120067</commentid>
    <comment_count>2</comment_count>
      <attachid>259675</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-08-21 20:28:51 -0700</bug_when>
    <thetext>Comment on attachment 259675
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120311</commentid>
    <comment_count>3</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-08-24 11:08:14 -0700</bug_when>
    <thetext>Committed r188870 &lt;http://trac.webkit.org/changeset/188870&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122428</commentid>
    <comment_count>4</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-08-31 18:17:59 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Committed r188870 &lt;http://trac.webkit.org/changeset/188870&gt;.

This was on the jsc-tailcall branch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123460</commentid>
    <comment_count>5</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-09-04 09:39:37 -0700</bug_when>
    <thetext>Committed r189351: &lt;http://trac.webkit.org/changeset/189351&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123464</commentid>
    <comment_count>6</comment_count>
      <attachid>259675</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-09-04 09:58:30 -0700</bug_when>
    <thetext>Comment on attachment 259675
Patch

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

&gt; Source/JavaScriptCore/jit/GPRInfo.h:71
&gt; +    bool operator==(JSValueRegs other) { return m_gpr == other.m_gpr; }
&gt; +    bool operator!=(JSValueRegs other) { return !(*this == other); }

Is more efficient code generated if we make the argument type be const JSValueRegs&amp;?

&gt; Source/JavaScriptCore/jit/GPRInfo.h:181
&gt; +    bool operator==(JSValueRegs other) const

Same question.

&gt; Source/JavaScriptCore/jit/GPRInfo.h:186
&gt; +    bool operator!=(JSValueRegs other) const { return !(*this == other); }

Same question.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123474</commentid>
    <comment_count>7</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-09-04 10:16:55 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 259675 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=259675&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/jit/GPRInfo.h:71
&gt; &gt; +    bool operator==(JSValueRegs other) { return m_gpr == other.m_gpr; }
&gt; &gt; +    bool operator!=(JSValueRegs other) { return !(*this == other); }
&gt; 
&gt; Is more efficient code generated if we make the argument type be const
&gt; JSValueRegs&amp;?
&gt; 
&gt; &gt; Source/JavaScriptCore/jit/GPRInfo.h:181
&gt; &gt; +    bool operator==(JSValueRegs other) const
&gt; 
&gt; Same question.
&gt; 
&gt; &gt; Source/JavaScriptCore/jit/GPRInfo.h:186
&gt; &gt; +    bool operator!=(JSValueRegs other) const { return !(*this == other); }
&gt; 
&gt; Same question.

JSValueRegs is an integer on 64 bit platforms, and two int8_t (thus packed as a single integer) on 32 bit platforms. So, passing by value is better here.

In practice, it probably doesn&apos;t matter at all since those functions will usually be inlined.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259675</attachid>
            <date>2015-08-21 15:49:02 -0700</date>
            <delta_ts>2015-08-21 20:28:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148337-20150821154856.patch</filename>
            <type>text/plain</type>
            <size>3933</size>
            <attacher name="Basile Clement">basile_clement</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NTVhZTg3OGYzMmM1MDMyYmIyZTllMjBkYTExZGRkOGI0NGUxNGVjLi44ZDIwNzhiNjM0ZjkzMjJh
YWQyMTBmODBmYzEwNjFhMzU3ZTViMjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyMiBAQAogMjAxNS0wOC0yMSAgQmFzaWxlIENsZW1lbnQgIDxiYXNpbGVfY2xlbWVudEBh
cHBsZS5jb20+CiAKKyAgICAgICAganNjLXRhaWxjYWxsOiBBZGQgYSBidW5jaCBvZiBvcGVyYXRv
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODMz
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaml0
L0dQUkluZm8uaDoKKyAgICAgICAgKEpTQzo6SlNWYWx1ZVJlZ3M6Om9wZXJhdG9yIGJvb2wpOgor
ICAgICAgICAoSlNDOjpKU1ZhbHVlUmVnczo6b3BlcmF0b3I9PSk6CisgICAgICAgIChKU0M6OkpT
VmFsdWVSZWdzOjpvcGVyYXRvciE9KToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZVNvdXJjZTo6b3Bl
cmF0b3IgYm9vbCk6CisgICAgICAgIChKU0M6OkpTVmFsdWVSZWdzOjpvcGVyYXRvciEpOgorICAg
ICAgICAoSlNDOjpKU1ZhbHVlU291cmNlOjpvcGVyYXRvciEpOgorICAgICAgICAqIGppdC9SZWcu
aDoKKyAgICAgICAgKEpTQzo6UmVnOjpvcGVyYXRvciBib29sKToKKworMjAxNS0wOC0yMSAgQmFz
aWxlIENsZW1lbnQgIDxiYXNpbGVfY2xlbWVudEBhcHBsZS5jb20+CisKICAgICAgICAganNjLXRh
aWxjYWxsOiBXZSBzaG91bGQgbm90IGFzc3VtZSB0aGF0IG9ubHkgdGhlIGJhc2VsaW5lIEpJVCBj
YW4gaGF2ZSBCeUlkIGFjY2Vzc2VzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDgzMzAKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9HUFJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaAppbmRl
eCBiODY2N2I3MjA1Zjc3Y2ExYjk3ZTQxMTNlM2E3NWE3NzQxMDk4OGRjLi5hMzU2ZmYxZTU1NWZk
OTFmZjI5OTM1OTRkYTM1OTcxZjkxNWM2OWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0dQUkluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUklu
Zm8uaApAQCAtNjUsNiArNjUsMTAgQEAgcHVibGljOgogICAgIH0KICAgICAKICAgICBib29sIG9w
ZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuIG1fZ3ByID09IEludmFsaWRHUFJSZWc7IH0KKyAgICBl
eHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9ncHIgIT0gSW52YWxpZEdQ
UlJlZzsgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KEpTVmFsdWVSZWdzIG90aGVyKSB7IHJldHVy
biBtX2dwciA9PSBvdGhlci5tX2dwcjsgfQorICAgIGJvb2wgb3BlcmF0b3IhPShKU1ZhbHVlUmVn
cyBvdGhlcikgeyByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7IH0KICAgICAKICAgICBHUFJSZWcg
Z3ByKCkgY29uc3QgeyByZXR1cm4gbV9ncHI7IH0KICAgICBHUFJSZWcgdGFnR1BSKCkgY29uc3Qg
eyByZXR1cm4gSW52YWxpZEdQUlJlZzsgfQpAQCAtMTEwLDYgKzExNCw3IEBAIHB1YmxpYzoKICAg
ICB9CiAgICAgCiAgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiBtX2Jhc2UgPT0g
SW52YWxpZEdQUlJlZzsgfQorICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJl
dHVybiBtX2Jhc2UgIT0gSW52YWxpZEdQUlJlZzsgfQogICAgIAogICAgIGJvb2wgaXNBZGRyZXNz
KCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXQgIT0gbm90QWRkcmVzcygpOyB9CiAgICAgCkBAIC0x
NjYsMTEgKzE3MSwxOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBKU1ZhbHVlUmVncyhJbnZh
bGlkR1BSUmVnLCBncHIpOwogICAgIH0KICAgICAKLSAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0
CisgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiAhc3RhdGljX2Nhc3Q8Ym9vbD4o
KnRoaXMpOyB9CisgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0CisgICAgeworICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R1BSUmVnPihtX3RhZ0dQUikgIT0gSW52YWxpZEdQUlJl
ZworICAgICAgICAgICAgfHwgc3RhdGljX2Nhc3Q8R1BSUmVnPihtX3BheWxvYWRHUFIpICE9IElu
dmFsaWRHUFJSZWc7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KEpTVmFsdWVSZWdzIG90
aGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdQUlJlZz4obV90
YWdHUFIpID09IEludmFsaWRHUFJSZWcKLSAgICAgICAgICAgICYmIHN0YXRpY19jYXN0PEdQUlJl
Zz4obV9wYXlsb2FkR1BSKSA9PSBJbnZhbGlkR1BSUmVnOworICAgICAgICByZXR1cm4gbV90YWdH
UFIgPT0gb3RoZXIubV90YWdHUFIKKyAgICAgICAgICAgICYmIG1fcGF5bG9hZEdQUiA9PSBvdGhl
ci5tX3BheWxvYWRHUFI7CiAgICAgfQorICAgIGJvb2wgb3BlcmF0b3IhPShKU1ZhbHVlUmVncyBv
dGhlcikgY29uc3QgeyByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7IH0KICAgICAKICAgICBHUFJS
ZWcgdGFnR1BSKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8R1BSUmVnPihtX3RhZ0dQUik7
IH0KICAgICBHUFJSZWcgcGF5bG9hZEdQUigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEdQ
UlJlZz4obV9wYXlsb2FkR1BSKTsgfQpAQCAtMjM4LDExICsyNTEsMTIgQEAgcHVibGljOgogICAg
ICAgICByZXN1bHQubV90YWdUeXBlID0gc3RhdGljX2Nhc3Q8aW50OF90PihKU1ZhbHVlOjpDZWxs
VGFnKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9Ci0gICAgCi0gICAgYm9vbCBvcGVy
YXRvciEoKSBjb25zdAorCisgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiAhc3Rh
dGljX2Nhc3Q8Ym9vbD4oKnRoaXMpOyB9CisgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNv
bnN0CiAgICAgewotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R1BSUmVnPihtX2Jhc2VPclRh
ZykgPT0gSW52YWxpZEdQUlJlZwotICAgICAgICAgICAgJiYgc3RhdGljX2Nhc3Q8R1BSUmVnPiht
X3BheWxvYWQpID09IEludmFsaWRHUFJSZWc7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxH
UFJSZWc+KG1fYmFzZU9yVGFnKSAhPSBJbnZhbGlkR1BSUmVnCisgICAgICAgICAgICB8fCBzdGF0
aWNfY2FzdDxHUFJSZWc+KG1fcGF5bG9hZCkgIT0gSW52YWxpZEdQUlJlZzsKICAgICB9CiAgICAg
CiAgICAgYm9vbCBpc0FkZHJlc3MoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9SZWcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmgKaW5kZXgg
MDcwNGUyZWMzOWQxMWJlYTJmYWMxY2RjOWI4Y2YwMDBjYTBmN2I2Yi4uOWY2YWQxYzBjZDM0ODZk
NmRjYjc5MjBjYWE2ZjUxYjk3NTJiZTJiMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9SZWcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5oCkBAIC0x
MDEsNiArMTAxLDcgQEAgcHVibGljOgogICAgIAogICAgIGJvb2wgaXNTZXQoKSBjb25zdCB7IHJl
dHVybiBtX2luZGV4ICE9IGludmFsaWQoKTsgfQogICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3Qg
eyByZXR1cm4gIWlzU2V0KCk7IH0KKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3Qg
eyByZXR1cm4gaXNTZXQoKTsgfQogICAgIAogICAgIGJvb2wgaXNHUFIoKSBjb25zdAogICAgIHsK
</data>
<flag name="review"
          id="284864"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>