Reviewed-by: Huacai Chen <chenhuacai@xxxxxxxxxx> On Wed, Dec 30, 2020 at 11:49 AM Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx> wrote: > > .cprestore is removed as we don't expect Position Independent > zboot ELF. > > .noreorder is also removed and rest instructions are massaged > to improve readability. > > t9 register is used for indirect jump as MIPS ABI requirement. > > start label is removed as it already defined in LEAF. > > Reported-by: Paul Cercueil <paul@xxxxxxxxxxxxxxx> > Signed-off-by: Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx> > > -- > v2: Remove start label (paul) > --- > arch/mips/boot/compressed/head.S | 18 +++++++----------- > 1 file changed, 7 insertions(+), 11 deletions(-) > > diff --git a/arch/mips/boot/compressed/head.S b/arch/mips/boot/compressed/head.S > index 409cb483a9ff..070b2fbabae4 100644 > --- a/arch/mips/boot/compressed/head.S > +++ b/arch/mips/boot/compressed/head.S > @@ -15,10 +15,7 @@ > #include <asm/asm.h> > #include <asm/regdef.h> > > - .set noreorder > - .cprestore > LEAF(start) > -start: > /* Save boot rom start args */ > move s0, a0 > move s1, a1 > @@ -35,21 +32,20 @@ start: > PTR_LA a0, (.heap) /* heap address */ > PTR_LA sp, (.stack + 8192) /* stack address */ > > - PTR_LA ra, 2f > - PTR_LA k0, decompress_kernel > - jr k0 > - nop > + PTR_LA t9, decompress_kernel > + jalr t9 > + > 2: > move a0, s0 > move a1, s1 > move a2, s2 > move a3, s3 > - PTR_LI k0, KERNEL_ENTRY > - jr k0 > - nop > + PTR_LI t9, KERNEL_ENTRY > + jalr t9 > + > 3: > b 3b > - nop > + > END(start) > > .comm .heap,BOOT_HEAP_SIZE,4 > -- > 2.30.0 >