<?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>131394</bug_id>
          
          <creation_ts>2014-04-08 14:22:38 -0700</creation_ts>
          <short_desc>[FTL] Emit multibyte NOPs on X86-64</short_desc>
          <delta_ts>2014-04-09 19:38:41 -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>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</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="Juergen Ributzka">juergen</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>998781</commentid>
    <comment_count>0</comment_count>
    <who name="Juergen Ributzka">juergen</who>
    <bug_when>2014-04-08 14:22:38 -0700</bug_when>
    <thetext>[FTL] Emit multibyte NOPs on X86-64</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998783</commentid>
    <comment_count>1</comment_count>
      <attachid>228888</attachid>
    <who name="Juergen Ributzka">juergen</who>
    <bug_when>2014-04-08 14:23:14 -0700</bug_when>
    <thetext>Created attachment 228888
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998800</commentid>
    <comment_count>2</comment_count>
      <attachid>228893</attachid>
    <who name="Juergen Ributzka">juergen</who>
    <bug_when>2014-04-08 14:54:57 -0700</bug_when>
    <thetext>Created attachment 228893
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998848</commentid>
    <comment_count>3</comment_count>
    <who name="Juergen Ributzka">juergen</who>
    <bug_when>2014-04-08 15:59:16 -0700</bug_when>
    <thetext>*** Bug 131393 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999273</commentid>
    <comment_count>4</comment_count>
      <attachid>228893</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-04-09 13:54:05 -0700</bug_when>
    <thetext>Comment on attachment 228893
Patch

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

I don&apos;t think the variances from the Intel manual are a big deal, but why the slight variations?

r=me

&gt; Source/JavaScriptCore/assembler/X86Assembler.h:2261
&gt; +            {0x0f, 0x1f, 0x44, 0x00, 0x08},

The Intel Arch manual for SW Dev vol 2 shows a slightly different 5 byte opcode: x0f, 0x1f, 0x44, 0x00, -&gt; 0x00 &lt;-

&gt; Source/JavaScriptCore/assembler/X86Assembler.h:2263
&gt; +            {0x66, 0x0f, 0x1f, 0x44, 0x00, 0x08},

Same thing, the last byte in the Intel manual is 0x00.

&gt; Source/JavaScriptCore/assembler/X86Assembler.h:2267
&gt; +            {0x0f, 0x1f, 0x84, 0x00, 0x00, 0x02, 0x00, 0x00},

The intel manual shows the last 5 bytes as 0x00

&gt; Source/JavaScriptCore/assembler/X86Assembler.h:2269
&gt; +            {0x66, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x02, 0x00, 0x00},

The intel manual shows the last 5 bytes as 0x00

&gt; Source/JavaScriptCore/assembler/X86Assembler.h:2271
&gt; +            {0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x02, 0x00, 0x00}

The intel manual shows the last 5 bytes as 0x00</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999285</commentid>
    <comment_count>5</comment_count>
    <who name="Juergen Ributzka">juergen</who>
    <bug_when>2014-04-09 14:12:20 -0700</bug_when>
    <thetext>The variance is only there to help with debugging, because otherwise it would be more difficult to identify the different versions after disassembly.

The different offsets are also required if you want to use the different NOPs manually. The assembler can&apos;t distinguish between &quot;nopl 0(%rax)&quot; (4 byte NOP)  and &quot;nopl 0L(%rax)&quot; (7 byte NOP). The only way to force it to use the wider NOP is to use an offset that can&apos;t fit into a byte.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999402</commentid>
    <comment_count>6</comment_count>
      <attachid>228893</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-09 19:38:38 -0700</bug_when>
    <thetext>Comment on attachment 228893
Patch

Clearing flags on attachment: 228893

