On Mon, 16 Apr 2012 12:41:38 -0700
Juli Mallett <jmall...@freebsd.org> wrote:

> On Mon, Apr 16, 2012 at 02:38, Andrew Turner <and...@freebsd.org>
> wrote:
> > Log:
> >  Replace the C implementation of __aeabi_read_tp with an assembly
> > version. This ensures we follow the ABI by preserving registers
> > r1-r3.
> 
> > +ENTRY(__aeabi_read_tp)
> > +       ldr     r0, .Larm_tp_address
> > +       ldr     r0, [r0]
> > +       RET
> > +
> > +.Larm_tp_address:
> > +       .word ARM_TP_ADDRESS
> > +
> 
> Why is this indirection required?  Can't you just use ARM_TP_ADDRESS
> instead of loading it from data?
ARM will let us load a limited number of values straight into registers
with a move instruction. Unfortunately the value of ARM_TP_ADDRESS is
not one of them.

>  Also, is our convention for ARM to
> use END() with ENTRY() or not?
There is no END() macro for ARM.

Andrew
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to