Sophie

Sophie

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

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>Reg</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_Reg.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">Reg</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>An architecture independent description of a register.
	This needs to stay architecture independent because it is used
	by NCGMonad and the register allocators, which are shared
	by all architectures.
</p></div></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">type</span> <a href="#t:RegNo">RegNo</a> = <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Reg">Reg</a> <ul class="subs"><li>= <a href="#v:RegVirtual">RegVirtual</a> !<a href="Reg.html#t:VirtualReg">VirtualReg</a>  </li><li>| <a href="#v:RegReal">RegReal</a> !<a href="Reg.html#t:RealReg">RealReg</a>  </li></ul></li><li class="src short"><a href="#v:regPair">regPair</a> :: <a href="Reg.html#t:RegNo">RegNo</a> -&gt; <a href="Reg.html#t:RegNo">RegNo</a> -&gt; <a href="Reg.html#t:Reg">Reg</a></li><li class="src short"><a href="#v:regSingle">regSingle</a> :: <a href="Reg.html#t:RegNo">RegNo</a> -&gt; <a href="Reg.html#t:Reg">Reg</a></li><li class="src short"><a href="#v:isRealReg">isRealReg</a> :: <a href="Reg.html#t:Reg">Reg</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:takeRealReg">takeRealReg</a> :: <a href="Reg.html#t:Reg">Reg</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Reg.html#t:RealReg">RealReg</a></li><li class="src short"><a href="#v:isVirtualReg">isVirtualReg</a> :: <a href="Reg.html#t:Reg">Reg</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:takeVirtualReg">takeVirtualReg</a> :: <a href="Reg.html#t:Reg">Reg</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Reg.html#t:VirtualReg">VirtualReg</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:VirtualReg">VirtualReg</a> <ul class="subs"><li>= <a href="#v:VirtualRegI">VirtualRegI</a> !<a href="Unique.html#t:Unique">Unique</a>  </li><li>| <a href="#v:VirtualRegHi">VirtualRegHi</a> !<a href="Unique.html#t:Unique">Unique</a>  </li><li>| <a href="#v:VirtualRegF">VirtualRegF</a> !<a href="Unique.html#t:Unique">Unique</a>  </li><li>| <a href="#v:VirtualRegD">VirtualRegD</a> !<a href="Unique.html#t:Unique">Unique</a>  </li><li>| <a href="#v:VirtualRegSSE">VirtualRegSSE</a> !<a href="Unique.html#t:Unique">Unique</a>  </li></ul></li><li class="src short"><a href="#v:renameVirtualReg">renameVirtualReg</a> :: <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="Reg.html#t:VirtualReg">VirtualReg</a> -&gt; <a href="Reg.html#t:VirtualReg">VirtualReg</a></li><li class="src short"><a href="#v:classOfVirtualReg">classOfVirtualReg</a> :: <a href="Reg.html#t:VirtualReg">VirtualReg</a> -&gt; <a href="RegClass.html#t:RegClass">RegClass</a></li><li class="src short"><a href="#v:getHiVirtualRegFromLo">getHiVirtualRegFromLo</a> :: <a href="Reg.html#t:VirtualReg">VirtualReg</a> -&gt; <a href="Reg.html#t:VirtualReg">VirtualReg</a></li><li class="src short"><a href="#v:getHiVRegFromLo">getHiVRegFromLo</a> :: <a href="Reg.html#t:Reg">Reg</a> -&gt; <a href="Reg.html#t:Reg">Reg</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:RealReg">RealReg</a> <ul class="subs"><li>= <a href="#v:RealRegSingle">RealRegSingle</a> !<a href="Reg.html#t:RegNo">RegNo</a>  </li><li>| <a href="#v:RealRegPair">RealRegPair</a> !<a href="Reg.html#t:RegNo">RegNo</a> !<a href="Reg.html#t:RegNo">RegNo</a>  </li></ul></li><li class="src short"><a href="#v:regNosOfRealReg">regNosOfRealReg</a> :: <a href="Reg.html#t:RealReg">RealReg</a> -&gt; [<a href="Reg.html#t:RegNo">RegNo</a>]</li><li class="src short"><a href="#v:realRegsAlias">realRegsAlias</a> :: <a href="Reg.html#t:RealReg">RealReg</a> -&gt; <a href="Reg.html#t:RealReg">RealReg</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:liftPatchFnToRegReg">liftPatchFnToRegReg</a> :: (<a href="Reg.html#t:VirtualReg">VirtualReg</a> -&gt; <a href="Reg.html#t:RealReg">RealReg</a>) -&gt; <a href="Reg.html#t:Reg">Reg</a> -&gt; <a href="Reg.html#t:Reg">Reg</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:RegNo" class="def">RegNo</a> = <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></p><div class="doc"><p>An identifier for a primitive real machine register.
</p></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Reg" class="def">Reg</a>  </p><div class="doc"><p>A register, either virtual or real
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:RegVirtual" class="def">RegVirtual</a> !<a href="Reg.html#t:VirtualReg">VirtualReg</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:RegReal" class="def">RegReal</a> !<a href="Reg.html#t:RealReg">RealReg</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Reg" class="caption collapser" onclick="toggleSection('i:Reg')">Instances</p><div id="section.i:Reg" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Reg.html#t:Reg">Reg</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Reg.html#t:Reg">Reg</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="Reg.html#t:Reg">Reg</a></td><td class="doc"><p>Print a reg in a generic manner
	If you want the architecture specific names, then use the pprReg 
	function from the appropriate Ppr module.
