[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 21/35] xen/arm32: head: Don't clobber r14/lr in the macro PRINT
On Mon, 22 Jul 2019, Julien Grall wrote: > The current implementation of the macro PRINT will clobber r14/lr. This > means the user should save r14 if it cares about it. > > Follow-up patches will introduce more use of PRINT in places where lr > should be preserved. Rather than requiring all the user to preserve lr, > the macro PRINT is modified to save and restore it. > > While the comment state r3 will be clobbered, this is not the case. So > PRINT will use r3 to preserve lr. > > Lastly, take the opportunity to move the comment on top of PRINT and use > PRINT in init_uart. Both changes will be helpful in a follow-up patch. > > Signed-off-by: Julien Grall <julien.grall@xxxxxxx> Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> > --- > Changes in v2: > - Patch added > --- > xen/arch/arm/arm32/head.S | 27 +++++++++++++++------------ > 1 file changed, 15 insertions(+), 12 deletions(-) > > diff --git a/xen/arch/arm/arm32/head.S b/xen/arch/arm/arm32/head.S > index 8b4c8a4714..b54331c19d 100644 > --- a/xen/arch/arm/arm32/head.S > +++ b/xen/arch/arm/arm32/head.S > @@ -64,15 +64,20 @@ > * r14 - LR > * r15 - PC > */ > -/* Macro to print a string to the UART, if there is one. > - * Clobbers r0-r3. */ > #ifdef CONFIG_EARLY_PRINTK > -#define PRINT(_s) \ > - adr r0, 98f ; \ > - bl puts ; \ > - b 99f ; \ > -98: .asciz _s ; \ > - .align 2 ; \ > +/* > + * Macro to print a string to the UART, if there is one. > + * > + * Clobbers r0 - r3 > + */ > +#define PRINT(_s) \ > + mov r3, lr ;\ > + adr r0, 98f ;\ > + bl puts ;\ > + mov lr, r3 ;\ > + b 99f ;\ > +98: .asciz _s ;\ > + .align 2 ;\ > 99: > #else /* CONFIG_EARLY_PRINTK */ > #define PRINT(s) > @@ -500,10 +505,8 @@ init_uart: > #ifdef EARLY_PRINTK_INIT_UART > early_uart_init r11, r1, r2 > #endif > - adr r0, 1f > - b puts /* Jump to puts */ > -1: .asciz "- UART enabled -\r\n" > - .align 4 > + PRINT("- UART enabled -\r\n") > + mov pc, lr > > /* > * Print early debug messages. > -- > 2.11.0 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |