1 /* memcmp variant information on S/390 version.
2    Copyright (C) 2018-2022 Free Software Foundation, Inc.
3    This file is part of the GNU C Library.
4 
5    The GNU C Library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9 
10    The GNU C Library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14 
15    You should have received a copy of the GNU Lesser General Public
16    License along with the GNU C Library; if not, see
17    <https://www.gnu.org/licenses/>.  */
18 
19 #if defined USE_MULTIARCH && IS_IN (libc)	\
20   && ! defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
21 # define HAVE_MEMCMP_IFUNC	1
22 #else
23 # define HAVE_MEMCMP_IFUNC	0
24 #endif
25 
26 #if defined HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
27 # define MEMCMP_DEFAULT		MEMCMP_Z196
28 # define HAVE_MEMCMP_Z900_G5	0
29 # define HAVE_MEMCMP_Z10	0
30 # define HAVE_MEMCMP_Z196	1
31 #elif defined HAVE_S390_MIN_Z10_ZARCH_ASM_SUPPORT
32 # define MEMCMP_DEFAULT		MEMCMP_Z10
33 # define HAVE_MEMCMP_Z900_G5	0
34 # define HAVE_MEMCMP_Z10	1
35 # define HAVE_MEMCMP_Z196	HAVE_MEMCMP_IFUNC
36 #else
37 # define MEMCMP_DEFAULT		MEMCMP_Z900_G5
38 # define HAVE_MEMCMP_Z900_G5	1
39 # define HAVE_MEMCMP_Z10	HAVE_MEMCMP_IFUNC
40 # define HAVE_MEMCMP_Z196	HAVE_MEMCMP_IFUNC
41 #endif
42 
43 #if HAVE_MEMCMP_Z900_G5
44 # define MEMCMP_Z900_G5		__memcmp_default
45 #else
46 # define MEMCMP_Z900_G5		NULL
47 #endif
48 
49 #if HAVE_MEMCMP_Z10
50 # define MEMCMP_Z10		__memcmp_z10
51 #else
52 # define MEMCMP_Z10		NULL
53 #endif
54 
55 #if HAVE_MEMCMP_Z196
56 # define MEMCMP_Z196		__memcmp_z196
57 #else
58 # define MEMCMP_Z196		NULL
59 #endif
60