mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-23 23:59:22 +00:00
* 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:
1 parent
bc3a2f3115
commit
80fc88f22d
2 files changed
+17
-6
No files matched your search
+14
-6
@@ -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)
|
||||
|
||||
|
||||
Reference in new issue
Block a user