X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=include%2Farm_features.h;h=1f749daa2892957c3e8f20c3a94558942795f6da;hp=a1adfef5eb76b701ff61f06f134a407e20bf2857;hb=663fc55992e210a2b0299764bacac3663f32613b;hpb=5c6457c3a3e44b0f39be5221ad4a9d94a432d694 diff --git a/include/arm_features.h b/include/arm_features.h index a1adfef5..1f749daa 100644 --- a/include/arm_features.h +++ b/include/arm_features.h @@ -1,9 +1,16 @@ #ifndef __ARM_FEATURES_H__ #define __ARM_FEATURES_H__ -#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) \ +#if defined(__ARM_ARCH_8A__) + +#define HAVE_ARMV8 +#define HAVE_ARMV7 +#define HAVE_ARMV6 +#define HAVE_ARMV5 + +#elif defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) \ || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) \ - || defined(__ARM_ARCH_7EM__) + || defined(__ARM_ARCH_7EM__) || defined(__ARM_ARCH_7S__) #define HAVE_ARMV7 #define HAVE_ARMV6 @@ -11,7 +18,8 @@ #elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) \ || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) \ - || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) + || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) \ + || defined(__ARM_ARCH_6M__) #define HAVE_ARMV6 #define HAVE_ARMV5 @@ -25,20 +33,28 @@ /* no need for HAVE_NEON - GCC defines __ARM_NEON__ consistently */ -/* global function/external variable */ +/* global function/external symbol */ #ifndef __MACH__ +#define ESYM(name) name + #define FUNCTION(name) \ - .global name; \ + .globl name; \ .type name, %function; \ name -#define EVAR(name) name +#define EXTRA_UNSAVED_REGS + #else +#define ESYM(name) _##name + #define FUNCTION(name) \ - .globl _##name; \ - _##name + .globl ESYM(name); \ + name: \ + ESYM(name) + +// r7 is preserved, but add it for EABI alignment.. +#define EXTRA_UNSAVED_REGS r7, r9, -#define EVAR(name) _##name #endif #endif /* __ARM_FEATURES_H__ */