[{"id":1769727,"web_url":"http://patchwork.ozlabs.org/comment/1769727/","msgid":"<CAFULd4Ypp9dceHE_hAaCrnzsLgEOvW+mJEouMCAdG10WQxbPOQ@mail.gmail.com>","list_archive_url":null,"date":"2017-09-17T15:53:22","subject":"Re: [PATCH] [i386,\n\tlibgcc] PR 82196 -mcall-ms2sysv-xlogues emits wrong AVX/SSE MOV","submitter":{"id":808,"url":"http://patchwork.ozlabs.org/api/people/808/","name":"Uros Bizjak","email":"ubizjak@gmail.com"},"content":"On Thu, Sep 14, 2017 at 6:03 AM, Daniel Santos <daniel.santos@pobox.com> wrote:\n> I made a silly mistake in libgcc by testing the cpp macro __AVX__ to\n> determine rather to use movaps or vmovaps in the stubs.  This resulted\n> in the stubs choice of instruction being decided by the machine flags\n> when the compiler was built rather than those being supplied at the\n> command line.  This patch splits stubs into separate sse and avx\n> versions so that both are available.\n>\n> gcc:\n>         config/i386/i386.c: (xlogue_layout::STUB_NAME_MAX_LEN): Increase to 20\n>         bytes.\n>         (xlogue_layout::s_stub_names): Add an additional size-2 diminsion.\n>         (xlogue_layout::get_stub_name): Modify to select the appropairate sse\n>         and avx version of the stub.\n>\n> gcc/testsuite:\n>         gcc.target/i386/pr82196-1.c: New test.\n>         gcc.target/i386/pr82196-2.c: Likewise.\n>\n> libgcc:\n>         config/i386/i386-asm.h (PASTE2): New macro.\n>         (ASMNAME): Modify to use PASTE2.\n>         (MS2SYSV_STUB_PREFIX): New macro for isa prefix.\n>         (MS2SYSV_STUB_BEGIN, MS2SYSV_STUB_END): New macros for stub headers.\n>         config/i386/resms64.S: Rename to a header file, use MS2SYSV_STUB_BEGIN\n>         instead of HIDDEN_FUNC and MS2SYSV_STUB_END instead of FUNC_END.\n>         config/i386/resms64f.S: Likewise.\n>         config/i386/resms64fx.S: Likewise.\n>         config/i386/resms64x.S: Likewise.\n>         config/i386/savms64.S: Likewise.\n>         config/i386/savms64f.S: Likewise.\n>         config/i386/avx_resms64.S: New file that only defines a macro and\n>         includes it's corresponding header file.\n>         config/i386/avx_resms64f.S: Likewise.\n>         config/i386/avx_resms64fx.S: Likewise.\n>         config/i386/avx_resms64x.S: Likewise.\n>         config/i386/avx_savms64.S: Likewise.\n>         config/i386/avx_savms64f.S: Likewise.\n>         config/i386/sse_resms64.S: Likewise.\n>         config/i386/sse_resms64f.S: Likewise.\n>         config/i386/sse_resms64fx.S: Likewise.\n>         config/i386/sse_resms64x.S: Likewise.\n>         config/i386/sse_savms64.S: Likewise.\n>         config/i386/sse_savms64f.S: Likewise.\n>         config/i386/t-msabi: Modified to add avx and sse versions of stubs.\n\nOK.\n\nThanks,\nUros.\n\n> Signed-off-by: Daniel Santos <daniel.santos@pobox.com>\n> ---\n>  gcc/config/i386/i386.c                          | 15 ++++++-----\n>  gcc/testsuite/gcc.target/i386/pr82196-1.c       | 14 ++++++++++\n>  gcc/testsuite/gcc.target/i386/pr82196-2.c       | 14 ++++++++++\n>  libgcc/config/i386/avx_resms64.S                |  2 ++\n>  libgcc/config/i386/avx_resms64f.S               |  2 ++\n>  libgcc/config/i386/avx_resms64fx.S              |  2 ++\n>  libgcc/config/i386/avx_resms64x.S               |  2 ++\n>  libgcc/config/i386/avx_savms64.S                |  2 ++\n>  libgcc/config/i386/avx_savms64f.S               |  2 ++\n>  libgcc/config/i386/i386-asm.h                   | 34 ++++++++++++++++---------\n>  libgcc/config/i386/{resms64.S => resms64.h}     | 28 ++++++++++----------\n>  libgcc/config/i386/{resms64f.S => resms64f.h}   | 24 ++++++++---------\n>  libgcc/config/i386/{resms64fx.S => resms64fx.h} | 24 ++++++++---------\n>  libgcc/config/i386/{resms64x.S => resms64x.h}   | 28 ++++++++++----------\n>  libgcc/config/i386/{savms64.S => savms64.h}     | 28 ++++++++++----------\n>  libgcc/config/i386/{savms64f.S => savms64f.h}   | 24 ++++++++---------\n>  libgcc/config/i386/sse_resms64.S                |  2 ++\n>  libgcc/config/i386/sse_resms64f.S               |  2 ++\n>  libgcc/config/i386/sse_resms64fx.S              |  2 ++\n>  libgcc/config/i386/sse_resms64x.S               |  2 ++\n>  libgcc/config/i386/sse_savms64.S                |  2 ++\n>  libgcc/config/i386/sse_savms64f.S               |  2 ++\n>  libgcc/config/i386/t-msabi                      | 18 ++++++++-----\n>  23 files changed, 173 insertions(+), 102 deletions(-)\n>  create mode 100644 gcc/testsuite/gcc.target/i386/pr82196-1.c\n>  create mode 100644 gcc/testsuite/gcc.target/i386/pr82196-2.c\n>  create mode 100644 libgcc/config/i386/avx_resms64.S\n>  create mode 100644 libgcc/config/i386/avx_resms64f.S\n>  create mode 100644 libgcc/config/i386/avx_resms64fx.S\n>  create mode 100644 libgcc/config/i386/avx_resms64x.S\n>  create mode 100644 libgcc/config/i386/avx_savms64.S\n>  create mode 100644 libgcc/config/i386/avx_savms64f.S\n>  rename libgcc/config/i386/{resms64.S => resms64.h} (76%)\n>  rename libgcc/config/i386/{resms64f.S => resms64f.h} (79%)\n>  rename libgcc/config/i386/{resms64fx.S => resms64fx.h} (79%)\n>  rename libgcc/config/i386/{resms64x.S => resms64x.h} (77%)\n>  rename libgcc/config/i386/{savms64.S => savms64.h} (76%)\n>  rename libgcc/config/i386/{savms64f.S => savms64f.h} (79%)\n>  create mode 100644 libgcc/config/i386/sse_resms64.S\n>  create mode 100644 libgcc/config/i386/sse_resms64f.S\n>  create mode 100644 libgcc/config/i386/sse_resms64fx.S\n>  create mode 100644 libgcc/config/i386/sse_resms64x.S\n>  create mode 100644 libgcc/config/i386/sse_savms64.S\n>  create mode 100644 libgcc/config/i386/sse_savms64f.S\n>\n> diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c\n> index b2b02acc58a..f0d7d0eb196 100644\n> --- a/gcc/config/i386/i386.c\n> +++ b/gcc/config/i386/i386.c\n> @@ -2513,7 +2513,7 @@ public:\n>    static const unsigned MAX_REGS = 18;\n>    static const unsigned MAX_EXTRA_REGS = MAX_REGS - MIN_REGS;\n>    static const unsigned VARIANT_COUNT = MAX_EXTRA_REGS + 1;\n> -  static const unsigned STUB_NAME_MAX_LEN = 16;\n> +  static const unsigned STUB_NAME_MAX_LEN = 20;\n>    static const char * const STUB_BASE_NAMES[XLOGUE_STUB_COUNT];\n>    static const unsigned REG_ORDER[MAX_REGS];\n>    static const unsigned REG_ORDER_REALIGN[MAX_REGS];\n> @@ -2536,7 +2536,7 @@ private:\n>    struct reginfo m_regs[MAX_REGS];\n>\n>    /* Lazy-inited cache of symbol names for stubs.  */\n> -  static char s_stub_names[XLOGUE_STUB_COUNT][VARIANT_COUNT]\n> +  static char s_stub_names[2][XLOGUE_STUB_COUNT][VARIANT_COUNT]\n>                           [STUB_NAME_MAX_LEN];\n>\n>    static const xlogue_layout s_instances[XLOGUE_SET_COUNT];\n> @@ -2588,7 +2588,7 @@ const unsigned xlogue_layout::VARIANT_COUNT;\n>  const unsigned xlogue_layout::STUB_NAME_MAX_LEN;\n>\n>  /* Initialize xlogue_layout::s_stub_names to zero.  */\n> -char xlogue_layout::s_stub_names[XLOGUE_STUB_COUNT][VARIANT_COUNT]\n> +char xlogue_layout::s_stub_names[2][XLOGUE_STUB_COUNT][VARIANT_COUNT]\n>                                 [STUB_NAME_MAX_LEN];\n>\n>  /* Instantiates all xlogue_layout instances.  */\n> @@ -2692,13 +2692,16 @@ const char *\n>  xlogue_layout::get_stub_name (enum xlogue_stub stub,\n>                               unsigned n_extra_regs)\n>  {\n> -  char *name = s_stub_names[stub][n_extra_regs];\n> +  const int have_avx = TARGET_AVX;\n> +  char *name = s_stub_names[!!have_avx][stub][n_extra_regs];\n>\n>    /* Lazy init */\n>    if (!*name)\n>      {\n> -      int res = snprintf (name, STUB_NAME_MAX_LEN, \"__%s_%u\",\n> -                         STUB_BASE_NAMES[stub], MIN_REGS + n_extra_regs);\n> +      int res = snprintf (name, STUB_NAME_MAX_LEN, \"__%s_%s_%u\",\n> +                         (have_avx ? \"avx\" : \"sse\"),\n> +                         STUB_BASE_NAMES[stub],\n> +                         MIN_REGS + n_extra_regs);\n>        gcc_checking_assert (res < (int)STUB_NAME_MAX_LEN);\n>      }\n>\n> diff --git a/gcc/testsuite/gcc.target/i386/pr82196-1.c b/gcc/testsuite/gcc.target/i386/pr82196-1.c\n> new file mode 100644\n> index 00000000000..fa573dc6b66\n> --- /dev/null\n> +++ b/gcc/testsuite/gcc.target/i386/pr82196-1.c\n> @@ -0,0 +1,14 @@\n> +/* { dg-do compile } */\n> +/* { dg-options \"-msse -mcall-ms2sysv-xlogues -O2\" } */\n> +/* { dg-final { scan-assembler \"call.*__sse_savms64_18\" } } */\n> +/* { dg-final { scan-assembler \"jmp.*__sse_resms64x_18\" } } */\n> +\n> +void __attribute__((sysv_abi)) a() {\n> +}\n> +\n> +static void __attribute__((sysv_abi)) (*volatile a_noinfo)() = a;\n> +\n> +void __attribute__((ms_abi)) b() {\n> +  __asm__ __volatile__ (\"\" :::\"rbx\", \"rbp\", \"r12\", \"r13\", \"r14\", \"r15\");\n> +  a_noinfo ();\n> +}\n> diff --git a/gcc/testsuite/gcc.target/i386/pr82196-2.c b/gcc/testsuite/gcc.target/i386/pr82196-2.c\n> new file mode 100644\n> index 00000000000..31705bee29b\n> --- /dev/null\n> +++ b/gcc/testsuite/gcc.target/i386/pr82196-2.c\n> @@ -0,0 +1,14 @@\n> +/* { dg-do compile } */\n> +/* { dg-options \"-mavx -mcall-ms2sysv-xlogues -O2\" } */\n> +/* { dg-final { scan-assembler \"call.*__avx_savms64_18\" } } */\n> +/* { dg-final { scan-assembler \"jmp.*__avx_resms64x_18\" } } */\n> +\n> +void __attribute__((sysv_abi)) a() {\n> +}\n> +\n> +static void __attribute__((sysv_abi)) (*volatile a_noinfo)() = a;\n> +\n> +void __attribute__((ms_abi)) b() {\n> +  __asm__ __volatile__ (\"\" :::\"rbx\", \"rbp\", \"r12\", \"r13\", \"r14\", \"r15\");\n> +  a_noinfo ();\n> +}\n> diff --git a/libgcc/config/i386/avx_resms64.S b/libgcc/config/i386/avx_resms64.S\n> new file mode 100644\n> index 00000000000..2be744937cf\n> --- /dev/null\n> +++ b/libgcc/config/i386/avx_resms64.S\n> @@ -0,0 +1,2 @@\n> +#define MS2SYSV_STUB_AVX\n> +#include \"resms64.h\"\n> diff --git a/libgcc/config/i386/avx_resms64f.S b/libgcc/config/i386/avx_resms64f.S\n> new file mode 100644\n> index 00000000000..76a1340ab1f\n> --- /dev/null\n> +++ b/libgcc/config/i386/avx_resms64f.S\n> @@ -0,0 +1,2 @@\n> +#define MS2SYSV_STUB_AVX\n> +#include \"resms64f.h\"\n> diff --git a/libgcc/config/i386/avx_resms64fx.S b/libgcc/config/i386/avx_resms64fx.S\n> new file mode 100644\n> index 00000000000..2ea4738af7e\n> --- /dev/null\n> +++ b/libgcc/config/i386/avx_resms64fx.S\n> @@ -0,0 +1,2 @@\n> +#define MS2SYSV_STUB_AVX\n> +#include \"resms64fx.h\"\n> diff --git a/libgcc/config/i386/avx_resms64x.S b/libgcc/config/i386/avx_resms64x.S\n> new file mode 100644\n> index 00000000000..14a53d4fcf9\n> --- /dev/null\n> +++ b/libgcc/config/i386/avx_resms64x.S\n> @@ -0,0 +1,2 @@\n> +#define MS2SYSV_STUB_AVX\n> +#include \"resms64x.h\"\n> diff --git a/libgcc/config/i386/avx_savms64.S b/libgcc/config/i386/avx_savms64.S\n> new file mode 100644\n> index 00000000000..fed1620b968\n> --- /dev/null\n> +++ b/libgcc/config/i386/avx_savms64.S\n> @@ -0,0 +1,2 @@\n> +#define MS2SYSV_STUB_AVX\n> +#include \"savms64.h\"\n> diff --git a/libgcc/config/i386/avx_savms64f.S b/libgcc/config/i386/avx_savms64f.S\n> new file mode 100644\n> index 00000000000..32279657e30\n> --- /dev/null\n> +++ b/libgcc/config/i386/avx_savms64f.S\n> @@ -0,0 +1,2 @@\n> +#define MS2SYSV_STUB_AVX\n> +#include \"savms64f.h\"\n> diff --git a/libgcc/config/i386/i386-asm.h b/libgcc/config/i386/i386-asm.h\n> index 1387fd24b4f..424e0f72aac 100644\n> --- a/libgcc/config/i386/i386-asm.h\n> +++ b/libgcc/config/i386/i386-asm.h\n> @@ -28,6 +28,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see\n>\n>  #include \"auto-host.h\"\n>\n> +#define PASTE2(a, b) PASTE2a(a, b)\n> +#define PASTE2a(a, b) a ## b\n> +\n>  /* These macros currently support GNU/Linux, Solaris and Darwin.  */\n>\n>  #ifdef __ELF__\n> @@ -46,9 +49,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see\n>  #endif\n>\n>  #ifdef __USER_LABEL_PREFIX__\n> -# define ASMNAME2(prefix, name)        prefix ## name\n> -# define ASMNAME1(prefix, name)        ASMNAME2(prefix, name)\n> -# define ASMNAME(name)         ASMNAME1(__USER_LABEL_PREFIX__, name)\n> +# define ASMNAME(name)         PASTE2(__USER_LABEL_PREFIX__, name)\n>  #else\n>  # define ASMNAME(name)         name\n>  #endif\n> @@ -66,15 +67,24 @@ ASMNAME(fn):\n>\n>  #define FUNC_END(fn) FN_SIZE(ASMNAME(fn))\n>\n> -#ifdef __SSE2__\n> -# ifdef __AVX__\n> -#  define MOVAPS vmovaps\n> -# else\n> -#  define MOVAPS movaps\n> -# endif\n> +#ifdef MS2SYSV_STUB_AVX\n> +# define MS2SYSV_STUB_PREFIX __avx_\n> +# define MOVAPS vmovaps\n> +#elif defined(MS2SYSV_STUB_SSE)\n> +# define MS2SYSV_STUB_PREFIX __sse_\n> +# define MOVAPS movaps\n> +#endif\n> +\n> +#if defined (MS2SYSV_STUB_PREFIX) && defined (MOVAPS)\n> +\n> +# define MS2SYSV_STUB_BEGIN(base_name) \\\n> +       HIDDEN_FUNC(PASTE2(MS2SYSV_STUB_PREFIX, base_name))\n> +\n> +# define MS2SYSV_STUB_END(base_name) \\\n> +       FUNC_END(PASTE2(MS2SYSV_STUB_PREFIX, base_name))\n>\n>  /* Save SSE registers 6-15. off is the offset of rax to get to xmm6.  */\n> -#define SSE_SAVE                  \\\n> +# define SSE_SAVE                 \\\n>         MOVAPS %xmm15,-0x30(%rax); \\\n>         MOVAPS %xmm14,-0x20(%rax); \\\n>         MOVAPS %xmm13,-0x10(%rax); \\\n> @@ -87,7 +97,7 @@ ASMNAME(fn):\n>         MOVAPS %xmm6,  0x60(%rax)\n>\n>  /* Restore SSE registers 6-15. off is the offset of rsi to get to xmm6.  */\n> -#define SSE_RESTORE                \\\n> +# define SSE_RESTORE               \\\n>         MOVAPS -0x30(%rsi), %xmm15; \\\n>         MOVAPS -0x20(%rsi), %xmm14; \\\n>         MOVAPS -0x10(%rsi), %xmm13; \\\n> @@ -99,5 +109,5 @@ ASMNAME(fn):\n>         MOVAPS  0x50(%rsi), %xmm7 ; \\\n>         MOVAPS  0x60(%rsi), %xmm6\n>\n> -#endif /* __SSE2__ */\n> +#endif /* defined (MS2SYSV_STUB_ISA) && defined (MOVAPS) */\n>  #endif /* I386_ASM_H */\n> diff --git a/libgcc/config/i386/resms64.S b/libgcc/config/i386/resms64.h\n> similarity index 76%\n> rename from libgcc/config/i386/resms64.S\n> rename to libgcc/config/i386/resms64.h\n> index f842c20a77a..f01b41897bc 100644\n> --- a/libgcc/config/i386/resms64.S\n> +++ b/libgcc/config/i386/resms64.h\n> @@ -29,29 +29,29 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see\n>  /* Epilogue routine for restoring 64-bit ms/sysv registers.  */\n>\n>         .text\n> -HIDDEN_FUNC(__resms64_18)\n> +MS2SYSV_STUB_BEGIN(resms64_18)\n>         mov     -0x70(%rsi),%r15\n> -HIDDEN_FUNC(__resms64_17)\n> +MS2SYSV_STUB_BEGIN(resms64_17)\n>         mov     -0x68(%rsi),%r14\n> -HIDDEN_FUNC(__resms64_16)\n> +MS2SYSV_STUB_BEGIN(resms64_16)\n>         mov     -0x60(%rsi),%r13\n> -HIDDEN_FUNC(__resms64_15)\n> +MS2SYSV_STUB_BEGIN(resms64_15)\n>         mov     -0x58(%rsi),%r12\n> -HIDDEN_FUNC(__resms64_14)\n> +MS2SYSV_STUB_BEGIN(resms64_14)\n>         mov     -0x50(%rsi),%rbp\n> -HIDDEN_FUNC(__resms64_13)\n> +MS2SYSV_STUB_BEGIN(resms64_13)\n>         mov     -0x48(%rsi),%rbx\n> -HIDDEN_FUNC(__resms64_12)\n> +MS2SYSV_STUB_BEGIN(resms64_12)\n>         mov     -0x40(%rsi),%rdi\n>         SSE_RESTORE\n>         mov     -0x38(%rsi),%rsi\n>         ret\n> -FUNC_END(__resms64_12)\n> -FUNC_END(__resms64_13)\n> -FUNC_END(__resms64_14)\n> -FUNC_END(__resms64_15)\n> -FUNC_END(__resms64_16)\n> -FUNC_END(__resms64_17)\n> -FUNC_END(__resms64_18)\n> +MS2SYSV_STUB_END(resms64_12)\n> +MS2SYSV_STUB_END(resms64_13)\n> +MS2SYSV_STUB_END(resms64_14)\n> +MS2SYSV_STUB_END(resms64_15)\n> +MS2SYSV_STUB_END(resms64_16)\n> +MS2SYSV_STUB_END(resms64_17)\n> +MS2SYSV_STUB_END(resms64_18)\n>\n>  #endif /* __x86_64__ */\n> diff --git a/libgcc/config/i386/resms64f.S b/libgcc/config/i386/resms64f.h\n> similarity index 79%\n> rename from libgcc/config/i386/resms64f.S\n> rename to libgcc/config/i386/resms64f.h\n> index 81946cda944..743ec514cef 100644\n> --- a/libgcc/config/i386/resms64f.S\n> +++ b/libgcc/config/i386/resms64f.h\n> @@ -30,26 +30,26 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see\n>     pointer is used.  */\n>\n>         .text\n> -HIDDEN_FUNC(__resms64f_17)\n> +MS2SYSV_STUB_BEGIN(resms64f_17)\n>         mov     -0x68(%rsi),%r15\n> -HIDDEN_FUNC(__resms64f_16)\n> +MS2SYSV_STUB_BEGIN(resms64f_16)\n>         mov     -0x60(%rsi),%r14\n> -HIDDEN_FUNC(__resms64f_15)\n> +MS2SYSV_STUB_BEGIN(resms64f_15)\n>         mov     -0x58(%rsi),%r13\n> -HIDDEN_FUNC(__resms64f_14)\n> +MS2SYSV_STUB_BEGIN(resms64f_14)\n>         mov     -0x50(%rsi),%r12\n> -HIDDEN_FUNC(__resms64f_13)\n> +MS2SYSV_STUB_BEGIN(resms64f_13)\n>         mov     -0x48(%rsi),%rbx\n> -HIDDEN_FUNC(__resms64f_12)\n> +MS2SYSV_STUB_BEGIN(resms64f_12)\n>         mov     -0x40(%rsi),%rdi\n>         SSE_RESTORE\n>         mov     -0x38(%rsi),%rsi\n>         ret\n> -FUNC_END(__resms64f_12)\n> -FUNC_END(__resms64f_13)\n> -FUNC_END(__resms64f_14)\n> -FUNC_END(__resms64f_15)\n> -FUNC_END(__resms64f_16)\n> -FUNC_END(__resms64f_17)\n> +MS2SYSV_STUB_END(resms64f_12)\n> +MS2SYSV_STUB_END(resms64f_13)\n> +MS2SYSV_STUB_END(resms64f_14)\n> +MS2SYSV_STUB_END(resms64f_15)\n> +MS2SYSV_STUB_END(resms64f_16)\n> +MS2SYSV_STUB_END(resms64f_17)\n>\n>  #endif /* __x86_64__ */\n> diff --git a/libgcc/config/i386/resms64fx.S b/libgcc/config/i386/resms64fx.h\n> similarity index 79%\n> rename from libgcc/config/i386/resms64fx.S\n> rename to libgcc/config/i386/resms64fx.h\n> index acf34fa0837..965807a1299 100644\n> --- a/libgcc/config/i386/resms64fx.S\n> +++ b/libgcc/config/i386/resms64fx.h\n> @@ -31,27 +31,27 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see\n>   * from the function.  */\n>\n>         .text\n> -HIDDEN_FUNC(__resms64fx_17)\n> +MS2SYSV_STUB_BEGIN(resms64fx_17)\n>         mov     -0x68(%rsi),%r15\n> -HIDDEN_FUNC(__resms64fx_16)\n> +MS2SYSV_STUB_BEGIN(resms64fx_16)\n>         mov     -0x60(%rsi),%r14\n> -HIDDEN_FUNC(__resms64fx_15)\n> +MS2SYSV_STUB_BEGIN(resms64fx_15)\n>         mov     -0x58(%rsi),%r13\n> -HIDDEN_FUNC(__resms64fx_14)\n> +MS2SYSV_STUB_BEGIN(resms64fx_14)\n>         mov     -0x50(%rsi),%r12\n> -HIDDEN_FUNC(__resms64fx_13)\n> +MS2SYSV_STUB_BEGIN(resms64fx_13)\n>         mov     -0x48(%rsi),%rbx\n> -HIDDEN_FUNC(__resms64fx_12)\n> +MS2SYSV_STUB_BEGIN(resms64fx_12)\n>         mov     -0x40(%rsi),%rdi\n>         SSE_RESTORE\n>         mov     -0x38(%rsi),%rsi\n>         leaveq\n>         ret\n> -FUNC_END(__resms64fx_12)\n> -FUNC_END(__resms64fx_13)\n> -FUNC_END(__resms64fx_14)\n> -FUNC_END(__resms64fx_15)\n> -FUNC_END(__resms64fx_16)\n> -FUNC_END(__resms64fx_17)\n> +MS2SYSV_STUB_END(resms64fx_12)\n> +MS2SYSV_STUB_END(resms64fx_13)\n> +MS2SYSV_STUB_END(resms64fx_14)\n> +MS2SYSV_STUB_END(resms64fx_15)\n> +MS2SYSV_STUB_END(resms64fx_16)\n> +MS2SYSV_STUB_END(resms64fx_17)\n>\n>  #endif /* __x86_64__ */\n> diff --git a/libgcc/config/i386/resms64x.S b/libgcc/config/i386/resms64x.h\n> similarity index 77%\n> rename from libgcc/config/i386/resms64x.S\n> rename to libgcc/config/i386/resms64x.h\n> index e27aab7d881..689a1dec20b 100644\n> --- a/libgcc/config/i386/resms64x.S\n> +++ b/libgcc/config/i386/resms64x.h\n> @@ -30,30 +30,30 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see\n>   * function.  */\n>\n>         .text\n> -HIDDEN_FUNC(__resms64x_18)\n> +MS2SYSV_STUB_BEGIN(resms64x_18)\n>         mov     -0x70(%rsi),%r15\n> -HIDDEN_FUNC(__resms64x_17)\n> +MS2SYSV_STUB_BEGIN(resms64x_17)\n>         mov     -0x68(%rsi),%r14\n> -HIDDEN_FUNC(__resms64x_16)\n> +MS2SYSV_STUB_BEGIN(resms64x_16)\n>         mov     -0x60(%rsi),%r13\n> -HIDDEN_FUNC(__resms64x_15)\n> +MS2SYSV_STUB_BEGIN(resms64x_15)\n>         mov     -0x58(%rsi),%r12\n> -HIDDEN_FUNC(__resms64x_14)\n> +MS2SYSV_STUB_BEGIN(resms64x_14)\n>         mov     -0x50(%rsi),%rbp\n> -HIDDEN_FUNC(__resms64x_13)\n> +MS2SYSV_STUB_BEGIN(resms64x_13)\n>         mov     -0x48(%rsi),%rbx\n> -HIDDEN_FUNC(__resms64x_12)\n> +MS2SYSV_STUB_BEGIN(resms64x_12)\n>         mov     -0x40(%rsi),%rdi\n>         SSE_RESTORE\n>         mov     -0x38(%rsi),%rsi\n>         mov     %r10,%rsp\n>         ret\n> -FUNC_END(__resms64x_12)\n> -FUNC_END(__resms64x_13)\n> -FUNC_END(__resms64x_14)\n> -FUNC_END(__resms64x_15)\n> -FUNC_END(__resms64x_16)\n> -FUNC_END(__resms64x_17)\n> -FUNC_END(__resms64x_18)\n> +MS2SYSV_STUB_END(resms64x_12)\n> +MS2SYSV_STUB_END(resms64x_13)\n> +MS2SYSV_STUB_END(resms64x_14)\n> +MS2SYSV_STUB_END(resms64x_15)\n> +MS2SYSV_STUB_END(resms64x_16)\n> +MS2SYSV_STUB_END(resms64x_17)\n> +MS2SYSV_STUB_END(resms64x_18)\n>\n>  #endif /* __x86_64__ */\n> diff --git a/libgcc/config/i386/savms64.S b/libgcc/config/i386/savms64.h\n> similarity index 76%\n> rename from libgcc/config/i386/savms64.S\n> rename to libgcc/config/i386/savms64.h\n> index 44dda46ec54..28d5e3548ab 100644\n> --- a/libgcc/config/i386/savms64.S\n> +++ b/libgcc/config/i386/savms64.h\n> @@ -29,29 +29,29 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see\n>  /* Prologue routine for saving 64-bit ms/sysv registers.  */\n>\n>         .text\n> -HIDDEN_FUNC(__savms64_18)\n> +MS2SYSV_STUB_BEGIN(savms64_18)\n>         mov     %r15,-0x70(%rax)\n> -HIDDEN_FUNC(__savms64_17)\n> +MS2SYSV_STUB_BEGIN(savms64_17)\n>         mov     %r14,-0x68(%rax)\n> -HIDDEN_FUNC(__savms64_16)\n> +MS2SYSV_STUB_BEGIN(savms64_16)\n>         mov     %r13,-0x60(%rax)\n> -HIDDEN_FUNC(__savms64_15)\n> +MS2SYSV_STUB_BEGIN(savms64_15)\n>         mov     %r12,-0x58(%rax)\n> -HIDDEN_FUNC(__savms64_14)\n> +MS2SYSV_STUB_BEGIN(savms64_14)\n>         mov     %rbp,-0x50(%rax)\n> -HIDDEN_FUNC(__savms64_13)\n> +MS2SYSV_STUB_BEGIN(savms64_13)\n>         mov     %rbx,-0x48(%rax)\n> -HIDDEN_FUNC(__savms64_12)\n> +MS2SYSV_STUB_BEGIN(savms64_12)\n>         mov     %rdi,-0x40(%rax)\n>         mov     %rsi,-0x38(%rax)\n>         SSE_SAVE\n>         ret\n> -FUNC_END(__savms64_12)\n> -FUNC_END(__savms64_13)\n> -FUNC_END(__savms64_14)\n> -FUNC_END(__savms64_15)\n> -FUNC_END(__savms64_16)\n> -FUNC_END(__savms64_17)\n> -FUNC_END(__savms64_18)\n> +MS2SYSV_STUB_END(savms64_12)\n> +MS2SYSV_STUB_END(savms64_13)\n> +MS2SYSV_STUB_END(savms64_14)\n> +MS2SYSV_STUB_END(savms64_15)\n> +MS2SYSV_STUB_END(savms64_16)\n> +MS2SYSV_STUB_END(savms64_17)\n> +MS2SYSV_STUB_END(savms64_18)\n>\n>  #endif /* __x86_64__ */\n> diff --git a/libgcc/config/i386/savms64f.S b/libgcc/config/i386/savms64f.h\n> similarity index 79%\n> rename from libgcc/config/i386/savms64f.S\n> rename to libgcc/config/i386/savms64f.h\n> index 64e91ac0394..723e1080f5c 100644\n> --- a/libgcc/config/i386/savms64f.S\n> +++ b/libgcc/config/i386/savms64f.h\n> @@ -30,26 +30,26 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see\n>   * needed or hard frame pointer used.  */\n>\n>         .text\n> -HIDDEN_FUNC(__savms64f_17)\n> +MS2SYSV_STUB_BEGIN(savms64f_17)\n>         mov     %r15,-0x68(%rax)\n> -HIDDEN_FUNC(__savms64f_16)\n> +MS2SYSV_STUB_BEGIN(savms64f_16)\n>         mov     %r14,-0x60(%rax)\n> -HIDDEN_FUNC(__savms64f_15)\n> +MS2SYSV_STUB_BEGIN(savms64f_15)\n>         mov     %r13,-0x58(%rax)\n> -HIDDEN_FUNC(__savms64f_14)\n> +MS2SYSV_STUB_BEGIN(savms64f_14)\n>         mov     %r12,-0x50(%rax)\n> -HIDDEN_FUNC(__savms64f_13)\n> +MS2SYSV_STUB_BEGIN(savms64f_13)\n>         mov     %rbx,-0x48(%rax)\n> -HIDDEN_FUNC(__savms64f_12)\n> +MS2SYSV_STUB_BEGIN(savms64f_12)\n>         mov     %rdi,-0x40(%rax)\n>         mov     %rsi,-0x38(%rax)\n>         SSE_SAVE\n>         ret\n> -FUNC_END(__savms64f_12)\n> -FUNC_END(__savms64f_13)\n> -FUNC_END(__savms64f_14)\n> -FUNC_END(__savms64f_15)\n> -FUNC_END(__savms64f_16)\n> -FUNC_END(__savms64f_17)\n> +MS2SYSV_STUB_END(savms64f_12)\n> +MS2SYSV_STUB_END(savms64f_13)\n> +MS2SYSV_STUB_END(savms64f_14)\n> +MS2SYSV_STUB_END(savms64f_15)\n> +MS2SYSV_STUB_END(savms64f_16)\n> +MS2SYSV_STUB_END(savms64f_17)\n>\n>  #endif /* __x86_64__ */\n> diff --git a/libgcc/config/i386/sse_resms64.S b/libgcc/config/i386/sse_resms64.S\n> new file mode 100644\n> index 00000000000..c87f5cc021d\n> --- /dev/null\n> +++ b/libgcc/config/i386/sse_resms64.S\n> @@ -0,0 +1,2 @@\n> +#define MS2SYSV_STUB_SSE\n> +#include \"resms64.h\"\n> diff --git a/libgcc/config/i386/sse_resms64f.S b/libgcc/config/i386/sse_resms64f.S\n> new file mode 100644\n> index 00000000000..3a066bc174a\n> --- /dev/null\n> +++ b/libgcc/config/i386/sse_resms64f.S\n> @@ -0,0 +1,2 @@\n> +#define MS2SYSV_STUB_SSE\n> +#include \"resms64f.h\"\n> diff --git a/libgcc/config/i386/sse_resms64fx.S b/libgcc/config/i386/sse_resms64fx.S\n> new file mode 100644\n> index 00000000000..142667a28bf\n> --- /dev/null\n> +++ b/libgcc/config/i386/sse_resms64fx.S\n> @@ -0,0 +1,2 @@\n> +#define MS2SYSV_STUB_SSE\n> +#include \"resms64fx.h\"\n> diff --git a/libgcc/config/i386/sse_resms64x.S b/libgcc/config/i386/sse_resms64x.S\n> new file mode 100644\n> index 00000000000..2cfc2b0195f\n> --- /dev/null\n> +++ b/libgcc/config/i386/sse_resms64x.S\n> @@ -0,0 +1,2 @@\n> +#define MS2SYSV_STUB_SSE\n> +#include \"resms64x.h\"\n> diff --git a/libgcc/config/i386/sse_savms64.S b/libgcc/config/i386/sse_savms64.S\n> new file mode 100644\n> index 00000000000..52f43075b40\n> --- /dev/null\n> +++ b/libgcc/config/i386/sse_savms64.S\n> @@ -0,0 +1,2 @@\n> +#define MS2SYSV_STUB_SSE\n> +#include \"savms64.h\"\n> diff --git a/libgcc/config/i386/sse_savms64f.S b/libgcc/config/i386/sse_savms64f.S\n> new file mode 100644\n> index 00000000000..426be35b53b\n> --- /dev/null\n> +++ b/libgcc/config/i386/sse_savms64f.S\n> @@ -0,0 +1,2 @@\n> +#define MS2SYSV_STUB_SSE\n> +#include \"savms64f.h\"\n> diff --git a/libgcc/config/i386/t-msabi b/libgcc/config/i386/t-msabi\n> index f9806a611aa..ffc9c4f6656 100644\n> --- a/libgcc/config/i386/t-msabi\n> +++ b/libgcc/config/i386/t-msabi\n> @@ -1,7 +1,13 @@\n>  # Makefile fragment to support -mcall-ms2sysv-xlogues\n> -LIB2ADD_ST += $(srcdir)/config/i386/savms64.S \\\n> -             $(srcdir)/config/i386/resms64.S \\\n> -             $(srcdir)/config/i386/resms64x.S \\\n> -             $(srcdir)/config/i386/savms64f.S \\\n> -             $(srcdir)/config/i386/resms64f.S \\\n> -             $(srcdir)/config/i386/resms64fx.S\n> +LIB2ADD_ST += $(srcdir)/config/i386/avx_savms64.S \\\n> +             $(srcdir)/config/i386/avx_resms64.S \\\n> +             $(srcdir)/config/i386/avx_resms64x.S \\\n> +             $(srcdir)/config/i386/avx_savms64f.S \\\n> +             $(srcdir)/config/i386/avx_resms64f.S \\\n> +             $(srcdir)/config/i386/avx_resms64fx.S \\\n> +             $(srcdir)/config/i386/sse_savms64.S \\\n> +             $(srcdir)/config/i386/sse_resms64.S \\\n> +             $(srcdir)/config/i386/sse_resms64x.S \\\n> +             $(srcdir)/config/i386/sse_savms64f.S \\\n> +             $(srcdir)/config/i386/sse_resms64f.S \\\n> +             $(srcdir)/config/i386/sse_resms64fx.S\n> --\n> 2.14.1\n>","headers":{"Return-Path":"<gcc-patches-return-462334-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-462334-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"a5IjSd4n\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xwDFm75hTz9s78\n\tfor <incoming@patchwork.ozlabs.org>;\n\tMon, 18 Sep 2017 01:53:48 +1000 (AEST)","(qmail 120082 invoked by alias); 17 Sep 2017 15:53:37 -0000","(qmail 120066 invoked by uid 89); 17 Sep 2017 15:53:35 -0000","from mail-io0-f194.google.com (HELO mail-io0-f194.google.com)\n\t(209.85.223.194) by sourceware.org\n\t(qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tSun, 17 Sep 2017 15:53:24 +0000","by mail-io0-f194.google.com with SMTP id n69so6837808ioi.3 for\n\t<gcc-patches@gcc.gnu.org>; Sun, 17 Sep 2017 08:53:24 -0700 (PDT)","by 10.2.137.252 with HTTP; Sun, 17 Sep 2017 08:53:22 -0700 (PDT)"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender\n\t:mime-version:in-reply-to:references:from:date:message-id\n\t:subject:to:cc:content-type; q=dns; s=default; b=MU+vIVA4UxlWiP0\n\tODwDJOzyg/MowG5+i7t8npSIfrCP9TKm8hnFWt6Z2ZK6gJ/iiIrO6zcBC8YmeD04\n\tlYR+QO96zJc9p7SpQuzDQ2cH3TxSXX0iWMbIg2e9TCOOpCtCjb3DA6AnblyiCRnP\n\tZbqEjsqBgPjZj8pi3tmk7oQe2OSE=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender\n\t:mime-version:in-reply-to:references:from:date:message-id\n\t:subject:to:cc:content-type; s=default; bh=pB11sbqDEP5D6VjL46ayh\n\tXQqWME=; b=a5IjSd4nyKRN91geRCoYC7Zcv0M+aU2G4hdy2nl7HTMjrEA3duFfN\n\t0uNKZPUgAPTSDgoAmaxNOuEEHzRJQyNapx5Ygeri6MxYgGu+lzffYL0zjs17+19X\n\tYpLDwm96vIS+jVktjk3+SGHNisvJ4tKcEvZpNSIeZ7Bz+rWjeLiGDA=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-25.6 required=5.0 tests=AWL, BAYES_00,\n\tFREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2,\n\tGIT_PATCH_3, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM,\n\tSPF_PASS autolearn=ham version=3.3.2 spammy=1095","X-HELO":"mail-io0-f194.google.com","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net;\n\ts=20161025;\n\th=x-gm-message-state:mime-version:in-reply-to:references:from:date\n\t:message-id:subject:to:cc;\n\tbh=zaTUUyfPdfdZQV3KQka0om3QOisNYrhodwiSuC+20ik=;\n\tb=kkF5bBiC6v2HY5PK2GLz1CugGKcko/FQlfSztdlYL2mkBEbB4K4NJGU+nLnbGv3ajd\n\taGOdLk6uwDdI3gPPCiPnAiLXGPRk8y/aNrUXc/Zp8uzKi3uOviFHPKaXBS7UHQMTO2Q2\n\tL7g3UI2MwwMjeIPCHm6Anz4tP+ItMWrKJKOMhZIYdDQ4h6TwrQK0PVLRye1YGY8uxCN5\n\tdRooXlPdjtwcQs5y3klb/1flwPQWhR6NcvaNuEBeOGjvYi/n5iJubhxEDORbrGosgyk+\n\t3hRXn1c2EboagZGIMjN/jUcCvqhKmSxG2poK+FB6H5JqOcWH8/Gr3Xzeo+tIj/WoUc+m\n\t5q6w==","X-Gm-Message-State":"AHPjjUizcJURicurtXMWMcHT+m/yP84khIkTpB1t1H7qmZXE2S6h7j8X\t9fuR4ARykkdx9NT8Zw03mEH9s1cZwn3TaRJoIYQ=","X-Google-Smtp-Source":"AOwi7QC1Ewpt9AauD2U16MEY/nuo94Iy9WM5ppk39DA7IJUTOec32SEphSuixkpWwp76T81Qg+1J9TH1hqo6MlxKC7c=","X-Received":"by 10.107.189.65 with SMTP id n62mr164496iof.48.1505663602631;\n\tSun, 17 Sep 2017 08:53:22 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<20170914040348.6339-1-daniel.santos@pobox.com>","References":"<20170914040348.6339-1-daniel.santos@pobox.com>","From":"Uros Bizjak <ubizjak@gmail.com>","Date":"Sun, 17 Sep 2017 17:53:22 +0200","Message-ID":"<CAFULd4Ypp9dceHE_hAaCrnzsLgEOvW+mJEouMCAdG10WQxbPOQ@mail.gmail.com>","Subject":"Re: [PATCH] [i386,\n\tlibgcc] PR 82196 -mcall-ms2sysv-xlogues emits wrong AVX/SSE MOV","To":"Daniel Santos <daniel.santos@pobox.com>","Cc":"gcc-patches <gcc-patches@gcc.gnu.org>, Jan Hubicka <hubicka@ucw.cz>,\n\tIan Lance Taylor <ian@airs.com>,\n\tRainer Orth <ro@cebitec.uni-bielefeld.de>,\n\tMike Stump <mikestump@comcast.net>","Content-Type":"text/plain; charset=\"UTF-8\""}},{"id":1769804,"web_url":"http://patchwork.ozlabs.org/comment/1769804/","msgid":"<f0217a6a-5f1f-436a-8815-31af12542b8a@pobox.com>","list_archive_url":null,"date":"2017-09-17T21:58:27","subject":"Re: [PATCH] [i386,\n\tlibgcc] PR 82196 -mcall-ms2sysv-xlogues emits wrong AVX/SSE MOV","submitter":{"id":70395,"url":"http://patchwork.ozlabs.org/api/people/70395/","name":"Daniel Santos","email":"daniel.santos@pobox.com"},"content":"On 09/17/2017 10:53 AM, Uros Bizjak wrote:\n> OK.\n>\n> Thanks,\n> Uros.\n\nThanks. I should have posted this Friday when my tests finished, but\nI'll be committing with one minor change so tests don't run on m32 or mx32:\n\n--- a/gcc/testsuite/gcc.target/i386/pr82196-1.c\n+++ b/gcc/testsuite/gcc.target/i386/pr82196-1.c\n@@ -1,4 +1,4 @@\n-/* { dg-do compile } */\n+/* { dg-do compile { target lp64 } } */\n /* { dg-options \"-msse -mcall-ms2sysv-xlogues -O2\" } */\n /* { dg-final { scan-assembler \"call.*__sse_savms64_18\" } } */\n /* { dg-final { scan-assembler \"jmp.*__sse_resms64x_18\" } } */\ndiff --git a/gcc/testsuite/gcc.target/i386/pr82196-2.c b/gcc/testsuite/gcc.target/i386/pr82196-2.c\nindex 31705bee29b..8fe58411d5e 100644\n--- a/gcc/testsuite/gcc.target/i386/pr82196-2.c\n+++ b/gcc/testsuite/gcc.target/i386/pr82196-2.c\n@@ -1,4 +1,4 @@\n-/* { dg-do compile } */\n+/* { dg-do compile { target lp64 } } */\n /* { dg-options \"-mavx -mcall-ms2sysv-xlogues -O2\" } */\n /* { dg-final { scan-assembler \"call.*__avx_savms64_18\" } } */\n /* { dg-final { scan-assembler \"jmp.*__avx_resms64x_18\" } } */\n\nOther than that, full regression tests pass.\n\nThanks,\nDaniel","headers":{"Return-Path":"<gcc-patches-return-462341-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-462341-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"w8qIZ2rd\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xwNK20x6Vz9s7G\n\tfor <incoming@patchwork.ozlabs.org>;\n\tMon, 18 Sep 2017 07:57:07 +1000 (AEST)","(qmail 16355 invoked by alias); 17 Sep 2017 21:56:59 -0000","(qmail 16345 invoked by uid 89); 17 Sep 2017 21:56:58 -0000","from pb-smtp2.pobox.com (HELO sasl.smtp.pobox.com) (64.147.108.71)\n\tby sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with\n\tESMTP; Sun, 17 Sep 2017 21:56:48 +0000","from sasl.smtp.pobox.com (unknown [127.0.0.1])\tby\n\tpb-smtp2.pobox.com (Postfix) with ESMTP id 9D14B94FB5;\n\tSun, 17 Sep 2017 17:52:20 -0400 (EDT)","from pb-smtp2.nyi.icgroup.com (unknown [127.0.0.1])\tby\n\tpb-smtp2.pobox.com (Postfix) with ESMTP id 9393194FB4;\n\tSun, 17 Sep 2017 17:52:20 -0400 (EDT)","from [192.168.1.4] (unknown [76.215.41.237])\t(using TLSv1.2 with\n\tcipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\t(No client\n\tcertificate requested)\tby pb-smtp2.pobox.com (Postfix) with\n\tESMTPSA id 8C75B94FB3; Sun, 17 Sep 2017 17:52:19 -0400 (EDT)"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender\n\t:subject:to:cc:references:from:message-id:date:mime-version\n\t:in-reply-to:content-type:content-transfer-encoding; q=dns; s=\n\tdefault; b=j6HDg+80XO8c7abTQIBIH9+sStjBmVaXPh5NWBAqufzlEExp4E23P\n\tAi1x24rcOiOTQBLLfAlANYLDpC8nvA/2lxnenvSPNYWB6sWoOb4qvOf7nN8i5eM1\n\thbO30NyHrf3vzFGuLZeTX5YZ4LzylXn5vgvpfQbchdU/ywlFcoRfHs=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender\n\t:subject:to:cc:references:from:message-id:date:mime-version\n\t:in-reply-to:content-type:content-transfer-encoding; s=default;\n\tbh=SebPkQ310Ovf2WejtXTAE7658Co=; b=w8qIZ2rd/dwfqVSHIDoK22ZmoBm1\n\tpYVz63QUsCzqI9KSznG0waC42jkftnm8fB4Dz8Efjbaj4xBEkPuJEGT0SIwjaln2\n\tBsYnhUt9RCjgrv3Q5ItvS+G82nwsjHUYjeoXvqazh8YrDcfqgLiujUX4S9apwJRw\n\tNRzpzyze2/vxBk8=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-25.7 required=5.0 tests=AWL, BAYES_00,\n\tGIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3,\n\tRCVD_IN_DNSWL_LOW, RP_MATCHES_RCVD,\n\tSPF_PASS autolearn=ham version=3.3.2 spammy=H*Ad:D*pobox.com,\n\tHx-languages-length:1219, H*Ad:U*daniel.santos,\n\tH*F:U*daniel.santos","X-HELO":"sasl.smtp.pobox.com","Subject":"Re: [PATCH] [i386,\n\tlibgcc] PR 82196 -mcall-ms2sysv-xlogues emits wrong AVX/SSE MOV","To":"Uros Bizjak <ubizjak@gmail.com>","Cc":"gcc-patches <gcc-patches@gcc.gnu.org>, Jan Hubicka <hubicka@ucw.cz>,\n\tIan Lance Taylor <ian@airs.com>,\n\tRainer Orth <ro@cebitec.uni-bielefeld.de>,\n\tMike Stump <mikestump@comcast.net>","References":"<20170914040348.6339-1-daniel.santos@pobox.com>\n\t<CAFULd4Ypp9dceHE_hAaCrnzsLgEOvW+mJEouMCAdG10WQxbPOQ@mail.gmail.com>","From":"Daniel Santos <daniel.santos@pobox.com>","Message-ID":"<f0217a6a-5f1f-436a-8815-31af12542b8a@pobox.com>","Date":"Sun, 17 Sep 2017 16:58:27 -0500","User-Agent":"Mozilla/5.0 (X11; Linux x86_64;\n\trv:52.0) Gecko/20100101 Thunderbird/52.3.0","MIME-Version":"1.0","In-Reply-To":"<CAFULd4Ypp9dceHE_hAaCrnzsLgEOvW+mJEouMCAdG10WQxbPOQ@mail.gmail.com>","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"7bit","X-Pobox-Relay-ID":"7AA16142-9BF2-11E7-AA7B-9D2B0D78B957-06139138!pb-smtp2.pobox.com","X-IsSubscribed":"yes"}},{"id":1770930,"web_url":"http://patchwork.ozlabs.org/comment/1770930/","msgid":"<yddk20uring.fsf@CeBiTec.Uni-Bielefeld.DE>","list_archive_url":null,"date":"2017-09-19T12:13:07","subject":"Re: [PATCH] [i386,\n\tlibgcc] PR 82196 -mcall-ms2sysv-xlogues emits wrong AVX/SSE MOV","submitter":{"id":4362,"url":"http://patchwork.ozlabs.org/api/people/4362/","name":"Rainer Orth","email":"ro@CeBiTec.Uni-Bielefeld.DE"},"content":"Daniel Santos <daniel.santos@pobox.com> writes:\n\n> On 09/17/2017 10:53 AM, Uros Bizjak wrote:\n>> OK.\n>>\n>> Thanks,\n>> Uros.\n>\n> Thanks. I should have posted this Friday when my tests finished, but\n> I'll be committing with one minor change so tests don't run on m32 or mx32:\n>\n> --- a/gcc/testsuite/gcc.target/i386/pr82196-1.c\n> +++ b/gcc/testsuite/gcc.target/i386/pr82196-1.c\n> @@ -1,4 +1,4 @@\n> -/* { dg-do compile } */\n> +/* { dg-do compile { target lp64 } } */\n>  /* { dg-options \"-msse -mcall-ms2sysv-xlogues -O2\" } */\n>  /* { dg-final { scan-assembler \"call.*__sse_savms64_18\" } } */\n>  /* { dg-final { scan-assembler \"jmp.*__sse_resms64x_18\" } } */\n> diff --git a/gcc/testsuite/gcc.target/i386/pr82196-2.c\n> b/gcc/testsuite/gcc.target/i386/pr82196-2.c\n> index 31705bee29b..8fe58411d5e 100644\n> --- a/gcc/testsuite/gcc.target/i386/pr82196-2.c\n> +++ b/gcc/testsuite/gcc.target/i386/pr82196-2.c\n> @@ -1,4 +1,4 @@\n> -/* { dg-do compile } */\n> +/* { dg-do compile { target lp64 } } */\n>  /* { dg-options \"-mavx -mcall-ms2sysv-xlogues -O2\" } */\n>  /* { dg-final { scan-assembler \"call.*__avx_savms64_18\" } } */\n>  /* { dg-final { scan-assembler \"jmp.*__avx_resms64x_18\" } } */\n>\n> Other than that, full regression tests pass.\n\nHowever, they do FAIL on 64-bit Solaris/x86:\n\n+FAIL: gcc.target/i386/pr82196-1.c (test for excess errors)\n\nExcess errors:\n/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/i386/pr82196-1.c:14:1: error: bp cannot be used in asm here\n\n+UNRESOLVED: gcc.target/i386/pr82196-1.c scan-assembler call.*__sse_savms64_18\n+UNRESOLVED: gcc.target/i386/pr82196-1.c scan-assembler jmp.*__sse_resms64x_18\n+FAIL: gcc.target/i386/pr82196-2.c (test for excess errors)\n+UNRESOLVED: gcc.target/i386/pr82196-2.c scan-assembler call.*__avx_savms64_18\n+UNRESOLVED: gcc.target/i386/pr82196-2.c scan-assembler jmp.*__avx_resms64x_18\n\n\tRainer","headers":{"Return-Path":"<gcc-patches-return-462472-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-462472-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"ROKDxdEG\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xxMGf1vLRz9s4q\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 19 Sep 2017 22:13:29 +1000 (AEST)","(qmail 69238 invoked by alias); 19 Sep 2017 12:13:17 -0000","(qmail 69217 invoked by uid 89); 19 Sep 2017 12:13:15 -0000","from smtp.CeBiTec.Uni-Bielefeld.DE (HELO\n\tsmtp.CeBiTec.Uni-Bielefeld.DE) (129.70.160.84) by\n\tsourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tTue, 19 Sep 2017 12:13:13 +0000","from localhost (localhost.CeBiTec.Uni-Bielefeld.DE [127.0.0.1])\tby\n\tsmtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTP id\n\t9ED20E3A; Tue, 19 Sep 2017 14:13:10 +0200 (CEST)","from smtp.CeBiTec.Uni-Bielefeld.DE ([127.0.0.1])\tby localhost\n\t(malfoy.CeBiTec.Uni-Bielefeld.DE [127.0.0.1]) (amavisd-new,\n\tport 10024)\twith LMTP id JYZ5Bq7zQBKR;\n\tTue, 19 Sep 2017 14:13:08 +0200 (CEST)","from lokon.CeBiTec.Uni-Bielefeld.DE\n\t(lokon.CeBiTec.Uni-Bielefeld.DE [129.70.161.152])\t(using\n\tTLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))\t(No\n\tclient certificate requested)\tby\n\tsmtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTPS id\n\t9811BE39; Tue, 19 Sep 2017 14:13:08 +0200 (CEST)","(from ro@localhost)\tby lokon.CeBiTec.Uni-Bielefeld.DE\n\t(8.15.2+Sun/8.15.2/Submit) id v8JCD7No012727;\n\tTue, 19 Sep 2017 14:13:07 +0200 (MEST)"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:from\n\t:to:cc:subject:references:date:in-reply-to:message-id\n\t:mime-version:content-type; q=dns; s=default; b=ai2Wbol2hhNRJx7+\n\thNYnSOs7pHlAsXGD4C1jrjx+OSCVL36Fpd4ro3FITbmpfQYalAQ3uJ143vm3NjGa\n\tcoERVqZGnAPucdlkcwt7dAlQuQEKx74lq8vhxKwUxLsvq1YOyqurY2/4eisy7aP7\n\tV9X+IkqPOYv3MC7KMnRyw67kZ0g=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:from\n\t:to:cc:subject:references:date:in-reply-to:message-id\n\t:mime-version:content-type; s=default; bh=fUvgcAwxajrDhezD5qOdfH\n\tDPfZE=; b=ROKDxdEGHLSuBlfvAWt8PSJ8bpLePr7XZ7q+CFkXeEhyE8R7VzfvXx\n\tIU6FIu6PG8QSS/Viv7LoOKO9IRrEG6nOZMCnm0qs3Cz8CssAfo40vtkAj2QQj1KA\n\tQV0M/9FXExrmZ9WyQ7qdkk6c2OD1LN5vpO8zFzT/D+JvmSjW6PPt8=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-21.3 required=5.0 tests=AWL, BAYES_00,\n\tGIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3,\n\tKAM_LAZY_DOMAIN_SECURITY, RP_MATCHES_RCVD,\n\tUNWANTED_LANGUAGE_BODY autolearn=ham version=3.3.2 spammy=","X-HELO":"smtp.CeBiTec.Uni-Bielefeld.DE","From":"Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>","To":"Daniel Santos <daniel.santos@pobox.com>","Cc":"Uros Bizjak <ubizjak@gmail.com>, gcc-patches <gcc-patches@gcc.gnu.org>,\n\tJan Hubicka <hubicka@ucw.cz>, Ian Lance Taylor <ian@airs.com>,\n\tMike Stump <mikestump@comcast.net>","Subject":"Re: [PATCH] [i386,\n\tlibgcc] PR 82196 -mcall-ms2sysv-xlogues emits wrong AVX/SSE MOV","References":"<20170914040348.6339-1-daniel.santos@pobox.com>\t<CAFULd4Ypp9dceHE_hAaCrnzsLgEOvW+mJEouMCAdG10WQxbPOQ@mail.gmail.com>\t<f0217a6a-5f1f-436a-8815-31af12542b8a@pobox.com>","Date":"Tue, 19 Sep 2017 14:13:07 +0200","In-Reply-To":"<f0217a6a-5f1f-436a-8815-31af12542b8a@pobox.com> (Daniel\n\tSantos's\tmessage of \"Sun, 17 Sep 2017 16:58:27 -0500\")","Message-ID":"<yddk20uring.fsf@CeBiTec.Uni-Bielefeld.DE>","User-Agent":"Gnus/5.13 (Gnus v5.13) Emacs/25.1 (usg-unix-v)","MIME-Version":"1.0","Content-Type":"text/plain","X-IsSubscribed":"yes"}},{"id":1771012,"web_url":"http://patchwork.ozlabs.org/comment/1771012/","msgid":"<CAFULd4bX5AKxGGXXqS0c3m+tDitcYAbbLWAUmatuXo5MY0KYXg@mail.gmail.com>","list_archive_url":null,"date":"2017-09-19T13:33:25","subject":"Re: [PATCH] [i386,\n\tlibgcc] PR 82196 -mcall-ms2sysv-xlogues emits wrong AVX/SSE MOV","submitter":{"id":808,"url":"http://patchwork.ozlabs.org/api/people/808/","name":"Uros Bizjak","email":"ubizjak@gmail.com"},"content":"On Tue, Sep 19, 2017 at 2:13 PM, Rainer Orth\n<ro@cebitec.uni-bielefeld.de> wrote:\n> Daniel Santos <daniel.santos@pobox.com> writes:\n>\n>> On 09/17/2017 10:53 AM, Uros Bizjak wrote:\n>>> OK.\n>>>\n>>> Thanks,\n>>> Uros.\n>>\n>> Thanks. I should have posted this Friday when my tests finished, but\n>> I'll be committing with one minor change so tests don't run on m32 or mx32:\n>>\n>> --- a/gcc/testsuite/gcc.target/i386/pr82196-1.c\n>> +++ b/gcc/testsuite/gcc.target/i386/pr82196-1.c\n>> @@ -1,4 +1,4 @@\n>> -/* { dg-do compile } */\n>> +/* { dg-do compile { target lp64 } } */\n>>  /* { dg-options \"-msse -mcall-ms2sysv-xlogues -O2\" } */\n>>  /* { dg-final { scan-assembler \"call.*__sse_savms64_18\" } } */\n>>  /* { dg-final { scan-assembler \"jmp.*__sse_resms64x_18\" } } */\n>> diff --git a/gcc/testsuite/gcc.target/i386/pr82196-2.c\n>> b/gcc/testsuite/gcc.target/i386/pr82196-2.c\n>> index 31705bee29b..8fe58411d5e 100644\n>> --- a/gcc/testsuite/gcc.target/i386/pr82196-2.c\n>> +++ b/gcc/testsuite/gcc.target/i386/pr82196-2.c\n>> @@ -1,4 +1,4 @@\n>> -/* { dg-do compile } */\n>> +/* { dg-do compile { target lp64 } } */\n>>  /* { dg-options \"-mavx -mcall-ms2sysv-xlogues -O2\" } */\n>>  /* { dg-final { scan-assembler \"call.*__avx_savms64_18\" } } */\n>>  /* { dg-final { scan-assembler \"jmp.*__avx_resms64x_18\" } } */\n>>\n>> Other than that, full regression tests pass.\n>\n> However, they do FAIL on 64-bit Solaris/x86:\n>\n> +FAIL: gcc.target/i386/pr82196-1.c (test for excess errors)\n>\n> Excess errors:\n> /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/i386/pr82196-1.c:14:1: error: bp cannot be used in asm here\n>\n> +UNRESOLVED: gcc.target/i386/pr82196-1.c scan-assembler call.*__sse_savms64_18\n> +UNRESOLVED: gcc.target/i386/pr82196-1.c scan-assembler jmp.*__sse_resms64x_18\n> +FAIL: gcc.target/i386/pr82196-2.c (test for excess errors)\n> +UNRESOLVED: gcc.target/i386/pr82196-2.c scan-assembler call.*__avx_savms64_18\n> +UNRESOLVED: gcc.target/i386/pr82196-2.c scan-assembler jmp.*__avx_resms64x_18\n\nDoes the test compile with -fomit-frame-pointer?\n\nUros.","headers":{"Return-Path":"<gcc-patches-return-462481-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-462481-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"Ix4WXY/V\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xxP3654ndz9sMN\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 19 Sep 2017 23:33:38 +1000 (AEST)","(qmail 129026 invoked by alias); 19 Sep 2017 13:33:30 -0000","(qmail 129012 invoked by uid 89); 19 Sep 2017 13:33:29 -0000","from mail-io0-f182.google.com (HELO mail-io0-f182.google.com)\n\t(209.85.223.182) by sourceware.org\n\t(qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tTue, 19 Sep 2017 13:33:28 +0000","by mail-io0-f182.google.com with SMTP id i197so9952015ioe.9 for\n\t<gcc-patches@gcc.gnu.org>; Tue, 19 Sep 2017 06:33:27 -0700 (PDT)","by 10.2.137.252 with HTTP; Tue, 19 Sep 2017 06:33:25 -0700 (PDT)"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender\n\t:mime-version:in-reply-to:references:from:date:message-id\n\t:subject:to:cc:content-type; q=dns; s=default; b=D1lM36cQAQ0N+ez\n\tVNRJC5Lsv+E527hyzKfdJgSWXycOuRBzE21zQIMlDMwjaZmoDxBYFSlBH88bbNff\n\tmTxL0ggQS6zLUUkDsA05w7/KGfowWuUh1WeJ3fj2rryEvlTtKr5f9leYHZyFc+F7\n\tnucI3+sas0qq2U2r9wwtqA/yBFQs=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender\n\t:mime-version:in-reply-to:references:from:date:message-id\n\t:subject:to:cc:content-type; s=default; bh=EvUxkZk79ILxmLmJOYHQe\n\tcjaINM=; b=Ix4WXY/VZsSvEap1ZcWeYrOVsJMhFnOq4yS1mCka49jUWKUZMnmue\n\tzIbq6kPXNE7JzkqrM7uHLwMBbV3R3UgOIjcFfPRkflSrkwyNDJpoum4+FJyoWkqe\n\tRZ0yEBa2d7KF6UfMto6weJlM+PuFjIkOWRbcLzQpHHpynVJVN72deM=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-22.3 required=5.0 tests=AWL, BAYES_00,\n\tFREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2,\n\tGIT_PATCH_3, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM, SPF_PASS,\n\tUNWANTED_LANGUAGE_BODY autolearn=ham version=3.3.2 spammy=","X-HELO":"mail-io0-f182.google.com","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net;\n\ts=20161025;\n\th=x-gm-message-state:mime-version:in-reply-to:references:from:date\n\t:message-id:subject:to:cc;\n\tbh=ubYP2+9lowRXXCAhUaPX6BYCqXiVphVPYGa4rdM2TY4=;\n\tb=cp8BxKoraqwA2wwLP8lYSzn/aa2BRoJIGi7d/mQqkgo6N4GOsk4Jf5J1zUm/SpDiE3\n\tmDzKYVL7dP88JKuSDZVTIB0L0QgPJx58Ns766ixI+6SYbdy+iEw7CKsvIhZ/kC855i93\n\t3ArTEIZToaFOKshi9d12xPHekU6H1HUrCrXNruJ3Y2xyzH4OQzoqO+B7MNF39BLSC2M7\n\t4RxxC3QhBGDJsKPMO/D0x3sfOLsedzbb0GH0jzJoUUlX8inX3ojmlV2bW172nYfWEDWB\n\tDnhpvMRqMRS2SyssTJzsIAtqXgfCTi6X12CKPmvPdKkMKO0QMUZ4WjlYFjsV1U+QOs3N\n\tJa1w==","X-Gm-Message-State":"AHPjjUi9FVsyOG8g9Dqb+1Epj/UGLe4v3RzIvMDLKhzppKhYLZivDFzG\tyb0F9WMYNt4VwV4MrKftkw10MSvrj5rOmELoUjI=","X-Google-Smtp-Source":"AOwi7QCBssxrHTsXGnvHUGPl0ZXnQeL+C8gOKgRwuaeSj4jOvoixBx37viM1hcQzbkMGV6FPLHhBT6TMEGE4U02wN2c=","X-Received":"by 10.107.189.129 with SMTP id n123mr2131300iof.48.1505828006373;\n\tTue, 19 Sep 2017 06:33:26 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<yddk20uring.fsf@CeBiTec.Uni-Bielefeld.DE>","References":"<20170914040348.6339-1-daniel.santos@pobox.com>\n\t<CAFULd4Ypp9dceHE_hAaCrnzsLgEOvW+mJEouMCAdG10WQxbPOQ@mail.gmail.com>\n\t<f0217a6a-5f1f-436a-8815-31af12542b8a@pobox.com>\n\t<yddk20uring.fsf@CeBiTec.Uni-Bielefeld.DE>","From":"Uros Bizjak <ubizjak@gmail.com>","Date":"Tue, 19 Sep 2017 15:33:25 +0200","Message-ID":"<CAFULd4bX5AKxGGXXqS0c3m+tDitcYAbbLWAUmatuXo5MY0KYXg@mail.gmail.com>","Subject":"Re: [PATCH] [i386,\n\tlibgcc] PR 82196 -mcall-ms2sysv-xlogues emits wrong AVX/SSE MOV","To":"Rainer Orth <ro@cebitec.uni-bielefeld.de>","Cc":"Daniel Santos <daniel.santos@pobox.com>,\n\tgcc-patches <gcc-patches@gcc.gnu.org>,\n\tJan Hubicka <hubicka@ucw.cz>, Ian Lance Taylor <ian@airs.com>,\n\tMike Stump <mikestump@comcast.net>","Content-Type":"text/plain; charset=\"UTF-8\""}},{"id":1771018,"web_url":"http://patchwork.ozlabs.org/comment/1771018/","msgid":"<yddfubiretb.fsf@CeBiTec.Uni-Bielefeld.DE>","list_archive_url":null,"date":"2017-09-19T13:36:00","subject":"Re: [PATCH] [i386,\n\tlibgcc] PR 82196 -mcall-ms2sysv-xlogues emits wrong AVX/SSE MOV","submitter":{"id":4362,"url":"http://patchwork.ozlabs.org/api/people/4362/","name":"Rainer Orth","email":"ro@CeBiTec.Uni-Bielefeld.DE"},"content":"Uros Bizjak <ubizjak@gmail.com> writes:\n\n>> However, they do FAIL on 64-bit Solaris/x86:\n>>\n>> +FAIL: gcc.target/i386/pr82196-1.c (test for excess errors)\n>>\n>> Excess errors:\n>> /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/i386/pr82196-1.c:14:1:\n>> error: bp cannot be used in asm here\n>>\n>> +UNRESOLVED: gcc.target/i386/pr82196-1.c scan-assembler call.*__sse_savms64_18\n>> +UNRESOLVED: gcc.target/i386/pr82196-1.c scan-assembler jmp.*__sse_resms64x_18\n>> +FAIL: gcc.target/i386/pr82196-2.c (test for excess errors)\n>> +UNRESOLVED: gcc.target/i386/pr82196-2.c scan-assembler call.*__avx_savms64_18\n>> +UNRESOLVED: gcc.target/i386/pr82196-2.c scan-assembler jmp.*__avx_resms64x_18\n>\n> Does the test compile with -fomit-frame-pointer?\n\nIt does indeed, and the patterns are present as expected.\n\n\tRainer","headers":{"Return-Path":"<gcc-patches-return-462483-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-462483-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"knDmnDEn\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xxP6C4dMyz9rxl\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 19 Sep 2017 23:36:19 +1000 (AEST)","(qmail 53266 invoked by alias); 19 Sep 2017 13:36:09 -0000","(qmail 52702 invoked by uid 89); 19 Sep 2017 13:36:08 -0000","from smtp.CeBiTec.Uni-Bielefeld.DE (HELO\n\tsmtp.CeBiTec.Uni-Bielefeld.DE) (129.70.160.84) by\n\tsourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tTue, 19 Sep 2017 13:36:06 +0000","from localhost (localhost.CeBiTec.Uni-Bielefeld.DE [127.0.0.1])\tby\n\tsmtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTP id\n\tF2268310; Tue, 19 Sep 2017 15:36:02 +0200 (CEST)","from smtp.CeBiTec.Uni-Bielefeld.DE ([127.0.0.1])\tby localhost\n\t(malfoy.CeBiTec.Uni-Bielefeld.DE [127.0.0.1]) (amavisd-new,\n\tport 10024)\twith LMTP id LL8CTWj2cY8w;\n\tTue, 19 Sep 2017 15:36:01 +0200 (CEST)","from lokon.CeBiTec.Uni-Bielefeld.DE\n\t(lokon.CeBiTec.Uni-Bielefeld.DE [129.70.161.152])\t(using\n\tTLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))\t(No\n\tclient certificate requested)\tby\n\tsmtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTPS id\n\t6B0FD30E; Tue, 19 Sep 2017 15:36:01 +0200 (CEST)","(from ro@localhost)\tby lokon.CeBiTec.Uni-Bielefeld.DE\n\t(8.15.2+Sun/8.15.2/Submit) id v8JDa0Fx014065;\n\tTue, 19 Sep 2017 15:36:00 +0200 (MEST)"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:from\n\t:to:cc:subject:references:date:in-reply-to:message-id\n\t:mime-version:content-type; q=dns; s=default; b=Ily4JN2x/n2piOjF\n\tR2ns/NoHIHccfG4NUaf21osdXsEiAaDRz2+oIlin9q6IGHEoSVPUkz5v6UGqfpn2\n\tNaR9JW25pVdUQByE6PIwWfzQdwHQCjXf4zB25ivZKhQSXkFrbEeGbX3MfTIopqLK\n\t0sYnSfRpTrOG1uofNTnrBYGrRPc=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:from\n\t:to:cc:subject:references:date:in-reply-to:message-id\n\t:mime-version:content-type; s=default; bh=Wn2jv/mvkElFnKpFKW63Hd\n\t8iqGk=; b=knDmnDEnKtenCXy1aRZFGjs9VQ0plt8r2CMxgwnBiD2ixjXVbGHH7p\n\tfRFVlQXdkwNlYv+AOP+2kBMZN/3dYjeB3oD6SJnETGEOH86V3hyCan5l3tA3a9PT\n\tidtAm61XGAikQ3CM/f2+l+0pObl1SxSizXoaM/FIKk8EQpCVj2FsE=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-5.8 required=5.0 tests=AWL, BAYES_00,\n\tGIT_PATCH_2, KAM_LAZY_DOMAIN_SECURITY,\n\tRP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=","X-HELO":"smtp.CeBiTec.Uni-Bielefeld.DE","From":"Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>","To":"Uros Bizjak <ubizjak@gmail.com>","Cc":"Daniel Santos <daniel.santos@pobox.com>,\n\tgcc-patches <gcc-patches@gcc.gnu.org>,\n\tJan Hubicka <hubicka@ucw.cz>, Ian Lance Taylor <ian@airs.com>,\n\tMike Stump <mikestump@comcast.net>","Subject":"Re: [PATCH] [i386,\n\tlibgcc] PR 82196 -mcall-ms2sysv-xlogues emits wrong AVX/SSE MOV","References":"<20170914040348.6339-1-daniel.santos@pobox.com>\t<CAFULd4Ypp9dceHE_hAaCrnzsLgEOvW+mJEouMCAdG10WQxbPOQ@mail.gmail.com>\t<f0217a6a-5f1f-436a-8815-31af12542b8a@pobox.com>\t<yddk20uring.fsf@CeBiTec.Uni-Bielefeld.DE>\t<CAFULd4bX5AKxGGXXqS0c3m+tDitcYAbbLWAUmatuXo5MY0KYXg@mail.gmail.com>","Date":"Tue, 19 Sep 2017 15:36:00 +0200","In-Reply-To":"<CAFULd4bX5AKxGGXXqS0c3m+tDitcYAbbLWAUmatuXo5MY0KYXg@mail.gmail.com>\t(Uros\n\tBizjak's message of \"Tue, 19 Sep 2017 15:33:25 +0200\")","Message-ID":"<yddfubiretb.fsf@CeBiTec.Uni-Bielefeld.DE>","User-Agent":"Gnus/5.13 (Gnus v5.13) Emacs/25.1 (usg-unix-v)","MIME-Version":"1.0","Content-Type":"text/plain","X-IsSubscribed":"yes"}},{"id":1771388,"web_url":"http://patchwork.ozlabs.org/comment/1771388/","msgid":"<ca346d46-794e-ca75-3dcf-88044046d86f@pobox.com>","list_archive_url":null,"date":"2017-09-19T21:03:29","subject":"Re: [PATCH] [i386,\n\tlibgcc] PR 82196 -mcall-ms2sysv-xlogues emits wrong AVX/SSE MOV","submitter":{"id":70395,"url":"http://patchwork.ozlabs.org/api/people/70395/","name":"Daniel Santos","email":"daniel.santos@pobox.com"},"content":"On 09/19/2017 07:13 AM, Rainer Orth wrote:\n> Daniel Santos <daniel.santos@pobox.com> writes:\n>\n>> On 09/17/2017 10:53 AM, Uros Bizjak wrote:\n>>> OK.\n>>>\n>>> Thanks,\n>>> Uros.\n>> Thanks. I should have posted this Friday when my tests finished, but\n>> I'll be committing with one minor change so tests don't run on m32 or mx32:\n>>\n>> --- a/gcc/testsuite/gcc.target/i386/pr82196-1.c\n>> +++ b/gcc/testsuite/gcc.target/i386/pr82196-1.c\n>> @@ -1,4 +1,4 @@\n>> -/* { dg-do compile } */\n>> +/* { dg-do compile { target lp64 } } */\n>>  /* { dg-options \"-msse -mcall-ms2sysv-xlogues -O2\" } */\n>>  /* { dg-final { scan-assembler \"call.*__sse_savms64_18\" } } */\n>>  /* { dg-final { scan-assembler \"jmp.*__sse_resms64x_18\" } } */\n>> diff --git a/gcc/testsuite/gcc.target/i386/pr82196-2.c\n>> b/gcc/testsuite/gcc.target/i386/pr82196-2.c\n>> index 31705bee29b..8fe58411d5e 100644\n>> --- a/gcc/testsuite/gcc.target/i386/pr82196-2.c\n>> +++ b/gcc/testsuite/gcc.target/i386/pr82196-2.c\n>> @@ -1,4 +1,4 @@\n>> -/* { dg-do compile } */\n>> +/* { dg-do compile { target lp64 } } */\n>>  /* { dg-options \"-mavx -mcall-ms2sysv-xlogues -O2\" } */\n>>  /* { dg-final { scan-assembler \"call.*__avx_savms64_18\" } } */\n>>  /* { dg-final { scan-assembler \"jmp.*__avx_resms64x_18\" } } */\n>>\n>> Other than that, full regression tests pass.\n> However, they do FAIL on 64-bit Solaris/x86:\n>\n> +FAIL: gcc.target/i386/pr82196-1.c (test for excess errors)\n>\n> Excess errors:\n> /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/i386/pr82196-1.c:14:1: error: bp cannot be used in asm here\n>\n> +UNRESOLVED: gcc.target/i386/pr82196-1.c scan-assembler call.*__sse_savms64_18\n> +UNRESOLVED: gcc.target/i386/pr82196-1.c scan-assembler jmp.*__sse_resms64x_18\n> +FAIL: gcc.target/i386/pr82196-2.c (test for excess errors)\n> +UNRESOLVED: gcc.target/i386/pr82196-2.c scan-assembler call.*__avx_savms64_18\n> +UNRESOLVED: gcc.target/i386/pr82196-2.c scan-assembler jmp.*__avx_resms64x_18\n>\n> \tRainer\n\nSorry about that, I forgot about Solaris' default enabled frame\npointers.  I don't even need a test this complicated, I'll make it much\nsimpler.\n\nThanks,\nDaniel","headers":{"Return-Path":"<gcc-patches-return-462529-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-462529-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"WyFf2R0E\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xxZvR53fZz9sMN\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 20 Sep 2017 06:57:38 +1000 (AEST)","(qmail 92327 invoked by alias); 19 Sep 2017 20:57:30 -0000","(qmail 92286 invoked by uid 89); 19 Sep 2017 20:57:28 -0000","from pb-smtp1.pobox.com (HELO sasl.smtp.pobox.com) (64.147.108.70)\n\tby sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with\n\tESMTP; Tue, 19 Sep 2017 20:57:27 +0000","from sasl.smtp.pobox.com (unknown [127.0.0.1])\tby\n\tpb-smtp1.pobox.com (Postfix) with ESMTP id 7CED7A5395;\n\tTue, 19 Sep 2017 16:57:21 -0400 (EDT)","from pb-smtp1.nyi.icgroup.com (unknown [127.0.0.1])\tby\n\tpb-smtp1.pobox.com (Postfix) with ESMTP id 73334A5394;\n\tTue, 19 Sep 2017 16:57:21 -0400 (EDT)","from [192.168.1.4] (unknown [76.215.41.237])\t(using TLSv1.2 with\n\tcipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\t(No client\n\tcertificate requested)\tby pb-smtp1.pobox.com (Postfix) with\n\tESMTPSA id 7E9A3A5393; Tue, 19 Sep 2017 16:57:20 -0400 (EDT)"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender\n\t:subject:to:cc:references:from:message-id:date:mime-version\n\t:in-reply-to:content-type:content-transfer-encoding; q=dns; s=\n\tdefault; b=Yq9l77u0E9X6GVTw8N8HW5fAKM8JU38mXHi0eRgGU1KW2t7UMLOtE\n\tlZk5o+gtgI/szVUFBhsRr+yPaoylUhHA83MBkK9IuL9+KYagI1iXcKiAvLeKUlx1\n\tiRTfCNOtwEZ8hn8O1mUvVLBK50fgDcHuGHx8cnT/8E9cTqtKqpD4/Y=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender\n\t:subject:to:cc:references:from:message-id:date:mime-version\n\t:in-reply-to:content-type:content-transfer-encoding; s=default;\n\tbh=xWoo77rRPR0bNfnvzaZ0R492jjU=; b=WyFf2R0EuzfTmduXeVnZvhsut3O1\n\tIYuRrLSv+NadTa3zHzlff/tFTgJEnMRakgtayHoexhvLFwsyNPbK9x70Wy2LOrHT\n\tJ0dVPofcZIwobRdCggI78bntj1LpClYLrWkYGwc3IumocqWyk2/oYgeRo3qPBFu2\n\tXfGLPj/vNuDW6Mk=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-25.7 required=5.0 tests=AWL, BAYES_00,\n\tGIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3,\n\tRCVD_IN_DNSWL_LOW, RP_MATCHES_RCVD,\n\tSPF_PASS autolearn=ham version=3.3.2 spammy=","X-HELO":"sasl.smtp.pobox.com","Subject":"Re: [PATCH] [i386,\n\tlibgcc] PR 82196 -mcall-ms2sysv-xlogues emits wrong AVX/SSE MOV","To":"Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>","Cc":"Uros Bizjak <ubizjak@gmail.com>, gcc-patches <gcc-patches@gcc.gnu.org>,\n\tJan Hubicka <hubicka@ucw.cz>, Ian Lance Taylor <ian@airs.com>,\n\tMike Stump <mikestump@comcast.net>","References":"<20170914040348.6339-1-daniel.santos@pobox.com>\n\t<CAFULd4Ypp9dceHE_hAaCrnzsLgEOvW+mJEouMCAdG10WQxbPOQ@mail.gmail.com>\n\t<f0217a6a-5f1f-436a-8815-31af12542b8a@pobox.com>\n\t<yddk20uring.fsf@CeBiTec.Uni-Bielefeld.DE>","From":"Daniel Santos <daniel.santos@pobox.com>","Message-ID":"<ca346d46-794e-ca75-3dcf-88044046d86f@pobox.com>","Date":"Tue, 19 Sep 2017 16:03:29 -0500","User-Agent":"Mozilla/5.0 (X11; Linux x86_64;\n\trv:52.0) Gecko/20100101 Thunderbird/52.3.0","MIME-Version":"1.0","In-Reply-To":"<yddk20uring.fsf@CeBiTec.Uni-Bielefeld.DE>","Content-Type":"text/plain; charset=utf-8","X-Pobox-Relay-ID":"2113B120-9D7D-11E7-95DD-FE4B1A68708C-06139138!pb-smtp1.pobox.com","Content-Transfer-Encoding":"quoted-printable","X-IsSubscribed":"yes"}}]