W-M-R opened a new pull request, #21357:
URL: https://github.com/apache/nuttx/pull/21357

   ## Summary
   
   The arm64 `memchr()`, `strchr()`, `strchrnul()` and `strrchr()` assembly
   sources extract a single 64-bit lane with `mov xN, vM.2d[0]`. `.2d` is the
   two-element form and is not a valid operand for this instruction; the correct
   form for lane 0 is `.d`.
   
   Change the four files to `vM.d[0]`. No instruction or behaviour change.
   
   ## Impact
   
   - Assembly-only change, identical generated code.
   - Fixes the build with toolchains that strictly validate the vector element
     arrangement.
   
   ## Testing
   
   Host: Ubuntu 22.04, aarch64-none-elf-gcc 13.
   
       ./tools/configure.sh -l qemu-armv8a:nsh
       # menuconfig: enable CONFIG_TESTING_LIBC and the arch libc tests
       make -j
       qemu-system-aarch64 -cpu cortex-a53 -nographic \
         -machine virt,virtualization=on,gic-version=3 \
         -chardev stdio,id=con,mux=on -serial chardev:con \
         -mon chardev=con,mode=readline -kernel ./nuttx
   
   Run the libc string tests in NSH. The objects also assemble cleanly with
   `-mcpu=cortex-a53`; the old `.2d[0]` form is rejected by current binutils.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to