| #
1.3 |
|
13-Nov-2025 |
nia |
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.
|
|
Revision tags: perseant-exfatfs-base-20250801 perseant-exfatfs-base-20240630 perseant-exfatfs-base cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base phil-wifi-20200421 phil-wifi-20200411 phil-wifi-20200406 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base perseant-stdc-iso10646-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base yamt-pagecache-base9 yamt-pagecache-tag8 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 agc-symver-base tls-maxphys-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 yamt-pagecache-base5 yamt-pagecache-base4 yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base bouyer-quota2-nbase bouyer-quota2-base
|
| #
1.2 |
|
04-Jan-2011 |
pgoyette |
Update the ieeefp tests so that they can be built on all architectures. This enables us to avoid the set-list mess.
Build tested on amd64, i386, sun2, and vax!
|
| #
1.1 |
|
03-Jan-2011 |
pgoyette |
Apparently, the ad.{MACHINE_ARCH} files are not processed when
${MACHINE} == ${MACHINE_ARCH}
So rename the files for affected ports accordingly.
This is confirmed to fix build breakage on port-i386 reported by gson@ gson.org in private Email thread.
|