Mercurial > pub > dyncall > dyncall
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 |