On 03/31/10 09:00, Garrett D'Amore wrote:
On 03/31/10 03:48 AM, ольга крыжановская wrote:
2010/3/31 Martin Bochnig<mar...@martux.org>:
2010/3/28 ольга крыжановская<olga.kryzhanov...@gmail.com>:
I am looking for a Sun Studio C example for inline SPARC assembler
which uses the VIS 'block copy' instruction to move a block of<n>
bytes. Has anyone time to write such an example for me, please?

Olga
--
, _ _ ,
{ \/`o;====- Olga Kryzhanovska -====;o`\/ }
.----'-/`-/ olga.kryzhanov...@gmail.com \-`\-'----.
`'-..-| / Solaris/BSD//C/C++ programmer \ |-..-'`
/\/\ /\/\
`--` `--`


Hi Olga, I got myself confused now.
But look at this:

http://books.google.com/books?id=L4oyNrsFBbsC&pg=PT69&lpg=PT69&dq=vis+block+memcpy&source=bl&ots=jl1be3e-ut&sig=v8RCH_S5LKdE0qcsYJ2WWNT0-_g&hl=ru&ei=kgSzS_rNEsqi_Abm6rX8CA&sa=X&oi=book_result&ct=result&resnum=3&ved=0CA4Q6AEwAjgK#v=onepage&q=vis%20block%20memcpy&f=false


Support exists in processors to accelerate block copying. Sun´s VIS
instruction
set implemented in the UltraSPARC-series processors has a
block-copying instruct
ion that bypasses the caches, while still maintaining consistency
between the ca
ches and main memory. The bcopy(3C) and memcpy(3C) function calls
both use this
mechanism on VIS-enabled processors AUTOMATICALLY.


and


http://books.google.com/books?id=0S8guIHHaiIC&pg=PA149&lpg=PA149&dq=vis+block+memcpy&source=bl&ots=cOhh1QOz_g&sig=V5qi3JWgPogmglvL83WeYIpXgrs&hl=ru&ei=kgSzS_rNEsqi_Abm6rX8CA&sa=X&oi=book_result&ct=result&resnum=6&ved=0CBoQ6AEwBTgK#v=onepage&q=vis%20block%20memcpy&f=false



The UltraSPARC-specific VIS block move instruction performs a 64-byte
transfer t
hat is both cache coherent and nonpolluting. This feature IS USED by
the platfor
m-specific libc bcopy, bzero, memcpy, memmove, memset, memcmp
operations.
But not strcpy(), sprintf(), right?

Those require a memory compare (looking for null terminator), so I don't
think you'd see much benefit -- just copy as you compare is probably the
most efficient.

In fact, the routines for strcpy use  Alan Mycroft's algorithm.

http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/lib/libc/sparc/gen/strcpy.s#34

http://vger.kernel.org/~davem/cgi-bin/blog.cgi

- Bart

--
Bart Smaalders                  Solaris Kernel Performance
bart.smaald...@oracle.com       http://blogs.sun.com/barts
"You will contribute more with mercurial than with thunderbird."
_______________________________________________
opensolaris-code mailing list
opensolaris-code@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code

Reply via email to