diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/arm/mach/init.c | 7 | ||||
-rw-r--r-- | src/init.c | 2 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/arm/mach/init.c b/src/arm/mach/init.c index e912de6..d820744 100644 --- a/src/arm/mach/init.c +++ b/src/arm/mach/init.c @@ -25,6 +25,10 @@ #define CPUFAMILY_ARM_LIGHTNING_THUNDER 0x462504D2 #endif +#ifndef CPUFAMILY_ARM_FIRESTORM_ICESTORM + #define CPUFAMILY_ARM_FIRESTORM_ICESTORM 0x1B588BB3 +#endif + struct cpuinfo_arm_isa cpuinfo_isa = { #if CPUINFO_ARCH_ARM .thumb = true, @@ -101,6 +105,9 @@ static enum cpuinfo_uarch decode_uarch(uint32_t cpu_family, uint32_t cpu_subtype case CPUFAMILY_ARM_LIGHTNING_THUNDER: /* Hexa-core: 2x Lightning + 4x Thunder; Octa-core (presumed): 4x Lightning + 4x Thunder */ return core_index + 4 < core_count ? cpuinfo_uarch_lightning : cpuinfo_uarch_thunder; + case CPUFAMILY_ARM_FIRESTORM_ICESTORM: + /* Hexa-core: 2x Firestorm + 4x Icestorm; Octa-core: 4x Firestorm + 4x Icestorm */ + return core_index + 4 < core_count ? cpuinfo_uarch_firestorm : cpuinfo_uarch_icestorm; default: /* Use hw.cpusubtype for detection */ break; @@ -37,6 +37,8 @@ bool CPUINFO_ABI cpuinfo_initialize(void) { pthread_once(&init_guard, &cpuinfo_arm_linux_init); #elif defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE pthread_once(&init_guard, &cpuinfo_arm_mach_init); + #elif defined(__MACH__) && defined(__APPLE__) + pthread_once(&init_guard, &cpuinfo_arm_mach_init); #else cpuinfo_log_error("operating system is not supported in cpuinfo"); #endif |