<div dir="ltr">lgtm, that's more or less what I had in mind.  All MS inline asm blobs are marked 'sideeffect', so LLVM won't move memory loads and stores across these segment updates.</div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Thu, Jul 17, 2014 at 1:15 PM, Nico Weber <span dir="ltr"><<a href="mailto:thakis@chromium.org" target="_blank">thakis@chromium.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hi,<div><br></div><div>the attached patch makes it so that cs, ds, es, fs, gs, and ss no longer are added to the implicit clobber list by AsmParser::parseMSInlineAsm(). Clang tries to check the clobber list but doesn't list these registers in its x86 register list (and gcc doesn't allow listing them as clobber registers either). This fixes PR20343. The test will be landed on the clang side, it'll look like the test in <a href="http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20140714/110476.html" target="_blank">http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20140714/110476.html</a> (except that cs and friends will no longer be listed on the clobber list.)</div>
<span class="HOEnZb"><font color="#888888">
<div><br></div><div>Nico</div></font></span></div>
</blockquote></div><br></div>