Skip site navigation (1)Skip section navigation (2)
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>