blob: 25ad6880d9802bd4b72a9b670e65ba30dfc53835 [file] [log] [blame]
/* Definitions for option handling for Nios II.
Copyright (C) 2013-2021 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#ifndef NIOS2_OPTS_H
#define NIOS2_OPTS_H
/* Enumerate the possible -mgpopt choices. */
enum nios2_gpopt_type
{
gpopt_unspecified = -1,
gpopt_none,
gpopt_local,
gpopt_global,
gpopt_data,
gpopt_all
};
/* Enumeration of all FPU insn codes. */
#define N2FPU_ALL_CODES \
N2FPU_CODE(fadds) N2FPU_CODE(fsubs) N2FPU_CODE(fmuls) N2FPU_CODE(fdivs) \
N2FPU_CODE(fmins) N2FPU_CODE(fmaxs) \
N2FPU_CODE(fnegs) N2FPU_CODE(fabss) N2FPU_CODE(fsqrts) \
N2FPU_CODE(fsins) N2FPU_CODE(fcoss) N2FPU_CODE(ftans) N2FPU_CODE(fatans) \
N2FPU_CODE(fexps) N2FPU_CODE(flogs) \
N2FPU_CODE(fcmpeqs) N2FPU_CODE(fcmpnes) \
N2FPU_CODE(fcmplts) N2FPU_CODE(fcmples) \
N2FPU_CODE(fcmpgts) N2FPU_CODE(fcmpges) \
\
N2FPU_CODE(faddd) N2FPU_CODE(fsubd) N2FPU_CODE(fmuld) N2FPU_CODE(fdivd) \
N2FPU_CODE(fmind) N2FPU_CODE(fmaxd) \
N2FPU_CODE(fnegd) N2FPU_CODE(fabsd) N2FPU_CODE(fsqrtd) \
N2FPU_CODE(fsind) N2FPU_CODE(fcosd) N2FPU_CODE(ftand) N2FPU_CODE(fatand) \
N2FPU_CODE(fexpd) N2FPU_CODE(flogd) \
N2FPU_CODE(fcmpeqd) N2FPU_CODE(fcmpned) \
N2FPU_CODE(fcmpltd) N2FPU_CODE(fcmpled) \
N2FPU_CODE(fcmpgtd) N2FPU_CODE(fcmpged) \
\
N2FPU_CODE(floatis) N2FPU_CODE(floatus) \
N2FPU_CODE(floatid) N2FPU_CODE(floatud) \
N2FPU_CODE(round) N2FPU_CODE(fixsi) N2FPU_CODE(fixsu) \
N2FPU_CODE(fixdi) N2FPU_CODE(fixdu) \
N2FPU_CODE(fextsd) N2FPU_CODE(ftruncds) \
\
N2FPU_CODE(fwrx) N2FPU_CODE(fwry) \
N2FPU_CODE(frdxlo) N2FPU_CODE(frdxhi) N2FPU_CODE(frdy)
enum n2fpu_code {
#define N2FPU_CODE(name) n2fpu_ ## name,
N2FPU_ALL_CODES
#undef N2FPU_CODE
n2fpu_code_num
};
/* An enumeration to indicate the custom code status; if values within 0--255
are registered to an FPU insn, or custom insn. */
enum nios2_ccs_code
{
CCS_UNUSED,
CCS_FPU,
CCS_BUILTIN_CALL
};
/* Supported Nios II Architectures. */
enum nios2_arch_type
{
ARCH_R1=1,
ARCH_R2
};
#endif