[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] x86/Rules: Use -mskip-rax-setup if the compiler supports it
This option is available from GCC 5 onwards, and was specifically introduced as an optimisation for Linux. When using varadic functions, the caller needs to know how many floating point arguments were passed. Xen, like Linux, doesn't uses floating point arguments, so doesn't need to emit code to inform varadic functions such as printk() that there are zero arguments. The net delta for a release build is: add/remove: 0/0 grow/shrink: 35/625 up/down: 603/-5489 (-4886) with the single biggest change being: x86_emulate 101933 101751 -182 Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- CC: Jan Beulich <JBeulich@xxxxxxxx> --- xen/arch/x86/Rules.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/xen/arch/x86/Rules.mk b/xen/arch/x86/Rules.mk index 568657e..370a0f0 100644 --- a/xen/arch/x86/Rules.mk +++ b/xen/arch/x86/Rules.mk @@ -30,3 +30,7 @@ CFLAGS += -fno-asynchronous-unwind-tables ifneq ($(call cc-option,$(CC),-fvisibility=hidden,n),n) CFLAGS += -DGCC_HAS_VISIBILITY_ATTRIBUTE endif + +# Xen doesn't ever pass SSE arguments. Discard the SSE setup +# (i.e. `xor %eax, %eax`) before varadic function calls if possible. +$(call cc-option-add,CFLAGS,CC,-mskip-rax-setup) -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |