X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=include%2Farm_features.h;h=7c82ff38faa65bccfd363ac393a538ba15c28ae9;hp=f35e0b7f2a1ddfc48534c074fc038e187a28530b;hb=HEAD;hpb=8638b7ee92c5bad04f724b056efb47e390b2ad8c diff --git a/include/arm_features.h b/include/arm_features.h index f35e0b7f..9f51ab81 100644 --- a/include/arm_features.h +++ b/include/arm_features.h @@ -47,10 +47,19 @@ #endif -/* no need for HAVE_NEON - GCC defines __ARM_NEON__ consistently */ +/* gcc defines __ARM_NEON__ consistently for 32bit, but apple clang defines it for 64bit also... */ +#if defined(HAVE_ARMV7) && defined(__ARM_NEON__) +#define HAVE_NEON32 +#endif + +#if defined(__APPLE__) && defined(__aarch64__) +#define ASM_SEPARATOR %% +#else +#define ASM_SEPARATOR ; +#endif /* global function/external symbol */ -#ifndef __MACH__ +#ifndef __APPLE__ #define ESYM(name) name #define FUNCTION(name) \ @@ -58,19 +67,32 @@ .type name, %function; \ name +#define ESIZE(name_, size_) \ + .size name_, size_ + +#define EOBJECT(name_) \ + .type name_, %object + #define EXTRA_UNSAVED_REGS #else #define ESYM(name) _##name #define FUNCTION(name) \ - .globl ESYM(name); \ - name: \ + name: ASM_SEPARATOR \ + .globl ESYM(name) ASM_SEPARATOR \ ESYM(name) +#define ESIZE(name_, size_) +#define EOBJECT(name_) + // r7 is preserved, but add it for EABI alignment.. #define EXTRA_UNSAVED_REGS r7, r9, #endif +#if defined(__MACH__) || defined(__PIC__) +#define TEXRELS_FORBIDDEN +#endif + #endif /* __ARM_FEATURES_H__ */