[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