diff --git a/meta-oe/recipes-benchmark/tinymembench/tinymembench/0001-x86-sse2-Use-the-preprocessor-for-register-aliases.patch b/meta-oe/recipes-benchmark/tinymembench/tinymembench/0001-x86-sse2-Use-the-preprocessor-for-register-aliases.patch new file mode 100644 index 0000000000..ebc9327f89 --- /dev/null +++ b/meta-oe/recipes-benchmark/tinymembench/tinymembench/0001-x86-sse2-Use-the-preprocessor-for-register-aliases.patch @@ -0,0 +1,69 @@ +From a0c69f4ab35712592194cd3839d78bfecdd4992c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 9 Nov 2026 08:37:31 -0800 +Subject: [PATCH] x86-sse2: Use the preprocessor for register aliases + +clang's integrated assembler can not infer the operand size from a +register that is aliased with .set: + + x86-sse2.S:124:9: error: ambiguous operand size for instruction 'add' + +The aliases are the same for all functions, so define them with the +preprocessor instead, which works with both GNU as and clang. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + x86-sse2.S | 31 +++++++++++++++++++------------ + 1 file changed, 19 insertions(+), 12 deletions(-) + +diff --git a/x86-sse2.S b/x86-sse2.S +index 409031b..2ab9e38 100644 +--- a/x86-sse2.S ++++ b/x86-sse2.S +@@ -28,26 +28,33 @@ + + #define PREFETCH_DISTANCE 256 + +-.macro asm_function_helper function_name +- .global \function_name +-\function_name: ++/* ++ * Use the preprocessor for the register aliases, clang's integrated ++ * assembler can not infer the operand size from a register set with .set ++ */ + #ifdef __amd64__ + #ifdef _WIN64 +- .set DST, rcx +- .set SRC, rdx +- .set SIZE, r8 ++ #define DST rcx ++ #define SRC rdx ++ #define SIZE r8 + #else +- .set DST, rdi +- .set SRC, rsi +- .set SIZE, rdx ++ #define DST rdi ++ #define SRC rsi ++ #define SIZE rdx + #endif + #else ++ #define DST eax ++ #define SRC ecx ++ #define SIZE edx ++#endif ++ ++.macro asm_function_helper function_name ++ .global \function_name ++\function_name: ++#ifndef __amd64__ + mov eax, [esp + 4] + mov ecx, [esp + 8] + mov edx, [esp + 12] +- .set DST, eax +- .set SRC, ecx +- .set SIZE, edx + #endif + .endm + diff --git a/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb b/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb index f0527a7ca3..1e6f642217 100644 --- a/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb +++ b/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb @@ -12,6 +12,7 @@ SRCREV = "a2cf6d7e382e3aea1eb39173174d9fa28cad15f3" UPSTREAM_CHECK_COMMITS = "1" SRC_URI = "git://github.com/ssvb/tinymembench.git;branch=master;protocol=https \ file://0001-asm-Delete-.func-.endfunc-directives.patch \ + file://0001-x86-sse2-Use-the-preprocessor-for-register-aliases.patch \ "