diff -r -u a/latex/annotations.tex b/latex/annotations.tex
--- a/latex/annotations.tex 2018-05-16 17:50:53.851446532 +0300
+++ b/latex/annotations.tex 2018-05-16 19:07:55.673342303 +0300
@@ -30,4 +30,4 @@
recognized by the core system. This signature is
\mlrischref{instructions/mlriscAnnotations.sig}{MLRISC\_ANNOTATIONS}.
More detailed documentation can be found in this
-\href{http://cm.bell-labs.com/cm/cs/what/smlnj/compiler-notes/annotations.ps}{paper}.
+\localhref{http://cm.bell-labs.com/cm/cs/what/smlnj/compiler-notes/annotations.ps}{paper}.
diff -r -u a/latex/asm.tex b/latex/asm.tex
--- a/latex/asm.tex 2018-05-16 17:50:50.284822156 +0300
+++ b/latex/asm.tex 2018-05-16 19:08:33.256235173 +0300
@@ -7,10 +7,10 @@
\begin{SML}
signature INSTRUCTION_EMITTER =
sig
- structure I : \href{instructions.html}{INSTRUCTIONS}
- structure C : \href{cells.html}{CELLS}
- structure S : \href{streams.html}{INSTRUCTION_STREAM}
- structure P : \href{pseudo-ops.html}{PSEUDO_OPS}
+ structure I : \localhref{instructions.html}{INSTRUCTIONS}
+ structure C : \localhref{cells.html}{CELLS}
+ structure S : \localhref{streams.html}{INSTRUCTION_STREAM}
+ structure P : \localhref{pseudo-ops.html}{PSEUDO_OPS}
sharing I.C = C
sharing S.P = P
@@ -49,7 +49,7 @@
\subsubsection{More Details}
Assemblers are automatically generated by the
-\href{mlrisc-md.html}{MDGen} tool. Some specific generated
+\localhref{mlrisc-md.html}{MDGen} tool. Some specific generated
assemblers are listed below:
\begin{enumerate}
\item \mlrischref{sparc/emit/sparcAsm.sml}{Sparc}
diff -r -u a/latex/availability.tex b/latex/availability.tex
--- a/latex/availability.tex 2018-05-16 17:50:49.151502261 +0300
+++ b/latex/availability.tex 2018-05-16 19:08:57.709281902 +0300
@@ -12,7 +12,7 @@
\externhref{http://cm.bell-labs.com/cm/cs/what/smlnj/software.html}{SML/NJ software page} as part of the SML/NJ compiler releases.
These versions are relative stable, but
do not include the entire MLRISC source tree.
-\item \href{mailto:leunga@cs.nyu.edu}{Allen}
+\item \localhref{mailto:leunga@cs.nyu.edu}{Allen}
keeps an up-to-date version of MLRISC at NYU for private use.
This version includes everything but is under constant changes, so beware!
To access the CVS repository, set your \sml{CVSROOT} environment variable
@@ -27,7 +27,7 @@
The password to use is \sml{mlrisc}.
\item
Generally speaking, you can get the latest version of MLRISC by asking
-\href{mailto:george@research.bell-labs.com}{Lal}.
+\localhref{mailto:george@research.bell-labs.com}{Lal}.
\end{enumerate}
MLRISC is \newdef{free, open source} software, and is released under the
-\href{http://cm.bell-labs.com/cm/cs/what/smlnj/license.html}{SML/NJ license}.
+\localhref{http://cm.bell-labs.com/cm/cs/what/smlnj/license.html}{SML/NJ license}.
diff -r -u a/latex/cells.tex b/latex/cells.tex
--- a/latex/cells.tex 2018-05-16 17:50:49.314833658 +0300
+++ b/latex/cells.tex 2018-05-16 19:09:11.865782638 +0300
@@ -20,7 +20,7 @@
\item \sml{MEM} -- memory
\item \sml{CTRL} -- control dependence
\end{itemize}
- \item \sml{regmap} -- \href{regmap.html}{register map}
+ \item \sml{regmap} -- \localhref{regmap.html}{register map}
\item \sml{cellset} -- a cellset represent a set of cells. This
type can be used to denote live-in/live-out information. Cellsets are
implemented as immutable abstract types.
diff -r -u a/latex/cluster.tex b/latex/cluster.tex
--- a/latex/cluster.tex 2018-05-16 17:50:48.014849072 +0300
+++ b/latex/cluster.tex 2018-05-16 19:09:32.742204600 +0300
@@ -8,10 +8,10 @@
Its signature is:
\begin{SML}
signature FLOWGRAPH = sig
- structure C : \href{cells.html}{CELLS}
- structure I : \href{instructions.html}{INSTRUCTIONS}
- structure P : \href{pseudo-ops.html}{PSEUDO_OPS}
- structure W : \href{freq.html}{FREQ}
+ structure C : \localhref{cells.html}{CELLS}
+ structure I : \localhref{instructions.html}{INSTRUCTIONS}
+ structure P : \localhref{pseudo-ops.html}{PSEUDO_OPS}
+ structure W : \localhref{freq.html}{FREQ}
sharing I.C = C
datatype block =
@@ -46,8 +46,8 @@
\end{SML}
Clusters are used in
-\href{span-dep.html}{span dependency resolution},
-\href{delayslots.html}{delay slot filling},
-\href{asm.html}{assembly},
-and \href{mc.html}{machine code}
+\localhref{span-dep.html}{span dependency resolution},
+\localhref{delayslots.html}{delay slot filling},
+\localhref{asm.html}{assembly},
+and \localhref{mc.html}{machine code}
output, since these phases require the code laid out in linearized form.
diff -r -u a/latex/compiler-graphs.tex b/latex/compiler-graphs.tex
--- a/latex/compiler-graphs.tex 2018-05-16 17:50:47.951516490 +0300
+++ b/latex/compiler-graphs.tex 2018-05-16 19:09:57.595246601 +0300
@@ -6,8 +6,8 @@
Mostly of these algorithms are parameterized with respect
to the actual intermediate representation, and as such they
do not provide many facilities that are provided by higher abstraction
-layers, such as in \href{mlrisc-ir.html}{MLRISC IR},
-or in \href{SSA.html}{SSA}.
+layers, such as in \localhref{mlrisc-ir.html}{MLRISC IR},
+or in \localhref{SSA.html}{SSA}.
\subsubsection{Dominator/Post-dominator Trees}
\newdef{Dominance}
diff -r -u a/latex/contributions.tex b/latex/contributions.tex
--- a/latex/contributions.tex 2018-05-16 17:50:46.251536647 +0300
+++ b/latex/contributions.tex 2018-05-16 19:10:13.328395499 +0300
@@ -2,7 +2,7 @@
The optimizations provided by MLRISC are at a similar level to
those performed by the Impact compiler; several target back ends
exist (Dec Alpha, HPPA, Sparc, x86, and PPC); but more importantly, the
- framework has been demonstrated in \href{systems.html}{real use}
+ framework has been demonstrated in \localhref{systems.html}{real use}
for languages with radically different execution models. These include:
\begin{center}
diff -r -u a/latex/freq.tex b/latex/freq.tex
--- a/latex/freq.tex 2018-05-16 17:50:44.638222443 +0300
+++ b/latex/freq.tex 2018-05-16 19:10:25.701583781 +0300
@@ -4,4 +4,4 @@
estimates provided by the front-end. These can be in the form of explicit
vertex and edge frequencies, in the form of branch probabilities, or a
combination of the above. Frequency information can be propagated
-to the backend via the \href{annotations.html}{annotations} mechanism.
+to the backend via the \localhref{annotations.html}{annotations} mechanism.
diff -r -u a/latex/gc.tex b/latex/gc.tex
--- a/latex/gc.tex 2018-05-16 17:50:43.691567002 +0300
+++ b/latex/gc.tex 2018-05-16 19:10:38.741430909 +0300
@@ -62,13 +62,13 @@
value in the program with a \newdef{gc type}, which is
used to specify the abstract object representation,
and the constraints on code motion that may be applied to such a value.
-The front-end uses an architecture independent \href{mltree.html}{RTL}
+The front-end uses an architecture independent \localhref{mltree.html}{RTL}
language for representing the program, thus this annotation
phase is portable between target architectures.
\item[GC constraints propagation]
After instruction selection, gc constraint are propagated throughout
the machine level program representation. Again, for portability, gc typing
-rules are specified in terms of the \href{mltree.html}{ RTL } of
+rules are specified in terms of the \localhref{mltree.html}{ RTL } of
the machine instructions. In this phase, unsafe code motions which
exposes unrecoverable derived values to gc safepoints are automatically
identified. (Pseudo) control dependence and anti-control dependence
diff -r -u a/latex/graphs.tex b/latex/graphs.tex
--- a/latex/graphs.tex 2018-05-16 17:50:42.278250426 +0300
+++ b/latex/graphs.tex 2018-05-17 12:25:02.296606895 +0300
@@ -877,10 +877,10 @@
\begin{wrapfigure}{r}{3in}
\begin{Boxit}
- \psfig{figure=../pictures/eps/trace.eps,width=2.8in}
+ \includegraphics[width=2.8in]{../pictures/pdf/trace.pdf}
\end{Boxit}
- \label{fig:trace-view}
\caption{A trace view}
+ \label{fig:trace-view}
\end{wrapfigure}
A \newdef{trace} is an acyclic path in a graph.
The function \sml{trace_view} takes a trace of node ids
@@ -910,10 +910,10 @@
\end{SML}
\begin{wrapfigure}{r}{3in}
\begin{Boxit}
- \psfig{figure=../pictures/eps/subgraph.eps,width=2.8in}
+ \includegraphics[width=2.8in]{../pictures/pdf/subgraph.pdf}
\end{Boxit}
- \label{fig:acyclic-subgraph-view}
\caption{An acyclic subgraph}
+ \label{fig:acyclic-subgraph-view}
\end{wrapfigure}
The function \sml{acyclic_view} takes an ordered
list of node ids $v_1,\ldots,v_n$ and a graph $G$ as arguments
@@ -996,8 +996,8 @@
do_after_set_exits : (node_id list -> unit) -> ('n,'e,'g) graph -> ('n,'e,'g) graph
\end{SML}
\end{boxit}
-\label{fig:behavioral-view-primitives}
\caption{Behavioral view primitives}
+\label{fig:behavioral-view-primitives}
\end{Figure}
Frequently it is not necessary to know precisely by which method a graph's
diff -r -u a/latex/instrsel.tex b/latex/instrsel.tex
--- a/latex/instrsel.tex 2018-05-16 17:50:39.851612533 +0300
+++ b/latex/instrsel.tex 2018-05-16 19:11:07.491093849 +0300
@@ -1,6 +1,6 @@
\section{Instruction Selection} \label{sec:instrsel}
Instruction selection modules are reponsible for translating
-\href{mltree.html}{MLTree} statements into a flowgraph consisting
+\localhref{mltree.html}{MLTree} statements into a flowgraph consisting
of target machine instructions. MLRISC decomposes this complex task
into \emph{three} components:
\begin{description}
@@ -14,16 +14,16 @@
\end{description}
By detaching these components, extra flexiblity is obtained. For example,
the MLRISC system uses two different internal representations. The
-first, \href{cluster.html}{cluster}, is a \emph{light-weight} representation
+first, \localhref{cluster.html}{cluster}, is a \emph{light-weight} representation
which is suitable for simple compilers without extensive
-optimizations; the second, \href{mlrisc-ir.html}{MLRISC IR}, is a
+optimizations; the second, \localhref{mlrisc-ir.html}{MLRISC IR}, is a
\emph{heavy duty} representation which allows very complex transformations
to be performed. Since the flowgraph builders are detached from the
instruction selection modules, the same instruction selection modules
can be used for both representations.
For consistency, the three components communicate to each other
-via the same \href{stream.html}{stream} interface.
+via the same \localhref{stream.html}{stream} interface.
\subsection{Interface Definition}
All instruction selection modules satisfy the following signature:
@@ -31,10 +31,10 @@
\begin{SML}
signature \mlrischref{mltree/mltreecomp.sig}{MLTREECOMP} =
sig
- structure T : \href{mltree.html}{MLTREE}
- structure I : \href{instructions.html}{INSTRUCTIONS}
- structure C : \href{cells.html}{CELLS}
- sharing T.LabelExp = I.\href{labelexp.html}{LabelExp}
+ structure T : \localhref{mltree.html}{MLTREE}
+ structure I : \localhref{instructions.html}{INSTRUCTIONS}
+ structure C : \localhref{cells.html}{CELLS}
+ sharing T.LabelExp = I.\localhref{labelexp.html}{LabelExp}
sharing I.C = C
type instrStream = (I.instruction,C.regmap,C.cellset) T.stream
@@ -56,10 +56,10 @@
\begin{SML}
signature \mlrischref{mltree/mltreecomp.sig}{MLTREE_EXTENSION_COMP} =
sig
- structure T : \href{mltree.html}{MLTREE}
- structure I : \href{instructions.html}{INSTRUCTIONS}
- structure C : \href{cells.html}{CELLS}
- sharing T.LabelExp = I.\href{labelexp.html}{LabelExp}
+ structure T : \localhref{mltree.html}{MLTREE}
+ structure I : \localhref{instructions.html}{INSTRUCTIONS}
+ structure C : \localhref{cells.html}{CELLS}
+ sharing T.LabelExp = I.\localhref{labelexp.html}{LabelExp}
sharing I.C = C
type reducer =
diff -r -u a/latex/instructions.tex b/latex/instructions.tex
--- a/latex/instructions.tex 2018-05-16 17:50:38.611627236 +0300
+++ b/latex/instructions.tex 2018-05-16 19:11:20.930936273 +0300
@@ -7,9 +7,9 @@
\begin{SML}
signature INSTRUCTIONS =
sig
- structure C : \href{cells.html}{CELLS}
- structure Constant : \href{constants.html}{CONSTANT}
- structure LabelExp : \href{labelexp.html}{LABELEXP}
+ structure C : \localhref{cells.html}{CELLS}
+ structure Constant : \localhref{constants.html}{CONSTANT}
+ structure LabelExp : \localhref{labelexp.html}{LABELEXP}
sharing LabelExp.Constant = Constant
type operand
diff -r -u a/latex/INTRO.tex b/latex/INTRO.tex
--- a/latex/INTRO.tex 2018-05-16 17:50:55.554759668 +0300
+++ b/latex/INTRO.tex 2018-05-17 12:54:21.908893514 +0300
@@ -7,20 +7,20 @@
\begin{center}
\begin{tabular}{cc}
\begin{address}
- \href{mailto:george@research.bell-labs.com}{Lal George}
+ \localhref{mailto:george@research.bell-labs.com}{Lal George}
\end{address} &
\begin{address}
- \href{mailto:leunga@cs.nyu.edu}{ Allen Leung}
+ \localhref{mailto:leunga@cs.nyu.edu}{ Allen Leung}
\end{address} \\
Bell Labs & New York University \\
\end{tabular}
\end{center}
\begin{center}
-\image{MLRISC logo}{pictures/png/uncol.png}{align="middle"}
+\image{MLRISC logo}{pictures/png/uncol.png}{align=middle}
\begin{Italics}
- \href{contributors.html}{Contributors}
+ \localhref{contributors.html}{Contributors}
\end{Italics}
\end{center}
@@ -45,4 +45,4 @@
the latter part of the document is incomplete but it may still be useful.
These pages are also available in
-\href{../latex/mlrisc.ps}{tech report} form.
+\localhref{../latex/mlrisc.ps}{tech report} form.
diff -r -u a/latex/labelexp.tex b/latex/labelexp.tex
--- a/latex/labelexp.tex 2018-05-16 17:50:38.418296195 +0300
+++ b/latex/labelexp.tex 2018-05-16 19:11:36.514086896 +0300
@@ -2,7 +2,7 @@
A \newdef{label expression} is a constant
expression defined in terms of labels, or user
-defined \href{constants.html}{constants}. MLRISC uses the type
+defined \localhref{constants.html}{constants}. MLRISC uses the type
\sml{labexp} to represent label expressions. Label expressions
are defined in the structure
\mlrischref{instructions/labelExp.sml}{LabelExp}.
@@ -33,7 +33,7 @@
\end{itemize}
The type \sml{labexp} is depends on client defined
-\href{constants.html}{constants} typed. The functor \sml{LabelExp}
+\localhref{constants.html}{constants} typed. The functor \sml{LabelExp}
is parameterized as follows.
\begin{SML}
functor \mlrischref{instructions/labelExp.sml}{LabelExp}(Constant : \mlrischref{instructions/constant.sig}{CONSTANT})
diff -r -u a/latex/labels.tex b/latex/labels.tex
--- a/latex/labels.tex 2018-05-16 17:50:37.531640042 +0300
+++ b/latex/labels.tex 2018-05-16 19:11:46.233972928 +0300
@@ -22,4 +22,4 @@
with a label
\end{itemize}
-See also \href{labelexp.html}{Label Expressions}.
+See also \localhref{labelexp.html}{Label Expressions}.
diff -r -u a/latex/Makefile b/latex/Makefile
--- a/latex/Makefile 2018-05-16 17:50:53.054789312 +0300
+++ b/latex/Makefile 2018-05-17 14:47:26.632636015 +0300
@@ -1,52 +1,9 @@
-#
-# This file compiles the documentation
-#
-
-TEX= sml.tex mlrisc.tex mltexdoc.tex
-DVI= $(TEX:.tex=.dvi)
-PS= $(TEX:.tex=.ps)
-PDF= $(TEX:.tex=.pdf)
-
-all: pictures $(DVI) $(PS)
-
+PDF=sml.pdf mlrisc.pdf mltexdoc.pdf
+.PHONY: clean pictures
+all: pictures $(PDF)
pictures:
- (cd ../pictures; make)
-
-again: cleandvi bib
- make
-
-cleandvi:
- rm -f $(TEX:.tex=.dvi)
-
-bib:
- for f in $(TEX:.tex=) ; do bibtex $$f; done
-
-pdf: $(PDF)
-
-%.dvi: %.tex sml.sty mltex.sty
- latex $(@:.dvi=.tex)
-
-%.ps: %.dvi
- dvips -D 600 -t letter $(@:.ps=.dvi) -o
-
-%.pdf: %.ps
- ps2pdf $<
-
-mlrisc.dvi: annotations.tex graphics.tex instructions.tex mltree.tex \
- delayslots.tex cells.tex cluster.tex constants.tex \
- pseudo-ops.tex streams.tex labelexp.tex labels.tex regions.tex \
- regmap.tex graphs.tex mlrisc-ir.tex compiler-graphs.tex \
- SSA.tex VLIW.tex ra.tex ILP.tex mlrisc-arch.tex \
- future-work.tex asm.tex mc.tex instrsel.tex \
- availability.tex gc.tex mlrisc-gen.tex contributions.tex \
- systems.tex mlrisc-graphics.tex contributors.tex \
- requirements.tex INTRO.tex problem.tex mlrisc-compiler.tex \
- mlrisc-ir-rep.tex backend-opt.tex sys-integration.tex \
- optimizations.tex span-dep.tex mlrisc-md.tex line-counts.tex \
- sparc.tex alpha.tex x86.tex ppc.tex mips.tex hppa.tex C6.tex \
- mltree-ext.tex mltree-util.tex
-
-mltexdoc.dvi: mltex.tex
-
-clean:
- /bin/rm -f $(DVI) *.aux *.log *.bbl *.blg
+ $(MAKE) -C ../pictures
+%.pdf: %.tex pictures sml.sty mltex.sty
+ latexmk -pdf $<
+clean:
+ latexmk -C
diff -r -u a/latex/mc.tex b/latex/mc.tex
--- a/latex/mc.tex 2018-05-16 17:50:36.138323229 +0300
+++ b/latex/mc.tex 2018-05-16 19:12:13.030325390 +0300
@@ -11,10 +11,10 @@
signature INSTRUCTION_EMITTER =
sig
- structure I : \href{instructions.html}{INSTRUCTIONS}
- structure C : \href{cells.html}{CELLS}
- structure S : \href{streams.html}{INSTRUCTION_STREAM}
- structure P : \href{pseudo-ops.html}{PSEUDO_OPS}
+ structure I : \localhref{instructions.html}{INSTRUCTIONS}
+ structure C : \localhref{cells.html}{CELLS}
+ structure S : \localhref{streams.html}{INSTRUCTION_STREAM}
+ structure P : \localhref{pseudo-ops.html}{PSEUDO_OPS}
sharing I.C = C
sharing S.P = P
@@ -42,7 +42,7 @@
\subsubsection{More Details}
Machine code emitters are automatically generated by the
-\href{mlrisc-md.html}{MDGen} tool. Some specific generated
+\localhref{mlrisc-md.html}{MDGen} tool. Some specific generated
emitters are listed below:
\begin{enumerate}
\item \mlrischref{sparc/emit/sparcMC.sml}{Sparc}
diff -r -u a/latex/md.tex b/latex/md.tex
--- a/latex/md.tex 2018-05-16 17:50:36.394986852 +0300
+++ b/latex/md.tex 2018-05-16 21:54:12.798141891 +0300
@@ -14,20 +14,20 @@
the properties of the register set and (some part of) memory hierarchy.
\item \codehref{instructions/instructions.sig}{INSTRUCTIONS} --
the concrete instruction set representation.
- \item \codehref{instructions/insnProps.sig}{INSNS_PROPERTIES} --
+ \item \codehref{instructions/insnProps.sig}{INSNS\_PROPERTIES} --
properties of the instructions.
- \item \codehref{instructions/shuffle.sig}{SHUFFLE} --
+ \item \codehref{instructions/shuffle.sig}{SHUFFLE} --
methods to emit linearized code from parallel copies.
\item \codehref{emit/instruction-emitter.sig}{ASSEMBLER} --
the assembler
\item \codehref{emit/instruction-emitter.sig}{MC} --
the machine code emitter
- \item \codehref{../backpatch/sdi-jumps.sig}{ SDI_JUMPS } --
+ \item \codehref{../backpatch/sdi-jumps.sig}{SDI\_JUMPS} --
methods for resolving span-dependent instructions.
- \item DELAY_SLOTS_PROPERTIES
- -- machine properties for delay slot filling, if a machine
- architecture contains branch delay slots or load delay slots.
- \item \codehref{../SSA/ssaProps.sig}{ SSA_PROPERTIES } --
+ \item \codehref{../backpatch/delaySlotProps.sig}{DELAY\_SLOTS\_PROPERTIES} --
+ machine properties for delay slot filling, if a machine
+ architecture contains branch delay slots or load delay slots.
+ \item \codehref{../SSA/ssaProps.sig}{SSA\_PROPERTIES} --
semantics properties for performing optimizations in Static Single
Assignment form.
\end{itemize}
@@ -56,11 +56,10 @@
required by the MLRISC system.
The basic concepts of MDGen are inspired largely from
-Norman Ramsey's
-New Jersey Machine Code Tool Kit and
+Norman Ramsey's \externhref{http://www.cs.virginia.edu/~nr/toolkit}
+{New Jersey Machine Code Tool Kit} and
Ramsey and Davidson's
-
-Lambda RTL
+\externhref{http://www.cs.virginia.edu/zephyr/csdl/lrtlindex.html}{Lambda RTL}.
\subsection{A Sample Description}
@@ -71,21 +70,19 @@
\begin{SML}
architecture Alpha =
- struct
-
+struct
name "Alpha"
-
superscalar
-
little endian
+ lowercase assembly
+end
+\end{SML}
- lowercase assembly
+\ref{subsubsec:cells} Storage cells and locations.
- \href{#cells}{Storage cells and locations}
- \href{#encoding}{Instruction encoding formats specification}
- \href{#instruction}{Instruction definition}
-end
-\end{SML}
+\ref{subsubsec:encoding} Instruction encoding formats specification.
+
+\ref{subsubsec:instruction} Instruction definition.
Here, we declare that the Alpha is a superscalar machine using
little endian encoding. Furthermore, assembly output should be displayed
@@ -94,15 +91,15 @@
-\subsubsection{ Specifying Storage Cells and Locations }
+\subsubsection{Specifying Storage Cells and Locations} \label{subsubsec:cells}
-A cell is an abstract resource location
+A \newdef{cell} is an abstract resource location
for holding data values. On typical machines, the types of
cells include general purpose registers, floating point registers,
and condition code registers.
The \sml{storage} declaration defines different
-cellkinds. MLRISC requires the
+\newdef{cellkinds}. MLRISC requires the
cellkinds \sml{GP}, \sml{FP}, \sml{CC} to be defined.
These are the cellkinds for general purpose registers, floating point
registers and condition code registers.
@@ -126,50 +123,48 @@
assembly temporary etc.
\end{itemize}
-
\begin{SML}
- storage
- GP = 32 cells of 64 bits in cellset called "register"
- assembly as (fn 30 => "$sp"
+ storage
+ GP = 32 cells of 64 bits in cellset called "register"
+ assembly as (fn 30 => "$sp"
| r => "$"^Int.toString r)
- | FP = 32 cells of 64 bits in cellset called "floating point register"
- assembly as (fn f => "f"^Int.toString f)
- | CC = cells of 64 bits in cellset GP called "condition code register"
- assembly as "cc"
- locations
- stackptrR = $GP[30]
- and asmTmpR = $GP[28]
- and fasmTmp = $FP[30]
- and GPReg r = $GP[r]
- and FPReg f = $GP[f]
+ | FP = 32 cells of 64 bits in cellset called "floating point register"
+ assembly as (fn f => "f"^Int.toString f)
+ | CC = cells of 64 bits in cellset GP called "condition code register"
+ assembly as "cc"
+ locations
+ stackptrR = $GP[30]
+ and asmTmpR = $GP[28]
+ and fasmTmp = $FP[30]
+ and GPReg r = $GP[r]
+ and FPReg f = $GP[f]
\end{SML}
-