diff --git a/driver/others/dynamic_power.c b/driver/others/dynamic_power.c index 6ed26ad1e..734122178 100644 --- a/driver/others/dynamic_power.c +++ b/driver/others/dynamic_power.c @@ -233,8 +233,27 @@ static int __builtin_cpu_supports(char* arg) } return 0; } + +static int __builtin_cpu_is(char *arg) +{ + static int ipinfo = -1; + if (ipinfo < 0) { + ipinfo = cpuid(); + } + if (ipinfo == CPU_POWER10) { + if (!strcmp(arg, "power10")) return 1; + } else if (ipinfo == CPU_POWER9) { + if (!strcmp(arg, "power9")) return 1; + } else if (ipinfo == CPU_POWER8) { + if (!strcmp(arg, "power8")) return 1; + } else if (ipinfo == CPU_POWER6) { + if (!strcmp(arg, "power6")) return 1; + } else { + return 0; + } +} #endif -#endif +#endif /* _AIX */ static gotoblas_t *get_coretype(void) {