dnl Note that this file is intended to be included at the m4 level and not
dnl the shell level, so use sinclude(...) to pull it in.

# WHEN ADDING ENTRIES TO THIS MATRIX:

# Make sure that the left side always has two dashes.  Otherwise you
# can get spurious matches.  Even for unambiguous cases, do this as a
# convention, else the table becomes a real mess to understand and
# maintain.

dnl glue to avoid code duplication at top level
m4_ifndef([SIM_ARCH], [AC_DEFUN([SIM_ARCH],[sim_arch=$1])])

sim_igen=no
sim_arch=
case "${target}" in
   aarch64*-*-*)
       SIM_ARCH(aarch64)
       ;;
   arm*-*-*)
       SIM_ARCH(arm)
       ;;
   avr*-*-*)
       SIM_ARCH(avr)
       ;;
   bfin-*-*)
       SIM_ARCH(bfin)
       ;;
   cr16*-*-*)
       SIM_ARCH(cr16)
       ;;
   cris-*-* | crisv32-*-*)
       SIM_ARCH(cris)
       ;;
   d10v-*-*)
       SIM_ARCH(d10v)
       ;;
   frv-*-*)
       SIM_ARCH(frv)
       ;;
   h8300*-*-*)
       SIM_ARCH(h8300)
       ;;
   iq2000-*-*)
       SIM_ARCH(iq2000)
       ;;
   lm32-*-*)
       SIM_ARCH(lm32)
       ;;
   m32c-*-*)
       SIM_ARCH(m32c)
       ;;
   m32r-*-*)
       SIM_ARCH(m32r)
       ;;
   m68hc11-*-*|m6811-*-*)
       SIM_ARCH(m68hc11)
       ;;
   mcore-*-*)
       SIM_ARCH(mcore)
       ;;
   microblaze-*-*)
       SIM_ARCH(microblaze)
       ;;
   mips*-*-*)
       SIM_ARCH(mips)
       sim_igen=yes
       ;;
   mn10300*-*-*)
       SIM_ARCH(mn10300)
       sim_igen=yes
       ;;
   moxie-*-*)
       SIM_ARCH(moxie)
       ;;
   msp430*-*-*)
       SIM_ARCH(msp430)
       ;;
   or1k-*-* | or1knd-*-*)
       SIM_ARCH(or1k)
       ;;
   rl78-*-*)
       SIM_ARCH(rl78)
       ;;
   rx-*-*)
       SIM_ARCH(rx)
       ;;
   sh64*-*-*)
       SIM_ARCH(sh64)
       ;;
   sh*-*-*)
       SIM_ARCH(sh)
       ;;
   sparc-*-rtems*|sparc-*-elf*)
       SIM_ARCH(erc32)
       ;;
   powerpc*-*-*)
       SIM_ARCH(ppc)
       ;;
   ft32-*-*)
       SIM_ARCH(ft32)
       ;;
   v850*-*-*)
       SIM_ARCH(v850)
       sim_igen=yes
       ;;
esac
AC_SUBST(sim_arch)
