[m32c,patch]New assembly subroutines

DJ Delorie dj@redhat.com
Fri Aug 11 19:54:00 GMT 2006


> The implemented assembly routines consume only 20-30% of the memory=20
> as compared to memory consumed by the earlier subroutines.

I certainly see the advantage of having a small fast library, but we
have to balance that against the maintainance costs of such a library.
There's only three other ports that have their own assembler-based
floating point, and at the moment the m32c has only you and me working
on it.

Also, I'd like to see performance comparisons.  Do you have m32c
hardware with sufficient memory to run tests that compare the old and
new libraries?  The simulator isn't sufficient for that kind of
testing, and the m32c chip only has 24k of RAM, which isn't always
enough for some of today's benchmarks.  I'm working on adding some
SRAM chips to one of my boards so I can run bigger tests on it.

You should be able to do size comparisons without simulator or
hardware, though.

> Yes the assembly routine subdf3 is used for the subtraction of
> double variables. We did not get the mentioned error while
> performing the subtraction of double variables. But when we were
> testing the patched toolchain for some testcase that contains long
> long variable, we faced the mentioned problem.

Sounds like you're missing an L__foo somewhere, and ending up with
multiple global symbols in one of your library objects, or one global
ending up in two objects.  Use m32c-elf-nm on the library to see
what's going on, or use "-Wl,-Map,foo.map" to find out why a given
object is being linked in.

> 	* config/m32c/t-m32c (MD_FILES): Add addsf3, subsf3, mulsf3
> 	adddf3, subdf3, muldf3.

Er, not MD_FILES.  LIB1ASMFUNCS.  Please be careful when writing
ChangeLog entries.

> 	* config/m32c/m32c-lib1.S (mulsi3): Use only registers for
>  	dest.

Is this a bugfix or a performance enhancement?  It looks like a bugfix,
but the ChangeLog looks like performance enhancement.



More information about the Gcc-patches mailing list