[dpdk-dev,v2,10/12] app/test: remove architecture specific code from cpuflags test
Commit Message
Test all defined CPU flags for supported architectures so that we
do not have to include conditional compilation for each architecture
in app test case.
Signed-off-by: Zhigang Lu <zlu@ezchip.com>
Signed-off-by: Cyril Chemparathy <cchemparathy@ezchip.com>
---
app/test/test_cpuflags.c | 78 ++++--------------------------------------------
1 file changed, 5 insertions(+), 73 deletions(-)
@@ -77,81 +77,13 @@ cpu_flag_result(int result)
static int
test_cpuflags(void)
{
- int result;
+ int i, result;
printf("\nChecking for flags from different registers...\n");
-#ifdef RTE_ARCH_PPC_64
- printf("Check for PPC64:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_PPC64);
-
- printf("Check for PPC32:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_PPC32);
-
- printf("Check for VSX:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_VSX);
-
- printf("Check for DFP:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_DFP);
-
- printf("Check for FPU:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_FPU);
-
- printf("Check for SMT:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_SMT);
-
- printf("Check for MMU:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_MMU);
-
- printf("Check for ALTIVEC:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_ALTIVEC);
-
- printf("Check for ARCH_2_06:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_ARCH_2_06);
-
- printf("Check for ARCH_2_07:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_ARCH_2_07);
-
- printf("Check for ICACHE_SNOOP:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_ICACHE_SNOOP);
-#else
- printf("Check for SSE:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_SSE);
-
- printf("Check for SSE2:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_SSE2);
-
- printf("Check for SSE3:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_SSE3);
-
- printf("Check for SSE4.1:\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_SSE4_1);
-
- printf("Check for SSE4.2:\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_SSE4_2);
-
- printf("Check for AVX:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_AVX);
-
- printf("Check for AVX2:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_AVX2);
-
- printf("Check for TRBOBST:\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_TRBOBST);
-
- printf("Check for ENERGY_EFF:\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_ENERGY_EFF);
-
- printf("Check for LAHF_SAHF:\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_LAHF_SAHF);
-
- printf("Check for 1GB_PG:\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_1GB_PG);
-
- printf("Check for INVTSC:\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_INVTSC);
-
-
-#endif
+ for (i = 0; i < RTE_CPUFLAG_NUMFLAGS; i++) {
+ printf("Check for %s:\t\t", cpu_feature_table[i].name);
+ CHECK_FOR_FLAG(i);
+ }
/*
* Check if invalid data is handled properly