Messages in this thread Patch in this message | | | Date | Thu, 17 Apr 2003 15:07:49 -0400 | From | Jeff Garzik <> | Subject | Re: [BK+PATCH] remove __constant_memcpy |
| |
On Thu, Apr 17, 2003 at 09:07:45AM -0700, Linus Torvalds wrote: > > On 17 Apr 2003, Arjan van de Ven wrote: > > > > it can do that ANYWAY for all kinds of things. > > We really should ask the gcc folks to add a > > -fdontyoudareusefloatingpoint flag (well different name probably) > > Well, _most_ architectures actually have that flag already. It's not > called -fdontyoudareusefloatingpoint on any of them, though ;) > > It's most commonly called "-mno-fpu", but sh calls it "-mno-implicit-fp", > and alpha calls it "-mno-fp-regs". > > On x86, gcc doesn't have such an option, although "-mno-sse" and > "-mno-sse2" probably come closest (and we should probably use them, but > since older gcc's don't know about it and it hasn't been an issue yet we > haven't).
gcc on x86 definitely wants a -fdontyoudareusefloatingpoint... The following snippet from the -msoft-float docs isn't encouraging:
On machines where a function returns floating point results in the 80387 register stack, some floating point opcodes may be emitted even if `-msoft-float' is used. [yes, I realize it's an ABI constraint in this case, but IMO it's also indicative in general of the difficulty in getting gcc to _never_ generate fp opcodes on x86, now or in the future]
Anyway, if you wanna play it safe WRT gcc future, the following patch works.
-mno-3dnow is probably over-paranoia, because (IIRC) it doesn't contain any integer instructions, but maybe I'm wrong. It can't hurt... :)
===== arch/i386/Makefile 1.49 vs edited ===== --- 1.49/arch/i386/Makefile Thu Apr 3 14:24:40 2003 +++ edited/arch/i386/Makefile Thu Apr 17 14:55:34 2003 @@ -27,6 +27,9 @@ # prevent gcc from keeping the stack 16 byte aligned CFLAGS += $(call check_gcc,-mpreferred-stack-boundary=2,) +# force gcc to always use general registers (only) +CFLAGS += $(call check_gcc,-mno-mmx -mno-sse -mno-sse2 -mno-3dnow,) + align := $(subst -functions=0,,$(call check_gcc,-falign-functions=0,-malign-functions=0)) cflags-$(CONFIG_M386) += -march=i386 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |