[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