diff options
Diffstat (limited to 'thesis/intro.tex')
-rw-r--r-- | thesis/intro.tex | 11 |
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. |