Check cpuid ABM bit.
* config/i386/cpuid.h (bit_ABM): New. * config/i386/driver-i386.c (host_detect_local_cpu): Add -mabm to the options when bit_ABM is set. From-SVN: r155060
This commit is contained in:
parent
7fccdfcfb9
commit
c3d34a7861
@ -1,3 +1,9 @@
|
|||||||
|
2009-12-07 Sebastian Pop <sebastian.pop@amd.com>
|
||||||
|
|
||||||
|
* config/i386/cpuid.h (bit_ABM): New.
|
||||||
|
* config/i386/driver-i386.c (host_detect_local_cpu): Add -mabm to the
|
||||||
|
options when bit_ABM is set.
|
||||||
|
|
||||||
2009-12-07 Jakub Jelinek <jakub@redhat.com>
|
2009-12-07 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* config/i386/i386.c (bdesc_special_args): Move __builtin_clzs from
|
* config/i386/i386.c (bdesc_special_args): Move __builtin_clzs from
|
||||||
|
@ -46,11 +46,12 @@
|
|||||||
|
|
||||||
/* Extended Features */
|
/* Extended Features */
|
||||||
/* %ecx */
|
/* %ecx */
|
||||||
#define bit_FMA4 (1 << 16)
|
|
||||||
#define bit_LAHF_LM (1 << 0)
|
#define bit_LAHF_LM (1 << 0)
|
||||||
#define bit_LWP (1 << 15)
|
#define bit_ABM (1 << 5)
|
||||||
#define bit_SSE4a (1 << 6)
|
#define bit_SSE4a (1 << 6)
|
||||||
#define bit_XOP (1 << 11)
|
#define bit_XOP (1 << 11)
|
||||||
|
#define bit_LWP (1 << 15)
|
||||||
|
#define bit_FMA4 (1 << 16)
|
||||||
|
|
||||||
/* %edx */
|
/* %edx */
|
||||||
#define bit_LM (1 << 29)
|
#define bit_LM (1 << 29)
|
||||||
|
@ -383,7 +383,7 @@ const char *host_detect_local_cpu (int argc, const char **argv)
|
|||||||
unsigned int has_longmode = 0, has_3dnowp = 0, has_3dnow = 0;
|
unsigned int has_longmode = 0, has_3dnowp = 0, has_3dnow = 0;
|
||||||
unsigned int has_movbe = 0, has_sse4_1 = 0, has_sse4_2 = 0;
|
unsigned int has_movbe = 0, has_sse4_1 = 0, has_sse4_2 = 0;
|
||||||
unsigned int has_popcnt = 0, has_aes = 0, has_avx = 0;
|
unsigned int has_popcnt = 0, has_aes = 0, has_avx = 0;
|
||||||
unsigned int has_pclmul = 0;
|
unsigned int has_pclmul = 0, has_abm = 0;
|
||||||
|
|
||||||
bool arch;
|
bool arch;
|
||||||
|
|
||||||
@ -444,6 +444,7 @@ const char *host_detect_local_cpu (int argc, const char **argv)
|
|||||||
|
|
||||||
has_lahf_lm = ecx & bit_LAHF_LM;
|
has_lahf_lm = ecx & bit_LAHF_LM;
|
||||||
has_sse4a = ecx & bit_SSE4a;
|
has_sse4a = ecx & bit_SSE4a;
|
||||||
|
has_abm = ecx & bit_ABM;
|
||||||
|
|
||||||
has_longmode = edx & bit_LM;
|
has_longmode = edx & bit_LM;
|
||||||
has_3dnowp = edx & bit_3DNOWP;
|
has_3dnowp = edx & bit_3DNOWP;
|
||||||
@ -622,6 +623,8 @@ const char *host_detect_local_cpu (int argc, const char **argv)
|
|||||||
options = concat (options, " -mpclmul", NULL);
|
options = concat (options, " -mpclmul", NULL);
|
||||||
if (has_popcnt)
|
if (has_popcnt)
|
||||||
options = concat (options, " -mpopcnt", NULL);
|
options = concat (options, " -mpopcnt", NULL);
|
||||||
|
if (has_abm)
|
||||||
|
options = concat (options, " -mabm", NULL);
|
||||||
|
|
||||||
if (has_avx)
|
if (has_avx)
|
||||||
options = concat (options, " -mavx", NULL);
|
options = concat (options, " -mavx", NULL);
|
||||||
|
Loading…
Reference in New Issue
Block a user