Subject: Re: New hash algorithm - FNV - for use in the kernel
To: None <lukem@wasabisystems.com>
From: Darren Reed <darrenr@reed.wattle.id.au>
List: tech-perform
Date: 11/27/2001 20:40:48
Luke,
     You asked about SPARC on icb, so I'll follow up here...
I used a quick test program that comprised of this:
main()
{
        int a, b, c;

        a = 1;
        b = 10;
        c = a * b;
        printf("c = %d\n", c);
}

I tested with SUNWspro CC 5.0, using each of the CPU targets with each of
the architecture types.  The default is "generic,generic".  Using "generic"
in either column resulted in a "call .mul" and using "v7" as architecture
always generated "call .mul".  All other cases had a hardware multiply.

CPU Targets:
generic old super super2 micro micro2 hyper hyper2 powerup ultra ultra2 ultra2i

Architectures:
generic v7 v8a v8 v8plus v8plusa v9 v9a


Using SUNWspro CC 5.0, -xarch=v9:
!    7          c = a * b;
...
        mulx    %l1,%l0,%l1

-xarch=v8
!    7          c = a * b;

        smul    %l0,%l1,%o1

-xarch=v7
!    7          c = a * b;

        call    .mul

no -xarch
!    7          c = a * b;

        call    .mul

gcc 2.8.1:
        call .umul,0
-msparclite:
        smul %o0,%o1,%o0
-msupersparc:
        smul %o0,%o1,%o0
-mv8:
        smul %o0,%o1,%o0

The question is, what SPARC based computers are pre-v8 ?  Is this just sun4?

This is seemingly a good candidate for MD assembly code being written..

Darren

p.s. I've changed tech-kern to tech-sparc for this...