https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66782
--- Comment #7 from Uroš Bizjak <ubizjak at gmail dot com> --- The difference when clobbers are implemented with direct clobbers (I'll attach the patch) is: (---): Unpatched compiler, usign fusage clobbers (+++): Patched compiler, using direct clobbers --- pr66782_.s 2015-07-08 12:35:40.000000000 +0200 +++ pr66782.s 2015-07-08 12:37:21.000000000 +0200 @@ -260,10 +260,9 @@ subq %rax, %rdx movq %rax, %rsi call memcpy@PLT - movq 24(%rsp), %rsi movq 112(%rsp), %rdi + subq 24(%rsp), %rdi movl $52, %edx - subq %rsi, %rdi movw %dx, 4(%rbp,%rdi) movl $912551265, 0(%rbp,%rdi) movq %rbp, %rdi @@ -271,7 +270,7 @@ movq %rcx, 40(%rsp) call strlen@PLT movq 40(%rsp), %rcx - movq %rsi, %rdx + movq 24(%rsp), %rdx leaq 0(%rbp,%rax), %rdi subq %rcx, %rdx addq 32(%rsp), %rdx