mstorsjo created this revision. mstorsjo added a reviewer: majnemer. mstorsjo added a subscriber: cfe-commits. Herald added a subscriber: aemerson.
This implements what is missing for PR30394, making it possible to compile C++ for ARM in MSVC mode with MSVC headers. https://reviews.llvm.org/D24986 Files: lib/Headers/intrin.h Index: lib/Headers/intrin.h =================================================================== --- lib/Headers/intrin.h +++ lib/Headers/intrin.h @@ -1248,6 +1248,42 @@ } #endif +#if defined(__arm__) || defined(__aarch64__) +static __inline__ char __DEFAULT_FN_ATTRS +__iso_volatile_load8(const char volatile *_Src) { + return *_Src; +} +static __inline__ short __DEFAULT_FN_ATTRS +__iso_volatile_load16(const short volatile *_Src) { + return *_Src; +} +static __inline__ int __DEFAULT_FN_ATTRS +__iso_volatile_load32(const int volatile *_Src) { + return *_Src; +} +static __inline__ __int64 __DEFAULT_FN_ATTRS +__iso_volatile_load64(const __int64 volatile *_Src) { + return *_Src; +} + +static __inline__ void __DEFAULT_FN_ATTRS +__iso_volatile_store8(char volatile *_Dest, char _Value) { + *_Dest = _Value; +} +static __inline__ void __DEFAULT_FN_ATTRS +__iso_volatile_store16(short volatile *_Dest, short _Value) { + *_Dest = _Value; +} +static __inline__ void __DEFAULT_FN_ATTRS +__iso_volatile_store32(int volatile *_Dest, int _Value) { + *_Dest = _Value; +} +static __inline__ void __DEFAULT_FN_ATTRS +__iso_volatile_store64(__int64 volatile *_Dest, __int64 _Value) { + *_Dest = _Value; +} +#endif + #ifdef __cplusplus } #endif
Index: lib/Headers/intrin.h =================================================================== --- lib/Headers/intrin.h +++ lib/Headers/intrin.h @@ -1248,6 +1248,42 @@ } #endif +#if defined(__arm__) || defined(__aarch64__) +static __inline__ char __DEFAULT_FN_ATTRS +__iso_volatile_load8(const char volatile *_Src) { + return *_Src; +} +static __inline__ short __DEFAULT_FN_ATTRS +__iso_volatile_load16(const short volatile *_Src) { + return *_Src; +} +static __inline__ int __DEFAULT_FN_ATTRS +__iso_volatile_load32(const int volatile *_Src) { + return *_Src; +} +static __inline__ __int64 __DEFAULT_FN_ATTRS +__iso_volatile_load64(const __int64 volatile *_Src) { + return *_Src; +} + +static __inline__ void __DEFAULT_FN_ATTRS +__iso_volatile_store8(char volatile *_Dest, char _Value) { + *_Dest = _Value; +} +static __inline__ void __DEFAULT_FN_ATTRS +__iso_volatile_store16(short volatile *_Dest, short _Value) { + *_Dest = _Value; +} +static __inline__ void __DEFAULT_FN_ATTRS +__iso_volatile_store32(int volatile *_Dest, int _Value) { + *_Dest = _Value; +} +static __inline__ void __DEFAULT_FN_ATTRS +__iso_volatile_store64(__int64 volatile *_Dest, __int64 _Value) { + *_Dest = _Value; +} +#endif + #ifdef __cplusplus } #endif
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits