PR target/82196 correct choice of avx/sse stubs for -mcall-ms2sysv-xlogues
authorDaniel Santos <daniel.santos@pobox.com>
Sun, 17 Sep 2017 22:04:40 +0000 (22:04 +0000)
committerDaniel Santos <dansan@gcc.gnu.org>
Sun, 17 Sep 2017 22:04:40 +0000 (22:04 +0000)
commit3cb626e4f7cebadf907f5e09f2432f0838f73ff9
treee791665e16c2e5c65230207cf93169c1a71c3801
parent01f44e44faf37fc34775b9e28e46d1c9243b247d
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.

From-SVN: r252896
32 files changed:
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr82196-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr82196-2.c [new file with mode: 0644]
libgcc/ChangeLog
libgcc/config/i386/avx_resms64.S [new file with mode: 0644]
libgcc/config/i386/avx_resms64f.S [new file with mode: 0644]
libgcc/config/i386/avx_resms64fx.S [new file with mode: 0644]
libgcc/config/i386/avx_resms64x.S [new file with mode: 0644]
libgcc/config/i386/avx_savms64.S [new file with mode: 0644]
libgcc/config/i386/avx_savms64f.S [new file with mode: 0644]
libgcc/config/i386/i386-asm.h
libgcc/config/i386/resms64.S [deleted file]
libgcc/config/i386/resms64.h [new file with mode: 0644]
libgcc/config/i386/resms64f.S [deleted file]
libgcc/config/i386/resms64f.h [new file with mode: 0644]
libgcc/config/i386/resms64fx.S [deleted file]
libgcc/config/i386/resms64fx.h [new file with mode: 0644]
libgcc/config/i386/resms64x.S [deleted file]
libgcc/config/i386/resms64x.h [new file with mode: 0644]
libgcc/config/i386/savms64.S [deleted file]
libgcc/config/i386/savms64.h [new file with mode: 0644]
libgcc/config/i386/savms64f.S [deleted file]
libgcc/config/i386/savms64f.h [new file with mode: 0644]
libgcc/config/i386/sse_resms64.S [new file with mode: 0644]
libgcc/config/i386/sse_resms64f.S [new file with mode: 0644]
libgcc/config/i386/sse_resms64fx.S [new file with mode: 0644]
libgcc/config/i386/sse_resms64x.S [new file with mode: 0644]
libgcc/config/i386/sse_savms64.S [new file with mode: 0644]
libgcc/config/i386/sse_savms64f.S [new file with mode: 0644]
libgcc/config/i386/t-msabi