mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-08 18:30:18 +00:00
S390: Configure check for vector support in gcc.
The S390 specific test checks if the gcc has support for vector registers by compiling an inline assembly which clobbers vector registers. On success the macro HAVE_S390_VX_GCC_SUPPORT is defined. This macro can be used to determine if e.g. clobbering vector registers is allowed or not. ChangeLog: * config.h.in (HAVE_S390_VX_GCC_SUPPORT): New macro undefine. * sysdeps/s390/configure.ac: Add test for S390 vector register support in gcc. * sysdeps/s390/configure: Regenerated.
This commit is contained in:
parent
c70e9913d2
commit
9b7f05599a
@ -1,3 +1,10 @@
|
||||
2016-05-25 Stefan Liebler <stli@linux.vnet.ibm.com>
|
||||
|
||||
* config.h.in (HAVE_S390_VX_GCC_SUPPORT): New macro undefine.
|
||||
* sysdeps/s390/configure.ac: Add test for S390 vector register
|
||||
support in gcc.
|
||||
* sysdeps/s390/configure: Regenerated.
|
||||
|
||||
2016-05-25 Stefan Liebler <stli@linux.vnet.ibm.com>
|
||||
|
||||
* iconvdata/Makefile ($(inst_gconvdir)/gconv-modules):
|
||||
|
@ -73,6 +73,10 @@
|
||||
/* Define if assembler supports vector instructions on S390. */
|
||||
#undef HAVE_S390_VX_ASM_SUPPORT
|
||||
|
||||
/* Define if gcc supports vector registers as clobbers in inline assembly
|
||||
on S390. */
|
||||
#undef HAVE_S390_VX_GCC_SUPPORT
|
||||
|
||||
/* Define if assembler supports Intel MPX. */
|
||||
#undef HAVE_MPX_SUPPORT
|
||||
|
||||
|
32
sysdeps/s390/configure
vendored
32
sysdeps/s390/configure
vendored
@ -144,6 +144,38 @@ else
|
||||
$as_echo "$as_me: WARNING: Use binutils with vector-support in order to use optimized implementations." >&2;}
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for S390 vector support in gcc" >&5
|
||||
$as_echo_n "checking for S390 vector support in gcc... " >&6; }
|
||||
if ${libc_cv_gcc_s390_vx+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
cat > conftest.c <<\EOF
|
||||
void testvecclobber ()
|
||||
{
|
||||
__asm__ ("" : : : "v16");
|
||||
}
|
||||
EOF
|
||||
if { ac_try='${CC-cc} --shared conftest.c -o conftest.o &> /dev/null'
|
||||
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
test $ac_status = 0; }; } ;
|
||||
then
|
||||
libc_cv_gcc_s390_vx=yes
|
||||
else
|
||||
libc_cv_gcc_s390_vx=no
|
||||
fi
|
||||
rm -f conftest*
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_gcc_s390_vx" >&5
|
||||
$as_echo "$libc_cv_gcc_s390_vx" >&6; }
|
||||
|
||||
if test "$libc_cv_gcc_s390_vx" = yes ;
|
||||
then
|
||||
$as_echo "#define HAVE_S390_VX_GCC_SUPPORT 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
|
||||
test -n "$critic_missing" && as_fn_error $? "
|
||||
*** $critic_missing" "$LINENO" 5
|
||||
|
@ -64,6 +64,27 @@ else
|
||||
AC_MSG_WARN([Use binutils with vector-support in order to use optimized implementations.])
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK(for S390 vector support in gcc, libc_cv_gcc_s390_vx, [dnl
|
||||
cat > conftest.c <<\EOF
|
||||
void testvecclobber ()
|
||||
{
|
||||
__asm__ ("" : : : "v16");
|
||||
}
|
||||
EOF
|
||||
dnl
|
||||
dnl test, if gcc supports S390 vector registers as clobber in inline assembly
|
||||
if AC_TRY_COMMAND([${CC-cc} --shared conftest.c -o conftest.o &> /dev/null]) ;
|
||||
then
|
||||
libc_cv_gcc_s390_vx=yes
|
||||
else
|
||||
libc_cv_gcc_s390_vx=no
|
||||
fi
|
||||
rm -f conftest* ])
|
||||
|
||||
if test "$libc_cv_gcc_s390_vx" = yes ;
|
||||
then
|
||||
AC_DEFINE(HAVE_S390_VX_GCC_SUPPORT)
|
||||
fi
|
||||
|
||||
test -n "$critic_missing" && AC_MSG_ERROR([
|
||||
*** $critic_missing])
|
||||
|
Loading…
Reference in New Issue
Block a user