amd64 default CFLAGS

Kris Kennaway kris at FreeBSD.org
Thu Mar 10 08:47:57 PST 2005


On Wed, Mar 09, 2005 at 07:59:07PM +0100, Divacky Roman wrote:
> On Wed, Mar 09, 2005 at 05:01:00PM +0000, Kris Kennaway wrote:
> > On Wed, Mar 09, 2005 at 10:27:49AM +0100, Divacky Roman wrote:
> > > hi,
> > > 
> > > why is it necessary (if its at all) to have this: 
> > > -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx -mno-3dnow in default CFLAGS for amd64
> > > architecture?
> > 
> > This is the default COPTFLAGS, not CFLAGS, right?  You can't use
> > special instructions like sse in the kernel because they require extra
> > register state operations that would cost performance.
> 
> (from sys/conf/kern.mk)
> CFLAGS+= -mcmodel=kernel -mno-red-zone \
>          -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx -mno-3dnow \
> 	 -msoft-float -fno-asynchronous-unwind-tables
> 
> I'd call it CFLAGS ;)

kern.mk is only used for kernel + module builds.

> (from sys/i386/i386/support.s)
> ENTRY(sse2_pagezero)
> 
> isnt this use of sse in kernel?
> 
> why is it allowed in this case and not allowed in general. any measurements how
> much does it hurt performance?

This has been discussed before; see the archives.

Kris


More information about the freebsd-current mailing list