Mercurial > pub > dyncall > dyncall
diff doc/manual/callconvs/callconv_arm32.tex @ 117:4a64b733dc76
- doc, added first version of mips64 callconv page
- cleanups, todo update
author | cslag |
---|---|
date | Sun, 03 Jul 2016 01:39:37 +0200 |
parents | 9e99918065e6 |
children | 12729fd52ab7 |
line wrap: on
line diff
--- a/doc/manual/callconvs/callconv_arm32.tex Thu Jun 23 12:38:51 2016 +0200 +++ b/doc/manual/callconvs/callconv_arm32.tex Sun Jul 03 01:39:37 2016 +0200 @@ -1,5 +1,5 @@ % -% Copyright (c) 2007,2010 Daniel Adler <dadler@uni-goettingen.de>, +% Copyright (c) 2007,2010 Daniel Adler <dadler@uni-goettingen.de>, % Tassilo Philipp <tphilipp@potion-studios.com> % % Permission to use, copy, modify, and distribute this software for any @@ -22,8 +22,8 @@ \paragraph{Overview} -The ARM32 family of processors is based on -the Advanced RISC Machines (ARM) processor architecture (32 bit RISC). +The ARM32 family of processors is based on the Advanced RISC Machines (ARM) +processor architecture (32 bit RISC). The word size is 32 bits (and the programming model is LLP64).\\ Basically, this family of microprocessors can be run in 2 major modes:\\ \\ @@ -102,20 +102,20 @@ register save area & \hspace{4cm} & & \mrrbrace{5}{caller's frame} \\ \hhline{~-~~} local data & & & \\ -\hhline{~-~~} +\hhline{~-~~} \mrlbrace{7}{parameter area} & \ldots & \mrrbrace{3}{stack parameters} & \\ & \ldots & & \\ & \ldots & & \\ -\hhline{~=~~} +\hhline{~=~~} & r3 & \mrrbrace{4}{spill area (if needed)} & \mrrbrace{7}{current frame} \\ & r2 & & \\ & r1 & & \\ & r0 & & \\ -\hhline{~-~~} +\hhline{~-~~} register save area (with return address) & & & \\ -\hhline{~-~~} +\hhline{~-~~} local data & & & \\ -\hhline{~-~~} +\hhline{~-~~} parameter area & \vdots & & \\ \hhline{~-~~} \end{tabular} @@ -188,24 +188,24 @@ \begin{tabular}{5|3|1 1} \hhline{~-~~} & \vdots & & \\ -\hhline{~=~~} +\hhline{~=~~} register save area & \hspace{4cm} & & \mrrbrace{5}{caller's frame} \\ -\hhline{~-~~} +\hhline{~-~~} local data & & & \\ -\hhline{~-~~} +\hhline{~-~~} \mrlbrace{7}{parameter area} & \ldots & \mrrbrace{3}{stack parameters} & \\ & \ldots & & \\ & \ldots & & \\ -\hhline{~=~~} +\hhline{~=~~} & r3 & \mrrbrace{4}{spill area (if needed)} & \mrrbrace{7}{current frame} \\ & r2 & & \\ & r1 & & \\ & r0 & & \\ -\hhline{~-~~} +\hhline{~-~~} register save area (with return address) & & & \\ -\hhline{~-~~} +\hhline{~-~~} local data & & & \\ -\hhline{~-~~} +\hhline{~-~~} parameter area & \vdots & & \\ \hhline{~-~~} \end{tabular} @@ -350,8 +350,8 @@ \subsubsection{Architectures} The ARM architecture family contains several revisions with capabilities and -extensions (such as thumb-interworking, more vector registers, ...) -The following table sums up the most important properties of the various +extensions (such as thumb-interworking, more vector registers, ...) +The following table sums up the most important properties of the various architecture standards, from a calling convention perspective. % iPhone 3GS : ARM Cortex-A8 @@ -368,8 +368,8 @@ ARMv4T & ARM 7, ARM 9, Neo FreeRunner (OpenMoko) & \\ ARMv5 & ARM 9E & BLX instruction available \\ ARMv6 & & No vector registers available in thumb \\ -ARMv7 & iPod touch, iPhone 3GS/4, Raspberry Pi 2 & VFP throughout available, armhf calling convention on some platforms \\ -ARMv8 & iPhone 6 and higher & 64bit support \\ +ARMv7 & iPod touch, iPhone 3GS/4, Raspberry Pi 2 & VFP throughout available, armhf calling convention on some platforms \\ +ARMv8 & iPhone 6 and higher & 64bit support \\ \end{tabular*} \caption{Overview of ARM Architecture, Platforms and Details} \end{table}