summaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2016-09-28 18:22:16 +0000
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2016-09-28 18:22:16 +0000
commit4785ab7437d2a666dd09bf98d5eec2a32cca7109 (patch)
tree8acd6bcd258d1618a832923ef740c2337b5b7938 /libgcc
parent073518635114435f1a775f1cfef8228dae5b43d2 (diff)
downloadgcc-4785ab7437d2a666dd09bf98d5eec2a32cca7109.tar.gz
* config/i386/cpuinfo.c (__get_cpuid_output): Remove.
(__cpu_indicator_init): Call __get_cpuid, not __get_cpuid_output. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@240590 138bc75d-0d04-0410-961f-82ee72b054a4
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 d1b2d21e2e9..f876b9b16d3 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 8c2248df3d3..af203f2a37e 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;