Date: Fri, 13 Jan 2012 01:00:57 +0100 From: Marius Strobl <marius@alchemy.franken.de> To: Ed Schouten <ed@freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r230025 - head/contrib/compiler-rt/lib/sparc64 Message-ID: <20120113000057.GA23960@alchemy.franken.de> In-Reply-To: <201201121755.q0CHtMA2020344@svn.freebsd.org> References: <201201121755.q0CHtMA2020344@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jan 12, 2012 at 05:55:22PM +0000, Ed Schouten wrote: > Author: ed > Date: Thu Jan 12 17:55:22 2012 > New Revision: 230025 > URL: http://svn.freebsd.org/changeset/base/230025 > > Log: > Add SPARC64 version of div/mod written in assembly. > > This version is similar to the code shipped with libgcc. It is based on > the code from the SPARC64 architecture manual, provided without any > restrictions. > > Tested by: flo@ > > +#include "../assembly.h" > + > +.text > + .align 4 > + <...> > +ifelse( ANSWER, `quotient', ` > +DEFINE_COMPILERRT_FUNCTION(__udivsi3) > + save %sp,-64,%sp ! do this for debugging Uhm, these are V8-specific, for V9 the C compiler frame size should be 192 instead of 64 and the function alignment should be 32 instead of 4 bytes (at least with GCC and US1-optimizations enabled as we default to on sparc64), see <machine/asm.h>. However, given that these functions only seem to obtain new register window for debugging purposes you probably alternatively could just remove the saves and the corresponding restores completely. Marius
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120113000057.GA23960>