Date: Tue, 17 Apr 2012 08:09:54 +1200 From: Andrew Turner <andrew@fubar.geek.nz> To: Juli Mallett <jmallett@FreeBSD.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r234337 - in head: lib/libc/arm/gen sys/arm/include Message-ID: <20120417080954.42df316a@fubar.geek.nz> In-Reply-To: <CACVs6=8BYYN0ZW7zzHZduns-ZH9hUF=M1EmXfoOkCZVMh1ubpg@mail.gmail.com> References: <201204160938.q3G9cLmw026093@svn.freebsd.org> <CACVs6=8BYYN0ZW7zzHZduns-ZH9hUF=M1EmXfoOkCZVMh1ubpg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 16 Apr 2012 12:41:38 -0700 Juli Mallett <jmallett@FreeBSD.org> wrote: > On Mon, Apr 16, 2012 at 02:38, Andrew Turner <andrew@freebsd.org> > wrote: > > Log: > > =C2=A0Replace the C implementation of __aeabi_read_tp with an assembly > > version. This ensures we follow the ABI by preserving registers > > r1-r3. >=20 > > +ENTRY(__aeabi_read_tp) > > + =C2=A0 =C2=A0 =C2=A0 ldr =C2=A0 =C2=A0 r0, .Larm_tp_address > > + =C2=A0 =C2=A0 =C2=A0 ldr =C2=A0 =C2=A0 r0, [r0] > > + =C2=A0 =C2=A0 =C2=A0 RET > > + > > +.Larm_tp_address: > > + =C2=A0 =C2=A0 =C2=A0 .word ARM_TP_ADDRESS > > + >=20 > 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120417080954.42df316a>