eal: remove unnecessary use of statement expression
Checks
Commit Message
Remove use of statement expression syntax in expansion of
MOVEUNALIGNED_LEFT47_IMM and MOVEUNALIGNED_LEFT47 macro expansions.
There appears to be no need to use the statement expression compiler
extension a simple block should work.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
---
lib/eal/x86/include/rte_memcpy.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
Comments
ping
could relevant maintainers take a look?
thank you!
On Tue, Jan 30, 2024 at 04:18:49PM -0800, Tyler Retzlaff wrote:
> Remove use of statement expression syntax in expansion of
> MOVEUNALIGNED_LEFT47_IMM and MOVEUNALIGNED_LEFT47 macro expansions.
>
> There appears to be no need to use the statement expression compiler
> extension a simple block should work.
>
> Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
> ---
> lib/eal/x86/include/rte_memcpy.h | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/lib/eal/x86/include/rte_memcpy.h b/lib/eal/x86/include/rte_memcpy.h
> index fd151be..72a9229 100644
> --- a/lib/eal/x86/include/rte_memcpy.h
> +++ b/lib/eal/x86/include/rte_memcpy.h
> @@ -610,7 +610,7 @@
> * - __m128i <xmm0> ~ <xmm8> must be pre-defined
> */
> #define MOVEUNALIGNED_LEFT47_IMM(dst, src, len, offset) \
> -__extension__ ({ \
> +{ \
> size_t tmp; \
> while (len >= 128 + 16 - offset) { \
> xmm0 = _mm_loadu_si128((const __m128i *)(const void *)((const uint8_t *)src - offset + 0 * 16)); \
> @@ -656,7 +656,7 @@
> src = (const uint8_t *)src + tmp; \
> dst = (uint8_t *)dst + tmp; \
> } \
> -})
> +}
>
> /**
> * Macro for copying unaligned block from one location to another,
> @@ -671,7 +671,7 @@
> * - __m128i <xmm0> ~ <xmm8> used in MOVEUNALIGNED_LEFT47_IMM must be pre-defined
> */
> #define MOVEUNALIGNED_LEFT47(dst, src, len, offset) \
> -__extension__ ({ \
> +{ \
> switch (offset) { \
> case 0x01: MOVEUNALIGNED_LEFT47_IMM(dst, src, n, 0x01); break; \
> case 0x02: MOVEUNALIGNED_LEFT47_IMM(dst, src, n, 0x02); break; \
> @@ -690,7 +690,7 @@
> case 0x0F: MOVEUNALIGNED_LEFT47_IMM(dst, src, n, 0x0F); break; \
> default:; \
> } \
> -})
> +}
>
> static __rte_always_inline void *
> rte_memcpy_generic(void *dst, const void *src, size_t n)
> --
> 1.8.3.1
On Mon, Feb 12, 2024 at 6:56 PM Tyler Retzlaff
<roretzla@linux.microsoft.com> wrote:
>
> ping
>
> could relevant maintainers take a look?
This change comes from the old commit 5f2c68a710e1 ("lib: work around
braced-groups within expressions").
I suspect this change breaks application compiling with pedantic,
without setting a C standard >= C11.
On Tue, Feb 13, 2024 at 11:41 AM David Marchand
<david.marchand@redhat.com> wrote:
>
> On Mon, Feb 12, 2024 at 6:56 PM Tyler Retzlaff
> <roretzla@linux.microsoft.com> wrote:
> >
> > ping
> >
> > could relevant maintainers take a look?
>
> This change comes from the old commit 5f2c68a710e1 ("lib: work around
> braced-groups within expressions").
> I suspect this change breaks application compiling with pedantic,
> without setting a C standard >= C11.
Oh, I get it now.
I was confused because of the other series 30308.
I'll merge this first patch.
On Wed, Jan 31, 2024 at 1:19 AM Tyler Retzlaff
<roretzla@linux.microsoft.com> wrote:
>
> Remove use of statement expression syntax in expansion of
> MOVEUNALIGNED_LEFT47_IMM and MOVEUNALIGNED_LEFT47 macro expansions.
>
> There appears to be no need to use the statement expression compiler
> extension a simple block should work.
>
> Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Applied, thanks.
@@ -610,7 +610,7 @@
* - __m128i <xmm0> ~ <xmm8> must be pre-defined
*/
#define MOVEUNALIGNED_LEFT47_IMM(dst, src, len, offset) \
-__extension__ ({ \
+{ \
size_t tmp; \
while (len >= 128 + 16 - offset) { \
xmm0 = _mm_loadu_si128((const __m128i *)(const void *)((const uint8_t *)src - offset + 0 * 16)); \
@@ -656,7 +656,7 @@
src = (const uint8_t *)src + tmp; \
dst = (uint8_t *)dst + tmp; \
} \
-})
+}
/**
* Macro for copying unaligned block from one location to another,
@@ -671,7 +671,7 @@
* - __m128i <xmm0> ~ <xmm8> used in MOVEUNALIGNED_LEFT47_IMM must be pre-defined
*/
#define MOVEUNALIGNED_LEFT47(dst, src, len, offset) \
-__extension__ ({ \
+{ \
switch (offset) { \
case 0x01: MOVEUNALIGNED_LEFT47_IMM(dst, src, n, 0x01); break; \
case 0x02: MOVEUNALIGNED_LEFT47_IMM(dst, src, n, 0x02); break; \
@@ -690,7 +690,7 @@
case 0x0F: MOVEUNALIGNED_LEFT47_IMM(dst, src, n, 0x0F); break; \
default:; \
} \
-})
+}
static __rte_always_inline void *
rte_memcpy_generic(void *dst, const void *src, size_t n)