Mark stack variables as early clobber for technical correctness

In the field 5x52 asm for x86_64, stack variables are provided as outputs.
The existing inputs are all forcibly allocated to registers, so cannot
coincide, but mark them as early clobber anyway to make this clearer.
This commit is contained in:
Pieter Wuille 2023-05-12 05:17:11 -04:00 committed by Jonas Nick
parent 56a5d41429
commit 39407c3f59
No known key found for this signature in database
GPG Key ID: 4861DBF262123605

View File

@ -278,7 +278,7 @@ __asm__ __volatile__(
"addq %%rsi,%%r8\n" "addq %%rsi,%%r8\n"
/* r[4] = c */ /* r[4] = c */
"movq %%r8,32(%%rdi)\n" "movq %%r8,32(%%rdi)\n"
: "+S"(a), "=m"(tmp1), "=m"(tmp2), "=m"(tmp3) : "+S"(a), "=&m"(tmp1), "=&m"(tmp2), "=&m"(tmp3)
: "b"(b), "D"(r) : "b"(b), "D"(r)
: "%rax", "%rcx", "%rdx", "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15", "cc", "memory" : "%rax", "%rcx", "%rdx", "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15", "cc", "memory"
); );
@ -493,7 +493,7 @@ __asm__ __volatile__(
"addq %%rsi,%%r8\n" "addq %%rsi,%%r8\n"
/* r[4] = c */ /* r[4] = c */
"movq %%r8,32(%%rdi)\n" "movq %%r8,32(%%rdi)\n"
: "+S"(a), "=m"(tmp1), "=m"(tmp2), "=m"(tmp3) : "+S"(a), "=&m"(tmp1), "=&m"(tmp2), "=&m"(tmp3)
: "D"(r) : "D"(r)
: "%rax", "%rbx", "%rcx", "%rdx", "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15", "cc", "memory" : "%rax", "%rbx", "%rcx", "%rdx", "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15", "cc", "memory"
); );