[PATCH] [ARM/AArch64] Add ACLE special register intrinsics (10.1)
Bradley Smith
bradley.smith at arm.com
Thu Nov 13 04:14:53 PST 2014
This patch implements support for the ACLE special register intrinsics in section 10.1, __arm_{w,r}sr{,p,64}.
This includes arm_acle.h definitions, new builtins to support these definitions and codegen for them, as well as SemaChecking support to fault invalid parameters (as far as is reasonable, the backend will further validate this). This unfortunately adds a bit of instruction detail stuff into the frontend that perhaps shouldn't be there, however given that these intrinsics take a string parameter I couldn't see how to reasonably pass this string straight to the backend and have that interpret what it should be (which I would have rathered do). So instead the builtin codegen interprets the string and emits the appropriate inline asm.
http://reviews.llvm.org/D6247
Files:
include/clang/Basic/BuiltinsAArch64.def
include/clang/Basic/BuiltinsARM.def
include/clang/Basic/DiagnosticSemaKinds.td
include/clang/Sema/Sema.h
lib/CodeGen/CGBuiltin.cpp
lib/Headers/arm_acle.h
lib/Sema/SemaChecking.cpp
test/CodeGen/arm_acle.c
test/CodeGen/builtins-arm.c
test/CodeGen/builtins-arm64.c
test/Sema/aarch64-special-register.c
test/Sema/arm-special-register.c
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D6247.16144.patch
Type: text/x-patch
Size: 22779 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20141113/b80d566e/attachment.bin>
More information about the cfe-commits
mailing list