[Bug testsuite/80759] gcc.target/x86_64/abi/ms-sysv FAILs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80759 --- Comment #58 from dansan at gcc dot gnu.org --- Author: dansan Date: Mon Jul 24 21:59:57 2017 New Revision: 250488 URL: https://gcc.gnu.org/viewcvs?rev=250488&root=gcc&view=rev Log: PR testsuite/80759 Fix -mcall-ms2sysv-xlogues on Darwin and Solaris 2017-07-24 Daniel Santos PR testsuite/80759 * config.host: include i386/t-msabi for darwin and solaris. * config/i386/i386-asm.h (ELFFN): Rename to FN_TYPE. (FN_SIZE): New macro. (FN_HIDDEN): Likewise. (ASMNAME): Likewise. (FUNC_START): Rename to FUNC_BEGIN, use ASMNAME, replace .global with .globl. (HIDDEN_FUNC): Use ASMNAME and .globl instead of .global. (SSE_SAVE): Convert to cpp macro, hard-code offset (always 0x60). * config/i386/resms64.S: Use SSE_SAVE as cpp macro instead of gas .macro. * config/i386/resms64f.S: Likewise. * config/i386/resms64fx.S: Likewise. * config/i386/resms64x.S: Likewise. * config/i386/savms64.S: Likewise. * config/i386/savms64f.S: Likewise. Modified: trunk/libgcc/ChangeLog trunk/libgcc/config.host trunk/libgcc/config/i386/i386-asm.h trunk/libgcc/config/i386/resms64.S trunk/libgcc/config/i386/resms64f.S trunk/libgcc/config/i386/resms64fx.S trunk/libgcc/config/i386/resms64x.S trunk/libgcc/config/i386/savms64.S trunk/libgcc/config/i386/savms64f.S
[Bug testsuite/80759] gcc.target/x86_64/abi/ms-sysv FAILs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80759 --- Comment #59 from dansan at gcc dot gnu.org --- Author: dansan Date: Mon Jul 24 22:00:35 2017 New Revision: 250489 URL: https://gcc.gnu.org/viewcvs?rev=250489&root=gcc&view=rev Log: PR testsuite/80759 Fix broken tests in ms-sysv.exp 2017-07-24 Daniel Santos PR testsuite/80759 * gcc.target/x86_64/abi/ms-sysv/do-test.S (ELFFN_BEGIN): Rename to FN_TYPE. (ELFFN_END): Rename to FN_SIZE. (ASMNAME): New macro. (FUNC): Rename to FUNC_BEGIN, use ASMNAME and use .globl instead of .global. (FUNC_END): Use ASMNAME. (test_data_save): Remove. (test_data_input): Likewise. (test_data_output: Likewise. (test_data_fn): Likewise. (test_data_retaddr): Likewise. (regs_to_mem): Make globals, use r10 instead of rax. (mem_to_regs): Likewise. (do_test_unaligned): Remove .cfi directives, remove pushf/popf, move body to ms-sysv.c. (do_test_aligned): Likewise. * gcc.target/x86_64/abi/ms-sysv/ms-sysv.c: Add dg-* directives. (PASTE_STR): New macro. (ASMNAME): Likewise. (LOAD_TEST_DATA_ADDR): Likewise. (TEST_DATA_OFFSET): Likewise. (do_test_body0): New C function. (do_test_body): New inline assembly routine. * gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp (runtest_ms_sysv): Modify. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S trunk/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.c trunk/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp
[Bug target/71958] x86_64-w64-mingw32, ICE when '-mx32' is used
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71958 --- Comment #3 from dansan at gcc dot gnu.org --- Author: dansan Date: Tue Aug 22 17:59:24 2017 New Revision: 251287 URL: https://gcc.gnu.org/viewcvs?rev=251287&root=gcc&view=rev Log: PR target/71958: Error on -mx32 with -mabi=ms gcc/ChangeLog: 2017-08-11 Daniel Santos * config/i386/i386.c (ix86_option_override_internal): Error when -mx32 is combined with -mabi=ms. (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute ms_abi. gcc/testsuite/ChangeLog: 2017-08-11 Daniel Santos * gcc.target/i386/pr71958.c: New test to verify error on -mx32 and -mabi=ms * gcc.target/i386/pr64409.c: Modify to only run on x32. * gcc.target/i386/pr46470.c: Modify to skip x32 target. * gcc.target/i386/pr66275.c: Likewise. * gcc.target/i386/pr68018.c: Likewise. Added: trunk/gcc/testsuite/gcc.target/i386/pr71958.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.target/i386/pr46470.c trunk/gcc/testsuite/gcc.target/i386/pr64409.c trunk/gcc/testsuite/gcc.target/i386/pr66275.c trunk/gcc/testsuite/gcc.target/i386/pr68018.c
[Bug target/80969] [8 Regression] ICE in ix86_expand_prologue, at config/i386/i386.c:14606
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80969 --- Comment #5 from dansan at gcc dot gnu.org --- Author: dansan Date: Wed Aug 23 21:46:14 2017 New Revision: 251321 URL: https://gcc.gnu.org/viewcvs?rev=251321&root=gcc&view=rev Log: PR target/80969 - Fix ICE with -mabi=ms -mavx512f, reduce wasted space when realigning stack. 2017-08-23 Daniel Santos * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset): Remove field. (ix86_frame::stack_realign_allocate): New field. (struct machine_frame_state): Modify comments. (machine_frame_state::sp_realigned_fp_end): New field. * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame layout calculation. (sp_valid_at): Add assertion to assure no attempt to access invalid offset of a realigned stack. (fp_valid_at): Likewise. (choose_baseaddr): Modify comments. (ix86_emit_outlined_ms2sysv_save): Adjust to changes in ix86_expand_prologue. (ix86_expand_prologue): Modify stack realignment and allocation. (ix86_expand_epilogue): Modify comments. * doc/sourcebuild.texi: Add documentation for target selectors avx2, avx2_runtime, avx512f, and avx512f_runtime. 2017-08-23 Daniel Santos * gcc.target/i386/pr80969-1.c: New testcase. * gcc.target/i386/pr80969-2a.c: Likewise. * gcc.target/i386/pr80969-2.c: Likewise. * gcc.target/i386/pr80969-3.c: Likewise. * gcc.target/i386/pr80969-4a.c: Likewise. * gcc.target/i386/pr80969-4b.c: Likewise. * gcc.target/i386/pr80969-4.c: Likewise. * gcc.target/i386/pr80969-4.h: New header common to pr80969-4*.c * lib/target-supports.exp (check_avx512_os_support_available, check_avx512f_hw_available, check_effective_target_avx512f_runtime): New proceedures for target avx512f and avx512f_runtime selectors. (check_avx2_hw_available): Fix breakage due NULL being undefined. Added: trunk/gcc/testsuite/gcc.target/i386/pr80969-1.c trunk/gcc/testsuite/gcc.target/i386/pr80969-2.c trunk/gcc/testsuite/gcc.target/i386/pr80969-2a.c trunk/gcc/testsuite/gcc.target/i386/pr80969-3.c trunk/gcc/testsuite/gcc.target/i386/pr80969-4.c trunk/gcc/testsuite/gcc.target/i386/pr80969-4.h trunk/gcc/testsuite/gcc.target/i386/pr80969-4a.c trunk/gcc/testsuite/gcc.target/i386/pr80969-4b.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/config/i386/i386.h trunk/gcc/doc/sourcebuild.texi trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/lib/target-supports.exp
[Bug target/82196] -mcall-ms2sysv-xlogues stubs sometimes use wrong MOV instruction
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82196 --- Comment #2 from dansan at gcc dot gnu.org --- Author: dansan Date: Sun Sep 17 22:04:40 2017 New Revision: 252896 URL: https://gcc.gnu.org/viewcvs?rev=252896&root=gcc&view=rev Log: PR target/82196 correct choice of avx/sse stubs for -mcall-ms2sysv-xlogues gcc: config/i386/i386.c: (xlogue_layout::STUB_NAME_MAX_LEN): Increase to 20 bytes. (xlogue_layout::s_stub_names): Add an additional size-2 diminsion. (xlogue_layout::get_stub_name): Modify to select the appropairate sse or avx version of the stub. gcc/testsuite: gcc.target/i386/pr82196-1.c: New test. gcc.target/i386/pr82196-2.c: Likewise. libgcc: config/i386/i386-asm.h (PASTE2): New macro. (ASMNAME): Modify to use PASTE2. (MS2SYSV_STUB_PREFIX): New macro for isa prefix. (MS2SYSV_STUB_BEGIN, MS2SYSV_STUB_END): New macros for stub headers. config/i386/resms64.S: Rename to a header file, use MS2SYSV_STUB_BEGIN instead of HIDDEN_FUNC and MS2SYSV_STUB_END instead of FUNC_END. config/i386/resms64f.S: Likewise. config/i386/resms64fx.S: Likewise. config/i386/resms64x.S: Likewise. config/i386/savms64.S: Likewise. config/i386/savms64f.S: Likewise. config/i386/avx_resms64.S: New file that only defines a macro and includes it's corresponding header file. config/i386/avx_resms64f.S: Likewise. config/i386/avx_resms64fx.S: Likewise. config/i386/avx_resms64x.S: Likewise. config/i386/avx_savms64.S: Likewise. config/i386/avx_savms64f.S: Likewise. config/i386/sse_resms64.S: Likewise. config/i386/sse_resms64f.S: Likewise. config/i386/sse_resms64fx.S: Likewise. config/i386/sse_resms64x.S: Likewise. config/i386/sse_savms64.S: Likewise. config/i386/sse_savms64f.S: Likewise. config/i386/t-msabi: Modified to add avx and sse versions of stubs. Added: trunk/gcc/testsuite/gcc.target/i386/pr82196-1.c trunk/gcc/testsuite/gcc.target/i386/pr82196-2.c trunk/libgcc/config/i386/avx_resms64.S trunk/libgcc/config/i386/avx_resms64f.S trunk/libgcc/config/i386/avx_resms64fx.S trunk/libgcc/config/i386/avx_resms64x.S trunk/libgcc/config/i386/avx_savms64.S trunk/libgcc/config/i386/avx_savms64f.S trunk/libgcc/config/i386/resms64.h - copied, changed from r252895, trunk/libgcc/config/i386/resms64.S trunk/libgcc/config/i386/resms64f.h - copied, changed from r252895, trunk/libgcc/config/i386/resms64f.S trunk/libgcc/config/i386/resms64fx.h - copied, changed from r252895, trunk/libgcc/config/i386/resms64fx.S trunk/libgcc/config/i386/resms64x.h - copied, changed from r252895, trunk/libgcc/config/i386/resms64x.S trunk/libgcc/config/i386/savms64.h - copied, changed from r252895, trunk/libgcc/config/i386/savms64.S trunk/libgcc/config/i386/savms64f.h - copied, changed from r252895, trunk/libgcc/config/i386/savms64f.S trunk/libgcc/config/i386/sse_resms64.S trunk/libgcc/config/i386/sse_resms64f.S trunk/libgcc/config/i386/sse_resms64fx.S trunk/libgcc/config/i386/sse_resms64x.S trunk/libgcc/config/i386/sse_savms64.S trunk/libgcc/config/i386/sse_savms64f.S Removed: trunk/libgcc/config/i386/resms64.S trunk/libgcc/config/i386/resms64f.S trunk/libgcc/config/i386/resms64fx.S trunk/libgcc/config/i386/resms64x.S trunk/libgcc/config/i386/savms64.S trunk/libgcc/config/i386/savms64f.S Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/testsuite/ChangeLog trunk/libgcc/ChangeLog trunk/libgcc/config/i386/i386-asm.h trunk/libgcc/config/i386/t-msabi
[Bug target/82196] -mcall-ms2sysv-xlogues stubs sometimes use wrong MOV instruction
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82196 --- Comment #5 from dansan at gcc dot gnu.org --- Author: dansan Date: Sat Sep 23 11:02:54 2017 New Revision: 253116 URL: https://gcc.gnu.org/viewcvs?rev=253116&root=gcc&view=rev Log: PR target/82196 addendum: Fix Darwin build breakage and test FAILS on Solaris gcc/testsuite: * gcc.target/i386/pr82196-1.c: (b): Remove volatile asm. * gcc.target/i386/pr82196-2.c: (b): Likewise. libgcc: * configure.ac: Add Check for HAVE_AS_AVX. * config.in: Regenerate. * configure: Likewise. * config/i386/i386-asm.h: Include auto-target.h from libgcc. (SSE_SAVE, SSE_RESTORE): Emit .byte sequence for !HAVE_AS_AVX. Correct out-of-date comments. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.target/i386/pr82196-1.c trunk/gcc/testsuite/gcc.target/i386/pr82196-2.c trunk/libgcc/ChangeLog trunk/libgcc/config.in trunk/libgcc/config/i386/i386-asm.h trunk/libgcc/configure trunk/libgcc/configure.ac
[Bug target/82268] [8 regression] i386/pr82196-1.c fail
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82268 --- Comment #5 from dansan at gcc dot gnu.org --- Author: dansan Date: Fri Oct 27 22:15:32 2017 New Revision: 254186 URL: https://gcc.gnu.org/viewcvs?rev=254186&root=gcc&view=rev Log: PR target/82268 Correct FAIL when configured --with-cpu * gcc.target/i386/pr82196-1.c (dg-options): Add -mno-avx. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.target/i386/pr82196-1.c
[Bug target/82002] [8 Regression] ICE in sp_valid_at, at config/i386/i386.c:13233
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82002 --- Comment #9 from dansan at gcc dot gnu.org --- Author: dansan Date: Tue Oct 31 21:48:55 2017 New Revision: 254284 URL: https://gcc.gnu.org/viewcvs?rev=254284&root=gcc&view=rev Log: PR target/82002 Part 1: Correct ICE caused by wrong calculation gcc: config/i386/i386.c (ix86_expand_epilogue): Correct stack calculation. gcc/testsuite: gcc.target/i386/pr82002-1.c: New test. gcc.target/i386/pr82002-2a.c: New xfail test. gcc.target/i386/pr82002-2b.c: New xfail test. Added: trunk/gcc/testsuite/gcc.target/i386/pr82002-1.c trunk/gcc/testsuite/gcc.target/i386/pr82002-2a.c trunk/gcc/testsuite/gcc.target/i386/pr82002-2b.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/testsuite/ChangeLog
[Bug target/82002] [8 Regression] ICE in sp_valid_at, at config/i386/i386.c:13233
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82002 --- Comment #11 from dansan at gcc dot gnu.org --- Author: dansan Date: Sat Nov 4 22:38:43 2017 New Revision: 254412 URL: https://gcc.gnu.org/viewcvs?rev=254412&root=gcc&view=rev Log: PR target/82002 Part 2: Correct non-immediate offset/invalid INSN When we are realigning the stack pointer, making an ms_abi to sysv_abi call and allocating 2GiB or more on the stack we end up with an invalid INSN due to a non-immediate offset. This occurs both with and without -mcall-ms2sysv-xlogues. Additionally, the stack allocation with -mcall-ms2sysv-xlogues is ignoring (silently disabling) stack checking, stack clash checking and probing. This patch fixes these problems by: 1. No longer allocate stack space in ix86_emit_outlined_ms2sysv_save. 2. Rearrange where we emit SSE saves or stub call: a. Before frame allocation when offset from frame to save area is >= 2GiB. b. After frame allocation when frame is < 2GiB. (Stack allocations prior to the stub call can't be combined with those afterwards, so this is better when possible.) 3. Modify choose_baseaddr to take an optional scratch_regno argument and never return rtx that cannot be used as an immediate. gcc: config/i386/i386.c (choose_basereg): Use optional scratch register and add assertion. (x86_emit_outlined_ms2sysv_save): Use scratch register when needed, and don't allocate stack. (ix86_expand_prologue): Rearrange where SSE saves/stub call is emitted, correct wrong allocation with -mcall-ms2sysv-xlogues. (ix86_emit_outlined_ms2sysv_restore): Fix non-immediate offsets. gcc/testsuite: gcc.target/i386/pr82002-2a.c: Change from xfail to fail. gcc.target/i386/pr82002-2b.c: Likewise. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.target/i386/pr82002-2a.c trunk/gcc/testsuite/gcc.target/i386/pr82002-2b.c