Skip to content

Commit

Permalink
[PATCH] i386: always enable regparm
Browse files Browse the repository at this point in the history
-mregparm=3 has been enabled by default for some time on i386, and AFAIK
there aren't any problems with it left.

This patch removes the REGPARM config option and sets -mregparm=3
unconditionally.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andi Kleen <ak@suse.de>
  • Loading branch information
Adrian Bunk authored and Andi Kleen committed Dec 7, 2006
1 parent 73ad835 commit a1a70c2
Show file tree
Hide file tree
Showing 4 changed files with 2 additions and 27 deletions.
3 changes: 0 additions & 3 deletions Documentation/stable_api_nonsense.txt
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,6 @@ consider the following facts about the Linux kernel:
- different structures can contain different fields
- Some functions may not be implemented at all, (i.e. some locks
compile away to nothing for non-SMP builds.)
- Parameter passing of variables from function to function can be
done in different ways (the CONFIG_REGPARM option controls
this.)
- Memory within the kernel can be aligned in different ways,
depending on the build options.
- Linux runs on a wide range of different processor architectures.
Expand Down
14 changes: 0 additions & 14 deletions arch/i386/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -721,20 +721,6 @@ config BOOT_IOREMAP
depends on (((X86_SUMMIT || X86_GENERICARCH) && NUMA) || (X86 && EFI))
default y

config REGPARM
bool "Use register arguments"
default y
help
Compile the kernel with -mregparm=3. This instructs gcc to use
a more efficient function call ABI which passes the first three
arguments of a function call via registers, which results in denser
and faster code.

If this option is disabled, then the default ABI of passing
arguments via the stack is used.

If unsure, say Y.

config SECCOMP
bool "Enable seccomp to safely compute untrusted bytecode"
depends on PROC_FS
Expand Down
4 changes: 1 addition & 3 deletions arch/i386/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,14 @@ LDFLAGS_vmlinux := --emit-relocs
endif
CHECKFLAGS += -D__i386__

CFLAGS += -pipe -msoft-float
CFLAGS += -pipe -msoft-float -mregparm=3

# prevent gcc from keeping the stack 16 byte aligned
CFLAGS += $(call cc-option,-mpreferred-stack-boundary=2)

# CPU-specific tuning. Anything which can be shared with UML should go here.
include $(srctree)/arch/i386/Makefile.cpu

cflags-$(CONFIG_REGPARM) += -mregparm=3

# temporary until string.h is fixed
cflags-y += -ffreestanding

Expand Down
8 changes: 1 addition & 7 deletions include/asm-i386/module.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,18 +62,12 @@ struct mod_arch_specific
#error unknown processor family
#endif

#ifdef CONFIG_REGPARM
#define MODULE_REGPARM "REGPARM "
#else
#define MODULE_REGPARM ""
#endif

#ifdef CONFIG_4KSTACKS
#define MODULE_STACKSIZE "4KSTACKS "
#else
#define MODULE_STACKSIZE ""
#endif

#define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY MODULE_REGPARM MODULE_STACKSIZE
#define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY MODULE_STACKSIZE

#endif /* _ASM_I386_MODULE_H */

0 comments on commit a1a70c2

Please sign in to comment.