Headers: add hint intrinsics to arm_acle.h

This adds the ARM ACLE hint intrinsic wrappers to arm_acle.h.  These need to be
protected with a !defined(_MSC_VER) since MSVC (and thus clang in compatibility
mode) provide these wrappers as proper builtin intrinsics.

llvm-svn: 212891
This commit is contained in:
Saleem Abdulrasool 2014-07-12 23:27:26 +00:00
parent 572250d60a
commit 07257fe14e
2 changed files with 30 additions and 4 deletions

View File

@ -34,6 +34,30 @@
extern "C" {
#endif
/* 8.4 - Hints */
#if !defined(_MSC_VER)
static __inline__ void __attribute__((always_inline, nodebug)) __wfi(void) {
__builtin_arm_wfi();
}
static __inline__ void __attribute__((always_inline, nodebug)) __wfe(void) {
__builtin_arm_wfe();
}
static __inline__ void __attribute__((always_inline, nodebug)) __sev(void) {
__builtin_arm_sev();
}
static __inline__ void __attribute__((always_inline, nodebug)) __sevl(void) {
__builtin_arm_sevl();
}
static __inline__ void __attribute__((always_inline, nodebug)) __yield(void) {
__builtin_arm_yield();
}
#endif
/* 9 DATA-PROCESSING INTRINSICS */
/* 9.2 Miscellaneous data-processing intrinsics */
static __inline__ uint32_t __attribute__((always_inline, nodebug))

View File

@ -1,7 +1,9 @@
// RUN: %clang_cc1 -triple armv7 -target-cpu cortex-a15 -fsyntax-only -ffreestanding %s
// RUN: %clang_cc1 -triple aarch64 -target-cpu cortex-a53 -fsyntax-only -ffreestanding %s
// RUN: %clang_cc1 -x c++ -triple armv7 -target-cpu cortex-a15 -fsyntax-only -ffreestanding %s
// RUN: %clang_cc1 -x c++ -triple aarch64 -target-cpu cortex-a57 -fsyntax-only -ffreestanding %s
// RUN: %clang_cc1 -triple armv7-eabi -target-cpu cortex-a15 -fsyntax-only -ffreestanding %s
// RUN: %clang_cc1 -triple aarch64-eabi -target-cpu cortex-a53 -fsyntax-only -ffreestanding %s
// RUN: %clang_cc1 -triple thumbv7-windows -target-cpu cortex-a53 -fsyntax-only -ffreestanding %s
// RUN: %clang_cc1 -x c++ -triple armv7-eabi -target-cpu cortex-a15 -fsyntax-only -ffreestanding %s
// RUN: %clang_cc1 -x c++ -triple aarch64-eabi -target-cpu cortex-a57 -fsyntax-only -ffreestanding %s
// RUN: %clang_cc1 -x c++ -triple thumbv7-windows -target-cpu cortex-a15 -fsyntax-only -ffreestanding %s
// expected-no-diagnostics
#include <arm_acle.h>