Adds the option to i386.opt and i386.c and adds documentation to invoke.texi. --- gcc/config/i386/i386.c | 1 + gcc/config/i386/i386.opt | 5 +++++ gcc/doc/invoke.texi | 11 ++++++++++- 3 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 5ed8fb6..0e1d871 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -4290,6 +4290,7 @@ ix86_target_string (HOST_WIDE_INT isa, int flags, int ix86_flags, { "-mavx256-split-unaligned-load", MASK_AVX256_SPLIT_UNALIGNED_LOAD}, { "-mavx256-split-unaligned-store", MASK_AVX256_SPLIT_UNALIGNED_STORE}, { "-mprefer-avx128", MASK_PREFER_AVX128}, + { "-mmoutline-msabi-xlogues", MASK_OUTLINE_MSABI_XLOGUES}, }; /* Additional flag options. */ diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt index 9eef558..f556978 100644 --- a/gcc/config/i386/i386.opt +++ b/gcc/config/i386/i386.opt @@ -528,6 +528,11 @@ Enum(calling_abi) String(sysv) Value(SYSV_ABI) EnumValue Enum(calling_abi) String(ms) Value(MS_ABI) +moutline-msabi-xlogues +Target Report Mask(OUTLINE_MSABI_XLOGUES) Save +Reduces function size by using out-of-line stubs to save & restore registers +clobberd by differences in Microsoft and System V ABIs. + mveclibabi= Target RejectNegative Joined Var(ix86_veclibabi_type) Enum(ix86_veclibabi) Init(ix86_veclibabi_type_none) Vector library ABI to use. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 8e2f466..4706085 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -1188,7 +1188,7 @@ See RS/6000 and PowerPC Options. -msse2avx -mfentry -mrecord-mcount -mnop-mcount -m8bit-idiv @gol -mavx256-split-unaligned-load -mavx256-split-unaligned-store @gol -malign-data=@var{type} -mstack-protector-guard=@var{guard} @gol --mmitigate-rop -mgeneral-regs-only} +-mmitigate-rop -mgeneral-regs-only -moutline-msabi-xlogues} @emph{x86 Windows Options} @gccoptlist{-mconsole -mcygwin -mno-cygwin -mdll @gol @@ -25004,6 +25004,15 @@ You can control this behavior for specific functions by using the function attributes @code{ms_abi} and @code{sysv_abi}. @xref{Function Attributes}. +@item -moutline-msabi-xlogues +@itemx -mno-outline-msabi-xlogues +@opindex moutline-msabi-xlogues +Due to differences in 64-bit ABIs, any Microsoft ABI function that calls a +SysV ABI function must consider RSI, RDI and XMM6-15 as clobbered, emitting +fairly lengthy prologues & epilogues. This option generates prologues & +epilogues that instead call stubs in libgcc to perform these saves & restores, +thus reducing function size at the cost of a few extra instructions. + @item -mtls-dialect=@var{type} @opindex mtls-dialect Generate code to access thread-local storage using the @samp{gnu} or -- 2.9.0