<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:Consolas;}
span.gmail-stdout
{mso-style-name:gmail-stdout;}
span.EmailStyle21
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Thanks. I’ve reverted and will try to build lld and update the tests before recommitting.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b>From:</b> Matt Morehouse <mascasa@google.com> <br>
<b>Sent:</b> Wednesday, July 1, 2020 3:15 PM<br>
<b>To:</b> Topper, Craig <craig.topper@intel.com>; Craig Topper <llvmlistbot@llvm.org><br>
<b>Cc:</b> llvm-commits <llvm-commits@lists.llvm.org><br>
<b>Subject:</b> Re: [llvm] 3367e9d - [X86] Enable multibyte NOPs in 64-bit mode for padding/alignment.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<p class="MsoNormal">This commit seems to be causing the LLD COFF/lto.ll test to fail: <a href="http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/43382/steps/check-lld%20ubsan/logs/stdio">http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/43382/steps/check-lld%20ubsan/logs/stdio</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Could you please take a look?<o:p></o:p></p>
</div>
<div>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">/b/sanitizer-x86_64-linux-fast/build/llvm-project/lld/test/COFF/lto.ll:91:17: error: TEXT-10-NEXT: expected string not found in input<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">; TEXT-10-NEXT: nop<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> ^<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"><stdin>:10:30: note: scanning from here<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">14000100b: 0f 1f 44 00 00 nopl (%rax,%rax)<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> ^<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"><stdin>:12:16: note: possible intended match here<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">140001011: cc int3<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> ^<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"><o:p> </o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">Input file: <stdin><o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">Check file: /b/sanitizer-x86_64-linux-fast/build/llvm-project/lld/test/COFF/lto.ll<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"><o:p> </o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">-dump-input=help describes the format of the following dump.<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"><o:p> </o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">Full input was:<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"><<<<<<<o:p> </o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 1: <o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 2: /b/sanitizer-x86_64-linux-fast/build/llvm_build_ubsan/tools/lld/test/COFF/Output/main.exe: file format coff-x86-64<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 3: <o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 4: <o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 5: Disassembly of section .text:<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 6: <o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 7: 0000000140001000 <.text>:<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 8: 140001000: c3 retq<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 9: 140001001: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax)<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 10: 14000100b: 0f 1f 44 00 00 nopl (%rax,%rax)<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 X~~~~~~~~~~~~ error: no match found<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 11: 140001010: c3 retq<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 12: 140001011: cc int3<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'1 ? possible intended match<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 13: 140001012: cc int3<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 14: 140001013: cc int3<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 15: 140001014: cc int3<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 16: 140001015: cc int3<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 17: 140001016: cc int3<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 18: 140001017: cc int3<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 19: 140001018: cc int3<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 20: 140001019: cc int3<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 21: 14000101a: cc int3<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 22: 14000101b: cc int3<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 23: 14000101c: cc int3<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 24: 14000101d: cc int3<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 25: 14000101e: cc int3<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 26: 14000101f: cc int3<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 27: 140001020: 48 83 ec 28 subq $40, %rsp<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 28: 140001024: e8 d7 ff ff ff callq 0x140001000 <.text><o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 29: 140001029: 31 c0 xorl %eax, %eax<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 30: 14000102b: 48 83 c4 28 addq $40, %rsp<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black"> 31: 14000102f: c3 retq<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">next:91'0 ~~~~~~~~~~~~~~~~~~<o:p></o:p></span></span></pre>
<pre><span class="gmail-stdout"><span style="font-size:13.5pt;color:black">>>>>>></span></span><span style="font-size:13.5pt;color:black"><o:p> </o:p></span></pre>
</div>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Wed, Jul 1, 2020 at 10:57 AM Craig Topper via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal"><br>
Author: Craig Topper<br>
Date: 2020-07-01T10:57:24-07:00<br>
New Revision: 3367e9dac56024147bbd916c40bfe6a4ee61079b<br>
<br>
URL: <a href="https://github.com/llvm/llvm-project/commit/3367e9dac56024147bbd916c40bfe6a4ee61079b" target="_blank">
https://github.com/llvm/llvm-project/commit/3367e9dac56024147bbd916c40bfe6a4ee61079b</a><br>
DIFF: <a href="https://github.com/llvm/llvm-project/commit/3367e9dac56024147bbd916c40bfe6a4ee61079b.diff" target="_blank">
https://github.com/llvm/llvm-project/commit/3367e9dac56024147bbd916c40bfe6a4ee61079b.diff</a><br>
<br>
LOG: [X86] Enable multibyte NOPs in 64-bit mode for padding/alignment.<br>
<br>
The default CPU used by llvm-mc doesn't have the NOPL feature, but<br>
if we know we're compiling in 64-bit mode we should be able to<br>
use nopl.<br>
<br>
Added: <br>
<br>
<br>
Modified: <br>
llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp<br>
llvm/test/MC/X86/align-branch-bundle.s<br>
llvm/test/MC/X86/align-branch-pad-max-prefix.s<br>
<br>
Removed: <br>
<br>
<br>
<br>
################################################################################<br>
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp<br>
index e49ee1792373..bf3b6bcb5463 100644<br>
--- a/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp<br>
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp<br>
@@ -1096,7 +1096,7 @@ bool X86AsmBackend::writeNopData(raw_ostream &OS, uint64_t Count) const {<br>
<br>
// This CPU doesn't support long nops. If needed add more.<br>
// FIXME: We could generated something better than plain 0x90.<br>
- if (!STI.getFeatureBits()[X86::FeatureNOPL]) {<br>
+ if (!STI.hasFeature(X86::FeatureNOPL) && !STI.hasFeature(X86::Mode64Bit)) {<br>
for (uint64_t i = 0; i < Count; ++i)<br>
OS << '\x90';<br>
return true;<br>
<br>
diff --git a/llvm/test/MC/X86/align-branch-bundle.s b/llvm/test/MC/X86/align-branch-bundle.s<br>
index 43dabca9e477..a62159943683 100644<br>
--- a/llvm/test/MC/X86/align-branch-bundle.s<br>
+++ b/llvm/test/MC/X86/align-branch-bundle.s<br>
@@ -6,7 +6,6 @@<br>
# CHECK-NEXT: 1: testq $2, %rdx<br>
# CHECK-NEXT: 8: jne<br>
# CHECK-NEXT: e: nop<br>
-# CHECK-NEXT: f: nop<br>
# CHECK-NEXT: 10: jle<br>
<br>
.text<br>
<br>
diff --git a/llvm/test/MC/X86/align-branch-pad-max-prefix.s b/llvm/test/MC/X86/align-branch-pad-max-prefix.s<br>
index 6cce49d55d47..9576562667ac 100644<br>
--- a/llvm/test/MC/X86/align-branch-pad-max-prefix.s<br>
+++ b/llvm/test/MC/X86/align-branch-pad-max-prefix.s<br>
@@ -10,9 +10,7 @@<br>
# following nops, doing so would make the jmp misaligned.<br>
# CHECK: 18: jmp<br>
jmp bar<br>
-# CHECK: 1d: nop<br>
-# CHECK: 1e: nop<br>
-# CHECK: 1f: nop<br>
+# CHECK: 1d: nopl (%rax)<br>
# CHECK: 20: int3<br>
.p2align 5<br>
int3<br>
<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><o:p></o:p></p>
</blockquote>
</div>
</div>
</body>
</html>