1. For DSP / image processing, 64-bit SIMD allows you to operate on twice as many elements as 32-bit SIMD
I think this is very much wrong. You do get more SIMD registers, but both 32-bit and 64-bit ARM have 128 bits wide SIMD registers. Same number of elements per instruction.
2. For normal computing, you get 31 64-bit registers instead of 15 32-bit registers (essentially 4x register memory)
Almost right. 14 vs 31. On 32-bit ARM, R13 is stack pointer, and R15 is PC, program counter. 64-bit ARM doesn't have PC mapped to register file anymore.
3. 128-bit floating point
As far as I know, AArch64 does not have 128-bit floating point. Nor would it really be useful except in very rare circumstances.
Comments
I think this is very much wrong. You do get more SIMD registers, but both 32-bit and 64-bit ARM have 128 bits wide SIMD registers. Same number of elements per instruction.
Almost right. 14 vs 31. On 32-bit ARM, R13 is stack pointer, and R15 is PC, program counter. 64-bit ARM doesn't have PC mapped to register file anymore.
As far as I know, AArch64 does not have 128-bit floating point. Nor would it really be useful except in very rare circumstances.
64-bit ARM doesn't have PC mapped to register file anymore.
Interesting. Does this have any effect on debugging?
Not really. You can debug i386 code just fine, right? It also doesn't have PC mapped to register file.