This patch has already been marged to FreeBSD since 4.4-RELEASE.
Intel ® introduces some instructions to IA-32 processors, when they release Pentium ® III processor, which is called SSE (Streaming SIMD Extensions.) These extensions are combined with a sigle instruction stream, multiple data stream (SIMD) model, which means we may operate multiple data at once. SSE may accelarate the performance of applications, especially using floating point operations.
To use SSE, we, at least, need an assembler that can handle SSE instructions, and some Operating System support as follows:
GNU binutils 2.10 supports SSE, but FreeBSD kernel has not supported SSE yet.
These patches provide basic support to use SSE instruction on FreeBSD box. They seem to work on both FreeBSD 4.0-RELEASE and FreeBSD 5.0-CURRENT (2001/02/28).
# cd /usr/src/contrib/binutils # zcat /some/where/binutils-291-SSE.diff.gz | patch -p2 # cd /usr/src/gnu/usr.bin/binutils # make install
# cd /sys # zcat /some/where/sys-rXXX-SSE-X.diff.gz | patch -p2
options CPU_ENABLE_SSE" to your kernel
configuration file, and rebuild kernel.
# cd /sys/i386/conf # echo 'options CPU_ENABLE_SSE' > MYKERNEL # config MYKERNEL # cd ../../compile/MYKERNEL # make depend; make
# make install # sync ; sync ; sync # shutdown -r now
% sysctl hw.instruction_sse hw.instruction_sse: 1