Commit 3c6a5c3f by Uros Bizjak

avx-os-support.h (XCR_XFEATURE_ENABLED_MASK): New.

	* gcc.target/i386/avx-os-support.h (XCR_XFEATURE_ENABLED_MASK): New.
	(XSTATE_FP): Ditto.
	(XSTATE_SSE): Ditto.
	(XSTATE_YMM): Ditto.
	(avx_os_support): Use new defines.

From-SVN: r188275
parent ce79b857
2012-06-06 Uros Bizjak <ubizjak@gmail.com>
* gcc.target/i386/avx-os-support.h (XCR_XFEATURE_ENABLED_MASK): New.
(XSTATE_FP): Ditto.
(XSTATE_SSE): Ditto.
(XSTATE_YMM): Ditto.
(avx_os_support): Use new defines.
2012-06-06 Richard Guenther <rguenther@suse.de> 2012-06-06 Richard Guenther <rguenther@suse.de>
PR testsuite/32380 PR testsuite/32380
......
/* Check if the OS supports executing AVX instructions. */ /* Check if the OS supports executing AVX instructions. */
#define XCR_XFEATURE_ENABLED_MASK 0x0
#define XSTATE_FP 0x1
#define XSTATE_SSE 0x2
#define XSTATE_YMM 0x4
static int static int
avx_os_support (void) avx_os_support (void)
{ {
unsigned int eax, edx; unsigned int eax, edx;
unsigned int ecx = XCR_XFEATURE_ENABLED_MASK;
__asm__ ("xgetbv" : "=a" (eax), "=d" (edx) : "c" (ecx));
__asm__ ("xgetbv" : "=a" (eax), "=d" (edx) : "c" (0)); return (eax & (XSTATE_SSE | XSTATE_YMM)) == (XSTATE_SSE | XSTATE_YMM);
return (eax & 6) == 6;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment