<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: CFCMOVcc with 16-bit register destination in Intel® ISA Extensions</title>
    <link>https://community.intel.com/t5/Intel-ISA-Extensions/CFCMOVcc-with-16-bit-register-destination/m-p/1608924#M7075</link>
    <description>&lt;P&gt;&lt;SPAN&gt;“CFCMOVcc reg, r/m” always zeros out reg[64:OSIZE] for all OSIZE. &amp;nbsp;This is explicitly stated in multiple places in the APX spec:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Sec.3.1.2.4, Merge vs Zero-Upper at the Destination Register:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;P&gt;&lt;SPAN&gt;CFCMOVcc (Conditionally Faulting CMOVcc) of the forms “CFCMOVcc reg, reg1” and “CFCMOVcc reg, mem” (see Section &lt;/SPAN&gt;&lt;SPAN&gt;3.1.3.2.2&lt;/SPAN&gt;&lt;SPAN&gt;) follow the same rules as if reg were an NDD (namely, its bits [64:OSIZE] are zeroed). Additionally, if the condition code evaluate to false, reg is completely zeroed.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;3.1.3.2.2 CMOVcc Extensions&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;P&gt;&lt;SPAN&gt;If the destination of any of the four forms of CMOVcc and CFCMOVcc in Table &lt;/SPAN&gt;&lt;SPAN&gt;3.5 &lt;/SPAN&gt;&lt;SPAN&gt;is a register, we require that the upper bits [63:OSIZE] of the destination register be zeroed whenever OSIZE &lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt; &lt;/SPAN&gt;&lt;SPAN&gt;64b.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;The APX spec can be found here:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;A href="https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html" target="_blank" rel="noopener"&gt;https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Fri, 21 Jun 2024 21:19:06 GMT</pubDate>
    <dc:creator>Ching-Tsun_Chou</dc:creator>
    <dc:date>2024-06-21T21:19:06Z</dc:date>
    <item>
      <title>CFCMOVcc with 16-bit register destination</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/CFCMOVcc-with-16-bit-register-destination/m-p/1608744#M7074</link>
      <description>&lt;P&gt;From present documentation one can only assume that these follow the pattern used elsewhere: The 3-operand form (then also for the CMOVcc one) clears the upper 48 bits, while the 2-operand forms leave them unaltered. Other (useful) possibilities certainly exits, in particular that of the 2-operand forms also clearing the upper bits. It would be nice if this could be made explicit in the doc.&lt;/P&gt;</description>
      <pubDate>Fri, 21 Jun 2024 06:06:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/CFCMOVcc-with-16-bit-register-destination/m-p/1608744#M7074</guid>
      <dc:creator>Beulich__Jan</dc:creator>
      <dc:date>2024-06-21T06:06:34Z</dc:date>
    </item>
    <item>
      <title>Re: CFCMOVcc with 16-bit register destination</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/CFCMOVcc-with-16-bit-register-destination/m-p/1608924#M7075</link>
      <description>&lt;P&gt;&lt;SPAN&gt;“CFCMOVcc reg, r/m” always zeros out reg[64:OSIZE] for all OSIZE. &amp;nbsp;This is explicitly stated in multiple places in the APX spec:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Sec.3.1.2.4, Merge vs Zero-Upper at the Destination Register:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;P&gt;&lt;SPAN&gt;CFCMOVcc (Conditionally Faulting CMOVcc) of the forms “CFCMOVcc reg, reg1” and “CFCMOVcc reg, mem” (see Section &lt;/SPAN&gt;&lt;SPAN&gt;3.1.3.2.2&lt;/SPAN&gt;&lt;SPAN&gt;) follow the same rules as if reg were an NDD (namely, its bits [64:OSIZE] are zeroed). Additionally, if the condition code evaluate to false, reg is completely zeroed.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;3.1.3.2.2 CMOVcc Extensions&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;P&gt;&lt;SPAN&gt;If the destination of any of the four forms of CMOVcc and CFCMOVcc in Table &lt;/SPAN&gt;&lt;SPAN&gt;3.5 &lt;/SPAN&gt;&lt;SPAN&gt;is a register, we require that the upper bits [63:OSIZE] of the destination register be zeroed whenever OSIZE &lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt; &lt;/SPAN&gt;&lt;SPAN&gt;64b.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;The APX spec can be found here:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;A href="https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html" target="_blank" rel="noopener"&gt;https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 21 Jun 2024 21:19:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/CFCMOVcc-with-16-bit-register-destination/m-p/1608924#M7075</guid>
      <dc:creator>Ching-Tsun_Chou</dc:creator>
      <dc:date>2024-06-21T21:19:06Z</dc:date>
    </item>
    <item>
      <title>Re: CFCMOVcc with 16-bit register destination</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/CFCMOVcc-with-16-bit-register-destination/m-p/1609529#M7076</link>
      <description>&lt;P&gt;Hmm, you're right, there is text there. Just that most of it is not where one would look for it - on the instruction pages themselves. The much shorter part that is (also) there imo suffers from some wording issues. In particular "..., we require&lt;BR /&gt;that the upper bits [63:osize] of the destination register be zeroed whenever osize &amp;lt; 64b" is pretty odd. "We require" reads more like an expectation on source operands than a description of what an insn does. I kind of assume though that the latest when this is eventually integrated into the SDM, issues like this will be sorted.&lt;/P&gt;</description>
      <pubDate>Tue, 25 Jun 2024 06:49:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/CFCMOVcc-with-16-bit-register-destination/m-p/1609529#M7076</guid>
      <dc:creator>Beulich__Jan</dc:creator>
      <dc:date>2024-06-25T06:49:21Z</dc:date>
    </item>
  </channel>
</rss>

