|
103 | 103 | /* Define to the sub-directory where libtool stores uninstalled libraries. */ |
104 | 104 | #define LT_OBJDIR ".libs/" |
105 | 105 |
|
106 | | -/* Make use of ARM asm optimization */ |
107 | | -/* #undef OPUS_ARM_ASM */ |
| 106 | +/* ARM64 (AArch64) NEON optimizations |
| 107 | + * We use PRESUME mode (no RTCD) since all ARM64 CPUs have NEON. |
| 108 | + * RTCD is disabled to avoid needing the *_map.c files. |
| 109 | + */ |
| 110 | +#if defined(__aarch64__) || defined(_M_ARM64) |
108 | 111 |
|
109 | | -/* Use generic ARMv4 inline asm optimizations */ |
110 | | -/* #undef OPUS_ARM_INLINE_ASM */ |
| 112 | +/* Compiler supports ARMv7/Aarch64 Neon Intrinsics */ |
| 113 | +#define OPUS_ARM_MAY_HAVE_NEON_INTR 1 |
111 | 114 |
|
112 | | -/* Use ARMv5E inline asm optimizations */ |
113 | | -/* #undef OPUS_ARM_INLINE_EDSP */ |
| 115 | +/* Presume NEON is always available - directly call NEON functions */ |
| 116 | +#define OPUS_ARM_PRESUME_NEON_INTR 1 |
114 | 117 |
|
115 | | -/* Use ARMv6 inline asm optimizations */ |
116 | | -/* #undef OPUS_ARM_INLINE_MEDIA */ |
| 118 | +/* Note: OPUS_HAVE_RTCD is NOT defined for ARM64, so we skip RTCD tables */ |
117 | 119 |
|
118 | | -/* Use ARM NEON inline asm optimizations */ |
119 | | -/* #undef OPUS_ARM_INLINE_NEON */ |
| 120 | +#endif /* ARM64/AArch64 */ |
120 | 121 |
|
121 | | -/* Compiler supports Aarch64 DOTPROD Intrinsics */ |
| 122 | +/* Unused ARM options */ |
| 123 | +/* #undef OPUS_ARM_ASM */ |
| 124 | +/* #undef OPUS_ARM_INLINE_ASM */ |
| 125 | +/* #undef OPUS_ARM_INLINE_EDSP */ |
| 126 | +/* #undef OPUS_ARM_INLINE_MEDIA */ |
| 127 | +/* #undef OPUS_ARM_INLINE_NEON */ |
122 | 128 | /* #undef OPUS_ARM_MAY_HAVE_DOTPROD */ |
123 | | - |
124 | | -/* Define if assembler supports EDSP instructions */ |
125 | 129 | /* #undef OPUS_ARM_MAY_HAVE_EDSP */ |
126 | | - |
127 | | -/* Define if assembler supports ARMv6 media instructions */ |
128 | 130 | /* #undef OPUS_ARM_MAY_HAVE_MEDIA */ |
129 | | - |
130 | | -/* Define if compiler supports NEON instructions */ |
131 | 131 | /* #undef OPUS_ARM_MAY_HAVE_NEON */ |
132 | 132 |
|
133 | | -/* Compiler supports ARMv7/Aarch64 Neon Intrinsics */ |
134 | | -/* #undef OPUS_ARM_MAY_HAVE_NEON_INTR */ |
135 | | - |
136 | | -/* Define if binary requires Aarch64 Neon Intrinsics */ |
137 | | -/* #undef OPUS_ARM_PRESUME_AARCH64_NEON_INTR */ |
138 | | - |
139 | | -/* Define if binary requires Aarch64 dotprod Intrinsics */ |
140 | | -/* #undef OPUS_ARM_PRESUME_DOTPROD */ |
141 | | - |
142 | | -/* Define if binary requires EDSP instruction support */ |
143 | | -/* #undef OPUS_ARM_PRESUME_EDSP */ |
144 | | - |
145 | | -/* Define if binary requires ARMv6 media instruction support */ |
146 | | -/* #undef OPUS_ARM_PRESUME_MEDIA */ |
147 | | - |
148 | | -/* Define if binary requires NEON instruction support */ |
149 | | -/* #undef OPUS_ARM_PRESUME_NEON */ |
150 | | - |
151 | | -/* Define if binary requires NEON intrinsics support */ |
152 | | -/* #undef OPUS_ARM_PRESUME_NEON_INTR */ |
153 | | - |
154 | 133 | /* This is a build of OPUS */ |
155 | 134 | #define OPUS_BUILD /**/ |
156 | 135 |
|
|
0 commit comments