comparison doc/manual/callconvs/callconv_arm32.tex @ 34:645307d37731

- started section for armhf in doc
author cslag
date Tue, 15 Dec 2015 11:19:57 +0100
parents 3e629dc19168
children 61edd9cf8026
comparison
equal deleted inserted replaced
33:8449fa6dabc7 34:645307d37731
286 \begin{itemize} 286 \begin{itemize}
287 \item R7 instead of R11 is used as frame pointer 287 \item R7 instead of R11 is used as frame pointer
288 \item R9 is scratch since iOS 3.0, was preserved before. 288 \item R9 is scratch since iOS 3.0, was preserved before.
289 \end{itemize} 289 \end{itemize}
290 290
291
292 \subsubsection{ARM hard float (armhf)}
293
294
295 Most debian-based Linux systems on ARMv7 platforms use a calling convention referred to as armhf, using
296 16 64-bit floating point registers of the FPU of the VFPv3-D16 extension to the ARM architecture. Code
297 is using the Thumb-2 instruction set.
298
299 \paragraph{Register usage}
300
301 \begin{table}[h]
302 \begin{tabular}{3 B}
303 \hline
304 Name & Brief description\\
305 \hline
306 ... tbd
307 \hline
308 \end{tabular}
309 \caption{Register usage on armhf}
310 \end{table}
311
312
291 \subsubsection{Architectures} 313 \subsubsection{Architectures}
292 314
293 The ARM architecture family contains several revisions with capabilities and 315 The ARM architecture family contains several revisions with capabilities and
294 extensions (such as thumb-interworking and more vector registers) 316 extensions (such as thumb-interworking, more vector registers, ...)
295 The following table summaries important properties of the various 317 The following table sums up the most important properties of the various
296 architecture standards. 318 architecture standards, from a calling convention perspective.
297 319
298 % iPhone 3GS : ARM Cortex-A8 320 % iPhone 3GS : ARM Cortex-A8
299 % Nintendo DS: ARM 7 and ARM 9 321 % Nintendo DS: ARM 7 and ARM 9
300 % ARM 7: ARMv4T 322 % ARM 7: ARMv4T
301 % ARM 9: ARMv4T, HTC Wizard 323 % ARM 9: ARMv4T, HTC Wizard
324 % Cortex-*: ARMv7, Raspberry Pi 2, ...
302 325
303 \begin{table}[h] 326 \begin{table}[h]
304 \begin{tabular}{lll} 327 \begin{tabular}{lll}
305 Arch & Platforms & Details \\ 328 Arch & Platforms & Details \\
306 \hline 329 \hline
307 ARMv4 & & \\ 330 ARMv4 & & \\
308 \hline 331 \hline
309 ARMv4T & ARM 7, ARM 9, Neo FreeRunner (OpenMoko) & \\ 332 ARMv4T & ARM 7, ARM 9, Neo FreeRunner (OpenMoko) & \\
310 \hline 333 \hline
311 ARMv5 & & BLX instruction available \\ 334 ARMv5 & ARM 9E & BLX instruction available \\
312 \hline 335 \hline
313 ARMv6 & & No vector registers available in thumb \\ 336 ARMv6 & & No vector registers available in thumb \\
314 \hline 337 \hline
315 ARMv7 & iPod touch, iPhone 3GS/4 & \\ 338 ARMv7 & iPod touch, iPhone 3GS/4, Raspberry Pi 2 & VFP throughout available, armhf calling convention on some platforms \\
339 \hline
340 ARMv8 & iPhone 6 and higher & 64bit support \\
316 \hline 341 \hline
317 \end{tabular} 342 \end{tabular}
318 \caption{Overview of ARM Architecture, Platforms and Details} 343 \caption{Overview of ARM Architecture, Platforms and Details}
319 \end{table} 344 \end{table}
320 345