blob: 448a70dcc60e9d8c3c2eeef01cc0dc4b98a620f0 [file] [log] [blame]
Timothy B. Terriberryb71962f2010-10-20 15:39:11 -07001/*
Yaowu Xu9c01aa12016-09-01 14:32:49 -07002 * Copyright (c) 2016, Alliance for Open Media. All rights reserved
Timothy B. Terriberryb71962f2010-10-20 15:39:11 -07003 *
Yaowu Xu9c01aa12016-09-01 14:32:49 -07004 * This source code is subject to the terms of the BSD 2 Clause License and
5 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6 * was not distributed with this source code in the LICENSE file, you can
7 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
8 * Media Patent License 1.0 was not distributed with this source code in the
9 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
Timothy B. Terriberryb71962f2010-10-20 15:39:11 -070010 */
11
Yaowu Xuf883b422016-08-30 14:01:10 -070012#ifndef AOM_PORTS_ARM_H_
13#define AOM_PORTS_ARM_H_
Timothy B. Terriberryb71962f2010-10-20 15:39:11 -070014#include <stdlib.h>
Yaowu Xuf883b422016-08-30 14:01:10 -070015#include "aom_config.h"
Timothy B. Terriberryb71962f2010-10-20 15:39:11 -070016
James Zerna5d23f52014-01-18 12:16:11 -080017#ifdef __cplusplus
18extern "C" {
19#endif
20
Timothy B. Terriberryb71962f2010-10-20 15:39:11 -070021/*ARMv5TE "Enhanced DSP" instructions.*/
clang-format05ce8502016-08-10 18:23:43 -070022#define HAS_EDSP 0x01
Timothy B. Terriberryb71962f2010-10-20 15:39:11 -070023/*ARMv6 "Parallel" or "Media" instructions.*/
24#define HAS_MEDIA 0x02
25/*ARMv7 optional NEON instructions.*/
clang-format05ce8502016-08-10 18:23:43 -070026#define HAS_NEON 0x04
Timothy B. Terriberryb71962f2010-10-20 15:39:11 -070027
28int arm_cpu_caps(void);
29
Johannf6be2f32014-09-25 09:30:28 -070030// Earlier gcc compilers have issues with some neon intrinsics
clang-format05ce8502016-08-10 18:23:43 -070031#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ == 4 && \
32 __GNUC_MINOR__ <= 6
Yaowu Xuf883b422016-08-30 14:01:10 -070033#define AOM_INCOMPATIBLE_GCC
Johannf6be2f32014-09-25 09:30:28 -070034#endif
35
James Zerna5d23f52014-01-18 12:16:11 -080036#ifdef __cplusplus
37} // extern "C"
38#endif
39
Yaowu Xuf883b422016-08-30 14:01:10 -070040#endif // AOM_PORTS_ARM_H_