summaryrefslogtreecommitdiff
path: root/gcc/config/tilepro/tilepro-builtins.h
diff options
context:
space:
mode:
authorwalt <walt@138bc75d-0d04-0410-961f-82ee72b054a4>2012-02-14 10:02:21 +0000
committerwalt <walt@138bc75d-0d04-0410-961f-82ee72b054a4>2012-02-14 10:02:21 +0000
commit7ce78e23cfb1254af0750dbb9393e1b191da3244 (patch)
tree2ebff3fcffa7603a372455fbc14c68ad06466730 /gcc/config/tilepro/tilepro-builtins.h
parent0f3250cd2d9c5a8ac91a36fb942056f82c5c963a (diff)
downloadgcc-7ce78e23cfb1254af0750dbb9393e1b191da3244.tar.gz
Add ports for TILE-Gx and TILEPro.
. * MAINTAINERS (tilegx port): Add myself. (tilepro port): Add myself. contrib * config-list.mk (LIST): Add tilegx-linux-gnu and tilepro-linux-gnu. * gcc_update (gcc/config/tilegx/mul-tables.c): New dependencies. (gcc/config/tilepro/mul-tables.c): New dependencies. gcc * config.gcc: Handle tilegx and tilepro. * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for tilegx and tilepro. Add HAVE_AS_TLS check for tilegx and tilepro. * configure: Regenerate. * doc/contrib.texi: Add Mat Hostetter and self. * doc/extend.texi (TILE-Gx Built-in Functions): New node. Document instruction intrinsics and network accessing intrinsics. (TILEPro Built-in Functions): New node. Document instruction intrinsics and network accessing intrinsics. * doc/install.texi (Specific, tilegx-*-linux*): Document it. (Specific, tilepro-*-linux*): Likewise. * doc/invoke.texi (TILE-Gx Options): New section. (TILEPro Options): New section. * doc/md.texi (TILE-Gx): New section. (TILEPro): New section. * common/config/tilegx: New directory for tilegx. * common/config/tilepro: New directory for tilepro. * config/tilegx: New directory for tilegx. * config/tilepro: New directory for tilepro. gcc/testsuite * g++.dg/other/PR23205.C: Disable test on tile. * g++.dg/other/pr23205-2.C: Disable test on tile. * gcc.dg/20020312-2.c: Add a condition for __tile__. * gcc.dg/20040813-1.c: Disable test on tile. * gcc.dg/lower-subreg-1.c: Disable test on tilegx. * gcc.misc-tests/linkage.exp: Handle tilegx. libcpp * configure.ac: Require 64-bit hwint for tilegx and tilepro. * configure: Regenerate. libgcc * config.host: Handle tilegx and tilepro. * config/tilegx: New directory for tilegx. * config/tilepro: New directory for tilepro. libgomp * configure.tgt: Handle tilegx and tilepro. * config/linux/tile: New directory for tilegx and tilepro. Added: trunk/gcc/common/config/tilegx/tilegx-common.c trunk/gcc/common/config/tilepro/tilepro-common.c trunk/gcc/config/tilegx/constraints.md trunk/gcc/config/tilegx/linux.h trunk/gcc/config/tilegx/mul-tables.c trunk/gcc/config/tilegx/predicates.md trunk/gcc/config/tilegx/sync.md trunk/gcc/config/tilegx/t-tilegx trunk/gcc/config/tilegx/tilegx-builtins.h trunk/gcc/config/tilegx/tilegx-c.c trunk/gcc/config/tilegx/tilegx-generic.md trunk/gcc/config/tilegx/tilegx-modes.def trunk/gcc/config/tilegx/tilegx-multiply.h trunk/gcc/config/tilegx/tilegx-protos.h trunk/gcc/config/tilegx/tilegx.c trunk/gcc/config/tilegx/tilegx.h trunk/gcc/config/tilegx/tilegx.md trunk/gcc/config/tilegx/tilegx.opt trunk/gcc/config/tilepro/constraints.md trunk/gcc/config/tilepro/gen-mul-tables.cc trunk/gcc/config/tilepro/linux.h trunk/gcc/config/tilepro/mul-tables.c trunk/gcc/config/tilepro/predicates.md trunk/gcc/config/tilepro/t-tilepro trunk/gcc/config/tilepro/tilepro-builtins.h trunk/gcc/config/tilepro/tilepro-c.c trunk/gcc/config/tilepro/tilepro-generic.md trunk/gcc/config/tilepro/tilepro-modes.def trunk/gcc/config/tilepro/tilepro-multiply.h trunk/gcc/config/tilepro/tilepro-protos.h trunk/gcc/config/tilepro/tilepro.c trunk/gcc/config/tilepro/tilepro.h trunk/gcc/config/tilepro/tilepro.md trunk/gcc/config/tilepro/tilepro.opt trunk/libgcc/config/tilegx/sfp-machine.h trunk/libgcc/config/tilegx/sfp-machine32.h trunk/libgcc/config/tilegx/sfp-machine64.h trunk/libgcc/config/tilegx/t-crtstuff trunk/libgcc/config/tilegx/t-softfp trunk/libgcc/config/tilegx/t-tilegx trunk/libgcc/config/tilepro/atomic.c trunk/libgcc/config/tilepro/atomic.h trunk/libgcc/config/tilepro/linux-unwind.h trunk/libgcc/config/tilepro/sfp-machine.h trunk/libgcc/config/tilepro/softdivide.c trunk/libgcc/config/tilepro/softmpy.S trunk/libgcc/config/tilepro/t-crtstuff trunk/libgcc/config/tilepro/t-tilepro trunk/libgomp/config/linux/tile/futex.h Modified: trunk/MAINTAINERS trunk/contrib/config-list.mk trunk/contrib/gcc_update trunk/gcc/config.gcc trunk/gcc/configure trunk/gcc/configure.ac trunk/gcc/doc/contrib.texi trunk/gcc/doc/extend.texi trunk/gcc/doc/install.texi trunk/gcc/doc/invoke.texi trunk/gcc/doc/md.texi trunk/gcc/testsuite/g++.dg/other/PR23205.C trunk/gcc/testsuite/g++.dg/other/pr23205-2.C trunk/gcc/testsuite/gcc.dg/20020312-2.c trunk/gcc/testsuite/gcc.dg/20040813-1.c trunk/gcc/testsuite/gcc.dg/lower-subreg-1.c trunk/gcc/testsuite/gcc.misc-tests/linkage.exp trunk/libcpp/configure trunk/libcpp/configure.ac trunk/libgcc/config.host trunk/libgomp/configure.tgt git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184203 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/tilepro/tilepro-builtins.h')
-rw-r--r--gcc/config/tilepro/tilepro-builtins.h217
1 files changed, 217 insertions, 0 deletions
diff --git a/gcc/config/tilepro/tilepro-builtins.h b/gcc/config/tilepro/tilepro-builtins.h
new file mode 100644
index 00000000000..807401fcdb1
--- /dev/null
+++ b/gcc/config/tilepro/tilepro-builtins.h
@@ -0,0 +1,217 @@
+/* Enum for builtin intrinsics for TILEPro.
+ Copyright (C) 2011, 2012
+ Free Software Foundation, Inc.
+ Contributed by Walter Lee (walt@tilera.com)
+
+ 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 GCC_TILEPRO_BUILTINS_H
+#define GCC_TILEPRO_BUILTINS_H
+
+enum tilepro_builtin
+{
+ TILEPRO_INSN_ADD,
+ TILEPRO_INSN_ADDB,
+ TILEPRO_INSN_ADDBS_U,
+ TILEPRO_INSN_ADDH,
+ TILEPRO_INSN_ADDHS,
+ TILEPRO_INSN_ADDIB,
+ TILEPRO_INSN_ADDIH,
+ TILEPRO_INSN_ADDLIS,
+ TILEPRO_INSN_ADDS,
+ TILEPRO_INSN_ADIFFB_U,
+ TILEPRO_INSN_ADIFFH,
+ TILEPRO_INSN_AND,
+ TILEPRO_INSN_AULI,
+ TILEPRO_INSN_AVGB_U,
+ TILEPRO_INSN_AVGH,
+ TILEPRO_INSN_BITX,
+ TILEPRO_INSN_BYTEX,
+ TILEPRO_INSN_CLZ,
+ TILEPRO_INSN_CRC32_32,
+ TILEPRO_INSN_CRC32_8,
+ TILEPRO_INSN_CTZ,
+ TILEPRO_INSN_DRAIN,
+ TILEPRO_INSN_DTLBPR,
+ TILEPRO_INSN_DWORD_ALIGN,
+ TILEPRO_INSN_FINV,
+ TILEPRO_INSN_FLUSH,
+ TILEPRO_INSN_FNOP,
+ TILEPRO_INSN_ICOH,
+ TILEPRO_INSN_ILL,
+ TILEPRO_INSN_INFO,
+ TILEPRO_INSN_INFOL,
+ TILEPRO_INSN_INTHB,
+ TILEPRO_INSN_INTHH,
+ TILEPRO_INSN_INTLB,
+ TILEPRO_INSN_INTLH,
+ TILEPRO_INSN_INV,
+ TILEPRO_INSN_LB,
+ TILEPRO_INSN_LB_U,
+ TILEPRO_INSN_LH,
+ TILEPRO_INSN_LH_U,
+ TILEPRO_INSN_LNK,
+ TILEPRO_INSN_LW,
+ TILEPRO_INSN_LW_NA,
+ TILEPRO_INSN_LB_L2,
+ TILEPRO_INSN_LB_U_L2,
+ TILEPRO_INSN_LH_L2,
+ TILEPRO_INSN_LH_U_L2,
+ TILEPRO_INSN_LW_L2,
+ TILEPRO_INSN_LW_NA_L2,
+ TILEPRO_INSN_LB_MISS,
+ TILEPRO_INSN_LB_U_MISS,
+ TILEPRO_INSN_LH_MISS,
+ TILEPRO_INSN_LH_U_MISS,
+ TILEPRO_INSN_LW_MISS,
+ TILEPRO_INSN_LW_NA_MISS,
+ TILEPRO_INSN_MAXB_U,
+ TILEPRO_INSN_MAXH,
+ TILEPRO_INSN_MAXIB_U,
+ TILEPRO_INSN_MAXIH,
+ TILEPRO_INSN_MF,
+ TILEPRO_INSN_MFSPR,
+ TILEPRO_INSN_MINB_U,
+ TILEPRO_INSN_MINH,
+ TILEPRO_INSN_MINIB_U,
+ TILEPRO_INSN_MINIH,
+ TILEPRO_INSN_MM,
+ TILEPRO_INSN_MNZ,
+ TILEPRO_INSN_MNZB,
+ TILEPRO_INSN_MNZH,
+ TILEPRO_INSN_MOVE,
+ TILEPRO_INSN_MOVELIS,
+ TILEPRO_INSN_MTSPR,
+ TILEPRO_INSN_MULHH_SS,
+ TILEPRO_INSN_MULHH_SU,
+ TILEPRO_INSN_MULHH_UU,
+ TILEPRO_INSN_MULHHA_SS,
+ TILEPRO_INSN_MULHHA_SU,
+ TILEPRO_INSN_MULHHA_UU,
+ TILEPRO_INSN_MULHHSA_UU,
+ TILEPRO_INSN_MULHL_SS,
+ TILEPRO_INSN_MULHL_SU,
+ TILEPRO_INSN_MULHL_US,
+ TILEPRO_INSN_MULHL_UU,
+ TILEPRO_INSN_MULHLA_SS,
+ TILEPRO_INSN_MULHLA_SU,
+ TILEPRO_INSN_MULHLA_US,
+ TILEPRO_INSN_MULHLA_UU,
+ TILEPRO_INSN_MULHLSA_UU,
+ TILEPRO_INSN_MULLL_SS,
+ TILEPRO_INSN_MULLL_SU,
+ TILEPRO_INSN_MULLL_UU,
+ TILEPRO_INSN_MULLLA_SS,
+ TILEPRO_INSN_MULLLA_SU,
+ TILEPRO_INSN_MULLLA_UU,
+ TILEPRO_INSN_MULLLSA_UU,
+ TILEPRO_INSN_MVNZ,
+ TILEPRO_INSN_MVZ,
+ TILEPRO_INSN_MZ,
+ TILEPRO_INSN_MZB,
+ TILEPRO_INSN_MZH,
+ TILEPRO_INSN_NAP,
+ TILEPRO_INSN_NOP,
+ TILEPRO_INSN_NOR,
+ TILEPRO_INSN_OR,
+ TILEPRO_INSN_PACKBS_U,
+ TILEPRO_INSN_PACKHB,
+ TILEPRO_INSN_PACKHS,
+ TILEPRO_INSN_PACKLB,
+ TILEPRO_INSN_PCNT,
+ TILEPRO_INSN_PREFETCH,
+ TILEPRO_INSN_PREFETCH_L1,
+ TILEPRO_INSN_RL,
+ TILEPRO_INSN_S1A,
+ TILEPRO_INSN_S2A,
+ TILEPRO_INSN_S3A,
+ TILEPRO_INSN_SADAB_U,
+ TILEPRO_INSN_SADAH,
+ TILEPRO_INSN_SADAH_U,
+ TILEPRO_INSN_SADB_U,
+ TILEPRO_INSN_SADH,
+ TILEPRO_INSN_SADH_U,
+ TILEPRO_INSN_SB,
+ TILEPRO_INSN_SEQ,
+ TILEPRO_INSN_SEQB,
+ TILEPRO_INSN_SEQH,
+ TILEPRO_INSN_SEQIB,
+ TILEPRO_INSN_SEQIH,
+ TILEPRO_INSN_SH,
+ TILEPRO_INSN_SHL,
+ TILEPRO_INSN_SHLB,
+ TILEPRO_INSN_SHLH,
+ TILEPRO_INSN_SHLIB,
+ TILEPRO_INSN_SHLIH,
+ TILEPRO_INSN_SHR,
+ TILEPRO_INSN_SHRB,
+ TILEPRO_INSN_SHRH,
+ TILEPRO_INSN_SHRIB,
+ TILEPRO_INSN_SHRIH,
+ TILEPRO_INSN_SLT,
+ TILEPRO_INSN_SLT_U,
+ TILEPRO_INSN_SLTB,
+ TILEPRO_INSN_SLTB_U,
+ TILEPRO_INSN_SLTE,
+ TILEPRO_INSN_SLTE_U,
+ TILEPRO_INSN_SLTEB,
+ TILEPRO_INSN_SLTEB_U,
+ TILEPRO_INSN_SLTEH,
+ TILEPRO_INSN_SLTEH_U,
+ TILEPRO_INSN_SLTH,
+ TILEPRO_INSN_SLTH_U,
+ TILEPRO_INSN_SLTIB,
+ TILEPRO_INSN_SLTIB_U,
+ TILEPRO_INSN_SLTIH,
+ TILEPRO_INSN_SLTIH_U,
+ TILEPRO_INSN_SNE,
+ TILEPRO_INSN_SNEB,
+ TILEPRO_INSN_SNEH,
+ TILEPRO_INSN_SRA,
+ TILEPRO_INSN_SRAB,
+ TILEPRO_INSN_SRAH,
+ TILEPRO_INSN_SRAIB,
+ TILEPRO_INSN_SRAIH,
+ TILEPRO_INSN_SUB,
+ TILEPRO_INSN_SUBB,
+ TILEPRO_INSN_SUBBS_U,
+ TILEPRO_INSN_SUBH,
+ TILEPRO_INSN_SUBHS,
+ TILEPRO_INSN_SUBS,
+ TILEPRO_INSN_SW,
+ TILEPRO_INSN_TBLIDXB0,
+ TILEPRO_INSN_TBLIDXB1,
+ TILEPRO_INSN_TBLIDXB2,
+ TILEPRO_INSN_TBLIDXB3,
+ TILEPRO_INSN_TNS,
+ TILEPRO_INSN_WH64,
+ TILEPRO_INSN_XOR,
+ TILEPRO_NETWORK_BARRIER,
+ TILEPRO_IDN0_RECEIVE,
+ TILEPRO_IDN1_RECEIVE,
+ TILEPRO_IDN_SEND,
+ TILEPRO_SN_RECEIVE,
+ TILEPRO_SN_SEND,
+ TILEPRO_UDN0_RECEIVE,
+ TILEPRO_UDN1_RECEIVE,
+ TILEPRO_UDN2_RECEIVE,
+ TILEPRO_UDN3_RECEIVE,
+ TILEPRO_UDN_SEND,
+ TILEPRO_BUILTIN_max
+};
+
+#endif /* !GCC_TILEPRO_BUILTINS_H */