Committed r167059: &lt;http://trac.webkit.org/changeset/167059&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999403</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-09 19:38:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228888</attachid>
            <date>2014-04-08 14:23:14 -0700</date>
            <delta_ts>2014-04-08 14:54:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131394-20140408142254.patch</filename>
            <type>text/plain</type>
            <size>2652</size>
            <attacher name="Juergen Ributzka">juergen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2OTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NDUyMGY4MzdhMzk4ODM4YjQ1YzcwOTk0MDFhYjg1NDA3ZTIxMDI5Li42Y2NkZTAyYjdjYjEyMjc0
OGE1OTgyYjA4MDZmYTBiNDg1MTcxMzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNC0wNC0wOCAgSnVlcmdlbiBSaWJ1dHprYSAgPGp1ZXJnZW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFtGVExdIEVtaXQgbXVsdGlieXRlIE5PUHMgb24gWDg2LTY0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzEzOTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFzc2VtYmxlci9Y
ODZBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpmaWxsTm9wcyk6CisK
IDIwMTQtMDQtMDggIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCBmaXggYSBnb29meSBhc3NlcnRpb24gdG8gZml4IGRlYnVnLgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKaW5kZXggNzExNjEyY2Zl
MmI0ZDQyMTYxMTM4NGRmNTY5YWM3YThlYzZmNWU4MC4uY2E5ZDg1ZTBhZjg3NmZjYTExZjAzZGZm
YTc1MjU1NzhiYTg0MjE1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9YODZBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L1g4NkFzc2VtYmxlci5oCkBAIC0yMjQ0LDEwICsyMjQ0LDQ5IEBAIHB1YmxpYzoKICAgICB7CiAg
ICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcChPUF9OT1ApOwogICAgIH0KLSAgICAKKwogICAg
IHN0YXRpYyB2b2lkIGZpbGxOb3BzKHZvaWQqIGJhc2UsIHNpemVfdCBzaXplKQogICAgIHsKKyNp
ZiBDUFUoWDg2XzY0KQorICAgICAgICBzdGF0aWMgY29uc3QgdWludDhfdCBub3BzWzEwXVsxMF0g
PSB7CisgICAgICAgICAgICAvLyBub3AKKyAgICAgICAgICAgIHsweDkwfSwKKyAgICAgICAgICAg
IC8vIHhjaGcgJWF4LCVheAorICAgICAgICAgICAgezB4NjYsIDB4OTB9LAorICAgICAgICAgICAg
Ly8gbm9wbCAoJVtyZV1heCkKKyAgICAgICAgICAgIHsweDBmLCAweDFmLCAweDAwfSwKKyAgICAg
ICAgICAgIC8vIG5vcGwgOCglW3JlXWF4KQorICAgICAgICAgICAgezB4MGYsIDB4MWYsIDB4NDAs
IDB4MDh9LAorICAgICAgICAgICAgLy8gbm9wbCA4KCVbcmVdYXgsJVtyZV1heCwxKQorICAgICAg
ICAgICAgezB4MGYsIDB4MWYsIDB4NDQsIDB4MDAsIDB4MDh9LAorICAgICAgICAgICAgLy8gbm9w
dyA4KCVbcmVdYXgsJVtyZV1heCwxKQorICAgICAgICAgICAgezB4NjYsIDB4MGYsIDB4MWYsIDB4
NDQsIDB4MDAsIDB4MDh9LAorICAgICAgICAgICAgLy8gbm9wbCA1MTIoJVtyZV1heCkKKyAgICAg
ICAgICAgIHsweDBmLCAweDFmLCAweDgwLCAweDAwLCAweDAyLCAweDAwLCAweDAwfSwKKyAgICAg
ICAgICAgIC8vIG5vcGwgNTEyKCVbcmVdYXgsJVtyZV1heCwxKQorICAgICAgICAgICAgezB4MGYs
IDB4MWYsIDB4ODQsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDB9LAorICAgICAgICAgICAg
Ly8gbm9wdyA1MTIoJVtyZV1heCwlW3JlXWF4LDEpCisgICAgICAgICAgICB7MHg2NiwgMHgwZiwg
MHgxZiwgMHg4NCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMH0sCisgICAgICAgICAgICAv
LyBub3B3ICVjczo1MTIoJVtyZV1heCwlW3JlXWF4LDEpCisgICAgICAgICAgICB7MHg2NiwgMHgy
ZSwgMHgwZiwgMHgxZiwgMHg4NCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMH0KKyAgICAg
ICAgfTsKKworICAgICAgICB1aW50OF90KiB3aGVyZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhf
dCo+KGJhc2UpOworICAgICAgICB3aGlsZSAoc2l6ZSkgeworICAgICAgICAgICAgdW5zaWduZWQg
bm9wU2l6ZSA9IHN0ZDo6bWluKHNpemUsIDE1VUwpOworICAgICAgICAgICAgdW5zaWduZWQgbnVt
UHJlZml4ZXMgPSBub3BTaXplIDw9IDEwID8gMCA6IG5vcFNpemUgLSAxMDsKKyAgICAgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgIT0gbnVtUHJlZml4ZXM7ICsraSkKKyAgICAgICAgICAg
ICAgICAqd2hlcmUrKyA9IDB4NjY7CisKKyAgICAgICAgICAgIHVuc2lnbmVkIG5vcFJlc3QgPSBu
b3BTaXplIC0gbnVtUHJlZml4ZXM7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
ICE9IG5vcFJlc3Q7ICsraSkKKyAgICAgICAgICAgICAgICAqd2hlcmUrKyA9IG5vcHNbbm9wUmVz
dC0xXVtpXTsKKworICAgICAgICAgICAgc2l6ZSAtPSBub3BTaXplOworICAgICAgICB9CisjZWxp
ZgogICAgICAgICBtZW1zZXQoYmFzZSwgT1BfTk9QLCBzaXplKTsKKyNlbmRpZgogICAgIH0KIAog
ICAgIC8vIFRoaXMgaXMgYSBuby1vcCBvbiB4ODYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228893</attachid>
            <date>2014-04-08 14:54:57 -0700</date>
            <delta_ts>2014-04-09 19:38:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131394-20140408145436.patch</filename>
            <type>text/plain</type>
            <size>2652</size>
            <attacher name="Juergen Ributzka">juergen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2OTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NDUyMGY4MzdhMzk4ODM4YjQ1YzcwOTk0MDFhYjg1NDA3ZTIxMDI5Li42Y2NkZTAyYjdjYjEyMjc0
