Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: src
Module Name: src
Committed By: nia
Date: Thu Nov 13 18:49:19 UTC 2025
Modified Files:
src/distrib/sets/lists/comp: md.sparc64
src/include: Makefile
src/tests/lib/libc/misc: Makefile
Added Files:
src/distrib/sets/lists/tests: md.sparc64
src/include: vis_proto.h vis_types.h
src/tests/lib/libc/misc: t_vis.c
Log Message:
Add an implementation of the VIS C API for sparc64.
VIS is an extension of the SPARCv9 instruction set that adds packed
integer vector instructions that operate on 64-bit floating point
registers. It is primarily intended for accelerating common 2D
graphics and multimedia operations.
While GCC includes limited support for VIS via builtins, the builtins
are incomplete and incompatible with the C API described in
"VIS(tm) Instruction Set User's Manual" published by Sun Microsystems
in May 2001. This implementation intends to be 100% compatible with
the one described in the manual.
All sparc64 processors except the HAL SPARC64 (apparently not supported
by NetBSD) support the VIS instruction set. The paper documents
functions up to VIS 2. Post-Oracle CPUs support VIS 3 and VIS 4, but
I don't have access to C API documentation for those (presumably
the code is proprietary to SunPro on Solaris 11), and we can worry
about that when sun4v support is more mature.
The implementation includes some basic tests for packed arithmetic.
To generate a diff of this commit:
cvs rdiff -u -r1.219 -r1.220 src/distrib/sets/lists/comp/md.sparc64
cvs rdiff -u -r0 -r1.3 src/distrib/sets/lists/tests/md.sparc64
cvs rdiff -u -r1.149 -r1.150 src/include/Makefile
cvs rdiff -u -r0 -r1.1 src/include/vis_proto.h src/include/vis_types.h
cvs rdiff -u -r1.9 -r1.10 src/tests/lib/libc/misc/Makefile
cvs rdiff -u -r0 -r1.1 src/tests/lib/libc/misc/t_vis.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Home |
Main Index |
Thread Index |
Old Index