]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/lib/i386/relocator16.S: Declare LOCAL(relocator16_end)
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 29 Feb 2012 14:00:54 +0000 (15:00 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 29 Feb 2012 14:00:54 +0000 (15:00 +0100)
for local arithmetics.
Break %sp init into 2 instructions.
Add 0 byte at the end.

ChangeLog
grub-core/lib/i386/relocator16.S

index 84aef90f2c1a91577ce2726329af42699a17a0d6..679849158b160ddd0dccbedc5d719223ebe0456e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2012-02-29  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/lib/i386/relocator16.S: Declare LOCAL(relocator16_end)
+       for local arithmetics.
+       Break %sp init into 2 instructions.
+       Add 0 byte at the end.
+
 2012-02-29  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/disk/diskfilter.c (read_segment): Initialise err
index d5f5f3f03276e309badc75e37ebe890bede78d49..2b144fb7004cb873d03ee2a7a38fe209ac1005cc 100644 (file)
@@ -102,12 +102,14 @@ LOCAL(cont3):
        .byte   0xb8
 VARIABLE(grub_relocator16_keep_a20_enabled)
        .word   0
+
        test    %ax, %ax
        jnz     LOCAL(gate_a20_done)
 
        movw    %cs, %ax
        movw    %ax, %ss 
-       leaw    EXT_C(grub_relocator16_end) - LOCAL(base) + GRUB_RELOCATOR16_STACK_SIZE, %sp
+       leaw    LOCAL(relocator16_end) - LOCAL(base), %sp
+       addw    $GRUB_RELOCATOR16_STACK_SIZE, %sp
 
        /* second, try a BIOS call */
        movw    $0x2400, %ax
@@ -283,4 +285,6 @@ LOCAL(gdt_end):
 VARIABLE(grub_relocator16_idt)
        .word 0
        .long 0
+LOCAL(relocator16_end):
 VARIABLE(grub_relocator16_end)
+       .byte 0