以下のFPUを使ったmemcpyのソースがバグる

DKC_INLINE void optimized_memcpy_fpu_8bytes(
void * d, const void* s, size_t _size )
{
_asm {
mov edi,d;
mov esi,s;
mov ecx,_size;
shr ecx,3;
lx:
fld double ptr [esi];
lea esi,[esi+8];
fstp double ptr [edi];
lea edi,[edi+8];
dec ecx;
jnz lx;
}
}

dest,srcはaligned_malloc(アラインされたメモリアドレスを返す)で確保したメモリ
countが64だとコピーエラー(destの先頭の方が8バイト潰される)
ゴメンナサイ、どうしても分かりません。
どなたか分かる方いらっしゃいますか?