aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2016-09-28 20:22:16 +0200
committerUros Bizjak <uros@gcc.gnu.org>2016-09-28 20:22:16 +0200
commite0ab375340dc9a651e00e62e79e45152ff3f8bad (patch)
tree8acd6bcd258d1618a832923ef740c2337b5b7938 /libgcc
parentb236debd3b05584e8f5091fe35f1e071a2f4385b (diff)
downloadgcc-e0ab375340dc9a651e00e62e79e45152ff3f8bad.zip
gcc-e0ab375340dc9a651e00e62e79e45152ff3f8bad.tar.gz
gcc-e0ab375340dc9a651e00e62e79e45152ff3f8bad.tar.bz2
cpuinfo.c (__get_cpuid_output): Remove.
* config/i386/cpuinfo.c (__get_cpuid_output): Remove. (__cpu_indicator_init): Call __get_cpuid, not __get_cpuid_output. From-SVN: r240590
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/ChangeLog5
-rw-r--r--libgcc/config/i386/cpuinfo.c20
2 files changed, 8 insertions, 17 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index d1b2d21..f876b9b 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,8 @@
+2015-09-28 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/cpuinfo.c (__get_cpuid_output): Remove.
+ (__cpu_indicator_init): Call __get_cpuid, not __get_cpuid_output.
+
2016-09-27 Martin Liska <mliska@suse.cz>
PR gcov-profile/7970
diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
index 8c2248d..af203f2 100644
--- a/libgcc/config/i386/cpuinfo.c
+++ b/libgcc/config/i386/cpuinfo.c
@@ -381,20 +381,6 @@ get_available_features (unsigned int ecx, unsigned int edx,
__cpu_model.__cpu_features[0] = features;
}
-/* A noinline function calling __get_cpuid. Having many calls to
- cpuid in one function in 32-bit mode causes GCC to complain:
- "can't find a register in class CLOBBERED_REGS". This is
- related to PR rtl-optimization 44174. */
-
-static int __attribute__ ((noinline))
-__get_cpuid_output (unsigned int __level,
- unsigned int *__eax, unsigned int *__ebx,
- unsigned int *__ecx, unsigned int *__edx)
-{
- return __get_cpuid (__level, __eax, __ebx, __ecx, __edx);
-}
-
-
/* A constructor function that is sets __cpu_model and __cpu_features with
the right values. This needs to run only once. This constructor is
given the highest priority and it should run before constructors without
@@ -406,7 +392,7 @@ __cpu_indicator_init (void)
{
unsigned int eax, ebx, ecx, edx;
- int max_level = 5;
+ int max_level;
unsigned int vendor;
unsigned int model, family, brand_id;
unsigned int extended_model, extended_family;
@@ -416,7 +402,7 @@ __cpu_indicator_init (void)
return 0;
/* Assume cpuid insn present. Run in level 0 to get vendor id. */
- if (!__get_cpuid_output (0, &eax, &ebx, &ecx, &edx))
+ if (!__get_cpuid (0, &eax, &ebx, &ecx, &edx))
{
__cpu_model.__cpu_vendor = VENDOR_OTHER;
return -1;
@@ -431,7 +417,7 @@ __cpu_indicator_init (void)
return -1;
}
- if (!__get_cpuid_output (1, &eax, &ebx, &ecx, &edx))
+ if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
{
__cpu_model.__cpu_vendor = VENDOR_OTHER;
return -1;