4 ms·
One good thing about 64-bit ARM is that there are no optional extensions (yet...) Floating-point and SIMD support are both required. As for your library, ignor
by brigade 14y ago
One good thing about 64-bit ARM is that there are no optional extensions (yet...) Floating-point and SIMD support are both required.
As for your library, ignore CPU models to start with. Instead, look at the ARM architecture reference manual for a given revision; it will say which instructions are supported and which extensions are optional. Also the quick reference [1] which has a good summary of when various core instructions were added. Then test for the instructions you actually care about.
You can safely ignore Thumb; it's an alternate encoding with tradeoffs that made sense nearly two decades ago but not anymore. You can also mostly ignore Thumb-2; there are processors that only support Thumb-2 but they also lack MMUs. Thumb-2 added some additional ARM instructions that can be useful, however.
So essentially, (with each revision including the prior)
ARMv4 : baseline
ARMv5E : Load/store double, more multiply instructions, prefetch, bx <reg>
ARMv6 : DSP extensions, rev, load/store exclusive
ARMv6T2 : Thumb-2, movw/movt, bitfield manipulation, rbit, orn
ARMv7-A : Memory barriers
Thumb was optional in v4 and v5, and mandatory in v6. VFP was optional as of ARMv6, NEON optional as of ARMv7. NEON mandates VFP. Revisions of VFP and NEON aren't terribly important, except that VFPv3 (but not VFPv3-d16) gets 32 registers.
As for chip to care about, ARMv6 + VFP (ARM1176jzf-s), ARMv7-A + VFPv3-d16 (Tegra 2), and ARMv7-A + NEON are by far the most common for general purpose stuff. If you want to get old-school, test a SheevaPlug for ARMv5E and an old PDA for ARMv4, though I'd not worry too much about ARMv4 (llvm for instance requires a baseline of ARMv5E last I checked.)
[1] http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL.pdf http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QR...
- haberman 14y agoThis is a fantastically informative comment, thank you!