[all-commits] [llvm/llvm-project] 03ef89: [AArch64] Check 128-bit Sysreg Builtins

Sam Elliott via All-commits all-commits at lists.llvm.org
Mon Jan 23 07:25:15 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 03ef89f8d9094bf70416e19d0e909909b100a4a0
      https://github.com/llvm/llvm-project/commit/03ef89f8d9094bf70416e19d0e909909b100a4a0
  Author: Archibald Elliott <archibald.elliott at arm.com>
  Date:   2023-01-23 (Mon, 23 Jan 2023)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsAArch64.def
    M clang/lib/Headers/arm_acle.h
    M clang/lib/Sema/SemaChecking.cpp
    A clang/test/CodeGen/aarch64-sysregs-target.c
    M clang/test/Sema/aarch64-special-register.c

  Log Message:
  -----------
  [AArch64] Check 128-bit Sysreg Builtins

This patch contains several related changes:

1. We move to using TARGET_BUILTIN for the 128-bit system register
   builtins to give better error messages when d128 has not been
   enabled, or has been enabled in a per-function manner.

2. We now validate the inputs to the 128-bit system register builtins,
   like we validate the other system register builtins.

3. We update the list of named PSTATE accessors for MSR (immediate), and
   now correctly enforce the expected ranges of the immediates. There is
   a long comment about how we chose to do this to comply with the ACLE
   when most of the PSTATE accessors for MSR (immediate) have aliased
   system registers for MRS/MSR which expect different values. In short,
   the MSR (immediate) names are prioritised, rather than falling-back
   to the register form when the value is out of range.

Differential Revision: https://reviews.llvm.org/D140222




More information about the All-commits mailing list