* kern/i386/loader.S (grub_multiboot_backward_relocator): Improve

comments.  Avoid copiing one more byte than necessary (just in case).
This commit is contained in:
robertmh committed 2008-11-22 15:00:39 +00:00
1 parent bc3a2f3115
commit 80fc88f22d
2 files changed
+17 -6

No files matched your search

+14 -6
View File
@@ -141,24 +141,32 @@ VARIABLE(grub_multiboot_payload_entry_offset)
* edx: Offset of the entry point (relative to the beginning of the block).
*/
VARIABLE(grub_multiboot_forward_relocator)
cld
/* Add entry offset. */
addl %edi, %edx
/* Forward copy. */
cld
rep
movsb
jmp *%edx
VARIABLE(grub_multiboot_forward_relocator_end)
VARIABLE(grub_multiboot_backward_relocator)
/* Add entry offset (before %edi is mangled). */
addl %edi, %edx
/* Backward movsb is implicitly off-by-one. compensate that. */
decl %esi
decl %edi
/* Backward copy. */
std
addl %ecx, %esi
addl %ecx, %edi
/* backward movsb is implicitly off-by-one. compensate that. */
incl %ecx
rep
movsb
/* same problem again. */
incl %edi
addl %edi, %edx
jmp *%edx
VARIABLE(grub_multiboot_backward_relocator_end)