Merge pull request #8561 from SparkiDev/poly1305-arm32-asm-fix

Poly1305 ARM32 assembly code: loading with ldm
This commit is contained in:
Daniel Pouzzner
2025-03-13 22:10:41 -05:00
committed by GitHub
2 changed files with 8 additions and 2 deletions

View File

@ -815,7 +815,10 @@ L_poly1305_arm32_blocks_start_1:
mov r12, #1
push {r2}
# Load message
ldm r1, {r2, r3, r4, r5}
ldr r2, [r1]
ldr r3, [r1, #4]
ldr r4, [r1, #8]
ldr r5, [r1, #12]
# Add message
adds r7, r7, r2
adcs r8, r8, r3

View File

@ -870,7 +870,10 @@ void poly1305_arm32_blocks(Poly1305* ctx_p, const unsigned char* m_p,
"mov r12, #1\n\t"
"push {r2}\n\t"
/* Load message */
"ldm %[m], {r2, r3, r4, r5}\n\t"
"ldr %[bytes], [%[m]]\n\t"
"ldr r3, [%[m], #4]\n\t"
"ldr r4, [%[m], #8]\n\t"
"ldr r5, [%[m], #12]\n\t"
/* Add message */
"adds r7, r7, %[bytes]\n\t"
"adcs r8, r8, r3\n\t"