asm: ARMv7-M: replace unity-gain write_samples() asm with memcpy

Change-Id: I164894d944136474b1b6ba1ce106f163a5db9642
This commit is contained in:
Aidan MacDonald 2026-06-06 16:11:27 +01:00 • committed by Solomon Peachy
parent b4a0dc7274
commit f20086c91a

View file

@ -76,25 +76,7 @@ static FORCE_INLINE void write_samples(void *out,
{
/* Channel is unity amplitude */
#if defined(CPU_ARM_MICRO) && ARCH_VERSION >= 7
asm volatile (
"ands r4, %2, #0x1f \n"
"beq 2f \n"
"1: \n"
"ldr r3, [%1], #4 \n"
"subs r4, r4, #4 \n"
"str r3, [%0], #4 \n"
"bne 1b \n"
"bics %2, %2, #0x1f \n"
"beq 3f \n"
"2: \n"
"ldmia %1!, { r3-r10 } \n"
"subs %2, %2, #32 \n"
"stmia %0!, { r3-r10 } \n"
"bhi 2b \n"
"3: \n"
: "+lr"(out), "+lr"(src), "+r"(size)
:
: "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10");
memcpy(out, src, size);
#else
asm volatile (
"ands r1, %2, #0x1f \n"