[PATCH 0/8] Implement assembly cortex-M PACBTI functionality

Victor Do Nascimento <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
This patch series modifies hand-written assembly files for Arm targets,
conditionally enabling branch target identification as well as address
return signature and verification based on Armv8.1-M Pointer
Authentication [1] using ACLE feature test macros at compile-time [2].

Function prologues/epilogues reflect gcc compilation behaviour when
gcc invoked with the following flags:

"-march=armv8.1-m.main -mbranch-protection=pac-ret+leaf+bti -mthumb
-mfloat-abi=soft -fasynchronous-unwind-tables -g -O2 -S"

Regression tested on arm-none-eabi with and without MVE extension and
for Newlib and Newlib-nano.

[1]
<https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/armv8-1-m-pointer-authentication-and-branch-target-identification-extension>
[2] <https://developer.arm.com/documentation/101028/0012/5--Feature-test-macros>

Victor Do Nascimento (8):
  newlib: libc: define M-profile PACBTI-enablement macros
  newlib: libc: strcmp M-profile PACBTI-enablement
  newlib: libc: strlen M-profile PACBTI-enablement
  newlib: libc: memchr M-profile PACBTI-enablement
  newlib: libc: memcpy M-profile PACBTI-enablement
  newlib: libc: setjmp/longjmp M-profile PACBTI-enablement
  newlib: libc: aeabi_memmove M-profile PACBTI-enablement
  newlib: libc: aeabi_memset M-profile PACBTI-enablement

 .../libc/machine/arm/aeabi_memmove-thumb2.S   | 42 ++++++++++-
 newlib/libc/machine/arm/aeabi_memset-thumb2.S | 45 +++++++++++-
 newlib/libc/machine/arm/memchr.S              | 49 +++++++++++--
 newlib/libc/machine/arm/memcpy-armv7m.S       | 73 +++++++++++++++++--
 newlib/libc/machine/arm/pacbti.h              | 58 +++++++++++++++
 newlib/libc/machine/arm/setjmp.S              | 32 +++++++-
 newlib/libc/machine/arm/strcmp-arm-tiny.S     |  7 +-
 newlib/libc/machine/arm/strcmp-armv7.S        | 45 +++++++++---
 newlib/libc/machine/arm/strcmp-armv7m.S       | 36 +++++++--
 newlib/libc/machine/arm/strlen-armv7.S        | 52 ++++++++++++-
 newlib/libc/machine/arm/strlen-stub.c         |  9 +++
 newlib/libc/machine/arm/strlen-thumb2-Os.S    | 13 +++-
 12 files changed, 417 insertions(+), 44 deletions(-)
 create mode 100644 newlib/libc/machine/arm/pacbti.h

-- 
2.36.1
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.