X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=include%2Farm_features.h;h=9f51ab811ea8924c6f9278ab8cbe1c965fd7ef5a;hp=7c82ff38faa65bccfd363ac393a538ba15c28ae9;hb=refs%2Fheads%2Fmaster;hpb=0e4ad31902f206e2c6945632bb1f558eae941ff1 diff --git a/include/arm_features.h b/include/arm_features.h index 7c82ff38..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,16 +67,25 @@ .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,