summaryrefslogtreecommitdiff
path: root/arm/README
diff options
context:
space:
mode:
authorNiels Möller <nisse@lysator.liu.se>2013-04-18 14:07:20 +0200
committerNiels Möller <nisse@lysator.liu.se>2013-04-18 14:17:49 +0200
commitade7779c98a5426c7d86c8a01bbd7ad65980c9b9 (patch)
tree0235c694ed12a49037d62e4b05ada53472c804ad /arm/README
parentb7c953630bf9a05eca5b744c89eb643049eeb700 (diff)
downloadnettle-ade7779c98a5426c7d86c8a01bbd7ad65980c9b9.tar.gz
Reorganization of ARM assembly.
Renamed directory armv7 to arm. New subdirectory arm/neon, for files using neon instructions. configure.ac hacked to make use of neon configurable.
Diffstat (limited to 'arm/README')
-rw-r--r--arm/README47
1 files changed, 47 insertions, 0 deletions
diff --git a/arm/README b/arm/README
new file mode 100644
index 00000000..9bacd97b
--- /dev/null
+++ b/arm/README
@@ -0,0 +1,47 @@
+Currently, code in this directory is written for arm cortex-a9.
+
+For efficient loads and stores, use ldmia, stmia and friends. Can do
+two loads or stores per cycle with 8-byte aligned addresses, or three
+loads or stores in two cycles, regardless of alignment.
+
+12 usable registers (if we exclude r9).
+
+ABI gnueabi(hf) (not depending on the floating point conventions)
+
+Registers May be Argument
+ clobbered number
+
+r0 Y 1
+r1 Y 2
+r2 Y 3
+r3 Y 4
+r4 N
+r5 N
+r6 N
+r7 N
+r8 N
+r9 (sl)
+r10 N
+r11 N
+r12 (ip) Y
+r13 (sp)
+r14 (lr) N
+r15 (pc)
+
+q0 (d0, d1) Y 1 (for "hf" abi)
+q1 (d2, d3) Y 2
+q2 (d4, d5) Y 3
+q3 (d6, d7) Y 4
+q4 (d8, d9) N
+q5 (d10, d11) N
+q6 (d12, d13) N
+q7 (d14, d15) N
+q8 (d16, d17) Y
+q9 (d18, d19) Y
+q10 (d20, d21) Y
+q11 (d22, d23) Y
+q12 (d24, d25) Y
+q13 (d26, d27) Y
+q14 (d28, d29) Y
+q15 (d30, d31) Y
+