about summary refs log tree commit diff
path: root/sysdeps/s390/memmove.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/s390/memmove.c')
-rw-r--r--sysdeps/s390/memmove.c16
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