[PATCH] D46215: [AArch64] Support reserving x16 and x17 register

Petr Hosek via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 27 15:15:49 PDT 2018


phosek created this revision.
phosek added reviewers: chandlerc, mcgrathr.
Herald added subscribers: llvm-commits, hiraditya, kristof.beyls, rengolin.
Herald added a reviewer: javed.absar.

Registers x16 and 17 are defined as linker temporaries, which are used
for purposes such as veneers. However, in some cases these may be used
for other purposes in certain contexts, for example to hold special
variables within the kernel.

We would like to use these registers to hold the per-CPU pointer in Fuchsia
kernel. This change adds support for reserving these registers both to
frontend and backend to make these registers usable for such purpose.


Repository:
  rL LLVM

https://reviews.llvm.org/D46215

Files:
  clang/docs/ClangCommandLineReference.rst
  clang/include/clang/Driver/Options.td
  clang/lib/Driver/ToolChains/Arch/AArch64.cpp
  clang/test/Driver/aarch64-fixed-x16.c
  clang/test/Driver/aarch64-fixed-x17.c
  llvm/lib/Target/AArch64/AArch64.td
  llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
  llvm/lib/Target/AArch64/AArch64Subtarget.cpp
  llvm/lib/Target/AArch64/AArch64Subtarget.h
  llvm/test/CodeGen/AArch64/arm64-platform-reg.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D46215.144406.patch
Type: text/x-patch
Size: 9570 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180427/dd36e9ab/attachment.bin>


More information about the llvm-commits mailing list