On Wed, Jan 07, 2026 at 10:50:37AM -0500, D. Hugh Redelmeier via Talk wrote:
My recollection is that 64-bit ARM machine code is significantly less dense that 32-bit ARM code. If you are short of memory, this may matter.
On RPi 3, if I remember correctly, 64-bit performance was worse than 32-bit performance.
If your processes are less that 3GiB, 64-bit pointers are only a waste.
Apparently the arm 64 bit instruction set is often smaller due to having twice as many registers available reducing the number of memory access instruction needed, and also some of the new instructions can replace multiple older ones. Your program will use more ram because of 64 bit pointers, but the code itself is often smaller than before, even when compared to thumb-2. Rather impressive job they did. They went from 15 to 31 general purpose registers. Similar to the huge improvement amd64 has over x86 largely due to way more registers, a cleaner memory management setup, and exterminating the x87 in favour of SSE only for floating point. Certainly in the past many architectures that moved to 64 bit saw a slowdown and increased code size and was only worth it if the program needed that much ram (like a large database server). Sparc was certainly a case of being like that and many sparc systems were running 64 bit kernels with a mostly 32 bit user space except for the few programs where 64 bit was worth it. -- Len Sorensen