[PATCH] fix Thumb-2 decompressor broken by "Auto calculate ZRELADDR"

Russell King - ARM Linux linux at arm.linux.org.uk
Sat Jul 31 08:31:42 EDT 2010


On Sat, Jul 31, 2010 at 02:08:27PM +0200, Uwe Kleine-König wrote:
> On Sat, Jul 31, 2010 at 10:04:45AM +0100, Russell King - ARM Linux wrote:
> > It doesn't matter.  The point is that you deleted an entry from the
> > table which the ldmia/ldmia+ldr loads from and didn't adjust the
> > resulting code properly.
> Yes, got that.
> > 
> > - ARM(          ldmia   r0, {r1, r2, r3, r5, r6, r11, ip, sp})
> > + ARM(          ldmia   r0, {r1, r2, r3, r5, r6, r11, ip})
> >   THUMB(                ldmia   r0, {r1, r2, r3, r5, r6, r11, ip}       )
> > - THUMB(                ldr     sp, [r0, #32]                           )
> > +               ldr     sp, [r0, #28]
> We can simpify this further to just
> 
> 	@ Thumb code doesn't allow sp to be in the list, for ARM it's
> 	@ deprecated, so use a seperate ldr for it.
> 	ldmia   r0, {r1, r2, r3, r5, r6, r11, ip}
> 	ldr     sp, [r0, #32]

No, you mean #28.



More information about the linux-arm-kernel mailing list