[PATCH] powerpc: Fix VSX register number on __strncpy_power9 [BZ #29197]
Siddhesh Poyarekar
siddhesh@gotplt.org
Tue Jun 7 15:04:47 GMT 2022
On 07/06/2022 20:00, Matheus Castanho via Libc-alpha wrote:
> __strncpy_power9 initializes VR 18 with zeroes to be used throughout the
> code, including when zero-padding the destination string. However, the
> v18 reference was mistakenly being used for stxv and stxvl, which take a
> VSX vector as operand. The code ended up using the uninitialized VSR 18
> register by mistake.
>
> Both occurrences have been changed to use the proper VSX number for VR 18
> (i.e. VSR 50).
>
> Tested on powerpc, powerpc64 and powerpc64le.
>
> Suggested-by: Kewen Lin <linkw@gcc.gnu.org>
Signed-off-by is the right tag here given that it is pretty much the
same patch that's in the bugzilla.
> ---
> sysdeps/powerpc/powerpc64/le/power9/strncpy.S | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/sysdeps/powerpc/powerpc64/le/power9/strncpy.S b/sysdeps/powerpc/powerpc64/le/power9/strncpy.S
> index ae23161316..deb94671cc 100644
> --- a/sysdeps/powerpc/powerpc64/le/power9/strncpy.S
> +++ b/sysdeps/powerpc/powerpc64/le/power9/strncpy.S
> @@ -352,7 +352,7 @@ L(zero_padding_loop):
> cmpldi cr6,r5,16 /* Check if length was reached. */
> ble cr6,L(zero_padding_end)
>
> - stxv v18,0(r11)
> + stxv 32+v18,0(r11)
> addi r11,r11,16
> addi r5,r5,-16
>
> @@ -360,7 +360,7 @@ L(zero_padding_loop):
>
> L(zero_padding_end):
> sldi r10,r5,56 /* stxvl wants size in top 8 bits */
> - stxvl v18,r11,r10 /* Partial store */
> + stxvl 32+v18,r11,r10 /* Partial store */
> blr
>
> .align 4
More information about the Libc-alpha
mailing list