re PR target/37179 (gcc emits bad opcode 'ffreep')
PR target/37179 * config/i386/driver-i386.c (processor_signatures): New enum. (SIG_GEODE): Move from vendor_signatures to processor_signatures. (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE processor signature to detect geode processor. From-SVN: r147469
This commit is contained in:
parent
461b23e38e
commit
edc702bfe7
|
@ -1,3 +1,11 @@
|
|||
2009-05-13 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR target/37179
|
||||
* config/i386/driver-i386.c (processor_signatures): New enum.
|
||||
(SIG_GEODE): Move from vendor_signatures to processor_signatures.
|
||||
(host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
|
||||
processor signature to detect geode processor.
|
||||
|
||||
2009-05-12 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
Backport from mainline:
|
||||
|
|
|
@ -336,7 +336,11 @@ detect_caches_intel (bool xeon_mp, unsigned max_level, unsigned max_ext_level)
|
|||
enum vendor_signatures
|
||||
{
|
||||
SIG_INTEL = 0x756e6547 /* Genu */,
|
||||
SIG_AMD = 0x68747541 /* Auth */,
|
||||
SIG_AMD = 0x68747541 /* Auth */
|
||||
};
|
||||
|
||||
enum processor_signatures
|
||||
{
|
||||
SIG_GEODE = 0x646f6547 /* Geod */
|
||||
};
|
||||
|
||||
|
@ -433,19 +437,27 @@ const char *host_detect_local_cpu (int argc, const char **argv)
|
|||
|
||||
if (vendor == SIG_AMD)
|
||||
{
|
||||
processor = PROCESSOR_PENTIUM;
|
||||
unsigned int name;
|
||||
|
||||
if (has_mmx)
|
||||
processor = PROCESSOR_K6;
|
||||
if (has_3dnowp)
|
||||
processor = PROCESSOR_ATHLON;
|
||||
if (has_sse2 || has_longmode)
|
||||
processor = PROCESSOR_K8;
|
||||
if (has_sse4a)
|
||||
/* Detect geode processor by its processor signature. */
|
||||
if (ext_level > 0x80000001)
|
||||
__cpuid (0x80000002, name, ebx, ecx, edx);
|
||||
else
|
||||
name = 0;
|
||||
|
||||
if (name == SIG_GEODE)
|
||||
processor = PROCESSOR_GEODE;
|
||||
else if (has_sse4a)
|
||||
processor = PROCESSOR_AMDFAM10;
|
||||
else if (has_sse2 || has_longmode)
|
||||
processor = PROCESSOR_K8;
|
||||
else if (has_3dnowp)
|
||||
processor = PROCESSOR_ATHLON;
|
||||
else if (has_mmx)
|
||||
processor = PROCESSOR_K6;
|
||||
else
|
||||
processor = PROCESSOR_PENTIUM;
|
||||
}
|
||||
else if (vendor == SIG_GEODE)
|
||||
processor = PROCESSOR_GEODE;
|
||||
else
|
||||
{
|
||||
switch (family)
|
||||
|
|
Loading…
Reference in New Issue