* 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.
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2012-02-29 15:00:54 +01:00
parent 32eb6ee157
commit bea359d657
2 changed files with 12 additions and 1 deletions

View file

@ -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> 2012-02-29 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/disk/diskfilter.c (read_segment): Initialise err * grub-core/disk/diskfilter.c (read_segment): Initialise err

View file

@ -102,12 +102,14 @@ LOCAL(cont3):
.byte 0xb8 .byte 0xb8
VARIABLE(grub_relocator16_keep_a20_enabled) VARIABLE(grub_relocator16_keep_a20_enabled)
.word 0 .word 0
test %ax, %ax test %ax, %ax
jnz LOCAL(gate_a20_done) jnz LOCAL(gate_a20_done)
movw %cs, %ax movw %cs, %ax
movw %ax, %ss 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 */ /* second, try a BIOS call */
movw $0x2400, %ax movw $0x2400, %ax
@ -283,4 +285,6 @@ LOCAL(gdt_end):
VARIABLE(grub_relocator16_idt) VARIABLE(grub_relocator16_idt)
.word 0 .word 0
.long 0 .long 0
LOCAL(relocator16_end):
VARIABLE(grub_relocator16_end) VARIABLE(grub_relocator16_end)
.byte 0