summaryrefslogtreecommitdiff
path: root/thesis/intro.tex
diff options
context:
space:
mode:
Diffstat (limited to 'thesis/intro.tex')
-rw-r--r--thesis/intro.tex11
1 files changed, 7 insertions, 4 deletions
diff --git a/thesis/intro.tex b/thesis/intro.tex
index ccffb4c..924973c 100644
--- a/thesis/intro.tex
+++ b/thesis/intro.tex
@@ -5,7 +5,10 @@
\subsection{ARM, Thumb and Thumb-2}
\label{sec:intro:arm-thumb-thumb2}
-ARM is a RISC architecture with several enhancements to a basic RISC architecture allowing ARM processors to
+ARM is a RISC architecture%
+ \footnote{RISC stands for \emph{Reduced Instruction Set Computing}.
+ RISC architectures provide relatively few, basic instructions that can be executed fast to improve performance compared to large, slow architectures.}
+ with several enhancements to a basic RISC architecture allowing ARM processors to
\enquote{achieve a good balance of high performance, small program size, low power consumption, and small silicon area}~\parencite[A1.1]{armv7ar}.
Several instruction sets were designed for the ARM architecture.
@@ -20,7 +23,7 @@ In this thesis, we will usually use \enquote{Thumb} where the Thumb-2 extension
Only when the distinction with pre-ARMv6T2 Thumb is important will we distinguish between (early) Thumb and Thumb-2.
As for \enquote{ARM}, it should be clear from the context whether the architecture or the instruction set is meant.
-Using the Unified Assembler Language (UAL), one can write assembly code for both the ARM and the Thumb instruction set and fix the target ISA only at assemble-time.
+Using the Unified Assembler Language (UAL), one can write assembly code for both the ARM and the Thumb instruction set and fix the target ISA only at assemble-time~\parencite[A4.2]{armv7m}.
The main differences between ARM and Thumb-2 are the following:
@@ -232,7 +235,7 @@ We see that the argument is passed in \ual{r4}, and that register is also used f
In ARM, \ual{r4} through \ual{r0} are used for the top of the B-stack.
The machine stack pointer \ual{sp} is used as the B-stack pointer.
For intermediate results, \ual{r12} is used as a scratch register.
-When a reduction has finished, control is passed back to the callee by loading the PC from the stack (\ual{ldr pc,[sp],#4}).
+When a reduction has finished, control is passed back to the callee by loading the program counter from the stack (\ual{ldr pc,[sp],#4}).
The \clean{Start} rule translates roughly to:
@@ -278,7 +281,7 @@ The actual ABC-code contains annotations that tell the code generator how many e
\subsubsection{The run-time system}
\label{sec:intro:clean:rts}
-After compilation, a Clean program is linked together with the Clean run-time system.
+After compilation, a Clean program is linked together with the Clean run-time system (RTS).
The RTS ensures that that the \clean{Start} node is reduced and printed and takes care of garbage collecting.
This system is written in Clean, C and assembly, so making Clean available on Thumb-2 inherently means adapting the platform-dependent parts of the RTS as well.