Blame sysdeps/arm/arm-features.h

Packit Service 82fcde
/* Macros to test for CPU features on ARM.  Generic ARM version.
Packit Service 82fcde
   Copyright (C) 2012-2018 Free Software Foundation, Inc.
Packit Service 82fcde
   This file is part of the GNU C Library.
Packit Service 82fcde
Packit Service 82fcde
   The GNU C Library is free software; you can redistribute it and/or
Packit Service 82fcde
   modify it under the terms of the GNU Lesser General Public
Packit Service 82fcde
   License as published by the Free Software Foundation; either
Packit Service 82fcde
   version 2.1 of the License, or (at your option) any later version.
Packit Service 82fcde
Packit Service 82fcde
   The GNU C Library is distributed in the hope that it will be useful,
Packit Service 82fcde
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 82fcde
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 82fcde
   Lesser General Public License for more details.
Packit Service 82fcde
Packit Service 82fcde
   You should have received a copy of the GNU Lesser General Public
Packit Service 82fcde
   License along with the GNU C Library.  If not, see
Packit Service 82fcde
   <http://www.gnu.org/licenses/>.  */
Packit Service 82fcde
Packit Service 82fcde
#ifndef _ARM_ARM_FEATURES_H
Packit Service 82fcde
#define _ARM_ARM_FEATURES_H 1
Packit Service 82fcde
Packit Service 82fcde
/* An OS-specific arm-features.h file should define ARM_HAVE_VFP to
Packit Service 82fcde
   an appropriate expression for testing at runtime whether the VFP
Packit Service 82fcde
   hardware is present.  We'll then redefine it to a constant if we
Packit Service 82fcde
   know at compile time that we can assume VFP.  */
Packit Service 82fcde
Packit Service 82fcde
#ifndef __SOFTFP__
Packit Service 82fcde
/* The compiler is generating VFP instructions, so we're already
Packit Service 82fcde
   assuming the hardware exists.  */
Packit Service 82fcde
# undef ARM_HAVE_VFP
Packit Service 82fcde
# define ARM_HAVE_VFP	1
Packit Service 82fcde
#endif
Packit Service 82fcde
Packit Service 82fcde
/* An OS-specific arm-features.h file may define ARM_ASSUME_NO_IWMMXT
Packit Service 82fcde
   to indicate at compile time that iWMMXt hardware is never present
Packit Service 82fcde
   at runtime (or that we never care about its state) and so need not
Packit Service 82fcde
   be checked for.  */
Packit Service 82fcde
Packit Service 82fcde
/* A more-specific arm-features.h file may define ARM_ALWAYS_BX to indicate
Packit Service 82fcde
   that instructions using pc as a destination register must never be used,
Packit Service 82fcde
   so a "bx" (or "blx") instruction is always required.  */
Packit Service 82fcde
Packit Service 82fcde
/* The log2 of the minimum alignment required for an address that
Packit Service 82fcde
   is the target of a computed branch (i.e. a "bx" instruction).
Packit Service 82fcde
   A more-specific arm-features.h file may define this to set a more
Packit Service 82fcde
   stringent requirement.
Packit Service 82fcde
Packit Service 82fcde
   Using this only makes sense for code in ARM mode (where instructions
Packit Service 82fcde
   always have a fixed size of four bytes), or for Thumb-mode code that is
Packit Service 82fcde
   specifically aligning all the related branch targets to match (since
Packit Service 82fcde
   Thumb instructions might be either two or four bytes).  */
Packit Service 82fcde
#ifndef ARM_BX_ALIGN_LOG2
Packit Service 82fcde
# define ARM_BX_ALIGN_LOG2	2
Packit Service 82fcde
#endif
Packit Service 82fcde
Packit Service 82fcde
/* An OS-specific arm-features.h file may define ARM_NO_INDEX_REGISTER to
Packit Service 82fcde
   indicate that the two-register addressing modes must never be used.  */
Packit Service 82fcde
Packit Service 82fcde
#endif  /* arm-features.h */