__ppc_get_timebase() is GNU extention and is more efficient Signed-off-by: Thinh Tran <thin...@linux.vnet.ibm.com> --- .../common/include/arch/ppc_64/rte_cycles.h | 28 ++----------------- 1 file changed, 2 insertions(+), 26 deletions(-)
diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_cycles.h b/lib/librte_eal/common/include/arch/ppc_64/rte_cycles.h index 8f2e98642..871f9b6e4 100644 --- a/lib/librte_eal/common/include/arch/ppc_64/rte_cycles.h +++ b/lib/librte_eal/common/include/arch/ppc_64/rte_cycles.h @@ -14,6 +14,7 @@ extern "C" { #include <rte_byteorder.h> #include <rte_common.h> +#include <sys/platform/ppc.h> /** * Read the time base register. @@ -24,32 +25,7 @@ extern "C" { static inline uint64_t rte_rdtsc(void) { - union { - uint64_t tsc_64; - RTE_STD_C11 - struct { -#if RTE_BYTE_ORDER == RTE_BIG_ENDIAN - uint32_t hi_32; - uint32_t lo_32; -#else - uint32_t lo_32; - uint32_t hi_32; -#endif - }; - } tsc; - uint32_t tmp; - - asm volatile( - "0:\n" - "mftbu %[hi32]\n" - "mftb %[lo32]\n" - "mftbu %[tmp]\n" - "cmpw %[tmp],%[hi32]\n" - "bne 0b\n" - : [hi32] "=r"(tsc.hi_32), [lo32] "=r"(tsc.lo_32), - [tmp] "=r"(tmp) - ); - return tsc.tsc_64; + return __ppc_get_timebase(); } static inline uint64_t -- 2.17.1