Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 6e204a966e8c42d976f99a1700ce5f20 > files > 2814

ghc-7.4.2-4.mga5.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CmmMachOp</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_CmmMachOp.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ghc-7.4.2: The GHC API</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">CmmMachOp</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span>  <a href="#t:MachOp">MachOp</a> <ul class="subs"><li>= <a href="#v:MO_Add">MO_Add</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_Sub">MO_Sub</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_Eq">MO_Eq</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_Ne">MO_Ne</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_Mul">MO_Mul</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_S_MulMayOflo">MO_S_MulMayOflo</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_S_Quot">MO_S_Quot</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_S_Rem">MO_S_Rem</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_S_Neg">MO_S_Neg</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_U_MulMayOflo">MO_U_MulMayOflo</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_U_Quot">MO_U_Quot</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_U_Rem">MO_U_Rem</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_S_Ge">MO_S_Ge</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_S_Le">MO_S_Le</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_S_Gt">MO_S_Gt</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_S_Lt">MO_S_Lt</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_U_Ge">MO_U_Ge</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_U_Le">MO_U_Le</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_U_Gt">MO_U_Gt</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_U_Lt">MO_U_Lt</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_F_Add">MO_F_Add</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_F_Sub">MO_F_Sub</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_F_Neg">MO_F_Neg</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_F_Mul">MO_F_Mul</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_F_Quot">MO_F_Quot</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_F_Eq">MO_F_Eq</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_F_Ne">MO_F_Ne</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_F_Ge">MO_F_Ge</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_F_Le">MO_F_Le</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_F_Gt">MO_F_Gt</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_F_Lt">MO_F_Lt</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_And">MO_And</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_Or">MO_Or</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_Xor">MO_Xor</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_Not">MO_Not</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_Shl">MO_Shl</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_U_Shr">MO_U_Shr</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_S_Shr">MO_S_Shr</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_SF_Conv">MO_SF_Conv</a> <a href="CmmType.html#t:Width">Width</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_FS_Conv">MO_FS_Conv</a> <a href="CmmType.html#t:Width">Width</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_SS_Conv">MO_SS_Conv</a> <a href="CmmType.html#t:Width">Width</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_UU_Conv">MO_UU_Conv</a> <a href="CmmType.html#t:Width">Width</a> <a href="CmmType.html#t:Width">Width</a>  </li><li>| <a href="#v:MO_FF_Conv">MO_FF_Conv</a> <a href="CmmType.html#t:Width">Width</a> <a href="CmmType.html#t:Width">Width</a>  </li></ul></li><li class="src short"><a href="#v:pprMachOp">pprMachOp</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></li><li class="src short"><a href="#v:isCommutableMachOp">isCommutableMachOp</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isAssociativeMachOp">isAssociativeMachOp</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isComparisonMachOp">isComparisonMachOp</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:machOpResultType">machOpResultType</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a> -&gt; [<a href="CmmType.html#t:CmmType">CmmType</a>] -&gt; <a href="CmmType.html#t:CmmType">CmmType</a></li><li class="src short"><a href="#v:machOpArgReps">machOpArgReps</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a> -&gt; [<a href="CmmType.html#t:Width">Width</a>]</li><li class="src short"><a href="#v:maybeInvertComparison">maybeInvertComparison</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordAdd">mo_wordAdd</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordSub">mo_wordSub</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordEq">mo_wordEq</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordNe">mo_wordNe</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordMul">mo_wordMul</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordSQuot">mo_wordSQuot</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordSRem">mo_wordSRem</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordSNeg">mo_wordSNeg</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordUQuot">mo_wordUQuot</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordURem">mo_wordURem</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordSGe">mo_wordSGe</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordSLe">mo_wordSLe</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordSGt">mo_wordSGt</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordSLt">mo_wordSLt</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordUGe">mo_wordUGe</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordULe">mo_wordULe</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordUGt">mo_wordUGt</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordULt">mo_wordULt</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordAnd">mo_wordAnd</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordOr">mo_wordOr</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordXor">mo_wordXor</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordNot">mo_wordNot</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordShl">mo_wordShl</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordSShr">mo_wordSShr</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_wordUShr">mo_wordUShr</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_u_8To32">mo_u_8To32</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_s_8To32">mo_s_8To32</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_u_16To32">mo_u_16To32</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_s_16To32">mo_s_16To32</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_u_8ToWord">mo_u_8ToWord</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_s_8ToWord">mo_s_8ToWord</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_u_16ToWord">mo_u_16ToWord</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_s_16ToWord">mo_s_16ToWord</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_u_32ToWord">mo_u_32ToWord</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_s_32ToWord">mo_s_32ToWord</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_32To8">mo_32To8</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_32To16">mo_32To16</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_WordTo8">mo_WordTo8</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_WordTo16">mo_WordTo16</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><a href="#v:mo_WordTo32">mo_WordTo32</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:CallishMachOp">CallishMachOp</a> <ul class="subs"><li>= <a href="#v:MO_F64_Pwr">MO_F64_Pwr</a>  </li><li>| <a href="#v:MO_F64_Sin">MO_F64_Sin</a>  </li><li>| <a href="#v:MO_F64_Cos">MO_F64_Cos</a>  </li><li>| <a href="#v:MO_F64_Tan">MO_F64_Tan</a>  </li><li>| <a href="#v:MO_F64_Sinh">MO_F64_Sinh</a>  </li><li>| <a href="#v:MO_F64_Cosh">MO_F64_Cosh</a>  </li><li>| <a href="#v:MO_F64_Tanh">MO_F64_Tanh</a>  </li><li>| <a href="#v:MO_F64_Asin">MO_F64_Asin</a>  </li><li>| <a href="#v:MO_F64_Acos">MO_F64_Acos</a>  </li><li>| <a href="#v:MO_F64_Atan">MO_F64_Atan</a>  </li><li>| <a href="#v:MO_F64_Log">MO_F64_Log</a>  </li><li>| <a href="#v:MO_F64_Exp">MO_F64_Exp</a>  </li><li>| <a href="#v:MO_F64_Sqrt">MO_F64_Sqrt</a>  </li><li>| <a href="#v:MO_F32_Pwr">MO_F32_Pwr</a>  </li><li>| <a href="#v:MO_F32_Sin">MO_F32_Sin</a>  </li><li>| <a href="#v:MO_F32_Cos">MO_F32_Cos</a>  </li><li>| <a href="#v:MO_F32_Tan">MO_F32_Tan</a>  </li><li>| <a href="#v:MO_F32_Sinh">MO_F32_Sinh</a>  </li><li>| <a href="#v:MO_F32_Cosh">MO_F32_Cosh</a>  </li><li>| <a href="#v:MO_F32_Tanh">MO_F32_Tanh</a>  </li><li>| <a href="#v:MO_F32_Asin">MO_F32_Asin</a>  </li><li>| <a href="#v:MO_F32_Acos">MO_F32_Acos</a>  </li><li>| <a href="#v:MO_F32_Atan">MO_F32_Atan</a>  </li><li>| <a href="#v:MO_F32_Log">MO_F32_Log</a>  </li><li>| <a href="#v:MO_F32_Exp">MO_F32_Exp</a>  </li><li>| <a href="#v:MO_F32_Sqrt">MO_F32_Sqrt</a>  </li><li>| <a href="#v:MO_WriteBarrier">MO_WriteBarrier</a>  </li><li>| <a href="#v:MO_Touch">MO_Touch</a>  </li><li>| <a href="#v:MO_Memcpy">MO_Memcpy</a>  </li><li>| <a href="#v:MO_Memset">MO_Memset</a>  </li><li>| <a href="#v:MO_Memmove">MO_Memmove</a>  </li><li>| <a href="#v:MO_PopCnt">MO_PopCnt</a> <a href="CmmType.html#t:Width">Width</a>  </li></ul></li><li class="src short"><a href="#v:pprCallishMachOp">pprCallishMachOp</a> :: <a href="CmmMachOp.html#t:CallishMachOp">CallishMachOp</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:MachOp" class="def">MachOp</a>  </p><div class="doc"><p>Machine-level primops; ones which we can reasonably delegate to the
native code generators to handle.
</p><p>Most operations are parameterised by the <code><a href="CmmType.html#t:Width">Width</a></code> that they operate on.
Some operations have separate signed and unsigned versions, and float
and integer versions.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:MO_Add" class="def">MO_Add</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_Sub" class="def">MO_Sub</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_Eq" class="def">MO_Eq</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_Ne" class="def">MO_Ne</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_Mul" class="def">MO_Mul</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_S_MulMayOflo" class="def">MO_S_MulMayOflo</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_S_Quot" class="def">MO_S_Quot</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_S_Rem" class="def">MO_S_Rem</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_S_Neg" class="def">MO_S_Neg</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_U_MulMayOflo" class="def">MO_U_MulMayOflo</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_U_Quot" class="def">MO_U_Quot</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_U_Rem" class="def">MO_U_Rem</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_S_Ge" class="def">MO_S_Ge</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_S_Le" class="def">MO_S_Le</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_S_Gt" class="def">MO_S_Gt</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_S_Lt" class="def">MO_S_Lt</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_U_Ge" class="def">MO_U_Ge</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_U_Le" class="def">MO_U_Le</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_U_Gt" class="def">MO_U_Gt</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_U_Lt" class="def">MO_U_Lt</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F_Add" class="def">MO_F_Add</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F_Sub" class="def">MO_F_Sub</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F_Neg" class="def">MO_F_Neg</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F_Mul" class="def">MO_F_Mul</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F_Quot" class="def">MO_F_Quot</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F_Eq" class="def">MO_F_Eq</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F_Ne" class="def">MO_F_Ne</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F_Ge" class="def">MO_F_Ge</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F_Le" class="def">MO_F_Le</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F_Gt" class="def">MO_F_Gt</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F_Lt" class="def">MO_F_Lt</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_And" class="def">MO_And</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_Or" class="def">MO_Or</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_Xor" class="def">MO_Xor</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_Not" class="def">MO_Not</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_Shl" class="def">MO_Shl</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_U_Shr" class="def">MO_U_Shr</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_S_Shr" class="def">MO_S_Shr</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_SF_Conv" class="def">MO_SF_Conv</a> <a href="CmmType.html#t:Width">Width</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_FS_Conv" class="def">MO_FS_Conv</a> <a href="CmmType.html#t:Width">Width</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_SS_Conv" class="def">MO_SS_Conv</a> <a href="CmmType.html#t:Width">Width</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_UU_Conv" class="def">MO_UU_Conv</a> <a href="CmmType.html#t:Width">Width</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_FF_Conv" class="def">MO_FF_Conv</a> <a href="CmmType.html#t:Width">Width</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:MachOp" class="caption collapser" onclick="toggleSection('i:MachOp')">Instances</p><div id="section.i:MachOp" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="CmmMachOp.html#t:MachOp">MachOp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="CmmMachOp.html#t:MachOp">MachOp</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:pprMachOp" class="def">pprMachOp</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></p></div><div class="top"><p class="src"><a name="v:isCommutableMachOp" class="def">isCommutableMachOp</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p>Returns <code><a href="../base-4.5.1.0/Data-Bool.html#v:True">True</a></code> if the MachOp has commutable arguments.  This is used
in the platform-independent Cmm optimisations.
</p><p>If in doubt, return <code><a href="../base-4.5.1.0/Data-Bool.html#v:False">False</a></code>.  This generates worse code on the
native routes, but is otherwise harmless.
</p></div></div><div class="top"><p class="src"><a name="v:isAssociativeMachOp" class="def">isAssociativeMachOp</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p>Returns <code><a href="../base-4.5.1.0/Data-Bool.html#v:True">True</a></code> if the MachOp is associative (i.e. <code>(x+y)+z == x+(y+z)</code>)
This is used in the platform-independent Cmm optimisations.
</p><p>If in doubt, return <code><a href="../base-4.5.1.0/Data-Bool.html#v:False">False</a></code>.  This generates worse code on the
native routes, but is otherwise harmless.
</p></div></div><div class="top"><p class="src"><a name="v:isComparisonMachOp" class="def">isComparisonMachOp</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p>Returns <code><a href="../base-4.5.1.0/Data-Bool.html#v:True">True</a></code> if the MachOp is a comparison.
</p><p>If in doubt, return False.  This generates worse code on the
native routes, but is otherwise harmless.
</p></div></div><div class="top"><p class="src"><a name="v:machOpResultType" class="def">machOpResultType</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a> -&gt; [<a href="CmmType.html#t:CmmType">CmmType</a>] -&gt; <a href="CmmType.html#t:CmmType">CmmType</a></p><div class="doc"><p>Returns the MachRep of the result of a MachOp.
</p></div></div><div class="top"><p class="src"><a name="v:machOpArgReps" class="def">machOpArgReps</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a> -&gt; [<a href="CmmType.html#t:Width">Width</a>]</p><div class="doc"><p>This function is used for debugging only: we can check whether an
 application of a MachOp is <a href="type-correct.html">type-correct</a> by checking that the MachReps of
 its arguments are the same as the MachOp expects.  This is used when
 linting a CmmExpr.
