]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2008-03-28 Pavel Roskin <proski@gnu.org>
authorproski <proski@localhost>
Fri, 28 Mar 2008 17:16:46 +0000 (17:16 +0000)
committerproski <proski@localhost>
Fri, 28 Mar 2008 17:16:46 +0000 (17:16 +0000)
* kern/i386/pc/startup.S: Assert that uncompressed functions
don't spill beyond GRUB_KERNEL_MACHINE_RAW_SIZE.
* kern/i386/pc/lzo1x.S: Remove all .align directives in the
code, as they push parts of the code (error handlers) beyond
GRUB_KERNEL_MACHINE_RAW_SIZE.  Speed is not as important in this
code as correctness and size.

ChangeLog
kern/i386/pc/lzo1x.S
kern/i386/pc/startup.S

index d941219684f2037d9cfbe2f4440fefbc0ebc64ed..e55acf9ce8d26af49576946537e8a72e2d98d4d3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-03-28  Pavel Roskin  <proski@gnu.org>
+
+       * kern/i386/pc/startup.S: Assert that uncompressed functions
+       don't spill beyond GRUB_KERNEL_MACHINE_RAW_SIZE.
+       * kern/i386/pc/lzo1x.S: Remove all .align directives in the
+       code, as they push parts of the code (error handlers) beyond
+       GRUB_KERNEL_MACHINE_RAW_SIZE.  Speed is not as important in this
+       code as correctness and size.
+
 2008-03-28  Pavel Roskin  <proski@gnu.org>
 
        * kern/i386/pc/startup.S
index 22ec4259023a3701e1be465a91701ead9026e31d..e942e98d6902332d02c687d29b464ba3785d5049 100644 (file)
@@ -73,7 +73,6 @@ lzo1x_decompress:
        jmp     3f
 
 
-       .align  8
 .L00:
        LODSB
 .L01:
@@ -119,7 +118,6 @@ lzo1x_decompress:
 // M2
 ************************************************************************/
 
-       .align  8
 .LMATCH:
        cmpb    $64, %al
        jb      .LM3MATCH
@@ -156,7 +154,6 @@ lzo1x_decompress:
        jmp     3f
 
 
-       .align  8
 .LM3MATCH:
        cmpb    $32, %al
        jb      .LM4MATCH
@@ -180,7 +177,6 @@ lzo1x_decompress:
 // copy match
 ************************************************************************/
 
-       .align  2
 .LCOPYLONG:                     /* copy match using longwords */
        leal    -3(%edi,%ecx), %eax
        shrl    $2, %ecx
@@ -202,7 +198,6 @@ lzo1x_decompress:
        jmp     .LMATCH
 
 
-       .align  8
 .LCOPYBYTE:                     /* copy match using bytes */
        xchgl   %edx,%esi
        subl    N_3,%ecx
@@ -226,7 +221,6 @@ lzo1x_decompress:
        jmp     3f
 
 
-       .align  8
 .LM4MATCH:
        cmpb    $16, %al
        jb      .LM1MATCH
@@ -252,7 +246,6 @@ lzo1x_decompress:
 // M1
 ************************************************************************/
 
-       .align  8
 .LM1MATCH:
        /* a M1 match */
        shrl    $2, %eax
index 635630d943f49f8685d4d11dd2218624b6f3e0f4..fa404a00377fb46ae342c0cde6baa507340c2479 100644 (file)
@@ -478,6 +478,11 @@ gate_a20_check_state:
 
 #include "lzo1x.S"
 
+/*
+ * The code beyond this point is compressed.  Assert that the uncompressed
+ * code fits GRUB_KERNEL_MACHINE_RAW_SIZE.
+ */
+       . = EXT_C(start) + GRUB_KERNEL_MACHINE_RAW_SIZE
 
 /*
  *  This call is special...  it never returns...  in fact it should simply