On Fri, 4 Feb 2011, Tony Lindgren wrote:

> * Nicolas Pitre <[email protected]> [110204 12:14]:
> > 
> > Just create a get_config_ptr macro or similar and the trickery will be 
> > nicely encapsulated.  You'd have:
> > 
> >     .macro get_config_ptr ptr, tmp
> >     b       9002f
> >     .align
> > 9001:       .long   .
> >     .long   uart_param_storage
> > 9002:       adr     \ptr, 9001b
> >     ldr     \tmp, [\ptr]
> >     sub     \tmp, \tmp, \ptr
> >     ldr     \ptr, [\ptr, #4]
> >     sub     \ptr, \ptr, \tmp
> >     .endm
> > 
> >     .macro addruart rp, rv
> >     get_config_ptr \rv
> >     ldr     \rp, [\rv]
> >     ldr     \rv, [\rv, #4]
> >     .endm
> > 
> > And for the other macros, you get the hardware address to use already, 
> > but you can still use get_config_ptr for extra config values you 
> > need if necessary.
> 
> Thanks, will try that out next week. That might run into problems with
> busyuart as it only has rd register to play with.

With some code auditing we could declare ip as being callee clobberable 
with those macros.


Nicolas
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to