В Tue, 25 Nov 2014 11:43:57 +0000 Leif Lindholm <leif.lindh...@linaro.org> пишет:
> On Thu, Nov 20, 2014 at 09:53:14PM +0100, David Kozub wrote: > > The unaligned local in __aeabi_uidivmod leads to a store to a 64bit > > value at an address that is not divisible by 8 (in grub_divmod64). > > The compiler most likely generates a STRD instruction to store it and > > this causes an exception. > > > > Fixes Savannah bug #43632. > > I agree with this patch - am I OK to push? Yes, you are the best expert here. > > / > Leif > > > This includes improvements done by Leif Lindholm. > > --- > > ChangeLog | 6 ++++++ > > grub-core/kern/arm/misc.S | 14 +++++++------- > > 2 files changed, 13 insertions(+), 7 deletions(-) > > > > diff --git a/ChangeLog b/ChangeLog > > index 6fbec06..8728c04 100644 > > --- a/ChangeLog > > +++ b/ChangeLog > > @@ -1,3 +1,9 @@ > > +2014-11-21 David Kozub <zub....@gmail.com> > > + > > + * grub-core/kern/arm/misc.S: fix unaligned 64bit local variable > > + in __aeabi_uidivmod > > + Fixes Savannah bug #43632. > > + > > 2014-11-20 Andrei Borzenkov <arvidj...@gmail.com> > > > > * tests/util/grub-fs-tester.in: Consistently print output > > diff --git a/grub-core/kern/arm/misc.S b/grub-core/kern/arm/misc.S > > index 8943cc3..16b6f8e 100644 > > --- a/grub-core/kern/arm/misc.S > > +++ b/grub-core/kern/arm/misc.S > > @@ -60,17 +60,17 @@ FUNCTION(__aeabi_lmul) > > > > .macro division parent > > > > - stmfd sp!, {lr} > > - sub sp, sp, #12 > > + sub sp, sp, #8 @ Allocate naturally aligned 64-bit space > > + stmfd sp!, {r3,lr} @ Dummy r3 to maintain stack alignment > > + add r3, sp, #8 @ Set r3 to address of 64-bit space > > + str r3, [sp] @ Stack parameter, pointer to 64-bit space > > mov r2, r1 > > - add r1, sp, #4 > > - str r1, [sp, #0] > > mov r1, #0 > > mov r3, #0 > > bl \parent > > - ldr r1, [sp, #4] > > - add sp, sp, #12 > > - ldmfd sp!, {lr} > > + ldr r1, [sp, #8] @ Extract remainder > > + ldmfd sp!, {r3,lr} @ Pop into an unused arg/scratch register > > + add sp, sp, #8 > > bx lr > > .endm > > > > -- > > 2.1.1 > > > > > > _______________________________________________ > > Grub-devel mailing list > > Grub-devel@gnu.org > > https://lists.gnu.org/mailman/listinfo/grub-devel > > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > https://lists.gnu.org/mailman/listinfo/grub-devel _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel