diff options
Diffstat (limited to 'thesis/intro.tex')
-rw-r--r-- | thesis/intro.tex | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/thesis/intro.tex b/thesis/intro.tex index f92b21d..3d6347c 100644 --- a/thesis/intro.tex +++ b/thesis/intro.tex @@ -29,7 +29,7 @@ The main differences between ARM and Thumb-2 are the following: In ARM, every instruction has a 4-bit conditional field that allows for conditional execution. In the Thumb instruction set, all conditional instructions except branches have to be in an \enquote{IT block}. A first \ual{it} instruction gives the base condition and a then-else pattern. -The following instructions are executed conditionally. +The statements after the \ual{it} instruction are executed conditionally. For example: \begin{minted}{ual} @@ -59,7 +59,7 @@ For these instructions there exist 32-bit variants that can address all sixteen \begin{tikzpicture}[clean] \node (start) {\clean{Start}}; \end{tikzpicture} - \caption{Initially} + \caption{Initially.} \end{subfigure}% \begin{subfigure}[b]{.2\linewidth} \centering @@ -68,7 +68,7 @@ For these instructions there exist 32-bit variants that can address all sixteen \node[below=of fac.arg1.south] (4) {\clean{4}}; \draw (fac.arg1) -- (4.north); \end{tikzpicture} - \caption{Applying \clean{Start}} + \caption{Applying \clean{Start}.} \end{subfigure}% \begin{subfigure}[b]{.3\linewidth} \centering @@ -84,7 +84,7 @@ For these instructions there exist 32-bit variants that can address all sixteen \draw (minus.arg1) |- (4.east); \draw (minus.arg2) -- (1.west); \end{tikzpicture} - \caption{Applying \clean{fac n}} + \caption{Applying \clean{fac n}.} \end{subfigure}% \begin{subfigure}[b]{.2\linewidth} \centering @@ -97,16 +97,16 @@ For these instructions there exist 32-bit variants that can address all sixteen \draw (times.arg2) -- (fac.west); \draw (fac.arg1) -- (3.north); \end{tikzpicture} - \caption{Applying \clean{-}} + \caption{Applying \clean{-}.} \end{subfigure} - \caption{Rewriting a Clean node\label{fig:intro:rewriting}} + \caption{Rewriting a Clean node\label{fig:intro:rewriting}.} \end{figure*} \subsubsection{Interworking} \label{sec:intro:interworking} -The ARM and Thumb instruction sets are designed to \emph{interwork}: +The ARM and Thumb instruction sets are designed to interwork: different parts of a program can be assembled for different instruction sets - and it is possible to switch instruction set when the program counter is written to~\parencite[A4.1]{armv7ar}. + and it is possible to switch instruction set when an instruction writes to the program counter~\parencite[A4.1]{armv7ar}. The Thumb-2 code generator proposed in this thesis does not produce ARM code, though the existence of the interworking facility has effects on the techniques that can be used in it. @@ -178,7 +178,7 @@ This function uses the B-stack, for basic values, for its arguments and return v More complex types would be passed on the A-stack. The \clean{Start} rule compiles to% - \footnote{Again, the code has been shorted insignificantly for brevity.}: + \footnote{The code has been shorted insignificantly for brevity.}: \begin{minted}[tabsize=4]{abc} __fac_Start @@ -209,7 +209,7 @@ While the ABC-machine can be implemented in a straightforward manner using macro it introduces several optimisations, some of which are target-dependent. The ARM code for the factorial example is as follows% - \footnote{Some irrelevant peculiarities have been removed for brevity and clarity.}: + \footnote{Some irrelevant peculiarities have been removed for brevity.}: \begin{minted}{ual} sfac_P1: |