</p></td></tr><tr><td class="src"><a href="Unique.html#t:Uniquable">Uniquable</a> <a href="Reg.html#t:Reg">Reg</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:regPair" class="def">regPair</a> :: <a href="Reg.html#t:RegNo">RegNo</a> -&gt; <a href="Reg.html#t:RegNo">RegNo</a> -&gt; <a href="Reg.html#t:Reg">Reg</a></p></div><div class="top"><p class="src"><a name="v:regSingle" class="def">regSingle</a> :: <a href="Reg.html#t:RegNo">RegNo</a> -&gt; <a href="Reg.html#t:Reg">Reg</a></p></div><div class="top"><p class="src"><a name="v:isRealReg" class="def">isRealReg</a> :: <a href="Reg.html#t:Reg">Reg</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:takeRealReg" class="def">takeRealReg</a> :: <a href="Reg.html#t:Reg">Reg</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Reg.html#t:RealReg">RealReg</a></p></div><div class="top"><p class="src"><a name="v:isVirtualReg" class="def">isVirtualReg</a> :: <a href="Reg.html#t:Reg">Reg</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:takeVirtualReg" class="def">takeVirtualReg</a> :: <a href="Reg.html#t:Reg">Reg</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Reg.html#t:VirtualReg">VirtualReg</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:VirtualReg" class="def">VirtualReg</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:VirtualRegI" class="def">VirtualRegI</a> !<a href="Unique.html#t:Unique">Unique</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:VirtualRegHi" class="def">VirtualRegHi</a> !<a href="Unique.html#t:Unique">Unique</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:VirtualRegF" class="def">VirtualRegF</a> !<a href="Unique.html#t:Unique">Unique</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:VirtualRegD" class="def">VirtualRegD</a> !<a href="Unique.html#t:Unique">Unique</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:VirtualRegSSE" class="def">VirtualRegSSE</a> !<a href="Unique.html#t:Unique">Unique</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:VirtualReg" class="caption collapser" onclick="toggleSection('i:VirtualReg')">Instances</p><div id="section.i:VirtualReg" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Reg.html#t:VirtualReg">VirtualReg</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Reg.html#t:VirtualReg">VirtualReg</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="Reg.html#t:VirtualReg">VirtualReg</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="Reg.html#t:VirtualReg">VirtualReg</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Unique.html#t:Uniquable">Uniquable</a> <a href="Reg.html#t:VirtualReg">VirtualReg</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:renameVirtualReg" class="def">renameVirtualReg</a> :: <a href="Unique.html#t:Unique">Unique</a> -&gt; <a href="Reg.html#t:VirtualReg">VirtualReg</a> -&gt; <a href="Reg.html#t:VirtualReg">VirtualReg</a></p></div><div class="top"><p class="src"><a name="v:classOfVirtualReg" class="def">classOfVirtualReg</a> :: <a href="Reg.html#t:VirtualReg">VirtualReg</a> -&gt; <a href="RegClass.html#t:RegClass">RegClass</a></p></div><div class="top"><p class="src"><a name="v:getHiVirtualRegFromLo" class="def">getHiVirtualRegFromLo</a> :: <a href="Reg.html#t:VirtualReg">VirtualReg</a> -&gt; <a href="Reg.html#t:VirtualReg">VirtualReg</a></p></div><div class="top"><p class="src"><a name="v:getHiVRegFromLo" class="def">getHiVRegFromLo</a> :: <a href="Reg.html#t:Reg">Reg</a> -&gt; <a href="Reg.html#t:Reg">Reg</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:RealReg" class="def">RealReg</a>  </p><div class="doc"><p>RealRegs are machine regs which are available for allocation, in
 	the usual way.  We know what class they are, because that's part of
 	the processor's architecture.
</p><p>RealRegPairs are pairs of real registers that are allocated together
	to hold a larger value, such as with Double regs on SPARC.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:RealRegSingle" class="def">RealRegSingle</a> !<a href="Reg.html#t:RegNo">RegNo</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:RealRegPair" class="def">RealRegPair</a> !<a href="Reg.html#t:RegNo">RegNo</a> !<a href="Reg.html#t:RegNo">RegNo</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:RealReg" class="caption collapser" onclick="toggleSection('i:RealReg')">Instances</p><div id="section.i:RealReg" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Reg.html#t:RealReg">RealReg</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Reg.html#t:RealReg">RealReg</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="Reg.html#t:RealReg">RealReg</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="Reg.html#t:RealReg">RealReg</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Unique.html#t:Uniquable">Uniquable</a> <a href="Reg.html#t:RealReg">RealReg</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:regNosOfRealReg" class="def">regNosOfRealReg</a> :: <a href="Reg.html#t:RealReg">RealReg</a> -&gt; [<a href="Reg.html#t:RegNo">RegNo</a>]</p></div><div class="top"><p class="src"><a name="v:realRegsAlias" class="def">realRegsAlias</a> :: <a href="Reg.html#t:RealReg">RealReg</a> -&gt; <a href="Reg.html#t:RealReg">RealReg</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:liftPatchFnToRegReg" class="def">liftPatchFnToRegReg</a> :: (<a href="Reg.html#t:VirtualReg">VirtualReg</a> -&gt; <a href="Reg.html#t:RealReg">RealReg</a>) -&gt; <a href="Reg.html#t:Reg">Reg</a> -&gt; <a href="Reg.html#t:Reg">Reg</a></p><div class="doc"><p>The patch function supplied by the allocator maps VirtualReg to RealReg
	regs, but sometimes we want to apply it to plain old Reg.
</p></div></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>