On 7 December 2011 13:03, Eric Anholt <span dir="ltr">&lt;<a href="mailto:eric@anholt.net">eric@anholt.net</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Wed,  7 Dec 2011 11:09:11 -0800, Paul Berry &lt;<a href="mailto:stereotype441@gmail.com">stereotype441@gmail.com</a>&gt; wrote:<br>
&gt; -   assert(!p-&gt;single_program_flow);<br>
&gt; +   /* In principle, we shouldn&#39;t be patching IF and ELSE instructions in<br>
&gt; +    * single program flow mode when gen &lt; 6, because in single program flow<br>
&gt; +    * mode on those platforms, we convert flow control instructions to<br>
&gt; +    * conditional ADDs that operate on IP (see brw_ENDIF).<br>
&gt; +    *<br>
&gt; +    * However, on Gen6, writing to IP doesn&#39;t work in single program flow mode<br>
&gt; +    * (see the SandyBridge PRM, Volume 4 part 2, p79: &quot;When SPF is ON, IP may<br>
&gt; +    * not be updated by non-flow control instructions.&quot;).  And on later<br>
&gt; +    * platforms, there is no significant benefit to converting control flow<br>
&gt; +    * instructions to conditional ADDs.  So we do patch IF and ELSE<br>
&gt; +    * instructions in single program flow mode on those platforms.<br>
&gt; +    */<br>
&gt; +   if (intel-&gt;gen &lt; 6)<br>
&gt; +      assert(!p-&gt;single_program_flow);<br>
<br>
</div>I stumbled over reading this comment the first couple of times.  I think<br>
s/In principle,// would have made it clear for me -- I read the &quot;However<br>
on Gen6&quot; paragraph as trying to explain an exception to &quot;in principle,<br>
... when gen &lt; 6&quot;, when it&#39;s really true that we don&#39;t patch if/else in<br>
SPF for gen &lt; 6.<br>
&gt;<br>
</blockquote></div><br>Whoops, you&#39;re right.  I&#39;ll fix this before pushing.<br>