gcc/libgcc
Daniel Santos d6d4d7701a i386.opt: Add option -mcall-ms2sysv-xlogues.
gcc/ChangeLog:

	* config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
	* config/i386/i386.h
	(x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
	(NUM_X86_64_MS_CLOBBERED_REGS): New macro.
	(struct machine_function): Add new members call_ms2sysv,
	call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
	(struct machine_frame_state): New fields sp_realigned and
	sp_realigned_offset.
	* config/i386/i386.c
	(enum xlogue_stub): New enum.
	(enum xlogue_stub_sets): New enum.
	(class xlogue_layout): New class.
	(struct ix86_frame): New fields stack_realign_allocate_offset,
	stack_realign_offset and outlined_save_offset.  Modify comments to
	detail stack layout when using out-of-line stubs.
	(ix86_target_string): Add -mcall-ms2sysv-xlogues option.
	(ix86_option_override_internal): Add sorry() for TARGET_SEH and
	-mcall-ms2sysv-xlogues.
	(stub_managed_regs): New static variable.
	(ix86_save_reg): Add new parameter ignore_outlined to optionally omit
	registers managed by out-of-line stub.
	(disable_call_ms2sysv_xlogues): New function.
	(ix86_compute_frame_layout): Modify re-alignment calculations, disable
	m->call_ms2sysv when appropriate and compute frame layout for
	out-of-line stubs.
	(sp_valid_at, fp_valid_at): New inline functions.
	(choose_basereg): New function.
	(choose_baseaddr): Add align parameter, use choose_basereg and modify
	all callers.
	(ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
	Use align parameter of choose_baseaddr to generated aligned SSE movs
	when possible.
	(pro_epilogue_adjust_stack): Modify to track
	machine_frame_state::sp_realigned.
	(ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
	(ix86_nsaved_sseregs): Likewise.
	(ix86_emit_save_regs): Likewise.
	(ix86_emit_save_regs_using_mov): Likewise.
	(ix86_emit_save_sse_regs_using_mov): Likewise.
	(get_scratch_register_on_entry): Likewise.
	(gen_frame_set): New function.
	(gen_frame_load): Likewise.
	(gen_frame_store): Likewise.
	(emit_outlined_ms2sysv_save): Likewise.
	(emit_outlined_ms2sysv_restore): Likewise.
	(ix86_expand_prologue): Modify stack re-alignment code and call
	emit_outlined_ms2sysv_save when appropriate.
	(ix86_emit_leave): Clear machine_frame_state::sp_realigned.  Add
	parameter rtx_insn *insn, which allows the function to be used to only
	generate the notes.
	(ix86_expand_epilogue): Modify validity checks of frame and stack
	pointers, and call emit_outlined_ms2sysv_restore when appropriate.
	(ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
	* config/i386/predicates.md
	(save_multiple): New predicate.
	(restore_multiple): Likewise.
	* config/i386/sse.md
	(save_multiple<mode>): New pattern.
	(save_multiple_realign<mode>): Likewise.
	(restore_multiple<mode>): Likewise.
	(restore_multiple_and_return<mode>): Likewise.
	(restore_multiple_leave_return<mode>): Likewise.
	* Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp

gcc/testsuite/ChangeLog:

	* gcc.target/x86_64/abi/ms-sysv/do-test.S: New file.
	* gcc.target/x86_64/abi/ms-sysv/gen.cc: Likewise.
	* gcc.target/x86_64/abi/ms-sysv/ms-sysv.c: Likewise.
	* gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp: Likewise.

libgcc/ChangeLog:

	* config.host: Add i386/t-msabi to i386/t-linux file list.
	* config/i386/i386-asm.h: New file.
	* config/i386/resms64.S: New file.
	* config/i386/resms64f.S: New file.
	* config/i386/resms64fx.S: New file.
	* config/i386/resms64x.S: New file.
	* config/i386/savms64.S: New file.
	* config/i386/savms64f.S: New file.
	* config/i386/t-msabi: New file.

From-SVN: r248029
2017-05-14 12:22:08 +02:00
..
config i386.opt: Add option -mcall-ms2sysv-xlogues. 2017-05-14 12:22:08 +02:00
soft-fp op-common.h (_FP_MUL, [...]): Add /* FALLTHRU */ comments. 2017-01-24 23:32:30 +01:00
ChangeLog i386.opt: Add option -mcall-ms2sysv-xlogues. 2017-05-14 12:22:08 +02:00
Makefile.in Introduce gcov.h header file (PR gcov-profile/80435). 2017-04-19 08:08:44 +00:00
config.host i386.opt: Add option -mcall-ms2sysv-xlogues. 2017-05-14 12:22:08 +02:00
config.in rs6000: float128 on BE and 32-bit 2017-03-10 18:57:58 +01:00
configure rs6000: float128 on BE and 32-bit 2017-03-10 18:57:58 +01:00
configure.ac rs6000: float128 on BE and 32-bit 2017-03-10 18:57:58 +01:00
crtstuff.c Update copyright years. 2017-01-01 13:07:43 +01:00
dfp-bit.c Update copyright years. 2017-01-01 13:07:43 +01:00
dfp-bit.h Update copyright years. 2017-01-01 13:07:43 +01:00
divmod.c Update copyright years. 2017-01-01 13:07:43 +01:00
empty.mk
emutls.c Update copyright years. 2017-01-01 13:07:43 +01:00
enable-execute-stack-empty.c
enable-execute-stack-mprotect.c Update copyright years. 2017-01-01 13:07:43 +01:00
find-symver.awk Update copyright years. 2017-01-01 13:07:43 +01:00
fixed-bit.c Update copyright years. 2017-01-01 13:07:43 +01:00
fixed-bit.h Update copyright years. 2017-01-01 13:07:43 +01:00
fixed-obj.mk Makefile.in (fixed-funcs,fixed-conv-funcs): filter-out LIB2FUNCS_EXCLUDE before adding them to libgcc-objects, libgcc-s-objects. 2012-08-23 15:41:03 +00:00
floatunsidf.c
floatunsisf.c
floatunsitf.c
floatunsixf.c
fp-bit.c Update copyright years. 2017-01-01 13:07:43 +01:00
fp-bit.h Update copyright years. 2017-01-01 13:07:43 +01:00
gbl-ctors.h Update copyright years. 2017-01-01 13:07:43 +01:00
gcov.h Introduce gcov.h header file (PR gcov-profile/80435). 2017-04-19 08:08:44 +00:00
gen-fixed.sh
generic-morestack-thread.c Update copyright years. 2017-01-01 13:07:43 +01:00
generic-morestack.c Update copyright years. 2017-01-01 13:07:43 +01:00
generic-morestack.h Update copyright years. 2017-01-01 13:07:43 +01:00
gstdint.h
gthr-posix.h Update copyright years. 2017-01-01 13:07:43 +01:00
gthr-single.h Update copyright years. 2017-01-01 13:07:43 +01:00
gthr.h Update copyright years. 2017-01-01 13:07:43 +01:00
libgcc-std.ver.in Update copyright years. 2017-01-01 13:07:43 +01:00
libgcc2.c Update copyright years. 2017-01-01 13:07:43 +01:00
libgcc2.h Update copyright years. 2017-01-01 13:07:43 +01:00
libgcov-driver-system.c Update copyright years. 2017-01-01 13:07:43 +01:00
libgcov-driver.c Validate that destination gcov file does not exist for gcov-tool (PR gcov-profile/78783). 2017-04-18 07:24:20 +00:00
libgcov-interface.c Update copyright years. 2017-01-01 13:07:43 +01:00
libgcov-merge.c Update copyright years. 2017-01-01 13:07:43 +01:00
libgcov-profiler.c Update copyright years. 2017-01-01 13:07:43 +01:00
libgcov-util.c Update copyright years. 2017-01-01 13:07:43 +01:00
libgcov.h Introduce gcov.h header file (PR gcov-profile/80435). 2017-04-19 08:08:44 +00:00
memcmp.c
memcpy.c
memmove.c
memset.c
mkheader.sh Update copyright years. 2017-01-01 13:07:43 +01:00
mkmap-flat.awk Update copyright years. 2017-01-01 13:07:43 +01:00
mkmap-symver.awk Update copyright years. 2017-01-01 13:07:43 +01:00
offloadstuff.c Update copyright years. 2017-01-01 13:07:43 +01:00
shared-object.mk Add the nvptx port. 2014-11-10 16:12:42 +00:00
siditi-object.mk
static-object.mk Add the nvptx port. 2014-11-10 16:12:42 +00:00
sync.c Update copyright years. 2017-01-01 13:07:43 +01:00
udivmod.c Update copyright years. 2017-01-01 13:07:43 +01:00
udivmodsi4.c Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-arm-common.inc Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-c.c Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-compat.c Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-compat.h Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-dw2-fde-compat.c Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-dw2-fde-dip.c Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-dw2-fde.c Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-dw2-fde.h Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-dw2.c [AArch64] Only build & test pauth code for LP64 2017-01-20 21:03:41 +00:00
unwind-dw2.h Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-generic.h Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-pe.h Update copyright years. 2017-01-01 13:07:43 +01:00
unwind-seh.c unwind-seh.c: Suppress warnings for RtlUnwindEx calls. 2017-03-02 11:00:28 +00:00
unwind-sjlj.c Update copyright years. 2017-01-01 13:07:43 +01:00
unwind.inc Update copyright years. 2017-01-01 13:07:43 +01:00
vtv_end.c Update copyright years. 2017-01-01 13:07:43 +01:00
vtv_end_preinit.c Update copyright years. 2017-01-01 13:07:43 +01:00
vtv_start.c Update copyright years. 2017-01-01 13:07:43 +01:00
vtv_start_preinit.c Update copyright years. 2017-01-01 13:07:43 +01:00