<div><div dir="auto">We don’t model the eflags at that level. With maybe the exception of the direction flag. It’s just not that useful to the compiler to have the exact bits that are changed. And I’m not even sure we would ever emit CLC on our own.</div></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jun 24, 2019 at 7:59 PM Antonin Reitz via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
Here is one question regarding the LLVM TableGen:<br>
<br>
Which file in the llvm/lib/Target/X86 folder describes how the bits in <br>
the EFLAGS register are modified by the x86 instructions? For example, <br>
in the "X86InstrInfo.td" file, lines 2134-2135, it says:<br>
<br>
let SchedRW = [WriteALU], Defs = [EFLAGS], Uses = [EFLAGS] in {<br>
def CLC : I<0xF8, RawFrm, (outs), (ins), "clc", []>;<br>
<br>
So it says the Defs of CLC is EFLAGS, but actually the CLC instruction <br>
only clears the "CF" flag in the EFLAGS register and has nothing to do <br>
with the other bits of EFLAGS. So which files in this folder describes <br>
the fact that CLC only modifies the CF bit?<br>
<br>
Thank you in advance,<br>
Antonin Reitz<br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">~Craig</div>