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"