cpuid.h: New file.
* gcc/config/i386/cpuid.h: New file. * gcc/config/i386/driver-i386.c: Include cpuid.h. (describe_cache): Shrink size and line strings to 100 bytes. (detect_caches_amd): Return "" for unsupported max_ext_level. Use __cpuid function. (detect_caches_intel): Return "" for unsupported max_level. Use __cpuid function. (host_detect_local_cpu): Change feature flag variables to unsigned int. Initialize only extended feature flag variables. Use __get_cpuid_max to determine max supported cpuid level. Use __cpuid function to determine supported features. Fix calculation of family id. Remove is_amd and check signature directly. Check for Geode signature. Handle family 4 id. [PROCESSOR_GENERIC32]: New default for unknown family id. Move cpu discovery code to other part of the function. [PROCESSOR_PENTIUM, PROCESSOR_K6, PROCESSOR_ATHLON]: Do not tune for sub-architecture. [PROCESSOR_PENTIUMPRO]: Simplify cpu discovery code. [PROCESSOR_K8]: Add k8-sse3 architecture. [PROCESSOR_GENERIC64]: Remove. * gcc/config/i386/x-i386 (driver-i386.o): Depend on cpuid.h. * gcc/config/i386/crtfastmath.c: Include cpuid.h. Use __get_cpuid to check for SSE and FXSAVE support. * gcc/config/i386/t-crtfm (crtfastmath.o): Depend on cpuid.h. Add -minline-all-stringops. * gcc/config.gcc (i[34567]86-*-*): Add cpuid.h to extra_headers. (x86_64-*-*): Ditto. testsuite/ChangeLog: * gcc.dg/i386-cpuid.h: Remove. * gcc.target/i386/mmx-check.h: Include cpuid.h. Use __get_cpuid. * gcc.target/i386/sse-check.h: Ditto. * gcc.target/i386/sse2-check.h: Ditto. * gcc.target/i386/sse3-check.h: Ditto. * gcc.target/i386/ssse3-check.h: Ditto. * gcc.target/i386/sse4_1-check.h: Ditto. * gcc.target/i386/sse4_2-check.h: Ditto. * gcc.target/i386/sse4a-check.h: Ditto. * gcc.dg/torture/pr16104-1.c: Ditto. * gcc.target/i386/mmx-4.c: Do not use NOINLINE. * gcc.target/i386/sse-6.c: Ditto. * gcc.target/i386/sse-7.c: Ditto. * g++.dg/other/i386-1.C: Include cpuid.h. (main): New function. Use __get_cpuid to check target fetaures. libgomp/ChangeLog: * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets. (main): Use __get_cpuid to get i386 target fetaures. * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets. (main): Use __get_cpuid to get x86_64 target fetaures. From-SVN: r128141
Showing
- gcc/ChangeLog 32 additions, 1 deletiongcc/ChangeLog
- gcc/config.gcc 2 additions, 2 deletionsgcc/config.gcc
- gcc/config/i386/cpuid.h 133 additions, 0 deletionsgcc/config/i386/cpuid.h
- gcc/config/i386/crtfastmath.c 9 additions, 26 deletionsgcc/config/i386/crtfastmath.c
- gcc/config/i386/driver-i386.c 130 additions, 168 deletionsgcc/config/i386/driver-i386.c
- gcc/config/i386/t-crtfm 3 additions, 2 deletionsgcc/config/i386/t-crtfm
- gcc/config/i386/x-i386 1 addition, 0 deletionsgcc/config/i386/x-i386
- gcc/testsuite/ChangeLog 29 additions, 11 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/g++.dg/other/i386-1.C 17 additions, 2 deletionsgcc/testsuite/g++.dg/other/i386-1.C
- gcc/testsuite/gcc.dg/i386-cpuid.h 0 additions, 152 deletionsgcc/testsuite/gcc.dg/i386-cpuid.h
- gcc/testsuite/gcc.dg/torture/pr16104-1.c 11 additions, 11 deletionsgcc/testsuite/gcc.dg/torture/pr16104-1.c
- gcc/testsuite/gcc.target/i386/mmx-4.c 2 additions, 2 deletionsgcc/testsuite/gcc.target/i386/mmx-4.c
- gcc/testsuite/gcc.target/i386/mmx-check.h 6 additions, 5 deletionsgcc/testsuite/gcc.target/i386/mmx-check.h
- gcc/testsuite/gcc.target/i386/sse-10.c 1 addition, 1 deletiongcc/testsuite/gcc.target/i386/sse-10.c
- gcc/testsuite/gcc.target/i386/sse-6.c 2 additions, 2 deletionsgcc/testsuite/gcc.target/i386/sse-6.c
- gcc/testsuite/gcc.target/i386/sse-7.c 2 additions, 2 deletionsgcc/testsuite/gcc.target/i386/sse-7.c
- gcc/testsuite/gcc.target/i386/sse-check.h 6 additions, 5 deletionsgcc/testsuite/gcc.target/i386/sse-check.h
- gcc/testsuite/gcc.target/i386/sse2-check.h 6 additions, 5 deletionsgcc/testsuite/gcc.target/i386/sse2-check.h
- gcc/testsuite/gcc.target/i386/sse3-check.h 8 additions, 6 deletionsgcc/testsuite/gcc.target/i386/sse3-check.h
- gcc/testsuite/gcc.target/i386/sse4_1-check.h 7 additions, 5 deletionsgcc/testsuite/gcc.target/i386/sse4_1-check.h
Loading
Please register or sign in to comment