<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >SPARC.Regs</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_SPARC-Regs.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >ghc-6.12.3: The GHC API</TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >SPARC.Regs</FONT ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="#v%3AshowReg" >showReg</A > :: <A HREF="Reg.html#t%3ARegNo" >RegNo</A > -> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvirtualRegSqueeze" >virtualRegSqueeze</A > :: <A HREF="RegClass.html#t%3ARegClass" >RegClass</A > -> <A HREF="Reg.html#t%3AVirtualReg" >VirtualReg</A > -> <A HREF="FastTypes.html#t%3AFastInt" >FastInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3ArealRegSqueeze" >realRegSqueeze</A > :: <A HREF="RegClass.html#t%3ARegClass" >RegClass</A > -> <A HREF="Reg.html#t%3ARealReg" >RealReg</A > -> <A HREF="FastTypes.html#t%3AFastInt" >FastInt</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AclassOfRealReg" >classOfRealReg</A > :: <A HREF="Reg.html#t%3ARealReg" >RealReg</A > -> <A HREF="RegClass.html#t%3ARegClass" >RegClass</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AallRealRegs" >allRealRegs</A > :: [<A HREF="Reg.html#t%3ARealReg" >RealReg</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgReg" >gReg</A > :: <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Reg.html#t%3ARegNo" >RegNo</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AiReg" >iReg</A > :: <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Reg.html#t%3ARegNo" >RegNo</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AlReg" >lReg</A > :: <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Reg.html#t%3ARegNo" >RegNo</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AoReg" >oReg</A > :: <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Reg.html#t%3ARegNo" >RegNo</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AfReg" >fReg</A > :: <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Reg.html#t%3ARegNo" >RegNo</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Afp" >fp</A > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Asp" >sp</A > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ag0" >g0</A > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ag1" >g1</A > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ag2" >g2</A > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ao0" >o0</A > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ao1" >o1</A > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Af0" >f0</A > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Af1" >f1</A > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Af6" >f6</A > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Af8" >f8</A > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Af22" >f22</A > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Af26" >f26</A > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Af27" >f27</A > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AallocatableRegs" >allocatableRegs</A > :: [<A HREF="Reg.html#t%3ARealReg" >RealReg</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aget_GlobalReg_reg_or_addr" >get_GlobalReg_reg_or_addr</A > :: <A HREF="CmmExpr.html#t%3AGlobalReg" >GlobalReg</A > -> <A HREF="../base-4.2.0.2/Data-Either.html#t%3AEither" >Either</A > <A HREF="Reg.html#t%3ARealReg" >RealReg</A > <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AargRegs" >argRegs</A > :: <A HREF="Reg.html#t%3ARegNo" >RegNo</A > -> [<A HREF="Reg.html#t%3AReg" >Reg</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AallArgRegs" >allArgRegs</A > :: [<A HREF="Reg.html#t%3AReg" >Reg</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcallClobberedRegs" >callClobberedRegs</A > :: [<A HREF="Reg.html#t%3AReg" >Reg</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmkVirtualReg" >mkVirtualReg</A > :: <A HREF="Unique.html#t%3AUnique" >Unique</A > -> <A HREF="Size.html#t%3ASize" >Size</A > -> <A HREF="Reg.html#t%3AVirtualReg" >VirtualReg</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AregDotColor" >regDotColor</A > :: <A HREF="Reg.html#t%3ARealReg" >RealReg</A > -> <A HREF="Outputable.html#t%3ASDoc" >SDoc</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Documentation</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:showReg" ><A NAME="v%3AshowReg" ></A ></A ><B >showReg</B > :: <A HREF="Reg.html#t%3ARegNo" >RegNo</A > -> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ></TR ><TR ><TD CLASS="doc" >Get the standard name for the register with this number. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:virtualRegSqueeze" ><A NAME="v%3AvirtualRegSqueeze" ></A ></A ><B >virtualRegSqueeze</B > :: <A HREF="RegClass.html#t%3ARegClass" >RegClass</A > -> <A HREF="Reg.html#t%3AVirtualReg" >VirtualReg</A > -> <A HREF="FastTypes.html#t%3AFastInt" >FastInt</A ></TD ></TR ><TR ><TD CLASS="doc" >regSqueeze_class reg Calculuate the maximum number of register colors that could be denied to a node of this class due to having this reg as a neighbour. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:realRegSqueeze" ><A NAME="v%3ArealRegSqueeze" ></A ></A ><B >realRegSqueeze</B > :: <A HREF="RegClass.html#t%3ARegClass" >RegClass</A > -> <A HREF="Reg.html#t%3ARealReg" >RealReg</A > -> <A HREF="FastTypes.html#t%3AFastInt" >FastInt</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:classOfRealReg" ><A NAME="v%3AclassOfRealReg" ></A ></A ><B >classOfRealReg</B > :: <A HREF="Reg.html#t%3ARealReg" >RealReg</A > -> <A HREF="RegClass.html#t%3ARegClass" >RegClass</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:allRealRegs" ><A NAME="v%3AallRealRegs" ></A ></A ><B >allRealRegs</B > :: [<A HREF="Reg.html#t%3ARealReg" >RealReg</A >]</TD ></TR ><TR ><TD CLASS="doc" >All the allocatable registers in the machine, including register pairs. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:gReg" ><A NAME="v%3AgReg" ></A ></A ><B >gReg</B > :: <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Reg.html#t%3ARegNo" >RegNo</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:iReg" ><A NAME="v%3AiReg" ></A ></A ><B >iReg</B > :: <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Reg.html#t%3ARegNo" >RegNo</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:lReg" ><A NAME="v%3AlReg" ></A ></A ><B >lReg</B > :: <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Reg.html#t%3ARegNo" >RegNo</A ></TD ></TR ><TR ><TD CLASS="doc" >Get the regno for this sort of reg </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:oReg" ><A NAME="v%3AoReg" ></A ></A ><B >oReg</B > :: <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Reg.html#t%3ARegNo" >RegNo</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:fReg" ><A NAME="v%3AfReg" ></A ></A ><B >fReg</B > :: <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Reg.html#t%3ARegNo" >RegNo</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:fp" ><A NAME="v%3Afp" ></A ></A ><B >fp</B > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:sp" ><A NAME="v%3Asp" ></A ></A ><B >sp</B > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:g0" ><A NAME="v%3Ag0" ></A ></A ><B >g0</B > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:g1" ><A NAME="v%3Ag1" ></A ></A ><B >g1</B > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="doc" >Some specific regs used by the code generator. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:g2" ><A NAME="v%3Ag2" ></A ></A ><B >g2</B > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:o0" ><A NAME="v%3Ao0" ></A ></A ><B >o0</B > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:o1" ><A NAME="v%3Ao1" ></A ></A ><B >o1</B > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:f0" ><A NAME="v%3Af0" ></A ></A ><B >f0</B > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:f1" ><A NAME="v%3Af1" ></A ></A ><B >f1</B > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:f6" ><A NAME="v%3Af6" ></A ></A ><B >f6</B > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:f8" ><A NAME="v%3Af8" ></A ></A ><B >f8</B > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:f22" ><A NAME="v%3Af22" ></A ></A ><B >f22</B > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:f26" ><A NAME="v%3Af26" ></A ></A ><B >f26</B > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:f27" ><A NAME="v%3Af27" ></A ></A ><B >f27</B > :: <A HREF="Reg.html#t%3AReg" >Reg</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:allocatableRegs" ><A NAME="v%3AallocatableRegs" ></A ></A ><B >allocatableRegs</B > :: [<A HREF="Reg.html#t%3ARealReg" >RealReg</A >]</TD ></TR ><TR ><TD CLASS="doc" ><P >Produce the second-half-of-a-double register given the first half. </P ><P >All the regs that the register allocator can allocate to, with the the fixed use regs removed. </P ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:get_GlobalReg_reg_or_addr" ><A NAME="v%3Aget_GlobalReg_reg_or_addr" ></A ></A ><B >get_GlobalReg_reg_or_addr</B > :: <A HREF="CmmExpr.html#t%3AGlobalReg" >GlobalReg</A > -> <A HREF="../base-4.2.0.2/Data-Either.html#t%3AEither" >Either</A > <A HREF="Reg.html#t%3ARealReg" >RealReg</A > <A HREF="CmmExpr.html#t%3ACmmExpr" >CmmExpr</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:argRegs" ><A NAME="v%3AargRegs" ></A ></A ><B >argRegs</B > :: <A HREF="Reg.html#t%3ARegNo" >RegNo</A > -> [<A HREF="Reg.html#t%3AReg" >Reg</A >]</TD ></TR ><TR ><TD CLASS="doc" >The registers to place arguments for function calls, for some number of arguments. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:allArgRegs" ><A NAME="v%3AallArgRegs" ></A ></A ><B >allArgRegs</B > :: [<A HREF="Reg.html#t%3AReg" >Reg</A >]</TD ></TR ><TR ><TD CLASS="doc" >All all the regs that could possibly be returned by argRegs </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:callClobberedRegs" ><A NAME="v%3AcallClobberedRegs" ></A ></A ><B >callClobberedRegs</B > :: [<A HREF="Reg.html#t%3AReg" >Reg</A >]</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mkVirtualReg" ><A NAME="v%3AmkVirtualReg" ></A ></A ><B >mkVirtualReg</B > :: <A HREF="Unique.html#t%3AUnique" >Unique</A > -> <A HREF="Size.html#t%3ASize" >Size</A > -> <A HREF="Reg.html#t%3AVirtualReg" >VirtualReg</A ></TD ></TR ><TR ><TD CLASS="doc" >Make a virtual reg with this size. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:regDotColor" ><A NAME="v%3AregDotColor" ></A ></A ><B >regDotColor</B > :: <A HREF="Reg.html#t%3ARealReg" >RealReg</A > -> <A HREF="Outputable.html#t%3ASDoc" >SDoc</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.6.1</TD ></TR ></TABLE ></BODY ></HTML >