Re: [PATCH] s390: Use 64bit branch relative on count instruction in strncpy-z900.S [BZ #34398]

Stefan Liebler <[email protected]>
Newsgroups gmane.comp.lib.glibc.alpha
Message-ID <[email protected]>
On 7/14/26 10:56, Stefan Liebler wrote:
> At the time the s390-32 strncpy implementation was adjusted for the
> s390-64 port, the brct (branch relative on count) instruction was
> not adjusted from 32bit to 64bit instruction.
> 
> If n contains a value >32bit, the number of 8 byte chunks is computed
> with srlg (64bit shift right). The processing of 8 byte chunks is then
> processed by looping with brct (32bit branch relative on count) instruction.
> 
> This patch just uses the brctg (64bit branch relative on count) instruciton.
> 
> Note 1: There is a second loop copying the remaining seven bytes.  The usage
> of 32bit brct for looping is fine here.
> 
> Note 2: If glibc is build with architecture level set >=z13, the z900 variant
> of strncpy is not build at all.
> 
> Note 3: If glibc is build for <z13, the z900 ifunc variant is only chosen if
> not run on >=z13 or if called via __GI_strncpy.
> ---
>  sysdeps/s390/strncpy-z900.S | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/sysdeps/s390/strncpy-z900.S b/sysdeps/s390/strncpy-z900.S
> index 6d954cf402..141cba2294 100644
> --- a/sysdeps/s390/strncpy-z900.S
> +++ b/sysdeps/s390/strncpy-z900.S
> @@ -56,7 +56,7 @@ ENTRY(STRNCPY_Z900)
>  	jz    .L10
>  	stg   %r0,0(%r2,%r3)	    # store all eight to dest.
>  	la    %r3,8(%r3)
> -	brct  %r4,.L0
> +	brctg %r4,.L0
>  .L1:	ltgr  %r1,%r1
>  	jz    .Lexit
>  .L2:	icm   %r0,1,0(%r3)

Hi Andreas,

can I just push this to master before the release?

Bye,
Stefan
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.