Compiler Options

Michael Proto mproto at secureworks.com
Fri Nov 10 22:09:11 UTC 2006


>From /usr/src/sys/conf/kern.mk:

# On the i386, do not align the stack to 16-byte boundaries.  Otherwise GCC
# 2.95 adds code to the entry and exit point of every function to align the
# stack to 16-byte boundaries -- thus wasting approximately 12 bytes of
stack
# per function call.  While the 16-byte alignment may benefit micro
benchmarks,
# it is probably an overall loss as it makes the code bigger (less efficient
# use of code cache tag lines) and uses more stack (less efficient use
of data
# cache tag lines).  Explicitly prohibit the use of SSE and other SIMD
# operations inside the kernel itself.  These operations are exclusively
# reserved for user applications.
#
.if ${MACHINE_ARCH} == "i386" && ${CC} != "icc"
CFLAGS+=        -mno-align-long-strings -mpreferred-stack-boundary=2 \
                -mno-mmx -mno-3dnow -mno-sse -mno-sse2
INLINE_LIMIT?=  8000
.endif


-Proto

Jason C. Wells wrote:
> I have set CPUTYPE=p3 in make.conf.  When I compile my kernel I see
> -march=pentium3 as I expect.  I also see -mno-mmx and -mno-sse are set
> which I do not expect given that -march=pentium3 is used.  I presume
> that I want MMX and SSE since my processor supports it.  What options do
> I set and where do I set them to get a kernel properly tuned for pentium3?
> 
> Thanks,
> Jason C. Wells
> _______________________________________________
> freebsd-stable at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"

-- 
Michael Proto            | SecureWorks
Unix Administrator       |
PGP ID: 5D575BBE         | mproto at secureworks.com
*******************************************************


More information about the freebsd-stable mailing list