</p></div></div><div class="top"><p class="src"><a name="v:maybeInvertComparison" class="def">maybeInvertComparison</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordAdd" class="def">mo_wordAdd</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordSub" class="def">mo_wordSub</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordEq" class="def">mo_wordEq</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordNe" class="def">mo_wordNe</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordMul" class="def">mo_wordMul</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordSQuot" class="def">mo_wordSQuot</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordSRem" class="def">mo_wordSRem</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordSNeg" class="def">mo_wordSNeg</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordUQuot" class="def">mo_wordUQuot</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordURem" class="def">mo_wordURem</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordSGe" class="def">mo_wordSGe</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordSLe" class="def">mo_wordSLe</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordSGt" class="def">mo_wordSGt</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordSLt" class="def">mo_wordSLt</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordUGe" class="def">mo_wordUGe</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordULe" class="def">mo_wordULe</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordUGt" class="def">mo_wordUGt</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordULt" class="def">mo_wordULt</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordAnd" class="def">mo_wordAnd</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordOr" class="def">mo_wordOr</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordXor" class="def">mo_wordXor</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordNot" class="def">mo_wordNot</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordShl" class="def">mo_wordShl</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordSShr" class="def">mo_wordSShr</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_wordUShr" class="def">mo_wordUShr</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_u_8To32" class="def">mo_u_8To32</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_s_8To32" class="def">mo_s_8To32</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_u_16To32" class="def">mo_u_16To32</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_s_16To32" class="def">mo_s_16To32</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_u_8ToWord" class="def">mo_u_8ToWord</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_s_8ToWord" class="def">mo_s_8ToWord</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_u_16ToWord" class="def">mo_u_16ToWord</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_s_16ToWord" class="def">mo_s_16ToWord</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_u_32ToWord" class="def">mo_u_32ToWord</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_s_32ToWord" class="def">mo_s_32ToWord</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_32To8" class="def">mo_32To8</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_32To16" class="def">mo_32To16</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_WordTo8" class="def">mo_WordTo8</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_WordTo16" class="def">mo_WordTo16</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><a name="v:mo_WordTo32" class="def">mo_WordTo32</a> :: <a href="CmmMachOp.html#t:MachOp">MachOp</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:CallishMachOp" class="def">CallishMachOp</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:MO_F64_Pwr" class="def">MO_F64_Pwr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F64_Sin" class="def">MO_F64_Sin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F64_Cos" class="def">MO_F64_Cos</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F64_Tan" class="def">MO_F64_Tan</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F64_Sinh" class="def">MO_F64_Sinh</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F64_Cosh" class="def">MO_F64_Cosh</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F64_Tanh" class="def">MO_F64_Tanh</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F64_Asin" class="def">MO_F64_Asin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F64_Acos" class="def">MO_F64_Acos</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F64_Atan" class="def">MO_F64_Atan</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F64_Log" class="def">MO_F64_Log</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F64_Exp" class="def">MO_F64_Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F64_Sqrt" class="def">MO_F64_Sqrt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F32_Pwr" class="def">MO_F32_Pwr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F32_Sin" class="def">MO_F32_Sin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F32_Cos" class="def">MO_F32_Cos</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F32_Tan" class="def">MO_F32_Tan</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F32_Sinh" class="def">MO_F32_Sinh</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F32_Cosh" class="def">MO_F32_Cosh</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F32_Tanh" class="def">MO_F32_Tanh</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F32_Asin" class="def">MO_F32_Asin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F32_Acos" class="def">MO_F32_Acos</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F32_Atan" class="def">MO_F32_Atan</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F32_Log" class="def">MO_F32_Log</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F32_Exp" class="def">MO_F32_Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_F32_Sqrt" class="def">MO_F32_Sqrt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_WriteBarrier" class="def">MO_WriteBarrier</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_Touch" class="def">MO_Touch</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_Memcpy" class="def">MO_Memcpy</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_Memset" class="def">MO_Memset</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_Memmove" class="def">MO_Memmove</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MO_PopCnt" class="def">MO_PopCnt</a> <a href="CmmType.html#t:Width">Width</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:CallishMachOp" class="caption collapser" onclick="toggleSection('i:CallishMachOp')">Instances</p><div id="section.i:CallishMachOp" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="CmmMachOp.html#t:CallishMachOp">CallishMachOp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="CmmMachOp.html#t:CallishMachOp">CallishMachOp</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:pprCallishMachOp" class="def">pprCallishMachOp</a> :: <a href="CmmMachOp.html#t:CallishMachOp">CallishMachOp</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>