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_common=yes
sim_igen=no
sim_arch=
case "${target}" in
   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)
       ;;
   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
       ;;
   *)
       # No simulator subdir, so the subdir "common" isn't needed.
       sim_common=no
       ;;
esac
AC_SUBST(sim_arch)
