public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
From: Victor Do Nascimento <Victor.DoNascimento@arm.com>
To: newlib@sourceware.org
Cc: Richard Earnshaw <Richard.Earnshaw@arm.com>
Subject: [PATCH v5 0/8] Implement assembly cortex-M PACBTI functionality
Date: Wed, 21 Dec 2022 11:03:41 +0000	[thread overview]
Message-ID: <d8134a62-c720-63ec-6dc2-0aa30ea629f8@arm.com> (raw)
In-Reply-To: <>

Hi all,

This respin of the patch series adds the final modifications required to 
patches in response to upstream comments and rebases work on the setjmp 
and longjmp routines onto the fixed arm abi.

Tweaks necessary for correct cfi information generation made to:
* newlib/libc/machine/arm/strcmp-armv7.S
* newlib/libc/machine/arm/memchr.S

Stray comment restored in:
* newlib/libc/machine/arm/memcpy-armv7m.S

Patch rebased, cleaned up and missing BTI landing pad added:
* newlib/libc/machine/arm/setjmp.S


All remaining patches in series remain as in previous iterations.

Thanks,
Victor

------

This patch series modifies hand-written assembly files for Arm
targets, introducing a uniform prologue/epilogue interface,
responsible for pushing/popping registers on function entry and exit,
while 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].

The incorportaion of PACBTI functionality in function prologues/
epilogues is dictated by the combination of parameter macros in
arm-asm.h and arguments passed to the `-mbranch-protection' flag at
the time of Newlib compilation.

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: aeabi_memmove M-profile PACBTI-enablement
   newlib: libc: aeabi_memset M-profile PACBTI-enablement
   newlib: libc: setjmp M-profile PACBTI-enablement

  .../libc/machine/arm/aeabi_memmove-thumb2.S   |  17 +-
  newlib/libc/machine/arm/aeabi_memset-thumb2.S |  14 +-
  newlib/libc/machine/arm/arm_asm.h             | 441 ++++++++++++++++++
  newlib/libc/machine/arm/memchr.S              |  50 +-
  newlib/libc/machine/arm/memcpy-armv7m.S       |  33 +-
  newlib/libc/machine/arm/setjmp.S              |  39 ++
  newlib/libc/machine/arm/strcmp-arm-tiny.S     |   8 +-
  newlib/libc/machine/arm/strcmp-armv7.S        |  57 ++-
  newlib/libc/machine/arm/strcmp-armv7m.S       |  26 +-
  newlib/libc/machine/arm/strlen-armv7.S        |  17 +-
  newlib/libc/machine/arm/strlen-thumb2-Os.S    |  14 +-
  11 files changed, 656 insertions(+), 60 deletions(-)

-- 
2.36.1


             reply	other threads:[~2022-12-21 11:03 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-21 11:03 Victor Do Nascimento [this message]
2022-12-21 11:19 ` [PATCH v5 1/8] newlib: libc: define M-profile PACBTI-enablement macros Victor L. Do Nascimento
2023-01-06 10:42   ` Christophe Lyon
2023-01-06 20:51     ` Victor Do Nascimento
2023-01-09  9:33     ` Christophe Lyon
2022-12-21 11:21 ` [PATCH v5 2/8] newlib: libc: strcmp M-profile PACBTI-enablement Victor L. Do Nascimento
2023-01-06 11:09   ` Christophe Lyon
2023-01-06 21:35     ` Victor Do Nascimento
2022-12-21 11:22 ` [PATCH v5 3/8] newlib: libc: strlen " Victor L. Do Nascimento
2022-12-21 11:24 ` [PATCH v5 4/8] newlib: libc: memchr " Victor L. Do Nascimento
2022-12-21 11:25 ` [PATCH v5 5/8] newlib: libc: memcpy " Victor L. Do Nascimento
2022-12-21 11:27 ` [PATCH v5 6/8] newlib: libc: aeabi_memmove " Victor L. Do Nascimento
2022-12-21 11:28 ` [PATCH v5 7/8] newlib: libc: aeabi_memset " Victor L. Do Nascimento
2022-12-21 11:42 ` [PATCH v5 8/8] newlib: libc: setjmp " Victor L. Do Nascimento
2023-01-05 16:53   ` Richard Earnshaw

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d8134a62-c720-63ec-6dc2-0aa30ea629f8@arm.com \
    --to=victor.donascimento@arm.com \
    --cc=Richard.Earnshaw@arm.com \
    --cc=newlib@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).