1
0
mirror of https://github.com/google/cpu_features.git synced 2025-07-01 13:21:13 +02:00

Added RPI zero with its features HALF, THUMB, FASTMULT, EDSP, JAVA and TLS (#75)

This commit is contained in:
Dr.-Ing. Patrick Siegl
2019-06-18 12:53:08 +02:00
committed by Guillaume Chatelet
parent 367bc42116
commit 6482bad213
4 changed files with 124 additions and 0 deletions

View File

@ -21,11 +21,17 @@
CPU_FEATURES_START_CPP_NAMESPACE
typedef struct {
int half : 1; // Half-word loads and stores
int thumb : 1; // Thumb (16-bit instruction set)
int fastmult : 1; // 32x32->64-bit multiplication
int vfp : 1; // Vector Floating Point.
int edsp : 1; // DSP extensions (the 'e' variant of the ARM9 CPUs, and all others above)
int java : 1; // Jazelle (Java bytecode accelerator)
int iwmmxt : 1; // Intel Wireless MMX Technology.
int neon : 1; // Advanced SIMD.
int vfpv3 : 1; // VFP version 3
int vfpv3d16 : 1; // VFP version 3 with 16 D-registers
int tls : 1; // TLS register
int vfpv4 : 1; // VFP version 4 with fast context switching
int idiva : 1; // SDIV and UDIV hardware division in ARM mode.
int idivt : 1; // SDIV and UDIV hardware division in Thumb mode.
@ -59,11 +65,17 @@ uint32_t GetArmCpuId(const ArmInfo* const info);
// Introspection functions
typedef enum {
ARM_HALF,
ARM_THUMB,
ARM_FASTMULT,
ARM_VFP,
ARM_EDSP,
ARM_JAVA,
ARM_IWMMXT,
ARM_NEON,
ARM_VFPV3,
ARM_VFPV3D16,
ARM_TLS,
ARM_VFPV4,
ARM_IDIVA,
ARM_IDIVT,

View File

@ -35,11 +35,17 @@ CPU_FEATURES_START_CPP_NAMESPACE
#define AARCH64_HWCAP_CRC32 (1UL << 7)
// http://elixir.free-electrons.com/linux/latest/source/arch/arm/include/uapi/asm/hwcap.h
#define ARM_HWCAP_HALF (1UL << 1)
#define ARM_HWCAP_THUMB (1UL << 2)
#define ARM_HWCAP_FAST_MULT (1UL << 4)
#define ARM_HWCAP_VFP (1UL << 6)
#define ARM_HWCAP_EDSP (1UL << 7)
#define ARM_HWCAP_JAVA (1UL << 8)
#define ARM_HWCAP_IWMMXT (1UL << 9)
#define ARM_HWCAP_NEON (1UL << 12)
#define ARM_HWCAP_VFPV3 (1UL << 13)
#define ARM_HWCAP_VFPV3D16 (1UL << 14)
#define ARM_HWCAP_TLS (1UL << 15)
#define ARM_HWCAP_VFPV4 (1UL << 16)
#define ARM_HWCAP_IDIVA (1UL << 17)
#define ARM_HWCAP_IDIVT (1UL << 18)