Messages in this thread | | | Date | Fri, 22 May 2015 17:36:44 +0200 | From | Stefan Agner <> | Subject | Re: [PATCH soc] ARM: use ARM SINGLE ARMV7M for ARMv7-M platforms |
| |
On 2015-05-22 17:29, Maxime Coquelin wrote: > 2015-05-22 16:50 GMT+02:00 Arnd Bergmann <arnd@arndb.de>: >> [one small request as I have four armv7-m folks on Cc already: >> could one of you try to fix the warning that I get with every >> single build: "/git/arm-soc/arch/arm/kernel/head-nommu.S: Assembler >> messages: /git/arm-soc/arch/arm/kernel/head-nommu.S:167: Warning: >> Use of r13 as a source register is deprecated when r15 is the >> destination register."] > > Moving r13 to r12 and returning r12 seems to do the job (see below). > But I don't know if there is a more elegant way, and if it is also > valid for other architectures than armv7-m. > I can propose a patch if someone can confirm it is valid.
> > ------------------------------------------------------------------------------------------------------------- > > diff --git a/arch/arm/kernel/head-nommu.S b/arch/arm/kernel/head-nommu.S > index aebfbf7..e84bdad 100644 > --- a/arch/arm/kernel/head-nommu.S > +++ b/arch/arm/kernel/head-nommu.S > @@ -164,7 +164,8 @@ __after_proc_init: > #endif > mcr p15, 0, r0, c1, c0, 0 @ write control reg > #endif /* CONFIG_CPU_CP15 */ > - ret r13 > + mov r12, r13 > + ret r12 > ENDPROC(__after_proc_init) > .ltorg
That is actually a patch I have here too, altough I used r11 back then... :-)
However, I don't think this is a nice solution. We should avoid using r13 for that address in the first place, e.g. using a different register to get the value when calling __mmap_switched. However, for that one need to know what registers are guaranteed to be not used within PROCINFO_INITFUNC...
-- Stefan
| |