OGE1OTgyYjA4MDZmYTBiNDg1MTcxMzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNC0wNC0wOCAgSnVlcmdlbiBSaWJ1dHprYSAgPGp1ZXJnZW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFtGVExdIEVtaXQgbXVsdGlieXRlIE5PUHMgb24gWDg2LTY0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzEzOTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFzc2VtYmxlci9Y
ODZBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpmaWxsTm9wcyk6CisK
IDIwMTQtMDQtMDggIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCBmaXggYSBnb29meSBhc3NlcnRpb24gdG8gZml4IGRlYnVnLgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKaW5kZXggNzExNjEyY2Zl
MmI0ZDQyMTYxMTM4NGRmNTY5YWM3YThlYzZmNWU4MC4uYzlmZTQ2ZWI2NWU5MGY4ZGExOGM5NDFl
YTViZmI5N2IwOGMxN2EwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9YODZBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L1g4NkFzc2VtYmxlci5oCkBAIC0yMjQ0LDEwICsyMjQ0LDQ5IEBAIHB1YmxpYzoKICAgICB7CiAg
ICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcChPUF9OT1ApOwogICAgIH0KLSAgICAKKwogICAg
IHN0YXRpYyB2b2lkIGZpbGxOb3BzKHZvaWQqIGJhc2UsIHNpemVfdCBzaXplKQogICAgIHsKKyNp
ZiBDUFUoWDg2XzY0KQorICAgICAgICBzdGF0aWMgY29uc3QgdWludDhfdCBub3BzWzEwXVsxMF0g
PSB7CisgICAgICAgICAgICAvLyBub3AKKyAgICAgICAgICAgIHsweDkwfSwKKyAgICAgICAgICAg
IC8vIHhjaGcgJWF4LCVheAorICAgICAgICAgICAgezB4NjYsIDB4OTB9LAorICAgICAgICAgICAg
Ly8gbm9wbCAoJVtyZV1heCkKKyAgICAgICAgICAgIHsweDBmLCAweDFmLCAweDAwfSwKKyAgICAg
ICAgICAgIC8vIG5vcGwgOCglW3JlXWF4KQorICAgICAgICAgICAgezB4MGYsIDB4MWYsIDB4NDAs
IDB4MDh9LAorICAgICAgICAgICAgLy8gbm9wbCA4KCVbcmVdYXgsJVtyZV1heCwxKQorICAgICAg
ICAgICAgezB4MGYsIDB4MWYsIDB4NDQsIDB4MDAsIDB4MDh9LAorICAgICAgICAgICAgLy8gbm9w
dyA4KCVbcmVdYXgsJVtyZV1heCwxKQorICAgICAgICAgICAgezB4NjYsIDB4MGYsIDB4MWYsIDB4
NDQsIDB4MDAsIDB4MDh9LAorICAgICAgICAgICAgLy8gbm9wbCA1MTIoJVtyZV1heCkKKyAgICAg
ICAgICAgIHsweDBmLCAweDFmLCAweDgwLCAweDAwLCAweDAyLCAweDAwLCAweDAwfSwKKyAgICAg
ICAgICAgIC8vIG5vcGwgNTEyKCVbcmVdYXgsJVtyZV1heCwxKQorICAgICAgICAgICAgezB4MGYs
IDB4MWYsIDB4ODQsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDB9LAorICAgICAgICAgICAg
Ly8gbm9wdyA1MTIoJVtyZV1heCwlW3JlXWF4LDEpCisgICAgICAgICAgICB7MHg2NiwgMHgwZiwg
MHgxZiwgMHg4NCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMH0sCisgICAgICAgICAgICAv
LyBub3B3ICVjczo1MTIoJVtyZV1heCwlW3JlXWF4LDEpCisgICAgICAgICAgICB7MHg2NiwgMHgy
ZSwgMHgwZiwgMHgxZiwgMHg4NCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMH0KKyAgICAg
ICAgfTsKKworICAgICAgICB1aW50OF90KiB3aGVyZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhf
dCo+KGJhc2UpOworICAgICAgICB3aGlsZSAoc2l6ZSkgeworICAgICAgICAgICAgdW5zaWduZWQg
bm9wU2l6ZSA9IHN0ZDo6bWluKHNpemUsIDE1VUwpOworICAgICAgICAgICAgdW5zaWduZWQgbnVt
UHJlZml4ZXMgPSBub3BTaXplIDw9IDEwID8gMCA6IG5vcFNpemUgLSAxMDsKKyAgICAgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgIT0gbnVtUHJlZml4ZXM7ICsraSkKKyAgICAgICAgICAg
ICAgICAqd2hlcmUrKyA9IDB4NjY7CisKKyAgICAgICAgICAgIHVuc2lnbmVkIG5vcFJlc3QgPSBu
b3BTaXplIC0gbnVtUHJlZml4ZXM7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
ICE9IG5vcFJlc3Q7ICsraSkKKyAgICAgICAgICAgICAgICAqd2hlcmUrKyA9IG5vcHNbbm9wUmVz
dC0xXVtpXTsKKworICAgICAgICAgICAgc2l6ZSAtPSBub3BTaXplOworICAgICAgICB9CisjZWxz
ZQogICAgICAgICBtZW1zZXQoYmFzZSwgT1BfTk9QLCBzaXplKTsKKyNlbmRpZgogICAgIH0KIAog
ICAgIC8vIFRoaXMgaXMgYSBuby1vcCBvbiB4ODYK
</data>

          </attachment>
      

    </bug>

</bugzilla>