> We don't have the build logs or workspaces still from snv_48, but in a more
> recent snv_59 build log:
>
> cc -c -xO3 -xbuiltin -xlibmil -Xc -xF -xarch=v8 -xregs=no%appl -mt -I../.. 
> -I/net/paravon/export/x-re/build/milestone/NV/BIWEEKLY_X_NV_SPARC/xc/lib/X11/../..
> /../proto-sun4-svr4/usr/X11/include 
> -I/net/paravon/export/x-re/build/milestone/
> NV/BIWEEKLY_X_NV_SPARC/xc/lib/X11/../../../proto-sun4-svr4/usr/X11/include/X11
> -I/net/paravon/export/x-re/build/milestone/NV/BIWEEKLY_X_NV_SPARC/xc/lib/X11/../..
> /../proto-sun4-svr4/usr/X11/include/X11/extensions -Dsun -Dsparc -DSVR4 
> -DSYSV 
> -D__EXTENSIONS__ -DDPMSExtension -DXRECORD -DEVI -DDHAKAZULU -DTSOL -DSUNSOFT 
> -DXSUN -DXTHREADS -mt -DMALLOC_0_RETURNS_NULL -DSUNSOFT -DSUN_CUP -Kpic 
> IntAtom.c



The "-xbuiltin" flag seems to introduce "%g2" register usage and
works against the "-xregs=no%appl" option.  Apparently, 
when substituting inlined versions of standard library functions.

% cat xx.c
#include <string.h>

void
func(void *a, void *b, int n)
{
        memcpy(a, b, n);
}

% /opt/studio11/SUNWspro/bin/cc -V
cc: Sun C 5.8 Patch 121015-02 2006/03/29
usage: cc [ options] files.  Use 'cc -flags' for details

% /opt/studio11/SUNWspro/bin/cc -c -xO3 -xarch=v8 -Kpic -xregs=no%appl xx.c

% dis xx.o | grep %g2

% /opt/studio11/SUNWspro/bin/cc -c -xO3 -xbuiltin -xarch=v8 -Kpic 
-xregs=no%appl xx.c

% dis xx.o | grep %g2
    func+0x1c:              84 0a 60 03  and       %o1, 0x3, %g2
    func+0x20:              80 96 c0 02  orcc      %i3, %g2, %g0
    func+0x6c:              c4 0e 7f ff  ldub      [%i1 - 0x1], %g2
    func+0x74:              c4 2d ff ff  stb       %g2, [%l7 - 0x1]
    func+0x94:              c4 0a 60 01  ldub      [%o1 + 0x1], %g2
    func+0x9c:              c4 2d e0 01  stb       %g2, [%l7 + 0x1]
 
 
This message posted from opensolaris.org

Reply via email to