diff options
Diffstat (limited to 'sysdeps/s390/memmove.c')
-rw-r--r-- | sysdeps/s390/memmove.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/sysdeps/s390/memmove.c b/sysdeps/s390/memmove.c index fd4da377a3..fb6b69ae2f 100644 --- a/sysdeps/s390/memmove.c +++ b/sysdeps/s390/memmove.c @@ -36,9 +36,19 @@ extern __typeof (__redirect_memmove) MEMMOVE_C attribute_hidden; extern __typeof (__redirect_memmove) MEMMOVE_Z13 attribute_hidden; # endif +# if HAVE_MEMMOVE_ARCH13 +extern __typeof (__redirect_memmove) MEMMOVE_ARCH13 attribute_hidden; +# endif + s390_libc_ifunc_expr (__redirect_memmove, memmove, - (HAVE_MEMMOVE_Z13 && (hwcap & HWCAP_S390_VX)) - ? MEMMOVE_Z13 - : MEMMOVE_DEFAULT + ({ + s390_libc_ifunc_expr_stfle_init (); + (HAVE_MEMMOVE_ARCH13 + && S390_IS_ARCH13_MIE3 (stfle_bits)) + ? MEMMOVE_ARCH13 + : (HAVE_MEMMOVE_Z13 && (hwcap & HWCAP_S390_VX)) + ? MEMMOVE_Z13 + : MEMMOVE_DEFAULT; + }) ) #endif |