blob: 95cd45688335fe09e19a7368ce6f5c1be71988c2 [file] [log] [blame]
Timothy B. Terriberryb71962f2010-10-20 15:39:11 -07001/*
Krishna Rapaka7319db52021-09-28 20:35:29 -07002 * Copyright (c) 2021, Alliance for Open Media. All rights reserved
Timothy B. Terriberryb71962f2010-10-20 15:39:11 -07003 *
Vibhoothi41c6dd72021-10-12 18:48:26 +00004 * This source code is subject to the terms of the BSD 3-Clause Clear License
5 * and the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear
6 * License was not distributed with this source code in the LICENSE file, you
7 * can obtain it at aomedia.org/license/software-license/bsd-3-c-c/. If the
8 * Alliance for Open Media Patent License 1.0 was not distributed with this
9 * source code in the PATENTS file, you can obtain it at
10 * aomedia.org/license/patent-license/.
Timothy B. Terriberryb71962f2010-10-20 15:39:11 -070011 */
12
James Zerne1cbb132018-08-22 14:10:36 -070013#ifndef AOM_AOM_PORTS_ARM_H_
14#define AOM_AOM_PORTS_ARM_H_
Timothy B. Terriberryb71962f2010-10-20 15:39:11 -070015#include <stdlib.h>
Tom Finegan60e653d2018-05-22 11:34:58 -070016
17#include "config/aom_config.h"
Timothy B. Terriberryb71962f2010-10-20 15:39:11 -070018
James Zerna5d23f52014-01-18 12:16:11 -080019#ifdef __cplusplus
20extern "C" {
21#endif
22
Timothy B. Terriberryb71962f2010-10-20 15:39:11 -070023/*ARMv5TE "Enhanced DSP" instructions.*/
clang-format05ce8502016-08-10 18:23:43 -070024#define HAS_EDSP 0x01
Timothy B. Terriberryb71962f2010-10-20 15:39:11 -070025/*ARMv6 "Parallel" or "Media" instructions.*/
26#define HAS_MEDIA 0x02
27/*ARMv7 optional NEON instructions.*/
clang-format05ce8502016-08-10 18:23:43 -070028#define HAS_NEON 0x04
Timothy B. Terriberryb71962f2010-10-20 15:39:11 -070029
Thomas Daede05bb9cc2018-09-06 16:43:30 -070030int aom_arm_cpu_caps(void);
Timothy B. Terriberryb71962f2010-10-20 15:39:11 -070031
Johannf6be2f32014-09-25 09:30:28 -070032// Earlier gcc compilers have issues with some neon intrinsics
clang-format05ce8502016-08-10 18:23:43 -070033#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ == 4 && \
34 __GNUC_MINOR__ <= 6
Yaowu Xuf883b422016-08-30 14:01:10 -070035#define AOM_INCOMPATIBLE_GCC
Johannf6be2f32014-09-25 09:30:28 -070036#endif
37
James Zerna5d23f52014-01-18 12:16:11 -080038#ifdef __cplusplus
39} // extern "C"
40#endif
41
James Zerne1cbb132018-08-22 14:10:36 -070042#endif // AOM_AOM_PORTS_ARM_H_