Fast Memory Move Bug Fix

There is a bug in the routine IL_CopyToMainMemory() both on disk and as shown in Listing 10-3 on page 215 in the chapter entitled Moving Memory. Leading into the inner loop is the following line of code:

mov edx,[edi+ecx+0*8+4] ;0;preload edx

Unfortunately, the edi register addresses the first destination double instead of the intended first source double, addressed by esi. This line of code should be changed to:

mov edx,[esi+ecx+0*8+4] ;0;preload edx

The effect of this bug, if left unfixed, is to sometimes trash bit 3 of the 7th byte of a transfer.