"features" in ARM Linux's /proc/cpuinfo

Ever wonder what these "features" (hardware capabilities) in ARM Linux's /proc/cpuinfo mean ? Here is the answer (from Linux kernel source file arch/arm/include/asm/hwcap.h):

26bit Program Counter is 26-bit long
crunch MaverickCrunch instructoin extension. Now obsolete.
edsp DSP Enhancement instructions
fastmult Fast multiplication
fpa Floating Point Accelerator instructions. Now obsolete.
half ?
idiv Integer divide instructions available in both ARM and Thumb
idiva Integer divide instructions available in ARM only
idivt Integer divide instructions available in Thumb only
iwmmxt Intel Wireless MMX Technology, an implementation of MMX on embedded processors.
java Jazelle technology
neon NEON SIMD instructions
swp SWP (SWaP) instruction, which is used to implement a binary semaphore (mutex)
thumb Thumb instructions
thumbee Thumb Execution Environment
tls Thread local storage
vfp Vector Floating Point instruction extension
vfpv3 Vector Floating Point instruction extension version 3, with 32 double-precision registers
vfpv3d16 Vector Floating Point instruction extension version 3, with 16 double-precision registers
vfpv4 Vector Floating Point instruction extension version 4
Also, check this link.