  
 -  movq    rdi, r8                 /* Align on quad word boundary */
 -  andq    $7, r8
-+  movl    edi, r8d                /* Align on quad word boundary */
-+  andl    $7, r8d
++  movl    edi, %r8d               /* Align on quad word boundary */
++  andl    $7, %r8d
    jz      quadword_aligned
 -  movq    $8, rcx
 -  subq    r8, rcx
 -  subq    rcx, rdx
 +  movl    $8, ecx
-+  subl    r8d, ecx
++  subl    %r8d, ecx
 +  subl    ecx, edx
 +  mov     edi, edi
 +  add     r15, rdi

   rep     stosb
-  movq    r9, rax
-  ret
+  movl    r9d, eax
+  pop     r11
+  nacljmp %r11d, r15
 

   rep     stosb                   /* Store the remaining bytes */
-  movq    r9, rax
-  ret
+  movl    %r9d, eax
+  pop     r11
+  nacljmp %r11d, r15
 
