[PATCH v1] ptr_compress: fix offset to use portable type
Paul Szczepanek
paul.szczepanek at arm.com
Wed Jun 19 18:27:13 CEST 2024
Fix the type of offset to use portable uintptr_t instead of uint64_t.
Fixes: 077596a4b077 ("ptr_compress: add pointer compression library")
Reviewed-by: Nick Connolly <nick.connolly at arm.com>
Signed-off-by: Paul Szczepanek <paul.szczepanek at arm.com>
---
lib/ptr_compress/rte_ptr_compress.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/ptr_compress/rte_ptr_compress.h b/lib/ptr_compress/rte_ptr_compress.h
index ca746970c0..9742a9594a 100644
--- a/lib/ptr_compress/rte_ptr_compress.h
+++ b/lib/ptr_compress/rte_ptr_compress.h
@@ -141,7 +141,7 @@ rte_ptr_compress_32_shift(void *ptr_base, void * const *src_table,
i += svcntd();
} while (i < n);
#elif defined __ARM_NEON && !defined RTE_ARCH_ARMv8_AARCH32
- uint64_t ptr_diff;
+ uintptr_t ptr_diff;
uint64x2_t v_ptr_table;
/* right shift is done by left shifting by negative int */
int64x2_t v_shift = vdupq_n_s64(-bit_shift);
@@ -202,7 +202,7 @@ rte_ptr_decompress_32_shift(void *ptr_base, uint32_t const *src_table,
i += svcntd();
} while (i < n);
#elif defined __ARM_NEON && !defined RTE_ARCH_ARMv8_AARCH32
- uint64_t ptr_diff;
+ uintptr_t ptr_diff;
uint64x2_t v_ptr_table;
int64x2_t v_shift = vdupq_n_s64(bit_shift);
uint64x2_t v_ptr_base = vdupq_n_u64((uint64_t)ptr_base);
@@ -215,7 +215,7 @@ rte_ptr_decompress_32_shift(void *ptr_base, uint32_t const *src_table,
}
/* process leftover single item in case of odd number of n */
if (unlikely(n & 0x1)) {
- ptr_diff = ((uint64_t) src_table[i]) << bit_shift;
+ ptr_diff = ((uintptr_t) src_table[i]) << bit_shift;
dest_table[i] = RTE_PTR_ADD(ptr_base, ptr_diff);
}
#else
--
2.25.1
More information about the dev
mailing list