Displaying 1 result from an estimated 1 matches for "twice512".
2016 May 31
0
How to avoid register spills at wide integer addition?
..., %edx ; py
movl (%ecx), %eax
addl (%edx), %eax
movl %eax, (%ebx)
movl 4(%ecx), %eax
adcl 4(%edx), %eax
movl %eax, 4(%ebx)
movl 8(%ecx), %eax
adcl 8(%edx), %eax
movl %eax, 8(%ebx)
...
How can I let llvm to assign *%pz for work area of %z?
For example,
void twice512(uint512_t *pz, const uint512_t *px)
{
*pz = *px + *px;
}
generates good code without spills.
Yours,
Shigeo