Re: [PATCH] Reduce boot header size with 1 byte

2018-09-27 Thread Brian Gerst
On Thu, Sep 27, 2018 at 9:42 AM  wrote:
>
> From: Alexander F. Rødseth 
>
> Only ah needs to be set to 0 before calling interrupt 0x16 for waiting
> for a keypress.
>
> This patch changes the line that uses xor so that it only zeroes "ah" instead 
> of "ax".
> This saves a byte.
>
> Signed-off-by: Alexander F. Rødseth 
> ---
>  arch/x86/boot/header.S | 11 ++-
>  1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
> index 850b8762e889..905cb96f43d4 100644
> --- a/arch/x86/boot/header.S
> +++ b/arch/x86/boot/header.S
> @@ -71,14 +71,15 @@ msg_loop:
> jmp msg_loop
>
>  bs_die:
> -   # Allow the user to press a key, then reboot
> -   xorw%ax, %ax
> +   # Allow the user to press a key
> +   xorb%ah, %ah

Because this is code running in 16-bit real mode, xorw does not need a
16-bit prefix and only uses 2 bytes.  You save nothing by using xorb.

--
Brian Gerst


Re: [PATCH] Reduce boot header size with 1 byte

2018-09-27 Thread Randy Dunlap
On 9/27/18 6:41 AM, xypr...@archlinux.org wrote:
> From: Alexander F. Rødseth 
> 
> Only ah needs to be set to 0 before calling interrupt 0x16 for waiting
> for a keypress.
> 
> This patch changes the line that uses xor so that it only zeroes "ah" instead 
> of "ax".
> This saves a byte.
> 
> Signed-off-by: Alexander F. Rødseth 

Hi,

You should Cc: the X86 maintainers on this patch.
Otherwise it will just be lost in the ether.

thanks.

> ---
>  arch/x86/boot/header.S | 11 ++-
>  1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
> index 850b8762e889..905cb96f43d4 100644
> --- a/arch/x86/boot/header.S
> +++ b/arch/x86/boot/header.S
> @@ -71,14 +71,15 @@ msg_loop:
>   jmp msg_loop
>  
>  bs_die:
> - # Allow the user to press a key, then reboot
> - xorw%ax, %ax
> + # Allow the user to press a key
> + xorb%ah, %ah
>   int $0x16
> +
> + # Boostrap by reading sector 1, head 0, track 0 from drive
>   int $0x19
>  
> - # int 0x19 should never return.  In case it does anyway,
> - # invoke the BIOS reset code...
> - ljmp$0xf000,$0xfff0
> + # If boostrap somehow did not work, invoke the BIOS reset code
> + ljmp$0xf000, $0xfff0
>  
>  #ifdef CONFIG_EFI_STUB
>   .org0x3c
> 


-- 
~Randy


[PATCH] Reduce boot header size with 1 byte

2018-09-27 Thread xyproto
From: Alexander F. Rødseth 

Only ah needs to be set to 0 before calling interrupt 0x16 for waiting
for a keypress.

This patch changes the line that uses xor so that it only zeroes "ah" instead 
of "ax".
This saves a byte.

Signed-off-by: Alexander F. Rødseth 
---
 arch/x86/boot/header.S | 11 ++-
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
index 850b8762e889..905cb96f43d4 100644
--- a/arch/x86/boot/header.S
+++ b/arch/x86/boot/header.S
@@ -71,14 +71,15 @@ msg_loop:
jmp msg_loop
 
 bs_die:
-   # Allow the user to press a key, then reboot
-   xorw%ax, %ax
+   # Allow the user to press a key
+   xorb%ah, %ah
int $0x16
+
+   # Boostrap by reading sector 1, head 0, track 0 from drive
int $0x19
 
-   # int 0x19 should never return.  In case it does anyway,
-   # invoke the BIOS reset code...
-   ljmp$0xf000,$0xfff0
+   # If boostrap somehow did not work, invoke the BIOS reset code
+   ljmp$0xf000, $0xfff0
 
 #ifdef CONFIG_EFI_STUB
.org0x3c
-- 
2.19.0