* grub-core/kern/powerpc/ieee1275/startup.S: Handle unaligned bss.

Reported by: Paulo Flabiano Smorigo.
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2013-07-16 07:41:53 +02:00
parent d110499b22
commit 3f42504c15
2 changed files with 22 additions and 0 deletions

View file

@ -1,3 +1,8 @@
2013-07-16 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/kern/powerpc/ieee1275/startup.S: Handle unaligned bss.
Reported by: Paulo Flabiano Smorigo.
2013-07-14 Vladimir Testov <vladimir.testov@rosalab.ru> 2013-07-14 Vladimir Testov <vladimir.testov@rosalab.ru>
* grub-core/gfxmenu/gui_list.c: USe viewport when drawing strings. * grub-core/gfxmenu/gui_list.c: USe viewport when drawing strings.

View file

@ -34,14 +34,31 @@ _start:
/* Stage1 won't zero BSS for us. In other cases, why not do it again? */ /* Stage1 won't zero BSS for us. In other cases, why not do it again? */
lis 6, (__bss_start - 4)@h lis 6, (__bss_start - 4)@h
ori 6, 6, (__bss_start - 4)@l ori 6, 6, (__bss_start - 4)@l
2: stb 2, 4(6)
addi 6, 6, 1
andi. 7, 6, 3
cmpi 0, 1, 7, 0
bne 2b
lis 7, (_end - 4)@h lis 7, (_end - 4)@h
ori 7, 7, (_end - 4)@l ori 7, 7, (_end - 4)@l
subf 7, 6, 7 subf 7, 6, 7
subi 8, 7, 1
andi. 8, 8, 3
addi 8, 8, 1
sub 7, 7, 8
srwi 7, 7, 2 /* We store 4 bytes at a time. */ srwi 7, 7, 2 /* We store 4 bytes at a time. */
mtctr 7 mtctr 7
2: stwu 2, 4(6) /* We know r2 is already 0 from above. */ 2: stwu 2, 4(6) /* We know r2 is already 0 from above. */
bdnz 2b bdnz 2b
mtctr 8
2: stb 2, 4(6) /* We know r2 is already 0 from above. */
addi 6, 6, 1
bdnz 2b
/* Store r5 in grub_ieee1275_entry_fn. */ /* Store r5 in grub_ieee1275_entry_fn. */
lis 9, grub_ieee1275_entry_fn@ha lis 9, grub_ieee1275_entry_fn@ha
stw 5, grub_ieee1275_entry_fn@l(9) stw 5, grub_ieee1275_entry_fn@l(9)