Since the question keeps coming up, explain why the -mno-sse etc switches

are there and that it does not have an effect on user applications.
This commit is contained in:
peter 2005-03-31 22:53:58 +00:00
parent 72d1a40cb6
commit 7df6205a90

@ -25,7 +25,9 @@ CWARNFLAGS?= -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes \
# 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)
# 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 \
@ -66,7 +68,9 @@ INLINE_LIMIT?= 15000
.endif
#
# For AMD64, be excessively careful to not generate FPU code.
# For AMD64, we explicitly prohibit the use of FPU, SSE and other SIMD
# operations inside the kernel itself. These operations are exclusively
# reserved for user applications.
#
.if ${MACHINE_ARCH} == "amd64"
CFLAGS+= -mcmodel=kernel -mno-red-zone \