Just simple suggestion, i still don't know the reason behind it. So
please if isn't ideal, i apologies

My suggestion is since the `grub_main` doesn't return to the low level
assembly code, why didn't get used `jmp` instruction instead of
`call`. I think in this context jmp is slightly better than call,
about 2 cycles faster. While this isn't match,  but it will at least
resolve some confusion. Other than that the boot process is fine and
no issues.

Patch
diff --git a/grub-core/kern/x86_64/efi/startup.S
b/grub-core/kern/x86_64/efi/startup.S
index 9357e5c5d..a51b07427 100644
--- a/grub-core/kern/x86_64/efi/startup.S
+++ b/grub-core/kern/x86_64/efi/startup.S
@@ -31,5 +31,4 @@ _start:
       movq    %rdx, EXT_C(grub_efi_system_table)(%rip)

       andq    $~0xf, %rsp
-       call    EXT_C(grub_main)
-       /* Doesn't return.  */
+       jmp     EXT_C(grub_main)

If there is a reason other than that i mentioned above, then please let me know.

Best Regards
khaalid cali

_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to