aboutsummaryrefslogtreecommitdiff
path: root/sim/mips
diff options
context:
space:
mode:
authornobody <>2006-07-25 08:39:58 +0000
committernobody <>2006-07-25 08:39:58 +0000
commit6a79f78d93deacb72d33c5b4609ddd2ed3f8b18e (patch)
treea5dbf4af3a220e2a22012a1f7d6e867b49cb631b /sim/mips
parent1d89b61077f10ff90ba128dde09b559e9de93cb4 (diff)
downloadgdb-cr-0x5f1.zip
gdb-cr-0x5f1.tar.gz
gdb-cr-0x5f1.tar.bz2
This commit was manufactured by cvs2svn to create branch 'cr-0x5f1'.cr-0x5f1
Sprout from master 2006-07-25 08:39:57 UTC Paolo Bonzini <bonzini@gnu.org> 'Sync from GCC' Cherrypick from cygnus 2000-02-22 15:59:20 UTC Ian Lance Taylor <ian@airs.com> 'import libiberty from egcs': README config/mh-armpic config/mh-elfalphapic config/mh-m68kpic config/mh-papic config/mh-ppcpic config/mh-x86pic config/mt-d30v config/mt-netware config/mt-ospace etc/add-log.el etc/add-log.vi etc/configbuild.ein etc/configbuild.fig etc/configbuild.jin etc/configbuild.tin etc/configdev.ein etc/configdev.fig etc/configdev.jin etc/configdev.tin include/aout/hppa.h include/coff/sym.h include/fopen-bin.h include/fopen-same.h include/fopen-vms.h include/opcode/tahoe.h libiberty/config.h-vms libiberty/config/mh-aix libiberty/config/mh-cxux7 libiberty/config/mh-fbsd21 libiberty/config/mh-windows libiberty/makefile.vms libiberty/msdos.c libiberty/vmsbuild.com makefile.vms Delete: bfd/COPYING bfd/ChangeLog bfd/ChangeLog-0001 bfd/ChangeLog-0203 bfd/ChangeLog-2004 bfd/ChangeLog-2005 bfd/ChangeLog-9193 bfd/ChangeLog-9495 bfd/ChangeLog-9697 bfd/ChangeLog-9899 bfd/MAINTAINERS bfd/Makefile.am bfd/Makefile.in bfd/PORTING bfd/README bfd/TODO bfd/acinclude.m4 bfd/aclocal.m4 bfd/aix386-core.c bfd/aix5ppc-core.c bfd/aout-adobe.c bfd/aout-arm.c bfd/aout-cris.c bfd/aout-ns32k.c bfd/aout-sparcle.c bfd/aout-target.h bfd/aout-tic30.c bfd/aout0.c bfd/aout32.c bfd/aout64.c bfd/aoutf1.h bfd/aoutx.h bfd/archive.c bfd/archive64.c bfd/archures.c bfd/armnetbsd.c bfd/bfd-in.h bfd/bfd-in2.h bfd/bfd.c bfd/bfd.m4 bfd/bfdio.c bfd/bfdwin.c bfd/binary.c bfd/bout.c bfd/cache.c bfd/cf-i386lynx.c bfd/cf-sparclynx.c bfd/cisco-core.c bfd/coff-alpha.c bfd/coff-apollo.c bfd/coff-arm.c bfd/coff-aux.c bfd/coff-go32.c bfd/coff-h8300.c bfd/coff-h8500.c bfd/coff-i386.c bfd/coff-i860.c bfd/coff-i960.c bfd/coff-ia64.c bfd/coff-m68k.c bfd/coff-m88k.c bfd/coff-maxq.c bfd/coff-mcore.c bfd/coff-mips.c bfd/coff-or32.c bfd/coff-pmac.c bfd/coff-ppc.c bfd/coff-rs6000.c bfd/coff-sh.c bfd/coff-sparc.c bfd/coff-stgo32.c bfd/coff-svm68k.c bfd/coff-tic30.c bfd/coff-tic4x.c bfd/coff-tic54x.c bfd/coff-tic80.c bfd/coff-u68k.c bfd/coff-w65.c bfd/coff-we32k.c bfd/coff-z80.c bfd/coff-z8k.c bfd/coff64-rs6000.c bfd/coffcode.h bfd/coffgen.c bfd/cofflink.c bfd/coffswap.h bfd/config.bfd bfd/config.in bfd/configure bfd/configure.com bfd/configure.host bfd/configure.in bfd/corefile.c bfd/cpu-alpha.c bfd/cpu-arc.c bfd/cpu-arm.c bfd/cpu-avr.c bfd/cpu-bfin.c bfd/cpu-cr16c.c bfd/cpu-cris.c bfd/cpu-crx.c bfd/cpu-d10v.c bfd/cpu-d30v.c bfd/cpu-dlx.c bfd/cpu-fr30.c bfd/cpu-frv.c bfd/cpu-h8300.c bfd/cpu-h8500.c bfd/cpu-hppa.c bfd/cpu-i370.c bfd/cpu-i386.c bfd/cpu-i860.c bfd/cpu-i960.c bfd/cpu-ia64-opc.c bfd/cpu-ia64.c bfd/cpu-ip2k.c bfd/cpu-iq2000.c bfd/cpu-m10200.c bfd/cpu-m10300.c bfd/cpu-m32c.c bfd/cpu-m32r.c bfd/cpu-m68hc11.c bfd/cpu-m68hc12.c bfd/cpu-m68k.c bfd/cpu-m88k.c bfd/cpu-maxq.c bfd/cpu-mcore.c bfd/cpu-mips.c bfd/cpu-mmix.c bfd/cpu-msp430.c bfd/cpu-mt.c bfd/cpu-ns32k.c bfd/cpu-openrisc.c bfd/cpu-or32.c bfd/cpu-pdp11.c bfd/cpu-pj.c bfd/cpu-powerpc.c bfd/cpu-rs6000.c bfd/cpu-s390.c bfd/cpu-sh.c bfd/cpu-sparc.c bfd/cpu-tic30.c bfd/cpu-tic4x.c bfd/cpu-tic54x.c bfd/cpu-tic80.c bfd/cpu-v850.c bfd/cpu-vax.c bfd/cpu-w65.c bfd/cpu-we32k.c bfd/cpu-xc16x.c bfd/cpu-xstormy16.c bfd/cpu-xtensa.c bfd/cpu-z80.c bfd/cpu-z8k.c bfd/demo64.c bfd/dep-in.sed bfd/doc/ChangeLog bfd/doc/ChangeLog-9103 bfd/doc/Makefile.am bfd/doc/Makefile.in bfd/doc/bfd.texinfo bfd/doc/bfdint.texi bfd/doc/bfdsumm.texi bfd/doc/chew.c bfd/doc/doc.str bfd/doc/fdl.texi bfd/doc/header.sed bfd/doc/makefile.vms bfd/doc/proto.str bfd/dwarf1.c bfd/dwarf2.c bfd/ecoff.c bfd/ecofflink.c bfd/ecoffswap.h bfd/efi-app-ia32.c bfd/efi-app-ia64.c bfd/elf-bfd.h bfd/elf-eh-frame.c bfd/elf-hppa.h bfd/elf-m10200.c bfd/elf-m10300.c bfd/elf-strtab.c bfd/elf-vxworks.c bfd/elf-vxworks.h bfd/elf.c bfd/elf32-am33lin.c bfd/elf32-arc.c bfd/elf32-arm.c bfd/elf32-avr.c bfd/elf32-avr.h bfd/elf32-bfin.c bfd/elf32-cr16c.c bfd/elf32-cris.c bfd/elf32-crx.c bfd/elf32-d10v.c bfd/elf32-d30v.c bfd/elf32-dlx.c bfd/elf32-fr30.c bfd/elf32-frv.c bfd/elf32-gen.c bfd/elf32-h8300.c bfd/elf32-hppa.c bfd/elf32-hppa.h bfd/elf32-i370.c bfd/elf32-i386.c bfd/elf32-i860.c bfd/elf32-i960.c bfd/elf32-ip2k.c bfd/elf32-iq2000.c bfd/elf32-m32c.c bfd/elf32-m32r.c bfd/elf32-m68hc11.c bfd/elf32-m68hc12.c bfd/elf32-m68hc1x.c bfd/elf32-m68hc1x.h bfd/elf32-m68k.c bfd/elf32-m88k.c bfd/elf32-mcore.c bfd/elf32-mips.c bfd/elf32-msp430.c bfd/elf32-mt.c bfd/elf32-openrisc.c bfd/elf32-or32.c bfd/elf32-pj.c bfd/elf32-ppc.c bfd/elf32-ppc.h bfd/elf32-s390.c bfd/elf32-sh-symbian.c bfd/elf32-sh.c bfd/elf32-sh64-com.c bfd/elf32-sh64.c bfd/elf32-sh64.h bfd/elf32-sparc.c bfd/elf32-v850.c bfd/elf32-vax.c bfd/elf32-xc16x.c bfd/elf32-xstormy16.c bfd/elf32-xtensa.c bfd/elf32.c bfd/elf64-alpha.c bfd/elf64-gen.c bfd/elf64-hppa.c bfd/elf64-hppa.h bfd/elf64-mips.c bfd/elf64-mmix.c bfd/elf64-ppc.c bfd/elf64-ppc.h bfd/elf64-s390.c bfd/elf64-sh64.c bfd/elf64-sparc.c bfd/elf64-x86-64.c bfd/elf64.c bfd/elfcode.h bfd/elfcore.h bfd/elflink.c bfd/elfn32-mips.c bfd/elfxx-ia64.c bfd/elfxx-mips.c bfd/elfxx-mips.h bfd/elfxx-sparc.c bfd/elfxx-sparc.h bfd/elfxx-target.h bfd/epoc-pe-arm.c bfd/epoc-pei-arm.c bfd/format.c bfd/freebsd.h bfd/gen-aout.c bfd/genlink.h bfd/go32stub.h bfd/hash.c bfd/host-aout.c bfd/hosts/alphalinux.h bfd/hosts/alphavms.h bfd/hosts/decstation.h bfd/hosts/delta68.h bfd/hosts/dpx2.h bfd/hosts/hp300bsd.h bfd/hosts/i386bsd.h bfd/hosts/i386linux.h bfd/hosts/i386mach3.h bfd/hosts/i386sco.h bfd/hosts/i860mach3.h bfd/hosts/m68kaux.h bfd/hosts/m68klinux.h bfd/hosts/m88kmach3.h bfd/hosts/mipsbsd.h bfd/hosts/mipsmach3.h bfd/hosts/news-mips.h bfd/hosts/news.h bfd/hosts/pc532mach.h bfd/hosts/riscos.h bfd/hosts/symmetry.h bfd/hosts/tahoe.h bfd/hosts/vaxbsd.h bfd/hosts/vaxlinux.h bfd/hosts/vaxult.h bfd/hosts/vaxult2.h bfd/hp300bsd.c bfd/hp300hpux.c bfd/hppabsd-core.c bfd/hpux-core.c bfd/i386aout.c bfd/i386bsd.c bfd/i386dynix.c bfd/i386freebsd.c bfd/i386linux.c bfd/i386lynx.c bfd/i386mach3.c bfd/i386msdos.c bfd/i386netbsd.c bfd/i386os9k.c bfd/ieee.c bfd/ihex.c bfd/init.c bfd/irix-core.c bfd/libaout.h bfd/libbfd-in.h bfd/libbfd.c bfd/libbfd.h bfd/libcoff-in.h bfd/libcoff.h bfd/libecoff.h bfd/libhppa.h bfd/libieee.h bfd/libnlm.h bfd/liboasys.h bfd/libpei.h bfd/libxcoff.h bfd/linker.c bfd/lynx-core.c bfd/m68k4knetbsd.c bfd/m68klinux.c bfd/m68knetbsd.c bfd/m88kmach3.c bfd/m88kopenbsd.c bfd/mach-o-target.c bfd/mach-o.c bfd/mach-o.h bfd/makefile.vms bfd/merge.c bfd/mipsbsd.c bfd/mmo.c bfd/netbsd-core.c bfd/netbsd.h bfd/newsos3.c bfd/nlm-target.h bfd/nlm.c bfd/nlm32-alpha.c bfd/nlm32-i386.c bfd/nlm32-ppc.c bfd/nlm32-sparc.c bfd/nlm32.c bfd/nlm64.c bfd/nlmcode.h bfd/nlmswap.h bfd/ns32k.h bfd/ns32knetbsd.c bfd/oasys.c bfd/opncls.c bfd/osf-core.c bfd/pc532-mach.c bfd/pdp11.c bfd/pe-arm.c bfd/pe-i386.c bfd/pe-mcore.c bfd/pe-mips.c bfd/pe-ppc.c bfd/pe-sh.c bfd/peXXigen.c bfd/pef-traceback.h bfd/pef.c bfd/pef.h bfd/pei-arm.c bfd/pei-i386.c bfd/pei-mcore.c bfd/pei-mips.c bfd/pei-ppc.c bfd/pei-sh.c bfd/peicode.h bfd/po/.cvsignore bfd/po/BLD-POTFILES.in bfd/po/Make-in bfd/po/SRC-POTFILES.in bfd/po/bfd.pot bfd/po/da.po bfd/po/es.po bfd/po/fr.po bfd/po/ja.po bfd/po/ro.po bfd/po/rw.po bfd/po/sv.po bfd/po/tr.po bfd/po/vi.po bfd/po/zh_CN.po bfd/ppcboot.c bfd/ptrace-core.c bfd/reloc.c bfd/reloc16.c bfd/riscix.c bfd/rs6000-core.c bfd/sco5-core.c bfd/section.c bfd/simple.c bfd/som.c bfd/som.h bfd/sparclinux.c bfd/sparclynx.c bfd/sparcnetbsd.c bfd/srec.c bfd/stab-syms.c bfd/stabs.c bfd/stamp-h.in bfd/sunos.c bfd/syms.c bfd/sysdep.h bfd/targets.c bfd/targmatch.sed bfd/tekhex.c bfd/ticoff.h bfd/trad-core.c bfd/vax1knetbsd.c bfd/vaxbsd.c bfd/vaxnetbsd.c bfd/versados.c bfd/version.h bfd/vms-gsd.c bfd/vms-hdr.c bfd/vms-misc.c bfd/vms-tir.c bfd/vms.c bfd/vms.h bfd/warning.m4 bfd/xcoff-target.h bfd/xcofflink.c bfd/xsym.c bfd/xsym.h bfd/xtensa-isa.c bfd/xtensa-modules.c binutils/BRANCHES binutils/ChangeLog binutils/ChangeLog-0001 binutils/ChangeLog-0203 binutils/ChangeLog-2004 binutils/ChangeLog-2005 binutils/ChangeLog-9197 binutils/ChangeLog-9899 binutils/MAINTAINERS binutils/Makefile.am binutils/Makefile.in binutils/NEWS binutils/README binutils/acinclude.m4 binutils/aclocal.m4 binutils/addr2line.c binutils/ar.c binutils/arlex.l binutils/arparse.y binutils/arsup.c binutils/arsup.h binutils/binemul.c binutils/binemul.h binutils/bucomm.c binutils/bucomm.h binutils/budbg.h binutils/budemang.c binutils/budemang.h binutils/coffdump.c binutils/coffgrok.c binutils/coffgrok.h binutils/config.in binutils/configure binutils/configure.com binutils/configure.in binutils/configure.tgt binutils/cxxfilt.c binutils/debug.c binutils/debug.h binutils/deflex.l binutils/defparse.y binutils/dep-in.sed binutils/dlltool.c binutils/dlltool.h binutils/dllwrap.c binutils/doc/Makefile.am binutils/doc/Makefile.in binutils/doc/binutils.texi binutils/doc/fdl.texi binutils/dwarf.c binutils/dwarf.h binutils/emul_aix.c binutils/emul_vanilla.c binutils/filemode.c binutils/ieee.c binutils/is-ranlib.c binutils/is-strip.c binutils/makefile.vms-in binutils/maybe-ranlib.c binutils/maybe-strip.c binutils/nlmconv.c binutils/nlmconv.h binutils/nlmheader.y binutils/nm.c binutils/not-ranlib.c binutils/not-strip.c binutils/objcopy.c binutils/objdump.c binutils/po/.cvsignore binutils/po/Make-in binutils/po/POTFILES.in binutils/po/binutils.pot binutils/po/da.po binutils/po/es.po binutils/po/fi.po binutils/po/fr.po binutils/po/ja.po binutils/po/ro.po binutils/po/ru.po binutils/po/rw.po binutils/po/sv.po binutils/po/tr.po binutils/po/vi.po binutils/po/zh_CN.po binutils/po/zh_TW.po binutils/prdbg.c binutils/ranlib.sh binutils/rclex.l binutils/rcparse.y binutils/rdcoff.c binutils/rddbg.c binutils/readelf.c binutils/rename.c binutils/resbin.c binutils/rescoff.c binutils/resrc.c binutils/resres.c binutils/sanity.sh binutils/size.c binutils/srconv.c binutils/stabs.c binutils/stamp-h.in binutils/strings.c binutils/sysdump.c binutils/sysinfo.y binutils/syslex.l binutils/sysroff.info binutils/testsuite/ChangeLog binutils/testsuite/ChangeLog-9303 binutils/testsuite/binutils-all/alias.def binutils/testsuite/binutils-all/ar.exp binutils/testsuite/binutils-all/arm/objdump.exp binutils/testsuite/binutils-all/arm/thumb2-cond.s binutils/testsuite/binutils-all/bintest.s binutils/testsuite/binutils-all/copy-1.d binutils/testsuite/binutils-all/copy-1.s binutils/testsuite/binutils-all/copy-2.d binutils/testsuite/binutils-all/copy-3.d binutils/testsuite/binutils-all/copytest.s binutils/testsuite/binutils-all/dlltool.exp binutils/testsuite/binutils-all/fastcall.def binutils/testsuite/binutils-all/group.s binutils/testsuite/binutils-all/hppa/addendbug.s binutils/testsuite/binutils-all/hppa/freg.s binutils/testsuite/binutils-all/hppa/objdump.exp binutils/testsuite/binutils-all/link-order.s binutils/testsuite/binutils-all/localize-hidden-1.d binutils/testsuite/binutils-all/localize-hidden-1.s binutils/testsuite/binutils-all/localize-hidden-2.d binutils/testsuite/binutils-all/localize-hidden-2.s binutils/testsuite/binutils-all/m68k/movem.s binutils/testsuite/binutils-all/m68k/objdump.exp binutils/testsuite/binutils-all/nm.exp binutils/testsuite/binutils-all/objcopy.exp binutils/testsuite/binutils-all/objdump.exp binutils/testsuite/binutils-all/readelf.exp binutils/testsuite/binutils-all/readelf.h binutils/testsuite/binutils-all/readelf.r binutils/testsuite/binutils-all/readelf.r-64 binutils/testsuite/binutils-all/readelf.s binutils/testsuite/binutils-all/readelf.s-64 binutils/testsuite/binutils-all/readelf.ss binutils/testsuite/binutils-all/readelf.ss-64 binutils/testsuite/binutils-all/readelf.ss-mips binutils/testsuite/binutils-all/readelf.ss-tmips binutils/testsuite/binutils-all/size.exp binutils/testsuite/binutils-all/testprog.c binutils/testsuite/binutils-all/unknown.s binutils/testsuite/binutils-all/vax/entrymask.s binutils/testsuite/binutils-all/vax/objdump.exp binutils/testsuite/binutils-all/windres/README binutils/testsuite/binutils-all/windres/bmp1.bmp binutils/testsuite/binutils-all/windres/bmpalign.rc binutils/testsuite/binutils-all/windres/bmpalign.rsd binutils/testsuite/binutils-all/windres/capstyle.rc binutils/testsuite/binutils-all/windres/capstyle.rsd binutils/testsuite/binutils-all/windres/checkbox.rc binutils/testsuite/binutils-all/windres/checkbox.rsd binutils/testsuite/binutils-all/windres/combobox.rc binutils/testsuite/binutils-all/windres/combobox.rsd binutils/testsuite/binutils-all/windres/deflang.rc binutils/testsuite/binutils-all/windres/deflang.rsd binutils/testsuite/binutils-all/windres/dialog0.rc binutils/testsuite/binutils-all/windres/dialog0.rsd binutils/testsuite/binutils-all/windres/dialog1.rc binutils/testsuite/binutils-all/windres/dialog1.rsd binutils/testsuite/binutils-all/windres/dialogid.rc binutils/testsuite/binutils-all/windres/dialogid.rsd binutils/testsuite/binutils-all/windres/dialogsignature.rc binutils/testsuite/binutils-all/windres/dialogsignature.rsd binutils/testsuite/binutils-all/windres/dlgfont.rc binutils/testsuite/binutils-all/windres/dlgfont.rsd binutils/testsuite/binutils-all/windres/edittext.rc binutils/testsuite/binutils-all/windres/edittext.rsd binutils/testsuite/binutils-all/windres/escapea.rc binutils/testsuite/binutils-all/windres/escapea.rsd binutils/testsuite/binutils-all/windres/escapex-2.rc binutils/testsuite/binutils-all/windres/escapex-2.rsd binutils/testsuite/binutils-all/windres/escapex.rc binutils/testsuite/binutils-all/windres/escapex.rsd binutils/testsuite/binutils-all/windres/lang.rc binutils/testsuite/binutils-all/windres/lang.rsd binutils/testsuite/binutils-all/windres/listbox.rc binutils/testsuite/binutils-all/windres/listbox.rsd binutils/testsuite/binutils-all/windres/msupdate binutils/testsuite/binutils-all/windres/nocaption.rc binutils/testsuite/binutils-all/windres/nocaption.rsd binutils/testsuite/binutils-all/windres/printstyle.rc binutils/testsuite/binutils-all/windres/printstyle.rsd binutils/testsuite/binutils-all/windres/quoteclass.rc binutils/testsuite/binutils-all/windres/scrollbar.rc binutils/testsuite/binutils-all/windres/scrollbar.rsd binutils/testsuite/binutils-all/windres/strtab1.rc binutils/testsuite/binutils-all/windres/strtab1.rsd binutils/testsuite/binutils-all/windres/sublang.rc binutils/testsuite/binutils-all/windres/sublang.rsd binutils/testsuite/binutils-all/windres/windres.exp binutils/testsuite/config/default.exp binutils/testsuite/config/hppa.sed binutils/testsuite/lib/utils-lib.exp binutils/unwind-ia64.c binutils/unwind-ia64.h binutils/version.c binutils/windres.c binutils/windres.h binutils/winduni.c binutils/winduni.h binutils/wrstabs.c compile config.rpath cpu/ChangeLog cpu/cris.cpu cpu/frv.cpu cpu/frv.opc cpu/iq10.cpu cpu/iq2000.cpu cpu/iq2000.opc cpu/iq2000m.cpu cpu/m32c.cpu cpu/m32c.opc cpu/m32r.cpu cpu/m32r.opc cpu/mt.cpu cpu/mt.opc cpu/sh.cpu cpu/sh.opc cpu/sh64-compact.cpu cpu/sh64-media.cpu cpu/simplify.inc cpu/xc16x.cpu cpu/xc16x.opc djunpack.bat gas/CONTRIBUTORS gas/COPYING gas/ChangeLog gas/ChangeLog-0001 gas/ChangeLog-0203 gas/ChangeLog-2004 gas/ChangeLog-2005 gas/ChangeLog-9295 gas/ChangeLog-9697 gas/ChangeLog-9899 gas/MAINTAINERS gas/Makefile.am gas/Makefile.in gas/NEWS gas/README gas/acinclude.m4 gas/aclocal.m4 gas/app.c gas/as.c gas/as.h gas/asintl.h gas/atof-generic.c gas/bignum.h gas/bit_fix.h gas/cgen.c gas/cgen.h gas/cond.c gas/config.in gas/config/aout_gnu.h gas/config/atof-ieee.c gas/config/atof-vax.c gas/config/bfin-aux.h gas/config/bfin-defs.h gas/config/bfin-lex.l gas/config/bfin-parse.y gas/config/e-crisaout.c gas/config/e-criself.c gas/config/e-i386aout.c gas/config/e-i386coff.c gas/config/e-i386elf.c gas/config/e-mipsecoff.c gas/config/e-mipself.c gas/config/itbl-mips.h gas/config/m68k-parse.h gas/config/m68k-parse.y gas/config/obj-aout.c gas/config/obj-aout.h gas/config/obj-coff.c gas/config/obj-coff.h gas/config/obj-ecoff.c gas/config/obj-ecoff.h gas/config/obj-elf.c gas/config/obj-elf.h gas/config/obj-evax.c gas/config/obj-evax.h gas/config/obj-multi.c gas/config/obj-multi.h gas/config/obj-som.c gas/config/obj-som.h gas/config/tc-alpha.c gas/config/tc-alpha.h gas/config/tc-arc.c gas/config/tc-arc.h gas/config/tc-arm.c gas/config/tc-arm.h gas/config/tc-avr.c gas/config/tc-avr.h gas/config/tc-bfin.c gas/config/tc-bfin.h gas/config/tc-cris.c gas/config/tc-cris.h gas/config/tc-crx.c gas/config/tc-crx.h gas/config/tc-d10v.c gas/config/tc-d10v.h gas/config/tc-d30v.c gas/config/tc-d30v.h gas/config/tc-dlx.c gas/config/tc-dlx.h gas/config/tc-fr30.c gas/config/tc-fr30.h gas/config/tc-frv.c gas/config/tc-frv.h gas/config/tc-generic.c gas/config/tc-generic.h gas/config/tc-h8300.c gas/config/tc-h8300.h gas/config/tc-hppa.c gas/config/tc-hppa.h gas/config/tc-i370.c gas/config/tc-i370.h gas/config/tc-i386.c gas/config/tc-i386.h gas/config/tc-i860.c gas/config/tc-i860.h gas/config/tc-i960.c gas/config/tc-i960.h gas/config/tc-ia64.c gas/config/tc-ia64.h gas/config/tc-ip2k.c gas/config/tc-ip2k.h gas/config/tc-iq2000.c gas/config/tc-iq2000.h gas/config/tc-m32c.c gas/config/tc-m32c.h gas/config/tc-m32r.c gas/config/tc-m32r.h gas/config/tc-m68851.h gas/config/tc-m68hc11.c gas/config/tc-m68hc11.h gas/config/tc-m68k.c gas/config/tc-m68k.h gas/config/tc-maxq.c gas/config/tc-maxq.h gas/config/tc-mcore.c gas/config/tc-mcore.h gas/config/tc-mips.c gas/config/tc-mips.h gas/config/tc-mmix.c gas/config/tc-mmix.h gas/config/tc-mn10200.c gas/config/tc-mn10200.h gas/config/tc-mn10300.c gas/config/tc-mn10300.h gas/config/tc-msp430.c gas/config/tc-msp430.h gas/config/tc-mt.c gas/config/tc-mt.h gas/config/tc-ns32k.c gas/config/tc-ns32k.h gas/config/tc-openrisc.c gas/config/tc-openrisc.h gas/config/tc-or32.c gas/config/tc-or32.h gas/config/tc-pdp11.c gas/config/tc-pdp11.h gas/config/tc-pj.c gas/config/tc-pj.h gas/config/tc-ppc.c gas/config/tc-ppc.h gas/config/tc-s390.c gas/config/tc-s390.h gas/config/tc-sh.c gas/config/tc-sh.h gas/config/tc-sh64.c gas/config/tc-sh64.h gas/config/tc-sparc.c gas/config/tc-sparc.h gas/config/tc-tic30.c gas/config/tc-tic30.h gas/config/tc-tic4x.c gas/config/tc-tic4x.h gas/config/tc-tic54x.c gas/config/tc-tic54x.h gas/config/tc-v850.c gas/config/tc-v850.h gas/config/tc-vax.c gas/config/tc-vax.h gas/config/tc-xc16x.c gas/config/tc-xc16x.h gas/config/tc-xstormy16.c gas/config/tc-xstormy16.h gas/config/tc-xtensa.c gas/config/tc-xtensa.h gas/config/tc-z80.c gas/config/tc-z80.h gas/config/tc-z8k.c gas/config/tc-z8k.h gas/config/te-386bsd.h gas/config/te-aix5.h gas/config/te-armeabi.h gas/config/te-armlinuxeabi.h gas/config/te-dynix.h gas/config/te-epoc-pe.h gas/config/te-freebsd.h gas/config/te-generic.h gas/config/te-gnu.h gas/config/te-go32.h gas/config/te-hppa.h gas/config/te-hppa64.h gas/config/te-hppalinux64.h gas/config/te-hpux.h gas/config/te-i386aix.h gas/config/te-ia64aix.h gas/config/te-interix.h gas/config/te-irix.h gas/config/te-linux.h gas/config/te-lnews.h gas/config/te-lynx.h gas/config/te-mach.h gas/config/te-macos.h gas/config/te-nbsd.h gas/config/te-nbsd532.h gas/config/te-netware.h gas/config/te-pc532mach.h gas/config/te-pe.h gas/config/te-psos.h gas/config/te-riscix.h gas/config/te-sparcaout.h gas/config/te-sun3.h gas/config/te-svr4.h gas/config/te-symbian.h gas/config/te-tmips.h gas/config/te-vxworks.h gas/config/te-wince-pe.h gas/config/vax-inst.h gas/config/xtensa-istack.h gas/config/xtensa-relax.c gas/config/xtensa-relax.h gas/configure gas/configure.in gas/configure.tgt gas/debug.c gas/dep-in.sed gas/depend.c gas/doc/Makefile.am gas/doc/Makefile.in gas/doc/all.texi gas/doc/as.texinfo gas/doc/c-alpha.texi gas/doc/c-arc.texi gas/doc/c-arm.texi gas/doc/c-avr.texi gas/doc/c-bfin.texi gas/doc/c-cris.texi gas/doc/c-d10v.texi gas/doc/c-d30v.texi gas/doc/c-h8300.texi gas/doc/c-hppa.texi gas/doc/c-i370.texi gas/doc/c-i386.texi gas/doc/c-i860.texi gas/doc/c-i960.texi gas/doc/c-ia64.texi gas/doc/c-ip2k.texi gas/doc/c-m32c.texi gas/doc/c-m32r.texi gas/doc/c-m68hc11.texi gas/doc/c-m68k.texi gas/doc/c-mips.texi gas/doc/c-mmix.texi gas/doc/c-msp430.texi gas/doc/c-mt.texi gas/doc/c-ns32k.texi gas/doc/c-pdp11.texi gas/doc/c-pj.texi gas/doc/c-ppc.texi gas/doc/c-sh.texi gas/doc/c-sh64.texi gas/doc/c-sparc.texi gas/doc/c-tic54x.texi gas/doc/c-v850.texi gas/doc/c-vax.texi gas/doc/c-xc16x.texi gas/doc/c-xtensa.texi gas/doc/c-z80.texi gas/doc/c-z8k.texi gas/doc/fdl.texi gas/doc/h8.texi gas/doc/internals.texi gas/dw2gencfi.c gas/dw2gencfi.h gas/dwarf2dbg.c gas/dwarf2dbg.h gas/ecoff.c gas/ecoff.h gas/ehopt.c gas/emul-target.h gas/emul.h gas/expr.c gas/expr.h gas/flonum-copy.c gas/flonum-konst.c gas/flonum-mult.c gas/flonum.h gas/frags.c gas/frags.h gas/gdbinit.in gas/hash.c gas/hash.h gas/input-file.c gas/input-file.h gas/input-scrub.c gas/itbl-lex.h gas/itbl-lex.l gas/itbl-ops.c gas/itbl-ops.h gas/itbl-parse.y gas/listing.c gas/listing.h gas/literal.c gas/macro.c gas/macro.h gas/messages.c gas/obj.h gas/output-file.c gas/output-file.h gas/po/.cvsignore gas/po/Make-in gas/po/POTFILES.in gas/po/es.po gas/po/fr.po gas/po/gas.pot gas/po/rw.po gas/po/tr.po gas/read.c gas/read.h gas/sb.c gas/sb.h gas/stabs.c gas/stamp-h.in gas/struc-symbol.h gas/subsegs.c gas/subsegs.h gas/symbols.c gas/symbols.h gas/tc.h gas/testsuite/ChangeLog gas/testsuite/ChangeLog-2004 gas/testsuite/ChangeLog-2005 gas/testsuite/ChangeLog-9303 gas/testsuite/config/default.exp gas/testsuite/gas/all/align.d gas/testsuite/gas/all/align.s gas/testsuite/gas/all/align2.d gas/testsuite/gas/all/align2.s gas/testsuite/gas/all/altmac2.d gas/testsuite/gas/all/altmac2.s gas/testsuite/gas/all/altmacro.d gas/testsuite/gas/all/altmacro.s gas/testsuite/gas/all/assign-bad.s gas/testsuite/gas/all/assign-ok.s gas/testsuite/gas/all/assign.d gas/testsuite/gas/all/assign.s gas/testsuite/gas/all/cofftag.d gas/testsuite/gas/all/cofftag.s gas/testsuite/gas/all/comment.s gas/testsuite/gas/all/cond.l gas/testsuite/gas/all/cond.s gas/testsuite/gas/all/diff1.s gas/testsuite/gas/all/equ-bad.s gas/testsuite/gas/all/equ-ok.s gas/testsuite/gas/all/equiv1.s gas/testsuite/gas/all/equiv2.s gas/testsuite/gas/all/eqv-bad.s gas/testsuite/gas/all/eqv-ok.s gas/testsuite/gas/all/err-1.s gas/testsuite/gas/all/eval.d gas/testsuite/gas/all/eval.s gas/testsuite/gas/all/excl.s gas/testsuite/gas/all/fastcall.s gas/testsuite/gas/all/float.s gas/testsuite/gas/all/forward.d gas/testsuite/gas/all/forward.s gas/testsuite/gas/all/gas.exp gas/testsuite/gas/all/incbin.d gas/testsuite/gas/all/incbin.dat gas/testsuite/gas/all/incbin.s gas/testsuite/gas/all/itbl gas/testsuite/gas/all/itbl-test.c gas/testsuite/gas/all/itbl.s gas/testsuite/gas/all/p1480.s gas/testsuite/gas/all/p2425.s gas/testsuite/gas/all/quad.d gas/testsuite/gas/all/quad.s gas/testsuite/gas/all/redef.d gas/testsuite/gas/all/redef.s gas/testsuite/gas/all/redef2.d gas/testsuite/gas/all/redef2.s gas/testsuite/gas/all/redef3.d gas/testsuite/gas/all/redef3.s gas/testsuite/gas/all/redef4.s gas/testsuite/gas/all/redef5.s gas/testsuite/gas/all/sleb128.d gas/testsuite/gas/all/sleb128.s gas/testsuite/gas/all/struct.d gas/testsuite/gas/all/struct.s gas/testsuite/gas/all/test-example.c gas/testsuite/gas/all/test-gen.c gas/testsuite/gas/all/warn-1.s gas/testsuite/gas/all/weakref1.d gas/testsuite/gas/all/weakref1.s gas/testsuite/gas/all/weakref1g.d gas/testsuite/gas/all/weakref1l.d gas/testsuite/gas/all/weakref1u.d gas/testsuite/gas/all/weakref1w.d gas/testsuite/gas/all/weakref2.s gas/testsuite/gas/all/weakref3.s gas/testsuite/gas/all/weakref4.s gas/testsuite/gas/all/x930509.s gas/testsuite/gas/alpha/alpha.exp gas/testsuite/gas/alpha/elf-reloc-1.d gas/testsuite/gas/alpha/elf-reloc-1.s gas/testsuite/gas/alpha/elf-reloc-2.l gas/testsuite/gas/alpha/elf-reloc-2.s gas/testsuite/gas/alpha/elf-reloc-3.l gas/testsuite/gas/alpha/elf-reloc-3.s gas/testsuite/gas/alpha/elf-reloc-4.d gas/testsuite/gas/alpha/elf-reloc-4.s gas/testsuite/gas/alpha/elf-reloc-5.d gas/testsuite/gas/alpha/elf-reloc-5.s gas/testsuite/gas/alpha/elf-reloc-6.l gas/testsuite/gas/alpha/elf-reloc-6.s gas/testsuite/gas/alpha/elf-reloc-7.d gas/testsuite/gas/alpha/elf-reloc-7.s gas/testsuite/gas/alpha/elf-reloc-8.d gas/testsuite/gas/alpha/elf-reloc-8.s gas/testsuite/gas/alpha/elf-tls-1.d gas/testsuite/gas/alpha/elf-tls-1.s gas/testsuite/gas/alpha/elf-tls-2.l gas/testsuite/gas/alpha/elf-tls-2.s gas/testsuite/gas/alpha/elf-tls-3.l gas/testsuite/gas/alpha/elf-tls-3.s gas/testsuite/gas/alpha/elf-usepv-1.d gas/testsuite/gas/alpha/elf-usepv-1.s gas/testsuite/gas/alpha/elf-usepv-2.l gas/testsuite/gas/alpha/elf-usepv-2.s gas/testsuite/gas/alpha/fp.d gas/testsuite/gas/alpha/fp.s gas/testsuite/gas/alpha/unop.d gas/testsuite/gas/alpha/unop.s gas/testsuite/gas/arc/adc.d gas/testsuite/gas/arc/adc.s gas/testsuite/gas/arc/add.d gas/testsuite/gas/arc/add.s gas/testsuite/gas/arc/alias.d gas/testsuite/gas/arc/alias.s gas/testsuite/gas/arc/and.d gas/testsuite/gas/arc/and.s gas/testsuite/gas/arc/arc.exp gas/testsuite/gas/arc/asl.d gas/testsuite/gas/arc/asl.s gas/testsuite/gas/arc/asr.d gas/testsuite/gas/arc/asr.s gas/testsuite/gas/arc/b.d gas/testsuite/gas/arc/b.s gas/testsuite/gas/arc/bic.d gas/testsuite/gas/arc/bic.s gas/testsuite/gas/arc/bl.d gas/testsuite/gas/arc/bl.s gas/testsuite/gas/arc/branch.d gas/testsuite/gas/arc/branch.s gas/testsuite/gas/arc/brk.d gas/testsuite/gas/arc/brk.s gas/testsuite/gas/arc/extb.d gas/testsuite/gas/arc/extb.s gas/testsuite/gas/arc/extensions.d gas/testsuite/gas/arc/extensions.s gas/testsuite/gas/arc/extw.d gas/testsuite/gas/arc/extw.s gas/testsuite/gas/arc/flag.d gas/testsuite/gas/arc/flag.s gas/testsuite/gas/arc/insn3.d gas/testsuite/gas/arc/insn3.s gas/testsuite/gas/arc/j.d gas/testsuite/gas/arc/j.s gas/testsuite/gas/arc/jl.d gas/testsuite/gas/arc/jl.s gas/testsuite/gas/arc/ld.d gas/testsuite/gas/arc/ld.s gas/testsuite/gas/arc/ld2.d gas/testsuite/gas/arc/ld2.s gas/testsuite/gas/arc/lp.d gas/testsuite/gas/arc/lp.s gas/testsuite/gas/arc/lsr.d gas/testsuite/gas/arc/lsr.s gas/testsuite/gas/arc/math.d gas/testsuite/gas/arc/math.s gas/testsuite/gas/arc/mov.d gas/testsuite/gas/arc/mov.s gas/testsuite/gas/arc/nop.d gas/testsuite/gas/arc/nop.s gas/testsuite/gas/arc/or.d gas/testsuite/gas/arc/or.s gas/testsuite/gas/arc/rlc.d gas/testsuite/gas/arc/rlc.s gas/testsuite/gas/arc/ror.d gas/testsuite/gas/arc/ror.s gas/testsuite/gas/arc/rrc.d gas/testsuite/gas/arc/rrc.s gas/testsuite/gas/arc/sbc.d gas/testsuite/gas/arc/sbc.s gas/testsuite/gas/arc/sexb.d gas/testsuite/gas/arc/sexb.s gas/testsuite/gas/arc/sexw.d gas/testsuite/gas/arc/sexw.s gas/testsuite/gas/arc/sleep.d gas/testsuite/gas/arc/sleep.s gas/testsuite/gas/arc/sshift.d gas/testsuite/gas/arc/sshift.s gas/testsuite/gas/arc/st.d gas/testsuite/gas/arc/st.s gas/testsuite/gas/arc/sub.d gas/testsuite/gas/arc/sub.s gas/testsuite/gas/arc/swi.d gas/testsuite/gas/arc/swi.s gas/testsuite/gas/arc/warn.exp gas/testsuite/gas/arc/warn.s gas/testsuite/gas/arc/xor.d gas/testsuite/gas/arc/xor.s gas/testsuite/gas/arm/abs12.d gas/testsuite/gas/arm/abs12.s gas/testsuite/gas/arm/adrl.d gas/testsuite/gas/arm/adrl.s gas/testsuite/gas/arm/arch4t.d gas/testsuite/gas/arm/arch4t.s gas/testsuite/gas/arm/arch5tej.d gas/testsuite/gas/arm/arch5tej.s gas/testsuite/gas/arm/arch6zk.d gas/testsuite/gas/arm/arch6zk.s gas/testsuite/gas/arm/arch7.d gas/testsuite/gas/arm/arch7.s gas/testsuite/gas/arm/arch7m-bad.d gas/testsuite/gas/arm/arch7m-bad.l gas/testsuite/gas/arm/arch7m-bad.s gas/testsuite/gas/arm/archv6.d gas/testsuite/gas/arm/archv6.s gas/testsuite/gas/arm/archv6t2-bad.d gas/testsuite/gas/arm/archv6t2-bad.l gas/testsuite/gas/arm/archv6t2-bad.s gas/testsuite/gas/arm/archv6t2.d gas/testsuite/gas/arm/archv6t2.s gas/testsuite/gas/arm/arm.exp gas/testsuite/gas/arm/arm3-bad.d gas/testsuite/gas/arm/arm3-bad.l gas/testsuite/gas/arm/arm3-bad.s gas/testsuite/gas/arm/arm3.d gas/testsuite/gas/arm/arm3.s gas/testsuite/gas/arm/arm6.d gas/testsuite/gas/arm/arm6.s gas/testsuite/gas/arm/arm7dm.d gas/testsuite/gas/arm/arm7dm.s gas/testsuite/gas/arm/arm7t.d gas/testsuite/gas/arm/arm7t.s gas/testsuite/gas/arm/armv1-bad.d gas/testsuite/gas/arm/armv1-bad.l gas/testsuite/gas/arm/armv1-bad.s gas/testsuite/gas/arm/armv1.d gas/testsuite/gas/arm/armv1.l gas/testsuite/gas/arm/armv1.s gas/testsuite/gas/arm/bignum1.d gas/testsuite/gas/arm/bignum1.s gas/testsuite/gas/arm/blx-local.d gas/testsuite/gas/arm/blx-local.s gas/testsuite/gas/arm/copro.d gas/testsuite/gas/arm/copro.s gas/testsuite/gas/arm/eabi_attr_1.d gas/testsuite/gas/arm/eabi_attr_1.s gas/testsuite/gas/arm/el_segundo.d gas/testsuite/gas/arm/el_segundo.s gas/testsuite/gas/arm/float.d gas/testsuite/gas/arm/float.s gas/testsuite/gas/arm/fpa-dyadic.d gas/testsuite/gas/arm/fpa-dyadic.s gas/testsuite/gas/arm/fpa-mem.d gas/testsuite/gas/arm/fpa-mem.s gas/testsuite/gas/arm/fpa-monadic.d gas/testsuite/gas/arm/fpa-monadic.s gas/testsuite/gas/arm/group-reloc-alu-encoding-bad.d gas/testsuite/gas/arm/group-reloc-alu-encoding-bad.l gas/testsuite/gas/arm/group-reloc-alu-encoding-bad.s gas/testsuite/gas/arm/group-reloc-alu-parsing-bad.d gas/testsuite/gas/arm/group-reloc-alu-parsing-bad.l gas/testsuite/gas/arm/group-reloc-alu-parsing-bad.s gas/testsuite/gas/arm/group-reloc-alu.d gas/testsuite/gas/arm/group-reloc-alu.s gas/testsuite/gas/arm/group-reloc-ldc-encoding-bad.d gas/testsuite/gas/arm/group-reloc-ldc-encoding-bad.l gas/testsuite/gas/arm/group-reloc-ldc-encoding-bad.s gas/testsuite/gas/arm/group-reloc-ldc-parsing-bad.d gas/testsuite/gas/arm/group-reloc-ldc-parsing-bad.l gas/testsuite/gas/arm/group-reloc-ldc-parsing-bad.s gas/testsuite/gas/arm/group-reloc-ldc.d gas/testsuite/gas/arm/group-reloc-ldc.s gas/testsuite/gas/arm/group-reloc-ldr-encoding-bad.d gas/testsuite/gas/arm/group-reloc-ldr-encoding-bad.l gas/testsuite/gas/arm/group-reloc-ldr-encoding-bad.s gas/testsuite/gas/arm/group-reloc-ldr-parsing-bad.d gas/testsuite/gas/arm/group-reloc-ldr-parsing-bad.l gas/testsuite/gas/arm/group-reloc-ldr-parsing-bad.s gas/testsuite/gas/arm/group-reloc-ldr.d gas/testsuite/gas/arm/group-reloc-ldr.s gas/testsuite/gas/arm/group-reloc-ldrs-encoding-bad.d gas/testsuite/gas/arm/group-reloc-ldrs-encoding-bad.l gas/testsuite/gas/arm/group-reloc-ldrs-encoding-bad.s gas/testsuite/gas/arm/group-reloc-ldrs-parsing-bad.d gas/testsuite/gas/arm/group-reloc-ldrs-parsing-bad.l gas/testsuite/gas/arm/group-reloc-ldrs-parsing-bad.s gas/testsuite/gas/arm/group-reloc-ldrs.d gas/testsuite/gas/arm/group-reloc-ldrs.s gas/testsuite/gas/arm/immed.d gas/testsuite/gas/arm/immed.s gas/testsuite/gas/arm/inst.d gas/testsuite/gas/arm/inst.s gas/testsuite/gas/arm/itblock.s gas/testsuite/gas/arm/iwmmxt-bad.d gas/testsuite/gas/arm/iwmmxt-bad.l gas/testsuite/gas/arm/iwmmxt-bad.s gas/testsuite/gas/arm/iwmmxt-bad2.d gas/testsuite/gas/arm/iwmmxt-bad2.l gas/testsuite/gas/arm/iwmmxt-bad2.s gas/testsuite/gas/arm/iwmmxt.d gas/testsuite/gas/arm/iwmmxt.s gas/testsuite/gas/arm/ldconst.d gas/testsuite/gas/arm/ldconst.s gas/testsuite/gas/arm/le-fpconst.d gas/testsuite/gas/arm/le-fpconst.s gas/testsuite/gas/arm/local_function.d gas/testsuite/gas/arm/local_function.s gas/testsuite/gas/arm/macro1.d gas/testsuite/gas/arm/macro1.s gas/testsuite/gas/arm/mapping.d gas/testsuite/gas/arm/mapping.s gas/testsuite/gas/arm/maverick.c gas/testsuite/gas/arm/maverick.d gas/testsuite/gas/arm/maverick.s gas/testsuite/gas/arm/neon-cond-bad-inc.s gas/testsuite/gas/arm/neon-cond-bad.d gas/testsuite/gas/arm/neon-cond-bad.l gas/testsuite/gas/arm/neon-cond-bad.s gas/testsuite/gas/arm/neon-cond-bad_t2.d gas/testsuite/gas/arm/neon-cond-bad_t2.s gas/testsuite/gas/arm/neon-cond.d gas/testsuite/gas/arm/neon-cond.s gas/testsuite/gas/arm/neon-const.d gas/testsuite/gas/arm/neon-const.s gas/testsuite/gas/arm/neon-cov.d gas/testsuite/gas/arm/neon-cov.s gas/testsuite/gas/arm/neon-ldst-es.d gas/testsuite/gas/arm/neon-ldst-es.s gas/testsuite/gas/arm/neon-ldst-rm.d gas/testsuite/gas/arm/neon-ldst-rm.s gas/testsuite/gas/arm/neon-omit.d gas/testsuite/gas/arm/neon-omit.s gas/testsuite/gas/arm/neon-psyn.d gas/testsuite/gas/arm/neon-psyn.s gas/testsuite/gas/arm/nomapping.d gas/testsuite/gas/arm/nomapping.s gas/testsuite/gas/arm/offset.d gas/testsuite/gas/arm/offset.s gas/testsuite/gas/arm/pic.d gas/testsuite/gas/arm/pic.s gas/testsuite/gas/arm/pic_vxworks.d gas/testsuite/gas/arm/r15-bad.d gas/testsuite/gas/arm/r15-bad.l gas/testsuite/gas/arm/r15-bad.s gas/testsuite/gas/arm/reg-alias.d gas/testsuite/gas/arm/reg-alias.s gas/testsuite/gas/arm/req.d gas/testsuite/gas/arm/req.l gas/testsuite/gas/arm/req.s gas/testsuite/gas/arm/svc.d gas/testsuite/gas/arm/svc.s gas/testsuite/gas/arm/t16-bad.d gas/testsuite/gas/arm/t16-bad.l gas/testsuite/gas/arm/t16-bad.s gas/testsuite/gas/arm/tcompat.d gas/testsuite/gas/arm/tcompat.s gas/testsuite/gas/arm/tcompat2.d gas/testsuite/gas/arm/tcompat2.s gas/testsuite/gas/arm/thumb.d gas/testsuite/gas/arm/thumb.s gas/testsuite/gas/arm/thumb2_add.d gas/testsuite/gas/arm/thumb2_add.s gas/testsuite/gas/arm/thumb2_bcond.d gas/testsuite/gas/arm/thumb2_bcond.s gas/testsuite/gas/arm/thumb2_invert.d gas/testsuite/gas/arm/thumb2_invert.s gas/testsuite/gas/arm/thumb2_it.d gas/testsuite/gas/arm/thumb2_it.s gas/testsuite/gas/arm/thumb2_it_bad.d gas/testsuite/gas/arm/thumb2_it_bad.l gas/testsuite/gas/arm/thumb2_it_bad.s gas/testsuite/gas/arm/thumb2_pool.d gas/testsuite/gas/arm/thumb2_pool.s gas/testsuite/gas/arm/thumb2_relax.d gas/testsuite/gas/arm/thumb2_relax.s gas/testsuite/gas/arm/thumb32.d gas/testsuite/gas/arm/thumb32.l gas/testsuite/gas/arm/thumb32.s gas/testsuite/gas/arm/thumbv6.d gas/testsuite/gas/arm/thumbv6.s gas/testsuite/gas/arm/thumbv6k.d gas/testsuite/gas/arm/thumbv6k.s gas/testsuite/gas/arm/tls.d gas/testsuite/gas/arm/tls.s gas/testsuite/gas/arm/tls_vxworks.d gas/testsuite/gas/arm/undefined.d gas/testsuite/gas/arm/undefined.l gas/testsuite/gas/arm/undefined.s gas/testsuite/gas/arm/undefined_coff.d gas/testsuite/gas/arm/undefined_coff.l gas/testsuite/gas/arm/undefined_coff.s gas/testsuite/gas/arm/unwind.d gas/testsuite/gas/arm/unwind.s gas/testsuite/gas/arm/unwind_vxworks.d gas/testsuite/gas/arm/vfp-bad.d gas/testsuite/gas/arm/vfp-bad.l gas/testsuite/gas/arm/vfp-bad.s gas/testsuite/gas/arm/vfp-bad_t2.d gas/testsuite/gas/arm/vfp-bad_t2.l gas/testsuite/gas/arm/vfp-bad_t2.s gas/testsuite/gas/arm/vfp-neon-overlap.d gas/testsuite/gas/arm/vfp-neon-overlap.s gas/testsuite/gas/arm/vfp-neon-syntax-inc.s gas/testsuite/gas/arm/vfp-neon-syntax.d gas/testsuite/gas/arm/vfp-neon-syntax.s gas/testsuite/gas/arm/vfp-neon-syntax_t2.d gas/testsuite/gas/arm/vfp-neon-syntax_t2.s gas/testsuite/gas/arm/vfp1.d gas/testsuite/gas/arm/vfp1.s gas/testsuite/gas/arm/vfp1_t2.d gas/testsuite/gas/arm/vfp1_t2.s gas/testsuite/gas/arm/vfp1xD.d gas/testsuite/gas/arm/vfp1xD.s gas/testsuite/gas/arm/vfp1xD_t2.d gas/testsuite/gas/arm/vfp1xD_t2.s gas/testsuite/gas/arm/vfp2.d gas/testsuite/gas/arm/vfp2.s gas/testsuite/gas/arm/vfp2_t2.d gas/testsuite/gas/arm/vfp2_t2.s gas/testsuite/gas/arm/vfpv3-32drs.d gas/testsuite/gas/arm/vfpv3-32drs.s gas/testsuite/gas/arm/vfpv3-const-conv.d gas/testsuite/gas/arm/vfpv3-const-conv.s gas/testsuite/gas/arm/wince_inst.d gas/testsuite/gas/arm/xscale.d gas/testsuite/gas/arm/xscale.s gas/testsuite/gas/bfin/arithmetic.d gas/testsuite/gas/bfin/arithmetic.s gas/testsuite/gas/bfin/bfin.exp gas/testsuite/gas/bfin/bit.d gas/testsuite/gas/bfin/bit.s gas/testsuite/gas/bfin/bit2.d gas/testsuite/gas/bfin/bit2.s gas/testsuite/gas/bfin/cache.d gas/testsuite/gas/bfin/cache.s gas/testsuite/gas/bfin/cache2.d gas/testsuite/gas/bfin/cache2.s gas/testsuite/gas/bfin/control_code.d gas/testsuite/gas/bfin/control_code.s gas/testsuite/gas/bfin/control_code2.d gas/testsuite/gas/bfin/control_code2.s gas/testsuite/gas/bfin/event.d gas/testsuite/gas/bfin/event.s gas/testsuite/gas/bfin/event2.d gas/testsuite/gas/bfin/event2.s gas/testsuite/gas/bfin/expected_errors.l gas/testsuite/gas/bfin/expected_errors.s gas/testsuite/gas/bfin/expected_move_errors.l gas/testsuite/gas/bfin/expected_move_errors.s gas/testsuite/gas/bfin/flow.d gas/testsuite/gas/bfin/flow.s gas/testsuite/gas/bfin/flow2.d gas/testsuite/gas/bfin/flow2.s gas/testsuite/gas/bfin/load.d gas/testsuite/gas/bfin/load.s gas/testsuite/gas/bfin/logical.d gas/testsuite/gas/bfin/logical.s gas/testsuite/gas/bfin/logical2.d gas/testsuite/gas/bfin/logical2.s gas/testsuite/gas/bfin/move.d gas/testsuite/gas/bfin/move.s gas/testsuite/gas/bfin/move2.d gas/testsuite/gas/bfin/move2.s gas/testsuite/gas/bfin/parallel.d gas/testsuite/gas/bfin/parallel.s gas/testsuite/gas/bfin/parallel2.d gas/testsuite/gas/bfin/parallel2.s gas/testsuite/gas/bfin/parallel3.d gas/testsuite/gas/bfin/parallel3.s gas/testsuite/gas/bfin/parallel4.d gas/testsuite/gas/bfin/parallel4.s gas/testsuite/gas/bfin/reloc.d gas/testsuite/gas/bfin/reloc.s gas/testsuite/gas/bfin/shift.d gas/testsuite/gas/bfin/shift.s gas/testsuite/gas/bfin/shift2.d gas/testsuite/gas/bfin/shift2.s gas/testsuite/gas/bfin/stack.d gas/testsuite/gas/bfin/stack.s gas/testsuite/gas/bfin/stack2.d gas/testsuite/gas/bfin/stack2.s gas/testsuite/gas/bfin/store.d gas/testsuite/gas/bfin/store.s gas/testsuite/gas/bfin/vector.d gas/testsuite/gas/bfin/vector.s gas/testsuite/gas/bfin/vector2.d gas/testsuite/gas/bfin/vector2.s gas/testsuite/gas/bfin/video.d gas/testsuite/gas/bfin/video.s gas/testsuite/gas/bfin/video2.d gas/testsuite/gas/bfin/video2.s gas/testsuite/gas/cfi/cfi-alpha-1.d gas/testsuite/gas/cfi/cfi-alpha-1.s gas/testsuite/gas/cfi/cfi-alpha-2.d gas/testsuite/gas/cfi/cfi-alpha-2.s gas/testsuite/gas/cfi/cfi-alpha-3.d gas/testsuite/gas/cfi/cfi-alpha-3.s gas/testsuite/gas/cfi/cfi-arm-1.d gas/testsuite/gas/cfi/cfi-arm-1.s gas/testsuite/gas/cfi/cfi-common-1.d gas/testsuite/gas/cfi/cfi-common-1.s gas/testsuite/gas/cfi/cfi-common-2.d gas/testsuite/gas/cfi/cfi-common-2.s gas/testsuite/gas/cfi/cfi-common-3.d gas/testsuite/gas/cfi/cfi-common-3.s gas/testsuite/gas/cfi/cfi-common-4.d gas/testsuite/gas/cfi/cfi-common-4.s gas/testsuite/gas/cfi/cfi-diag-1.l gas/testsuite/gas/cfi/cfi-diag-1.s gas/testsuite/gas/cfi/cfi-i386-2.d gas/testsuite/gas/cfi/cfi-i386-2.s gas/testsuite/gas/cfi/cfi-i386.d gas/testsuite/gas/cfi/cfi-i386.s gas/testsuite/gas/cfi/cfi-m68k.d gas/testsuite/gas/cfi/cfi-m68k.s gas/testsuite/gas/cfi/cfi-mips-1.d gas/testsuite/gas/cfi/cfi-mips-1.s gas/testsuite/gas/cfi/cfi-ppc-1.d gas/testsuite/gas/cfi/cfi-ppc-1.s gas/testsuite/gas/cfi/cfi-s390-1.d gas/testsuite/gas/cfi/cfi-s390-1.s gas/testsuite/gas/cfi/cfi-s390x-1.d gas/testsuite/gas/cfi/cfi-s390x-1.s gas/testsuite/gas/cfi/cfi-sh-1.d gas/testsuite/gas/cfi/cfi-sh-1.s gas/testsuite/gas/cfi/cfi-sparc-1.d gas/testsuite/gas/cfi/cfi-sparc-1.s gas/testsuite/gas/cfi/cfi-sparc64-1.d gas/testsuite/gas/cfi/cfi-sparc64-1.s gas/testsuite/gas/cfi/cfi-x86_64.d gas/testsuite/gas/cfi/cfi-x86_64.s gas/testsuite/gas/cfi/cfi.exp gas/testsuite/gas/cris/abs32-1.s gas/testsuite/gas/cris/addi.d gas/testsuite/gas/cris/addi.s gas/testsuite/gas/cris/arch-err-1.s gas/testsuite/gas/cris/arch-err-2.s gas/testsuite/gas/cris/arch-err-3.s gas/testsuite/gas/cris/arch-err-4.s gas/testsuite/gas/cris/arch-err-5.s gas/testsuite/gas/cris/binop-cmpmove.d gas/testsuite/gas/cris/binop-cmpmovx.d gas/testsuite/gas/cris/binop-extx.d gas/testsuite/gas/cris/binop-segref.s gas/testsuite/gas/cris/binop.d gas/testsuite/gas/cris/binop.s gas/testsuite/gas/cris/bork.d gas/testsuite/gas/cris/bork.s gas/testsuite/gas/cris/bound-err-1.s gas/testsuite/gas/cris/branch-warn-1.s gas/testsuite/gas/cris/branch-warn-2.s gas/testsuite/gas/cris/branch-warn-3.s gas/testsuite/gas/cris/branch.d gas/testsuite/gas/cris/branch.s gas/testsuite/gas/cris/break.d gas/testsuite/gas/cris/break.s gas/testsuite/gas/cris/brokw-1.d gas/testsuite/gas/cris/brokw-1.s gas/testsuite/gas/cris/brokw-2.d gas/testsuite/gas/cris/brokw-2.s gas/testsuite/gas/cris/brokw-3.d gas/testsuite/gas/cris/brokw-3.s gas/testsuite/gas/cris/brokw-3b.s gas/testsuite/gas/cris/bwtest-err-1.s gas/testsuite/gas/cris/ccr.d gas/testsuite/gas/cris/ccr.s gas/testsuite/gas/cris/clear.d gas/testsuite/gas/cris/continue.d gas/testsuite/gas/cris/continue.s gas/testsuite/gas/cris/cris.exp gas/testsuite/gas/cris/diffexp-ovwr.d gas/testsuite/gas/cris/diffexp-ovwr.s gas/testsuite/gas/cris/fragtest.d gas/testsuite/gas/cris/fragtest.s gas/testsuite/gas/cris/jump-type.d gas/testsuite/gas/cris/labfloat.d gas/testsuite/gas/cris/labfloat.s gas/testsuite/gas/cris/macroat.d gas/testsuite/gas/cris/macroat.s gas/testsuite/gas/cris/march-err-1.s gas/testsuite/gas/cris/march-err-2.s gas/testsuite/gas/cris/movem-to-reg.d gas/testsuite/gas/cris/mulbug-err-1.s gas/testsuite/gas/cris/nosep.d gas/testsuite/gas/cris/nosep.s gas/testsuite/gas/cris/oneop-type.d gas/testsuite/gas/cris/operand-err-1.s gas/testsuite/gas/cris/pic-err-1.s gas/testsuite/gas/cris/prefix.d gas/testsuite/gas/cris/prefix.s gas/testsuite/gas/cris/push-err-1.s gas/testsuite/gas/cris/push-err-2.s gas/testsuite/gas/cris/pushpop-byte-sreg.d gas/testsuite/gas/cris/pushpop-dcr1-sreg.d gas/testsuite/gas/cris/pushpop-dword-sreg.d gas/testsuite/gas/cris/pushpop-word-sreg.d gas/testsuite/gas/cris/pushpop.d gas/testsuite/gas/cris/pushpop.s gas/testsuite/gas/cris/pushpopv32.s gas/testsuite/gas/cris/quick-s6.d gas/testsuite/gas/cris/quick-u5.d gas/testsuite/gas/cris/quick-u6.d gas/testsuite/gas/cris/quick.s gas/testsuite/gas/cris/range-err-1.s gas/testsuite/gas/cris/range-err-2.s gas/testsuite/gas/cris/rd-abs32-1.d gas/testsuite/gas/cris/rd-abs32-2.d gas/testsuite/gas/cris/rd-arch-1.d gas/testsuite/gas/cris/rd-arch-2.d gas/testsuite/gas/cris/rd-arch-3.d gas/testsuite/gas/cris/rd-bcnst-pic.d gas/testsuite/gas/cris/rd-bcnst.d gas/testsuite/gas/cris/rd-bcnst.s gas/testsuite/gas/cris/rd-bkw1b.d gas/testsuite/gas/cris/rd-bkw2b.d gas/testsuite/gas/cris/rd-bkw3b.d gas/testsuite/gas/cris/rd-bound1.d gas/testsuite/gas/cris/rd-bound1.s gas/testsuite/gas/cris/rd-bound2.d gas/testsuite/gas/cris/rd-bound3.d gas/testsuite/gas/cris/rd-bound4.d gas/testsuite/gas/cris/rd-branch-pic.d gas/testsuite/gas/cris/rd-break32.d gas/testsuite/gas/cris/rd-brokw-pic-1.d gas/testsuite/gas/cris/rd-brokw-pic-2.d gas/testsuite/gas/cris/rd-brokw-pic-3.d gas/testsuite/gas/cris/rd-dw2-1.d gas/testsuite/gas/cris/rd-dw2-10.d gas/testsuite/gas/cris/rd-dw2-11.d gas/testsuite/gas/cris/rd-dw2-12.d gas/testsuite/gas/cris/rd-dw2-13.d gas/testsuite/gas/cris/rd-dw2-14.d gas/testsuite/gas/cris/rd-dw2-15.d gas/testsuite/gas/cris/rd-dw2-2.d gas/testsuite/gas/cris/rd-dw2-3.d gas/testsuite/gas/cris/rd-dw2-4.d gas/testsuite/gas/cris/rd-dw2-5.d gas/testsuite/gas/cris/rd-dw2-6.d gas/testsuite/gas/cris/rd-dw2-7.d gas/testsuite/gas/cris/rd-dw2-8.d gas/testsuite/gas/cris/rd-dw2-9.d gas/testsuite/gas/cris/rd-fragtest-pic.d gas/testsuite/gas/cris/rd-mulbug-1.d gas/testsuite/gas/cris/rd-pcplus.d gas/testsuite/gas/cris/rd-pcplus.s gas/testsuite/gas/cris/rd-pcrel1.d gas/testsuite/gas/cris/rd-pcrel1.s gas/testsuite/gas/cris/rd-pcrel2.d gas/testsuite/gas/cris/rd-pcrel2.s gas/testsuite/gas/cris/rd-pic-1.d gas/testsuite/gas/cris/rd-pic-1.s gas/testsuite/gas/cris/rd-pic-2.d gas/testsuite/gas/cris/rd-pic-2.s gas/testsuite/gas/cris/rd-ppv1032.d gas/testsuite/gas/cris/rd-ppv32.d gas/testsuite/gas/cris/rd-regprefix-1.d gas/testsuite/gas/cris/rd-regprefix-1.s gas/testsuite/gas/cris/rd-regprefix-1b.d gas/testsuite/gas/cris/rd-spr-1.d gas/testsuite/gas/cris/rd-spr-1.s gas/testsuite/gas/cris/rd-usp-1.d gas/testsuite/gas/cris/rd-usp-1b.d gas/testsuite/gas/cris/rd-v10_32o-1.d gas/testsuite/gas/cris/rd-v10_32o-2.d gas/testsuite/gas/cris/rd-v10_32o-2.s gas/testsuite/gas/cris/rd-v32-b1.d gas/testsuite/gas/cris/rd-v32-b1.s gas/testsuite/gas/cris/rd-v32-b2.d gas/testsuite/gas/cris/rd-v32-b2.s gas/testsuite/gas/cris/rd-v32-b3.d gas/testsuite/gas/cris/rd-v32-b3.s gas/testsuite/gas/cris/rd-v32-f1.d gas/testsuite/gas/cris/rd-v32-f1.s gas/testsuite/gas/cris/rd-v32-i1.d gas/testsuite/gas/cris/rd-v32-i1.s gas/testsuite/gas/cris/rd-v32-l1.d gas/testsuite/gas/cris/rd-v32-l1.s gas/testsuite/gas/cris/rd-v32-l3.d gas/testsuite/gas/cris/rd-v32-l3.s gas/testsuite/gas/cris/rd-v32-l4.d gas/testsuite/gas/cris/rd-v32-l4.s gas/testsuite/gas/cris/rd-v32o-1.d gas/testsuite/gas/cris/rd-v32s-1.d gas/testsuite/gas/cris/rd-v32s-2.d gas/testsuite/gas/cris/rd-v32s-2.s gas/testsuite/gas/cris/rd-v32s-3.d gas/testsuite/gas/cris/rd-v32s-3.s gas/testsuite/gas/cris/rd-v32s-4.d gas/testsuite/gas/cris/rd-v32s-4.s gas/testsuite/gas/cris/rd-vao-1.d gas/testsuite/gas/cris/reg-to-mem.d gas/testsuite/gas/cris/regprefix-err-1.s gas/testsuite/gas/cris/regreg.d gas/testsuite/gas/cris/regreg.s gas/testsuite/gas/cris/return.d gas/testsuite/gas/cris/return.s gas/testsuite/gas/cris/scc.d gas/testsuite/gas/cris/scc.s gas/testsuite/gas/cris/sep-err-1.s gas/testsuite/gas/cris/sep-err-2.s gas/testsuite/gas/cris/sep-err-3.s gas/testsuite/gas/cris/separator.d gas/testsuite/gas/cris/separator.s gas/testsuite/gas/cris/shexpr-1.d gas/testsuite/gas/cris/shexpr-1.s gas/testsuite/gas/cris/sreg-to-x.d gas/testsuite/gas/cris/string-1.d gas/testsuite/gas/cris/string-1.s gas/testsuite/gas/cris/string-2.d gas/testsuite/gas/cris/string-2.s gas/testsuite/gas/cris/test.d gas/testsuite/gas/cris/unimplemented.d gas/testsuite/gas/cris/unimplemented.s gas/testsuite/gas/cris/unop-mem.d gas/testsuite/gas/cris/unop.s gas/testsuite/gas/cris/us-err-1.s gas/testsuite/gas/cris/us-err-2.s gas/testsuite/gas/cris/us-err-3.s gas/testsuite/gas/cris/v32-err-1.s gas/testsuite/gas/cris/v32-err-10.s gas/testsuite/gas/cris/v32-err-11.s gas/testsuite/gas/cris/v32-err-2.s gas/testsuite/gas/cris/v32-err-3.s gas/testsuite/gas/cris/v32-err-4.s gas/testsuite/gas/cris/v32-err-5.s gas/testsuite/gas/cris/v32-err-6.s gas/testsuite/gas/cris/v32-err-7.s gas/testsuite/gas/cris/v32-err-8.s gas/testsuite/gas/cris/v32-err-9.s gas/testsuite/gas/cris/x-to-byte-sreg.d gas/testsuite/gas/cris/x-to-dcr1-sreg.d gas/testsuite/gas/cris/x-to-dword-sreg.d gas/testsuite/gas/cris/x-to-word-sreg.d gas/testsuite/gas/crx/allinsn.exp gas/testsuite/gas/crx/arith_insn.d gas/testsuite/gas/crx/arith_insn.s gas/testsuite/gas/crx/beq_insn.d gas/testsuite/gas/crx/beq_insn.s gas/testsuite/gas/crx/bit_insn.d gas/testsuite/gas/crx/bit_insn.s gas/testsuite/gas/crx/br_insn.d gas/testsuite/gas/crx/br_insn.s gas/testsuite/gas/crx/cmov_insn.d gas/testsuite/gas/crx/cmov_insn.s gas/testsuite/gas/crx/cmpbr_insn.d gas/testsuite/gas/crx/cmpbr_insn.s gas/testsuite/gas/crx/cop_insn.d gas/testsuite/gas/crx/cop_insn.s gas/testsuite/gas/crx/gas-segfault.d gas/testsuite/gas/crx/gas-segfault.s gas/testsuite/gas/crx/jscond_insn.d gas/testsuite/gas/crx/jscond_insn.s gas/testsuite/gas/crx/list_insn.d gas/testsuite/gas/crx/list_insn.s gas/testsuite/gas/crx/load_stor_insn.d gas/testsuite/gas/crx/load_stor_insn.s gas/testsuite/gas/crx/misc_insn.d gas/testsuite/gas/crx/misc_insn.s gas/testsuite/gas/crx/no_op_insn.d gas/testsuite/gas/crx/no_op_insn.s gas/testsuite/gas/crx/shift_insn.d gas/testsuite/gas/crx/shift_insn.s gas/testsuite/gas/d10v/address-001.d gas/testsuite/gas/d10v/address-001.s gas/testsuite/gas/d10v/address-002.l gas/testsuite/gas/d10v/address-002.s gas/testsuite/gas/d10v/address-003.l gas/testsuite/gas/d10v/address-003.s gas/testsuite/gas/d10v/address-004.l gas/testsuite/gas/d10v/address-004.s gas/testsuite/gas/d10v/address-005.l gas/testsuite/gas/d10v/address-005.s gas/testsuite/gas/d10v/address-006.l gas/testsuite/gas/d10v/address-006.s gas/testsuite/gas/d10v/address-007.l gas/testsuite/gas/d10v/address-007.s gas/testsuite/gas/d10v/address-008.l gas/testsuite/gas/d10v/address-008.s gas/testsuite/gas/d10v/address-009.l gas/testsuite/gas/d10v/address-009.s gas/testsuite/gas/d10v/address-010.l gas/testsuite/gas/d10v/address-010.s gas/testsuite/gas/d10v/address-011.l gas/testsuite/gas/d10v/address-011.s gas/testsuite/gas/d10v/address-012.l gas/testsuite/gas/d10v/address-012.s gas/testsuite/gas/d10v/address-013.l gas/testsuite/gas/d10v/address-013.s gas/testsuite/gas/d10v/address-014.l gas/testsuite/gas/d10v/address-014.s gas/testsuite/gas/d10v/address-015.l gas/testsuite/gas/d10v/address-015.s gas/testsuite/gas/d10v/address-016.l gas/testsuite/gas/d10v/address-016.s gas/testsuite/gas/d10v/address-017.l gas/testsuite/gas/d10v/address-017.s gas/testsuite/gas/d10v/address-018.l gas/testsuite/gas/d10v/address-018.s gas/testsuite/gas/d10v/address-019.l gas/testsuite/gas/d10v/address-019.s gas/testsuite/gas/d10v/address-020.l gas/testsuite/gas/d10v/address-020.s gas/testsuite/gas/d10v/address-021.l gas/testsuite/gas/d10v/address-021.s gas/testsuite/gas/d10v/address-022.l gas/testsuite/gas/d10v/address-022.s gas/testsuite/gas/d10v/address-023.l gas/testsuite/gas/d10v/address-023.s gas/testsuite/gas/d10v/address-024.l gas/testsuite/gas/d10v/address-024.s gas/testsuite/gas/d10v/address-025.l gas/testsuite/gas/d10v/address-025.s gas/testsuite/gas/d10v/address-026.l gas/testsuite/gas/d10v/address-026.s gas/testsuite/gas/d10v/address-027.l gas/testsuite/gas/d10v/address-027.s gas/testsuite/gas/d10v/address-028.l gas/testsuite/gas/d10v/address-028.s gas/testsuite/gas/d10v/address-029.l gas/testsuite/gas/d10v/address-029.s gas/testsuite/gas/d10v/address-030.l gas/testsuite/gas/d10v/address-030.s gas/testsuite/gas/d10v/address-031.l gas/testsuite/gas/d10v/address-031.s gas/testsuite/gas/d10v/address-032.l gas/testsuite/gas/d10v/address-032.s gas/testsuite/gas/d10v/address-033.l gas/testsuite/gas/d10v/address-033.s gas/testsuite/gas/d10v/address-034.l gas/testsuite/gas/d10v/address-034.s gas/testsuite/gas/d10v/address-035.l gas/testsuite/gas/d10v/address-035.s gas/testsuite/gas/d10v/address-036.l gas/testsuite/gas/d10v/address-036.s gas/testsuite/gas/d10v/address-037.l gas/testsuite/gas/d10v/address-037.s gas/testsuite/gas/d10v/address-038.l gas/testsuite/gas/d10v/address-038.s gas/testsuite/gas/d10v/address-039.l gas/testsuite/gas/d10v/address-039.s gas/testsuite/gas/d10v/address-040.l gas/testsuite/gas/d10v/address-040.s gas/testsuite/gas/d10v/address-041.l gas/testsuite/gas/d10v/address-041.s gas/testsuite/gas/d10v/control-001.d gas/testsuite/gas/d10v/control-001.s gas/testsuite/gas/d10v/d10v.exp gas/testsuite/gas/d10v/error-001.d gas/testsuite/gas/d10v/error-001.s gas/testsuite/gas/d10v/error-002.d gas/testsuite/gas/d10v/error-002.s gas/testsuite/gas/d10v/immediate-001.d gas/testsuite/gas/d10v/immediate-001.s gas/testsuite/gas/d10v/immediate-002.d gas/testsuite/gas/d10v/immediate-002.s gas/testsuite/gas/d10v/immediate-003.d gas/testsuite/gas/d10v/immediate-003.s gas/testsuite/gas/d10v/immediate-004.d gas/testsuite/gas/d10v/immediate-004.s gas/testsuite/gas/d10v/immediate-005.d gas/testsuite/gas/d10v/immediate-005.s gas/testsuite/gas/d10v/immediate-006.d gas/testsuite/gas/d10v/immediate-006.s gas/testsuite/gas/d10v/immediate-007.d gas/testsuite/gas/d10v/immediate-007.s gas/testsuite/gas/d10v/inst.d gas/testsuite/gas/d10v/inst.s gas/testsuite/gas/d10v/instruction_packing-001.d gas/testsuite/gas/d10v/instruction_packing-001.s gas/testsuite/gas/d10v/instruction_packing-002.d gas/testsuite/gas/d10v/instruction_packing-002.s gas/testsuite/gas/d10v/instruction_packing-003.d gas/testsuite/gas/d10v/instruction_packing-003.s gas/testsuite/gas/d10v/instruction_packing-004.d gas/testsuite/gas/d10v/instruction_packing-004.s gas/testsuite/gas/d10v/instruction_packing-005.d gas/testsuite/gas/d10v/instruction_packing-005.s gas/testsuite/gas/d10v/instruction_packing-006.d gas/testsuite/gas/d10v/instruction_packing-006.s gas/testsuite/gas/d10v/instruction_packing-007.d gas/testsuite/gas/d10v/instruction_packing-007.s gas/testsuite/gas/d10v/instruction_packing-008.d gas/testsuite/gas/d10v/instruction_packing-009.d gas/testsuite/gas/d10v/instruction_packing-010.d gas/testsuite/gas/d10v/instruction_packing.d gas/testsuite/gas/d10v/instruction_packing.s gas/testsuite/gas/d10v/label-001.d gas/testsuite/gas/d10v/label-001.s gas/testsuite/gas/d10v/warning-001.d gas/testsuite/gas/d10v/warning-001.s gas/testsuite/gas/d10v/warning-002.d gas/testsuite/gas/d10v/warning-002.s gas/testsuite/gas/d10v/warning-003.d gas/testsuite/gas/d10v/warning-003.s gas/testsuite/gas/d10v/warning-004.d gas/testsuite/gas/d10v/warning-004.s gas/testsuite/gas/d10v/warning-005.d gas/testsuite/gas/d10v/warning-005.s gas/testsuite/gas/d10v/warning-006.d gas/testsuite/gas/d10v/warning-006.s gas/testsuite/gas/d10v/warning-007.d gas/testsuite/gas/d10v/warning-007.s gas/testsuite/gas/d10v/warning-008.d gas/testsuite/gas/d10v/warning-008.s gas/testsuite/gas/d10v/warning-009.d gas/testsuite/gas/d10v/warning-009.s gas/testsuite/gas/d10v/warning-010.d gas/testsuite/gas/d10v/warning-010.s gas/testsuite/gas/d10v/warning-011.d gas/testsuite/gas/d10v/warning-011.s gas/testsuite/gas/d10v/warning-012.d gas/testsuite/gas/d10v/warning-012.s gas/testsuite/gas/d10v/warning-013.d gas/testsuite/gas/d10v/warning-013.s gas/testsuite/gas/d10v/warning-014.d gas/testsuite/gas/d10v/warning-014.s gas/testsuite/gas/d10v/warning-015.d gas/testsuite/gas/d10v/warning-016.d gas/testsuite/gas/d10v/warning-016.s gas/testsuite/gas/d10v/warning-017.d gas/testsuite/gas/d10v/warning-017.s gas/testsuite/gas/d10v/warning-018.d gas/testsuite/gas/d10v/warning-018.s gas/testsuite/gas/d10v/warning-019.d gas/testsuite/gas/d10v/warning-019.s gas/testsuite/gas/d30v/align.d gas/testsuite/gas/d30v/align.s gas/testsuite/gas/d30v/array.d gas/testsuite/gas/d30v/array.s gas/testsuite/gas/d30v/bittest.d gas/testsuite/gas/d30v/bittest.l gas/testsuite/gas/d30v/bittest.s gas/testsuite/gas/d30v/d30.exp gas/testsuite/gas/d30v/guard-debug.d gas/testsuite/gas/d30v/guard-debug.s gas/testsuite/gas/d30v/guard.d gas/testsuite/gas/d30v/guard.s gas/testsuite/gas/d30v/inst.d gas/testsuite/gas/d30v/inst.s gas/testsuite/gas/d30v/label-debug.d gas/testsuite/gas/d30v/label-debug.s gas/testsuite/gas/d30v/label.d gas/testsuite/gas/d30v/label.s gas/testsuite/gas/d30v/mul.d gas/testsuite/gas/d30v/mul.s gas/testsuite/gas/d30v/opt.d gas/testsuite/gas/d30v/opt.s gas/testsuite/gas/d30v/reloc.d gas/testsuite/gas/d30v/reloc.s gas/testsuite/gas/d30v/serial.l gas/testsuite/gas/d30v/serial.s gas/testsuite/gas/d30v/serial2.l gas/testsuite/gas/d30v/serial2.s gas/testsuite/gas/d30v/serial2O.l gas/testsuite/gas/d30v/serial2O.s gas/testsuite/gas/d30v/warn_oddreg.l gas/testsuite/gas/d30v/warn_oddreg.s gas/testsuite/gas/dlx/alltests.exp gas/testsuite/gas/dlx/branch.d gas/testsuite/gas/dlx/branch.s gas/testsuite/gas/dlx/itype.d gas/testsuite/gas/dlx/itype.s gas/testsuite/gas/dlx/lhi.d gas/testsuite/gas/dlx/lhi.s gas/testsuite/gas/dlx/load.d gas/testsuite/gas/dlx/load.s gas/testsuite/gas/dlx/lohi.d gas/testsuite/gas/dlx/lohi.s gas/testsuite/gas/dlx/rtype.d gas/testsuite/gas/dlx/rtype.s gas/testsuite/gas/dlx/store.d gas/testsuite/gas/dlx/store.s gas/testsuite/gas/elf/ehopt0.d gas/testsuite/gas/elf/ehopt0.s gas/testsuite/gas/elf/elf.exp gas/testsuite/gas/elf/group0.s gas/testsuite/gas/elf/group0a.d gas/testsuite/gas/elf/group0b.d gas/testsuite/gas/elf/group1.s gas/testsuite/gas/elf/group1a.d gas/testsuite/gas/elf/group1b.d gas/testsuite/gas/elf/redef.d gas/testsuite/gas/elf/redef.s gas/testsuite/gas/elf/section0.d gas/testsuite/gas/elf/section0.s gas/testsuite/gas/elf/section1.d gas/testsuite/gas/elf/section1.s gas/testsuite/gas/elf/section2.e gas/testsuite/gas/elf/section2.e-armeabi gas/testsuite/gas/elf/section2.e-m32r gas/testsuite/gas/elf/section2.e-mips gas/testsuite/gas/elf/section2.e-miwmmxt gas/testsuite/gas/elf/section2.l gas/testsuite/gas/elf/section2.s gas/testsuite/gas/elf/section3.d gas/testsuite/gas/elf/section3.s gas/testsuite/gas/elf/section4.d gas/testsuite/gas/elf/section4.s gas/testsuite/gas/elf/section5.e gas/testsuite/gas/elf/section5.l gas/testsuite/gas/elf/section5.s gas/testsuite/gas/elf/struct.d gas/testsuite/gas/elf/struct.s gas/testsuite/gas/elf/symver.d gas/testsuite/gas/elf/symver.s gas/testsuite/gas/elf/type.e gas/testsuite/gas/elf/type.s gas/testsuite/gas/fr30/allinsn.d gas/testsuite/gas/fr30/allinsn.exp gas/testsuite/gas/fr30/allinsn.s gas/testsuite/gas/fr30/fr30.exp gas/testsuite/gas/frv/allinsn.d gas/testsuite/gas/frv/allinsn.exp gas/testsuite/gas/frv/allinsn.s gas/testsuite/gas/frv/fdpic.d gas/testsuite/gas/frv/fdpic.s gas/testsuite/gas/frv/fr405-insn.d gas/testsuite/gas/frv/fr405-insn.l gas/testsuite/gas/frv/fr405-insn.s gas/testsuite/gas/frv/fr450-insn.d gas/testsuite/gas/frv/fr450-insn.l gas/testsuite/gas/frv/fr450-insn.s gas/testsuite/gas/frv/fr450-media-issue.l gas/testsuite/gas/frv/fr450-media-issue.s gas/testsuite/gas/frv/fr450-spr.d gas/testsuite/gas/frv/fr450-spr.s gas/testsuite/gas/frv/fr550-pack1.d gas/testsuite/gas/frv/fr550-pack1.s gas/testsuite/gas/frv/reloc1.d gas/testsuite/gas/frv/reloc1.s gas/testsuite/gas/h8300/addsub.s gas/testsuite/gas/h8300/addsubh.s gas/testsuite/gas/h8300/addsubrxcheck.s gas/testsuite/gas/h8300/addsubs.s gas/testsuite/gas/h8300/bitops1.s gas/testsuite/gas/h8300/bitops1h.s gas/testsuite/gas/h8300/bitops1s.s gas/testsuite/gas/h8300/bitops2.s gas/testsuite/gas/h8300/bitops2h.s gas/testsuite/gas/h8300/bitops2s.s gas/testsuite/gas/h8300/bitops3.s gas/testsuite/gas/h8300/bitops3h.s gas/testsuite/gas/h8300/bitops3s.s gas/testsuite/gas/h8300/bitops4.s gas/testsuite/gas/h8300/bitops4h.s gas/testsuite/gas/h8300/bitops4s.s gas/testsuite/gas/h8300/branch-coff.s gas/testsuite/gas/h8300/branch-elf.s gas/testsuite/gas/h8300/branchh-coff.s gas/testsuite/gas/h8300/branchh-elf.s gas/testsuite/gas/h8300/branchs-coff.s gas/testsuite/gas/h8300/branchs-elf.s gas/testsuite/gas/h8300/cbranch.s gas/testsuite/gas/h8300/cbranchh.s gas/testsuite/gas/h8300/cbranchs.s gas/testsuite/gas/h8300/cmpsi2.s gas/testsuite/gas/h8300/compare.s gas/testsuite/gas/h8300/compareh.s gas/testsuite/gas/h8300/compares.s gas/testsuite/gas/h8300/decimal.s gas/testsuite/gas/h8300/decimalh.s gas/testsuite/gas/h8300/decimals.s gas/testsuite/gas/h8300/divmul.s gas/testsuite/gas/h8300/divmulh.s gas/testsuite/gas/h8300/divmuls.s gas/testsuite/gas/h8300/extendh.s gas/testsuite/gas/h8300/extends.s gas/testsuite/gas/h8300/ffxx1-coff.d gas/testsuite/gas/h8300/ffxx1-coff.s gas/testsuite/gas/h8300/ffxx1-elf.d gas/testsuite/gas/h8300/ffxx1-elf.s gas/testsuite/gas/h8300/h8300-coff.exp gas/testsuite/gas/h8300/h8300-elf.exp gas/testsuite/gas/h8300/h8300.exp gas/testsuite/gas/h8300/h8sx_disp2.d gas/testsuite/gas/h8300/h8sx_disp2.s gas/testsuite/gas/h8300/h8sx_mov_imm.d gas/testsuite/gas/h8300/h8sx_mov_imm.s gas/testsuite/gas/h8300/h8sx_rtsl.d gas/testsuite/gas/h8300/h8sx_rtsl.s gas/testsuite/gas/h8300/incdec.s gas/testsuite/gas/h8300/incdech.s gas/testsuite/gas/h8300/incdecs.s gas/testsuite/gas/h8300/logical.s gas/testsuite/gas/h8300/logicalh.s gas/testsuite/gas/h8300/logicals.s gas/testsuite/gas/h8300/macs.s gas/testsuite/gas/h8300/misc.s gas/testsuite/gas/h8300/misch.s gas/testsuite/gas/h8300/miscs.s gas/testsuite/gas/h8300/mov32bug.s gas/testsuite/gas/h8300/movb.s gas/testsuite/gas/h8300/movbh.s gas/testsuite/gas/h8300/movbs.s gas/testsuite/gas/h8300/movlh.s gas/testsuite/gas/h8300/movls.s gas/testsuite/gas/h8300/movw.s gas/testsuite/gas/h8300/movwh.s gas/testsuite/gas/h8300/movws.s gas/testsuite/gas/h8300/multiples.s gas/testsuite/gas/h8300/pushpop.s gas/testsuite/gas/h8300/pushpoph.s gas/testsuite/gas/h8300/pushpops.s gas/testsuite/gas/h8300/rotsh.s gas/testsuite/gas/h8300/rotshh.s gas/testsuite/gas/h8300/rotshs.s gas/testsuite/gas/h8300/symaddgen.s gas/testsuite/gas/h8300/t01_mov.exp gas/testsuite/gas/h8300/t01_mov.s gas/testsuite/gas/h8300/t02_mova.exp gas/testsuite/gas/h8300/t02_mova.s gas/testsuite/gas/h8300/t03_add.exp gas/testsuite/gas/h8300/t03_add.s gas/testsuite/gas/h8300/t04_sub.exp gas/testsuite/gas/h8300/t04_sub.s gas/testsuite/gas/h8300/t05_cmp.exp gas/testsuite/gas/h8300/t05_cmp.s gas/testsuite/gas/h8300/t06_ari2.exp gas/testsuite/gas/h8300/t06_ari2.s gas/testsuite/gas/h8300/t07_ari3.exp gas/testsuite/gas/h8300/t07_ari3.s gas/testsuite/gas/h8300/t08_or.exp gas/testsuite/gas/h8300/t08_or.s gas/testsuite/gas/h8300/t09_xor.exp gas/testsuite/gas/h8300/t09_xor.s gas/testsuite/gas/h8300/t10_and.exp gas/testsuite/gas/h8300/t10_and.s gas/testsuite/gas/h8300/t11_logs.exp gas/testsuite/gas/h8300/t11_logs.s gas/testsuite/gas/h8300/t12_bit.exp gas/testsuite/gas/h8300/t12_bit.s gas/testsuite/gas/h8300/t13_otr.exp gas/testsuite/gas/h8300/t13_otr.s gas/testsuite/gas/hppa/README gas/testsuite/gas/hppa/basic/add.s gas/testsuite/gas/hppa/basic/add2.s gas/testsuite/gas/hppa/basic/addi.s gas/testsuite/gas/hppa/basic/basic.exp gas/testsuite/gas/hppa/basic/branch.s gas/testsuite/gas/hppa/basic/branch2.s gas/testsuite/gas/hppa/basic/comclr.s gas/testsuite/gas/hppa/basic/copr.s gas/testsuite/gas/hppa/basic/coprmem.s gas/testsuite/gas/hppa/basic/dcor.s gas/testsuite/gas/hppa/basic/dcor2.s gas/testsuite/gas/hppa/basic/deposit.s gas/testsuite/gas/hppa/basic/deposit2.s gas/testsuite/gas/hppa/basic/deposit3.s gas/testsuite/gas/hppa/basic/ds.s gas/testsuite/gas/hppa/basic/extract.s gas/testsuite/gas/hppa/basic/extract2.s gas/testsuite/gas/hppa/basic/extract3.s gas/testsuite/gas/hppa/basic/fmem.s gas/testsuite/gas/hppa/basic/fmemLRbug.s gas/testsuite/gas/hppa/basic/fp_comp.s gas/testsuite/gas/hppa/basic/fp_comp2.s gas/testsuite/gas/hppa/basic/fp_conv.s gas/testsuite/gas/hppa/basic/fp_fcmp.s gas/testsuite/gas/hppa/basic/fp_misc.s gas/testsuite/gas/hppa/basic/imem.s gas/testsuite/gas/hppa/basic/immed.s gas/testsuite/gas/hppa/basic/logical.s gas/testsuite/gas/hppa/basic/media.s gas/testsuite/gas/hppa/basic/perf.s gas/testsuite/gas/hppa/basic/purge.s gas/testsuite/gas/hppa/basic/purge2.s gas/testsuite/gas/hppa/basic/sh1add.s gas/testsuite/gas/hppa/basic/sh2add.s gas/testsuite/gas/hppa/basic/sh3add.s gas/testsuite/gas/hppa/basic/shift.s gas/testsuite/gas/hppa/basic/shift2.s gas/testsuite/gas/hppa/basic/shift3.s gas/testsuite/gas/hppa/basic/shladd.s gas/testsuite/gas/hppa/basic/shladd2.s gas/testsuite/gas/hppa/basic/special.s gas/testsuite/gas/hppa/basic/spop.s gas/testsuite/gas/hppa/basic/sub.s gas/testsuite/gas/hppa/basic/sub2.s gas/testsuite/gas/hppa/basic/subi.s gas/testsuite/gas/hppa/basic/system.s gas/testsuite/gas/hppa/basic/system2.s gas/testsuite/gas/hppa/basic/unit.s gas/testsuite/gas/hppa/basic/unit2.s gas/testsuite/gas/hppa/basic/weird.s gas/testsuite/gas/hppa/parse/align1.s gas/testsuite/gas/hppa/parse/align2.s gas/testsuite/gas/hppa/parse/appbug.s gas/testsuite/gas/hppa/parse/badfmpyadd.s gas/testsuite/gas/hppa/parse/block1.s gas/testsuite/gas/hppa/parse/block2.s gas/testsuite/gas/hppa/parse/calldatabug.s gas/testsuite/gas/hppa/parse/callinfobug.s gas/testsuite/gas/hppa/parse/defbug.s gas/testsuite/gas/hppa/parse/entrybug.s gas/testsuite/gas/hppa/parse/exportbug.s gas/testsuite/gas/hppa/parse/exprbug.s gas/testsuite/gas/hppa/parse/fixup7bug.s gas/testsuite/gas/hppa/parse/global.s gas/testsuite/gas/hppa/parse/labelbug.s gas/testsuite/gas/hppa/parse/linesepbug.s gas/testsuite/gas/hppa/parse/lselbug.s gas/testsuite/gas/hppa/parse/nosubspace.s gas/testsuite/gas/hppa/parse/parse.exp gas/testsuite/gas/hppa/parse/procbug.s gas/testsuite/gas/hppa/parse/regpopbug.s gas/testsuite/gas/hppa/parse/space.s gas/testsuite/gas/hppa/parse/spacebug.s gas/testsuite/gas/hppa/parse/ssbug.s gas/testsuite/gas/hppa/parse/stdreg.s gas/testsuite/gas/hppa/parse/stringer.s gas/testsuite/gas/hppa/parse/undefbug.s gas/testsuite/gas/hppa/parse/versionbug.s gas/testsuite/gas/hppa/parse/xmpyubug.s gas/testsuite/gas/hppa/reloc/applybug.s gas/testsuite/gas/hppa/reloc/blebug.s gas/testsuite/gas/hppa/reloc/blebug2.s gas/testsuite/gas/hppa/reloc/blebug3.s gas/testsuite/gas/hppa/reloc/exitbug.s gas/testsuite/gas/hppa/reloc/fixupbug.s gas/testsuite/gas/hppa/reloc/funcrelocbug.s gas/testsuite/gas/hppa/reloc/labelopbug.s gas/testsuite/gas/hppa/reloc/longcall.s gas/testsuite/gas/hppa/reloc/picreloc.s gas/testsuite/gas/hppa/reloc/plabelbug.s gas/testsuite/gas/hppa/reloc/r_no_reloc.s gas/testsuite/gas/hppa/reloc/reduce.s gas/testsuite/gas/hppa/reloc/reduce2.s gas/testsuite/gas/hppa/reloc/reduce3.s gas/testsuite/gas/hppa/reloc/reloc.exp gas/testsuite/gas/hppa/reloc/roundmode.s gas/testsuite/gas/hppa/reloc/selectorbug.s gas/testsuite/gas/hppa/unsorted/align3.s gas/testsuite/gas/hppa/unsorted/align4.s gas/testsuite/gas/hppa/unsorted/brlenbug.s gas/testsuite/gas/hppa/unsorted/common.s gas/testsuite/gas/hppa/unsorted/fragbug.s gas/testsuite/gas/hppa/unsorted/globalbug.s gas/testsuite/gas/hppa/unsorted/importbug.s gas/testsuite/gas/hppa/unsorted/labeldiffs.s gas/testsuite/gas/hppa/unsorted/locallabel.s gas/testsuite/gas/hppa/unsorted/ss_align.s gas/testsuite/gas/hppa/unsorted/unsorted.exp gas/testsuite/gas/i386/absrel.d gas/testsuite/gas/i386/absrel.s gas/testsuite/gas/i386/amd.d gas/testsuite/gas/i386/amd.s gas/testsuite/gas/i386/amdfam10.d gas/testsuite/gas/i386/amdfam10.s gas/testsuite/gas/i386/bss.d gas/testsuite/gas/i386/bss.s gas/testsuite/gas/i386/cr-err.l gas/testsuite/gas/i386/cr-err.s gas/testsuite/gas/i386/crx.d gas/testsuite/gas/i386/crx.s gas/testsuite/gas/i386/divide.d gas/testsuite/gas/i386/divide.s gas/testsuite/gas/i386/equ.d gas/testsuite/gas/i386/equ.e gas/testsuite/gas/i386/equ.s gas/testsuite/gas/i386/float.l gas/testsuite/gas/i386/float.s gas/testsuite/gas/i386/fp.d gas/testsuite/gas/i386/fp.s gas/testsuite/gas/i386/general.l gas/testsuite/gas/i386/general.s gas/testsuite/gas/i386/gotpc.d gas/testsuite/gas/i386/gotpc.s gas/testsuite/gas/i386/i386.exp gas/testsuite/gas/i386/immed32.d gas/testsuite/gas/i386/immed32.s gas/testsuite/gas/i386/immed64.d gas/testsuite/gas/i386/immed64.s gas/testsuite/gas/i386/intel.d gas/testsuite/gas/i386/intel.e gas/testsuite/gas/i386/intel.s gas/testsuite/gas/i386/intel16.d gas/testsuite/gas/i386/intel16.e gas/testsuite/gas/i386/intel16.s gas/testsuite/gas/i386/intelbad.l gas/testsuite/gas/i386/intelbad.s gas/testsuite/gas/i386/intelok.d gas/testsuite/gas/i386/intelok.e gas/testsuite/gas/i386/intelok.s gas/testsuite/gas/i386/intelpic.d gas/testsuite/gas/i386/intelpic.s gas/testsuite/gas/i386/inval-seg.l gas/testsuite/gas/i386/inval-seg.s gas/testsuite/gas/i386/inval.l gas/testsuite/gas/i386/inval.s gas/testsuite/gas/i386/jump.d gas/testsuite/gas/i386/jump.s gas/testsuite/gas/i386/jump16.d gas/testsuite/gas/i386/jump16.s gas/testsuite/gas/i386/katmai.d gas/testsuite/gas/i386/katmai.s gas/testsuite/gas/i386/merom.d gas/testsuite/gas/i386/merom.s gas/testsuite/gas/i386/mixed-mode-reloc.s gas/testsuite/gas/i386/mixed-mode-reloc32.d gas/testsuite/gas/i386/mixed-mode-reloc64.d gas/testsuite/gas/i386/modrm.l gas/testsuite/gas/i386/modrm.s gas/testsuite/gas/i386/naked.d gas/testsuite/gas/i386/naked.s gas/testsuite/gas/i386/nops-1-i386.d gas/testsuite/gas/i386/nops-1-i686.d gas/testsuite/gas/i386/nops-1-merom.d gas/testsuite/gas/i386/nops-1.d gas/testsuite/gas/i386/nops-1.s gas/testsuite/gas/i386/nops-2-i386.d gas/testsuite/gas/i386/nops-2-merom.d gas/testsuite/gas/i386/nops-2.d gas/testsuite/gas/i386/nops-2.s gas/testsuite/gas/i386/nops.d gas/testsuite/gas/i386/nops.s gas/testsuite/gas/i386/opcode.d gas/testsuite/gas/i386/opcode.s gas/testsuite/gas/i386/padlock.d gas/testsuite/gas/i386/padlock.s gas/testsuite/gas/i386/pcrel.d gas/testsuite/gas/i386/pcrel.s gas/testsuite/gas/i386/prefix.d gas/testsuite/gas/i386/prefix.s gas/testsuite/gas/i386/prescott.d gas/testsuite/gas/i386/prescott.s gas/testsuite/gas/i386/relax.d gas/testsuite/gas/i386/relax.s gas/testsuite/gas/i386/reloc.d gas/testsuite/gas/i386/reloc.s gas/testsuite/gas/i386/reloc32.d gas/testsuite/gas/i386/reloc32.l gas/testsuite/gas/i386/reloc32.s gas/testsuite/gas/i386/reloc64.d gas/testsuite/gas/i386/reloc64.l gas/testsuite/gas/i386/reloc64.s gas/testsuite/gas/i386/rep-suffix.d gas/testsuite/gas/i386/rep-suffix.s gas/testsuite/gas/i386/rep.d gas/testsuite/gas/i386/rep.s gas/testsuite/gas/i386/rex.d gas/testsuite/gas/i386/rex.s gas/testsuite/gas/i386/secrel.d gas/testsuite/gas/i386/secrel.s gas/testsuite/gas/i386/segment.l gas/testsuite/gas/i386/segment.s gas/testsuite/gas/i386/sib.d gas/testsuite/gas/i386/sib.s gas/testsuite/gas/i386/sse2.d gas/testsuite/gas/i386/sse2.s gas/testsuite/gas/i386/ssemmx2.d gas/testsuite/gas/i386/ssemmx2.s gas/testsuite/gas/i386/sub.d gas/testsuite/gas/i386/sub.s gas/testsuite/gas/i386/suffix.d gas/testsuite/gas/i386/suffix.s gas/testsuite/gas/i386/svme.d gas/testsuite/gas/i386/svme.s gas/testsuite/gas/i386/svme64.d gas/testsuite/gas/i386/tlsd.d gas/testsuite/gas/i386/tlsd.s gas/testsuite/gas/i386/tlsnopic.d gas/testsuite/gas/i386/tlsnopic.s gas/testsuite/gas/i386/tlspic.d gas/testsuite/gas/i386/tlspic.s gas/testsuite/gas/i386/vmx.d gas/testsuite/gas/i386/vmx.s gas/testsuite/gas/i386/white.l gas/testsuite/gas/i386/white.s gas/testsuite/gas/i386/x86-64-addr32.d gas/testsuite/gas/i386/x86-64-addr32.s gas/testsuite/gas/i386/x86-64-amdfam10.d gas/testsuite/gas/i386/x86-64-amdfam10.s gas/testsuite/gas/i386/x86-64-branch.d gas/testsuite/gas/i386/x86-64-branch.s gas/testsuite/gas/i386/x86-64-crx-suffix.d gas/testsuite/gas/i386/x86-64-crx.d gas/testsuite/gas/i386/x86-64-crx.s gas/testsuite/gas/i386/x86-64-drx-suffix.d gas/testsuite/gas/i386/x86-64-drx.d gas/testsuite/gas/i386/x86-64-drx.s gas/testsuite/gas/i386/x86-64-gidt.d gas/testsuite/gas/i386/x86-64-gidt.s gas/testsuite/gas/i386/x86-64-inval-seg.l gas/testsuite/gas/i386/x86-64-inval-seg.s gas/testsuite/gas/i386/x86-64-inval.l gas/testsuite/gas/i386/x86-64-inval.s gas/testsuite/gas/i386/x86-64-merom.d gas/testsuite/gas/i386/x86-64-merom.s gas/testsuite/gas/i386/x86-64-nops-1-k8.d gas/testsuite/gas/i386/x86-64-nops-1-merom.d gas/testsuite/gas/i386/x86-64-nops-1-nocona.d gas/testsuite/gas/i386/x86-64-nops-1.d gas/testsuite/gas/i386/x86-64-nops-1.s gas/testsuite/gas/i386/x86-64-nops.d gas/testsuite/gas/i386/x86-64-nops.s gas/testsuite/gas/i386/x86-64-opcode.d gas/testsuite/gas/i386/x86-64-opcode.s gas/testsuite/gas/i386/x86-64-pcrel.d gas/testsuite/gas/i386/x86-64-pcrel.s gas/testsuite/gas/i386/x86-64-prescott.d gas/testsuite/gas/i386/x86-64-prescott.s gas/testsuite/gas/i386/x86-64-rep-suffix.d gas/testsuite/gas/i386/x86-64-rep-suffix.s gas/testsuite/gas/i386/x86-64-rep.d gas/testsuite/gas/i386/x86-64-rep.s gas/testsuite/gas/i386/x86-64-rip.d gas/testsuite/gas/i386/x86-64-rip.s gas/testsuite/gas/i386/x86-64-segment.l gas/testsuite/gas/i386/x86-64-segment.s gas/testsuite/gas/i386/x86-64-stack-intel.d gas/testsuite/gas/i386/x86-64-stack-suffix.d gas/testsuite/gas/i386/x86-64-stack.d gas/testsuite/gas/i386/x86-64-stack.s gas/testsuite/gas/i386/x86-64-unwind.d gas/testsuite/gas/i386/x86-64-unwind.s gas/testsuite/gas/i386/x86-64-vmx.d gas/testsuite/gas/i386/x86-64-vmx.s gas/testsuite/gas/i386/x86_64.d gas/testsuite/gas/i386/x86_64.e gas/testsuite/gas/i386/x86_64.s gas/testsuite/gas/i860/README.i860 gas/testsuite/gas/i860/bitwise.d gas/testsuite/gas/i860/bitwise.s gas/testsuite/gas/i860/branch.d gas/testsuite/gas/i860/branch.s gas/testsuite/gas/i860/bte.d gas/testsuite/gas/i860/bte.s gas/testsuite/gas/i860/dir-align01.d gas/testsuite/gas/i860/dir-align01.s gas/testsuite/gas/i860/dir-intel01.d gas/testsuite/gas/i860/dir-intel01.s gas/testsuite/gas/i860/dir-intel02.d gas/testsuite/gas/i860/dir-intel02.s gas/testsuite/gas/i860/dir-intel03-err.l gas/testsuite/gas/i860/dir-intel03-err.s gas/testsuite/gas/i860/dual01.d gas/testsuite/gas/i860/dual01.s gas/testsuite/gas/i860/dual02-err.l gas/testsuite/gas/i860/dual02-err.s gas/testsuite/gas/i860/dual03.d gas/testsuite/gas/i860/dual03.s gas/testsuite/gas/i860/fldst01.d gas/testsuite/gas/i860/fldst01.s gas/testsuite/gas/i860/fldst02.d gas/testsuite/gas/i860/fldst02.s gas/testsuite/gas/i860/fldst03.d gas/testsuite/gas/i860/fldst03.s gas/testsuite/gas/i860/fldst04.d gas/testsuite/gas/i860/fldst04.s gas/testsuite/gas/i860/fldst05.d gas/testsuite/gas/i860/fldst05.s gas/testsuite/gas/i860/fldst06.d gas/testsuite/gas/i860/fldst06.s gas/testsuite/gas/i860/fldst07.d gas/testsuite/gas/i860/fldst07.s gas/testsuite/gas/i860/fldst08.d gas/testsuite/gas/i860/fldst08.s gas/testsuite/gas/i860/float01.d gas/testsuite/gas/i860/float01.s gas/testsuite/gas/i860/float02.d gas/testsuite/gas/i860/float02.s gas/testsuite/gas/i860/float03.d gas/testsuite/gas/i860/float03.s gas/testsuite/gas/i860/float04.d gas/testsuite/gas/i860/float04.s gas/testsuite/gas/i860/form.d gas/testsuite/gas/i860/form.s gas/testsuite/gas/i860/i860.exp gas/testsuite/gas/i860/iarith.d gas/testsuite/gas/i860/iarith.s gas/testsuite/gas/i860/ldst01.d gas/testsuite/gas/i860/ldst01.s gas/testsuite/gas/i860/ldst02.d gas/testsuite/gas/i860/ldst02.s gas/testsuite/gas/i860/ldst03.d gas/testsuite/gas/i860/ldst03.s gas/testsuite/gas/i860/ldst04.d gas/testsuite/gas/i860/ldst04.s gas/testsuite/gas/i860/ldst05.d gas/testsuite/gas/i860/ldst05.s gas/testsuite/gas/i860/ldst06.d gas/testsuite/gas/i860/ldst06.s gas/testsuite/gas/i860/pfam.d gas/testsuite/gas/i860/pfam.s gas/testsuite/gas/i860/pfmam.d gas/testsuite/gas/i860/pfmam.s gas/testsuite/gas/i860/pfmsm.d gas/testsuite/gas/i860/pfmsm.s gas/testsuite/gas/i860/pfsm.d gas/testsuite/gas/i860/pfsm.s gas/testsuite/gas/i860/pseudo-ops01.d gas/testsuite/gas/i860/pseudo-ops01.s gas/testsuite/gas/i860/regress01.d gas/testsuite/gas/i860/regress01.s gas/testsuite/gas/i860/shift.d gas/testsuite/gas/i860/shift.s gas/testsuite/gas/i860/simd.d gas/testsuite/gas/i860/simd.s gas/testsuite/gas/i860/system.d gas/testsuite/gas/i860/system.s gas/testsuite/gas/i860/xp.d gas/testsuite/gas/i860/xp.s gas/testsuite/gas/ia64/alias-ilp32.d gas/testsuite/gas/ia64/alias.d gas/testsuite/gas/ia64/alias.s gas/testsuite/gas/ia64/align.d gas/testsuite/gas/ia64/align.s gas/testsuite/gas/ia64/alloc.l gas/testsuite/gas/ia64/alloc.s gas/testsuite/gas/ia64/bundling.d gas/testsuite/gas/ia64/bundling.s gas/testsuite/gas/ia64/dependency-1.d gas/testsuite/gas/ia64/dependency-1.s gas/testsuite/gas/ia64/dv-branch.d gas/testsuite/gas/ia64/dv-branch.s gas/testsuite/gas/ia64/dv-entry-err.l gas/testsuite/gas/ia64/dv-entry-err.s gas/testsuite/gas/ia64/dv-imply.d gas/testsuite/gas/ia64/dv-imply.s gas/testsuite/gas/ia64/dv-mutex-err.l gas/testsuite/gas/ia64/dv-mutex-err.s gas/testsuite/gas/ia64/dv-mutex.d gas/testsuite/gas/ia64/dv-mutex.s gas/testsuite/gas/ia64/dv-raw-err.l gas/testsuite/gas/ia64/dv-raw-err.s gas/testsuite/gas/ia64/dv-safe.d gas/testsuite/gas/ia64/dv-safe.s gas/testsuite/gas/ia64/dv-srlz.d gas/testsuite/gas/ia64/dv-srlz.s gas/testsuite/gas/ia64/dv-war-err.l gas/testsuite/gas/ia64/dv-war-err.s gas/testsuite/gas/ia64/dv-waw-err.l gas/testsuite/gas/ia64/dv-waw-err.s gas/testsuite/gas/ia64/fixup-dump.pl gas/testsuite/gas/ia64/forward.d gas/testsuite/gas/ia64/forward.s gas/testsuite/gas/ia64/global.d gas/testsuite/gas/ia64/global.s gas/testsuite/gas/ia64/group-1.d gas/testsuite/gas/ia64/group-1.s gas/testsuite/gas/ia64/group-2.d gas/testsuite/gas/ia64/group-2.s gas/testsuite/gas/ia64/hint.b-err.l gas/testsuite/gas/ia64/hint.b-err.s gas/testsuite/gas/ia64/hint.b-warn.l gas/testsuite/gas/ia64/hint.b-warn.s gas/testsuite/gas/ia64/ia64.exp gas/testsuite/gas/ia64/index.l gas/testsuite/gas/ia64/index.s gas/testsuite/gas/ia64/invalid-ar.l gas/testsuite/gas/ia64/invalid-ar.s gas/testsuite/gas/ia64/label.l gas/testsuite/gas/ia64/label.s gas/testsuite/gas/ia64/last.l gas/testsuite/gas/ia64/last.s gas/testsuite/gas/ia64/ldxmov-1.d gas/testsuite/gas/ia64/ldxmov-1.s gas/testsuite/gas/ia64/ldxmov-2.l gas/testsuite/gas/ia64/ldxmov-2.s gas/testsuite/gas/ia64/ltoff22x-1.d gas/testsuite/gas/ia64/ltoff22x-1.s gas/testsuite/gas/ia64/ltoff22x-2.d gas/testsuite/gas/ia64/ltoff22x-2.s gas/testsuite/gas/ia64/ltoff22x-3.d gas/testsuite/gas/ia64/ltoff22x-3.s gas/testsuite/gas/ia64/ltoff22x-4.d gas/testsuite/gas/ia64/ltoff22x-4.s gas/testsuite/gas/ia64/ltoff22x-5.d gas/testsuite/gas/ia64/ltoff22x-5.s gas/testsuite/gas/ia64/mov-ar.d gas/testsuite/gas/ia64/mov-ar.s gas/testsuite/gas/ia64/no-fit.l gas/testsuite/gas/ia64/no-fit.s gas/testsuite/gas/ia64/nop_x.d gas/testsuite/gas/ia64/nop_x.s gas/testsuite/gas/ia64/nostkreg.d gas/testsuite/gas/ia64/nostkreg.s gas/testsuite/gas/ia64/opc-a-err.l gas/testsuite/gas/ia64/opc-a-err.s gas/testsuite/gas/ia64/opc-a.d gas/testsuite/gas/ia64/opc-a.pl gas/testsuite/gas/ia64/opc-a.s gas/testsuite/gas/ia64/opc-b.d gas/testsuite/gas/ia64/opc-b.pl gas/testsuite/gas/ia64/opc-b.s gas/testsuite/gas/ia64/opc-f.d gas/testsuite/gas/ia64/opc-f.pl gas/testsuite/gas/ia64/opc-f.s gas/testsuite/gas/ia64/opc-i.d gas/testsuite/gas/ia64/opc-i.pl gas/testsuite/gas/ia64/opc-i.s gas/testsuite/gas/ia64/opc-m.d gas/testsuite/gas/ia64/opc-m.pl gas/testsuite/gas/ia64/opc-m.s gas/testsuite/gas/ia64/opc-x.d gas/testsuite/gas/ia64/opc-x.s gas/testsuite/gas/ia64/operand-or.d gas/testsuite/gas/ia64/operand-or.s gas/testsuite/gas/ia64/operands.l gas/testsuite/gas/ia64/operands.s gas/testsuite/gas/ia64/order.d gas/testsuite/gas/ia64/order.s gas/testsuite/gas/ia64/pcrel.d gas/testsuite/gas/ia64/pcrel.s gas/testsuite/gas/ia64/pound.l gas/testsuite/gas/ia64/pound.s gas/testsuite/gas/ia64/pred-rel.s gas/testsuite/gas/ia64/proc.l gas/testsuite/gas/ia64/proc.s gas/testsuite/gas/ia64/pseudo.d gas/testsuite/gas/ia64/pseudo.s gas/testsuite/gas/ia64/radix.l gas/testsuite/gas/ia64/radix.s gas/testsuite/gas/ia64/real.d gas/testsuite/gas/ia64/real.s gas/testsuite/gas/ia64/reg-err.l gas/testsuite/gas/ia64/reg-err.s gas/testsuite/gas/ia64/regs.d gas/testsuite/gas/ia64/regs.pl gas/testsuite/gas/ia64/regs.s gas/testsuite/gas/ia64/regval.l gas/testsuite/gas/ia64/regval.s gas/testsuite/gas/ia64/reloc-bad.l gas/testsuite/gas/ia64/reloc-bad.s gas/testsuite/gas/ia64/reloc-uw-ilp32.d gas/testsuite/gas/ia64/reloc-uw.d gas/testsuite/gas/ia64/reloc-uw.s gas/testsuite/gas/ia64/reloc.d gas/testsuite/gas/ia64/reloc.s gas/testsuite/gas/ia64/rotX.l gas/testsuite/gas/ia64/rotX.s gas/testsuite/gas/ia64/secname-ilp32.d gas/testsuite/gas/ia64/secname.d gas/testsuite/gas/ia64/secname.s gas/testsuite/gas/ia64/slot2.l gas/testsuite/gas/ia64/slot2.s gas/testsuite/gas/ia64/strange.d gas/testsuite/gas/ia64/strange.s gas/testsuite/gas/ia64/tls.d gas/testsuite/gas/ia64/tls.s gas/testsuite/gas/ia64/unwind-bad.l gas/testsuite/gas/ia64/unwind-bad.s gas/testsuite/gas/ia64/unwind-err.l gas/testsuite/gas/ia64/unwind-err.s gas/testsuite/gas/ia64/unwind-ilp32.d gas/testsuite/gas/ia64/unwind-ok.d gas/testsuite/gas/ia64/unwind-ok.s gas/testsuite/gas/ia64/unwind.d gas/testsuite/gas/ia64/unwind.s gas/testsuite/gas/ia64/xdata-ilp32.d gas/testsuite/gas/ia64/xdata.d gas/testsuite/gas/ia64/xdata.s gas/testsuite/gas/ieee-fp/x930509a.exp gas/testsuite/gas/ieee-fp/x930509a.s gas/testsuite/gas/iq2000/allinsn.d gas/testsuite/gas/iq2000/allinsn.exp gas/testsuite/gas/iq2000/allinsn.s gas/testsuite/gas/iq2000/hazard0.s gas/testsuite/gas/iq2000/hazard1.s gas/testsuite/gas/iq2000/hazard2.s gas/testsuite/gas/iq2000/hazard3.s gas/testsuite/gas/iq2000/hazard4.s gas/testsuite/gas/iq2000/hazard5.s gas/testsuite/gas/iq2000/load-hazards.exp gas/testsuite/gas/iq2000/nohazard.s gas/testsuite/gas/iq2000/noyield.s gas/testsuite/gas/iq2000/odd-ldw.exp gas/testsuite/gas/iq2000/odd-sdw.exp gas/testsuite/gas/iq2000/oddldw.s gas/testsuite/gas/iq2000/oddsdw.s gas/testsuite/gas/iq2000/yield.exp gas/testsuite/gas/iq2000/yield0.s gas/testsuite/gas/iq2000/yield1.s gas/testsuite/gas/iq2000/yield2.s gas/testsuite/gas/lns/lns-common-1.d gas/testsuite/gas/lns/lns-common-1.s gas/testsuite/gas/lns/lns-diag-1.l gas/testsuite/gas/lns/lns-diag-1.s gas/testsuite/gas/lns/lns.exp gas/testsuite/gas/m32r/allinsn.d gas/testsuite/gas/m32r/allinsn.exp gas/testsuite/gas/m32r/allinsn.s gas/testsuite/gas/m32r/error.exp gas/testsuite/gas/m32r/fslot.d gas/testsuite/gas/m32r/fslot.s gas/testsuite/gas/m32r/fslotx.d gas/testsuite/gas/m32r/fslotx.s gas/testsuite/gas/m32r/high-1.d gas/testsuite/gas/m32r/high-1.s gas/testsuite/gas/m32r/interfere.s gas/testsuite/gas/m32r/m32r.exp gas/testsuite/gas/m32r/m32r2.d gas/testsuite/gas/m32r/m32r2.exp gas/testsuite/gas/m32r/m32r2.s gas/testsuite/gas/m32r/m32rx.d gas/testsuite/gas/m32r/m32rx.exp gas/testsuite/gas/m32r/m32rx.s gas/testsuite/gas/m32r/outofrange.s gas/testsuite/gas/m32r/parallel-2.d gas/testsuite/gas/m32r/parallel-2.s gas/testsuite/gas/m32r/parallel.s gas/testsuite/gas/m32r/pic.d gas/testsuite/gas/m32r/pic.exp gas/testsuite/gas/m32r/pic.s gas/testsuite/gas/m32r/pic2.d gas/testsuite/gas/m32r/pic2.s gas/testsuite/gas/m32r/rel32-err.s gas/testsuite/gas/m32r/rel32-pic.d gas/testsuite/gas/m32r/rel32-pic.s gas/testsuite/gas/m32r/rel32.d gas/testsuite/gas/m32r/rel32.exp gas/testsuite/gas/m32r/rel32.s gas/testsuite/gas/m32r/rela-1.d gas/testsuite/gas/m32r/rela-1.s gas/testsuite/gas/m32r/relax-1.d gas/testsuite/gas/m32r/relax-1.s gas/testsuite/gas/m32r/relax-2.d gas/testsuite/gas/m32r/relax-2.s gas/testsuite/gas/m32r/seth.d gas/testsuite/gas/m32r/seth.s gas/testsuite/gas/m32r/signed-relocs.d gas/testsuite/gas/m32r/signed-relocs.s gas/testsuite/gas/m32r/uppercase.d gas/testsuite/gas/m32r/uppercase.s gas/testsuite/gas/m32r/wrongsize.s gas/testsuite/gas/m68hc11/abi-m68hc11-16-32.d gas/testsuite/gas/m68hc11/abi-m68hc11-16-64.d gas/testsuite/gas/m68hc11/abi-m68hc11-32-32.d gas/testsuite/gas/m68hc11/abi-m68hc11-32-64.d gas/testsuite/gas/m68hc11/abi.s gas/testsuite/gas/m68hc11/all_insns.d gas/testsuite/gas/m68hc11/all_insns.s gas/testsuite/gas/m68hc11/branchs12.d gas/testsuite/gas/m68hc11/branchs12.s gas/testsuite/gas/m68hc11/bug-1825.d gas/testsuite/gas/m68hc11/bug-1825.s gas/testsuite/gas/m68hc11/indexed12.d gas/testsuite/gas/m68hc11/indexed12.s gas/testsuite/gas/m68hc11/insns-dwarf2.d gas/testsuite/gas/m68hc11/insns.d gas/testsuite/gas/m68hc11/insns.s gas/testsuite/gas/m68hc11/insns12.d gas/testsuite/gas/m68hc11/insns12.s gas/testsuite/gas/m68hc11/lbranch-dwarf2.d gas/testsuite/gas/m68hc11/lbranch.d gas/testsuite/gas/m68hc11/lbranch.s gas/testsuite/gas/m68hc11/m68hc11.exp gas/testsuite/gas/m68hc11/malis-include.s gas/testsuite/gas/m68hc11/malis.d gas/testsuite/gas/m68hc11/malis.s gas/testsuite/gas/m68hc11/movb.d gas/testsuite/gas/m68hc11/movb.s gas/testsuite/gas/m68hc11/opers12-dwarf2.d gas/testsuite/gas/m68hc11/opers12.d gas/testsuite/gas/m68hc11/opers12.s gas/testsuite/gas/m68k-coff/gas.exp gas/testsuite/gas/m68k-coff/p2389.s gas/testsuite/gas/m68k-coff/p2389a.s gas/testsuite/gas/m68k-coff/p2430.s gas/testsuite/gas/m68k-coff/p2430a.s gas/testsuite/gas/m68k-coff/t1.s gas/testsuite/gas/m68k/all.exp gas/testsuite/gas/m68k/arch-cpu-1.d gas/testsuite/gas/m68k/arch-cpu-1.s gas/testsuite/gas/m68k/bitfield.d gas/testsuite/gas/m68k/bitfield.s gas/testsuite/gas/m68k/cas.d gas/testsuite/gas/m68k/cas.s gas/testsuite/gas/m68k/disperr.s gas/testsuite/gas/m68k/fmoveml.d gas/testsuite/gas/m68k/fmoveml.s gas/testsuite/gas/m68k/link.d gas/testsuite/gas/m68k/link.s gas/testsuite/gas/m68k/mcf-emac.d gas/testsuite/gas/m68k/mcf-emac.s gas/testsuite/gas/m68k/mcf-fpu.d gas/testsuite/gas/m68k/mcf-fpu.s gas/testsuite/gas/m68k/mcf-mac.d gas/testsuite/gas/m68k/mcf-mac.s gas/testsuite/gas/m68k/mcf-mov3q.d gas/testsuite/gas/m68k/mcf-mov3q.s gas/testsuite/gas/m68k/mode5.d gas/testsuite/gas/m68k/mode5.s gas/testsuite/gas/m68k/op68000.d gas/testsuite/gas/m68k/operands.d gas/testsuite/gas/m68k/operands.s gas/testsuite/gas/m68k/p2410.s gas/testsuite/gas/m68k/p2663.s gas/testsuite/gas/m68k/pcrel.d gas/testsuite/gas/m68k/pcrel.s gas/testsuite/gas/m68k/pic1.s gas/testsuite/gas/m68k/t2.d gas/testsuite/gas/m68k/t2.s gas/testsuite/gas/macros/and.s gas/testsuite/gas/macros/app1.d gas/testsuite/gas/macros/app1.s gas/testsuite/gas/macros/app2.d gas/testsuite/gas/macros/app2.s gas/testsuite/gas/macros/app3.d gas/testsuite/gas/macros/app3.s gas/testsuite/gas/macros/app4.d gas/testsuite/gas/macros/app4.s gas/testsuite/gas/macros/app4b.s gas/testsuite/gas/macros/badarg.l gas/testsuite/gas/macros/badarg.s gas/testsuite/gas/macros/dot.l gas/testsuite/gas/macros/dot.s gas/testsuite/gas/macros/end.l gas/testsuite/gas/macros/end.s gas/testsuite/gas/macros/err.s gas/testsuite/gas/macros/irp.d gas/testsuite/gas/macros/irp.s gas/testsuite/gas/macros/macros.exp gas/testsuite/gas/macros/paren.d gas/testsuite/gas/macros/paren.s gas/testsuite/gas/macros/purge.l gas/testsuite/gas/macros/purge.s gas/testsuite/gas/macros/redef.l gas/testsuite/gas/macros/redef.s gas/testsuite/gas/macros/repeat.d gas/testsuite/gas/macros/repeat.s gas/testsuite/gas/macros/rept.d gas/testsuite/gas/macros/rept.s gas/testsuite/gas/macros/semi.d gas/testsuite/gas/macros/semi.s gas/testsuite/gas/macros/strings.d gas/testsuite/gas/macros/strings.s gas/testsuite/gas/macros/test1.d gas/testsuite/gas/macros/test1.s gas/testsuite/gas/macros/test2.d gas/testsuite/gas/macros/test2.s gas/testsuite/gas/macros/test3.d gas/testsuite/gas/macros/test3.s gas/testsuite/gas/macros/vararg.d gas/testsuite/gas/macros/vararg.s gas/testsuite/gas/maxq10/bits.d gas/testsuite/gas/maxq10/bits.s gas/testsuite/gas/maxq10/call.d gas/testsuite/gas/maxq10/call.s gas/testsuite/gas/maxq10/data.s gas/testsuite/gas/maxq10/data2.d gas/testsuite/gas/maxq10/data2.s gas/testsuite/gas/maxq10/data3.d gas/testsuite/gas/maxq10/data3.s gas/testsuite/gas/maxq10/err.s gas/testsuite/gas/maxq10/jump.d gas/testsuite/gas/maxq10/jump.s gas/testsuite/gas/maxq10/logical.d gas/testsuite/gas/maxq10/logical.s gas/testsuite/gas/maxq10/math.d gas/testsuite/gas/maxq10/math.s gas/testsuite/gas/maxq10/maxq10.exp gas/testsuite/gas/maxq10/pmtest.d gas/testsuite/gas/maxq10/pmtest.s gas/testsuite/gas/maxq10/range.d gas/testsuite/gas/maxq10/range.s gas/testsuite/gas/maxq20/bits.d gas/testsuite/gas/maxq20/bits.s gas/testsuite/gas/maxq20/call.d gas/testsuite/gas/maxq20/call.s gas/testsuite/gas/maxq20/data1.d gas/testsuite/gas/maxq20/data1.s gas/testsuite/gas/maxq20/data2.d gas/testsuite/gas/maxq20/data2.s gas/testsuite/gas/maxq20/data3.d gas/testsuite/gas/maxq20/data3.s gas/testsuite/gas/maxq20/jump.d gas/testsuite/gas/maxq20/jump.s gas/testsuite/gas/maxq20/jzimm.d gas/testsuite/gas/maxq20/jzimm.s gas/testsuite/gas/maxq20/logical.d gas/testsuite/gas/maxq20/logical.s gas/testsuite/gas/maxq20/math.d gas/testsuite/gas/maxq20/math.s gas/testsuite/gas/maxq20/maxq20.exp gas/testsuite/gas/maxq20/pfx2.s gas/testsuite/gas/maxq20/pmtest.d gas/testsuite/gas/maxq20/pmtest.s gas/testsuite/gas/maxq20/pxf0.s gas/testsuite/gas/maxq20/range.d gas/testsuite/gas/maxq20/range.s gas/testsuite/gas/mcore/allinsn.d gas/testsuite/gas/mcore/allinsn.exp gas/testsuite/gas/mcore/allinsn.s gas/testsuite/gas/mips/abs.d gas/testsuite/gas/mips/abs.s gas/testsuite/gas/mips/add.d gas/testsuite/gas/mips/add.s gas/testsuite/gas/mips/and.d gas/testsuite/gas/mips/and.s gas/testsuite/gas/mips/baddata1.l gas/testsuite/gas/mips/baddata1.s gas/testsuite/gas/mips/beq.d gas/testsuite/gas/mips/beq.s gas/testsuite/gas/mips/bge.d gas/testsuite/gas/mips/bge.s gas/testsuite/gas/mips/bgeu.d gas/testsuite/gas/mips/bgeu.s gas/testsuite/gas/mips/blt.d gas/testsuite/gas/mips/blt.s gas/testsuite/gas/mips/bltu.d gas/testsuite/gas/mips/bltu.s gas/testsuite/gas/mips/branch-misc-1.d gas/testsuite/gas/mips/branch-misc-1.s gas/testsuite/gas/mips/branch-misc-2-64.d gas/testsuite/gas/mips/branch-misc-2.d gas/testsuite/gas/mips/branch-misc-2.s gas/testsuite/gas/mips/branch-misc-2pic-64.d gas/testsuite/gas/mips/branch-misc-2pic.d gas/testsuite/gas/mips/branch-misc-3.d gas/testsuite/gas/mips/branch-misc-3.s gas/testsuite/gas/mips/branch-swap.d gas/testsuite/gas/mips/branch-swap.s gas/testsuite/gas/mips/break20.d gas/testsuite/gas/mips/break20.s gas/testsuite/gas/mips/cp0-names-mips32.d gas/testsuite/gas/mips/cp0-names-mips32r2.d gas/testsuite/gas/mips/cp0-names-mips64.d gas/testsuite/gas/mips/cp0-names-mips64r2.d gas/testsuite/gas/mips/cp0-names-numeric.d gas/testsuite/gas/mips/cp0-names-sb1.d gas/testsuite/gas/mips/cp0-names.s gas/testsuite/gas/mips/cp0sel-names-mips32.d gas/testsuite/gas/mips/cp0sel-names-mips32r2.d gas/testsuite/gas/mips/cp0sel-names-mips64.d gas/testsuite/gas/mips/cp0sel-names-mips64r2.d gas/testsuite/gas/mips/cp0sel-names-numeric.d gas/testsuite/gas/mips/cp0sel-names-sb1.d gas/testsuite/gas/mips/cp0sel-names.s gas/testsuite/gas/mips/delay.d gas/testsuite/gas/mips/delay.s gas/testsuite/gas/mips/div-ilocks.d gas/testsuite/gas/mips/div.d gas/testsuite/gas/mips/div.s gas/testsuite/gas/mips/dli.d gas/testsuite/gas/mips/dli.s gas/testsuite/gas/mips/e32-rel2.d gas/testsuite/gas/mips/e32-rel4.d gas/testsuite/gas/mips/e32el-rel2.d gas/testsuite/gas/mips/elf-consthilo.d gas/testsuite/gas/mips/elf-consthilo.s gas/testsuite/gas/mips/elf-jal.d gas/testsuite/gas/mips/elf-rel-got-n32.d gas/testsuite/gas/mips/elf-rel-got-n32.s gas/testsuite/gas/mips/elf-rel-got-n64.d gas/testsuite/gas/mips/elf-rel-got-n64.s gas/testsuite/gas/mips/elf-rel-xgot-n32.d gas/testsuite/gas/mips/elf-rel-xgot-n64.d gas/testsuite/gas/mips/elf-rel.d gas/testsuite/gas/mips/elf-rel.s gas/testsuite/gas/mips/elf-rel10.d gas/testsuite/gas/mips/elf-rel10.s gas/testsuite/gas/mips/elf-rel11.d gas/testsuite/gas/mips/elf-rel11.s gas/testsuite/gas/mips/elf-rel12.d gas/testsuite/gas/mips/elf-rel12.s gas/testsuite/gas/mips/elf-rel13.d gas/testsuite/gas/mips/elf-rel13.s gas/testsuite/gas/mips/elf-rel14.d gas/testsuite/gas/mips/elf-rel14.s gas/testsuite/gas/mips/elf-rel15.d gas/testsuite/gas/mips/elf-rel15.s gas/testsuite/gas/mips/elf-rel16.d gas/testsuite/gas/mips/elf-rel16.s gas/testsuite/gas/mips/elf-rel17.d gas/testsuite/gas/mips/elf-rel17.s gas/testsuite/gas/mips/elf-rel18.d gas/testsuite/gas/mips/elf-rel18.s gas/testsuite/gas/mips/elf-rel19.d gas/testsuite/gas/mips/elf-rel19.s gas/testsuite/gas/mips/elf-rel2.d gas/testsuite/gas/mips/elf-rel2.s gas/testsuite/gas/mips/elf-rel20.d gas/testsuite/gas/mips/elf-rel20.s gas/testsuite/gas/mips/elf-rel21.d gas/testsuite/gas/mips/elf-rel21.s gas/testsuite/gas/mips/elf-rel22.d gas/testsuite/gas/mips/elf-rel22.s gas/testsuite/gas/mips/elf-rel23.d gas/testsuite/gas/mips/elf-rel23.s gas/testsuite/gas/mips/elf-rel23a.d gas/testsuite/gas/mips/elf-rel23b.d gas/testsuite/gas/mips/elf-rel24.d gas/testsuite/gas/mips/elf-rel24.s gas/testsuite/gas/mips/elf-rel25.d gas/testsuite/gas/mips/elf-rel25.s gas/testsuite/gas/mips/elf-rel25a.d gas/testsuite/gas/mips/elf-rel3.d gas/testsuite/gas/mips/elf-rel3.s gas/testsuite/gas/mips/elf-rel4.d gas/testsuite/gas/mips/elf-rel4.s gas/testsuite/gas/mips/elf-rel5.d gas/testsuite/gas/mips/elf-rel5.s gas/testsuite/gas/mips/elf-rel6-n32.d gas/testsuite/gas/mips/elf-rel6-n64.d gas/testsuite/gas/mips/elf-rel6.d gas/testsuite/gas/mips/elf-rel6.s gas/testsuite/gas/mips/elf-rel7.d gas/testsuite/gas/mips/elf-rel7.s gas/testsuite/gas/mips/elf-rel8.d gas/testsuite/gas/mips/elf-rel8.s gas/testsuite/gas/mips/elf-rel9.d gas/testsuite/gas/mips/elf-rel9.s gas/testsuite/gas/mips/elf_arch_mips1.d gas/testsuite/gas/mips/elf_arch_mips2.d gas/testsuite/gas/mips/elf_arch_mips3.d gas/testsuite/gas/mips/elf_arch_mips32.d gas/testsuite/gas/mips/elf_arch_mips32r2.d gas/testsuite/gas/mips/elf_arch_mips4.d gas/testsuite/gas/mips/elf_arch_mips5.d gas/testsuite/gas/mips/elf_arch_mips64.d gas/testsuite/gas/mips/elf_arch_mips64r2.d gas/testsuite/gas/mips/elf_ase_mips16.d gas/testsuite/gas/mips/elf_e_flags.c gas/testsuite/gas/mips/elf_e_flags.s gas/testsuite/gas/mips/elf_e_flags1.d gas/testsuite/gas/mips/elf_e_flags2.d gas/testsuite/gas/mips/elf_e_flags3.d gas/testsuite/gas/mips/elf_e_flags4.d gas/testsuite/gas/mips/elfel-rel.d gas/testsuite/gas/mips/elfel-rel2.d gas/testsuite/gas/mips/elfel-rel3.d gas/testsuite/gas/mips/empty.s gas/testsuite/gas/mips/expr1.d gas/testsuite/gas/mips/expr1.s gas/testsuite/gas/mips/fpr-names-32.d gas/testsuite/gas/mips/fpr-names-64.d gas/testsuite/gas/mips/fpr-names-n32.d gas/testsuite/gas/mips/fpr-names-numeric.d gas/testsuite/gas/mips/fpr-names.s gas/testsuite/gas/mips/gpr-names-32.d gas/testsuite/gas/mips/gpr-names-64.d gas/testsuite/gas/mips/gpr-names-n32.d gas/testsuite/gas/mips/gpr-names-numeric.d gas/testsuite/gas/mips/gpr-names.s gas/testsuite/gas/mips/hwr-names-mips32r2.d gas/testsuite/gas/mips/hwr-names-mips64r2.d gas/testsuite/gas/mips/hwr-names-numeric.d gas/testsuite/gas/mips/hwr-names.s gas/testsuite/gas/mips/illegal.l gas/testsuite/gas/mips/illegal.s gas/testsuite/gas/mips/itbl gas/testsuite/gas/mips/itbl.s gas/testsuite/gas/mips/jal-newabi.d gas/testsuite/gas/mips/jal-newabi.s gas/testsuite/gas/mips/jal-range.l gas/testsuite/gas/mips/jal-range.s gas/testsuite/gas/mips/jal-svr4pic.d gas/testsuite/gas/mips/jal-svr4pic.s gas/testsuite/gas/mips/jal-xgot.d gas/testsuite/gas/mips/jal.d gas/testsuite/gas/mips/jal.s gas/testsuite/gas/mips/la-svr4pic.d gas/testsuite/gas/mips/la-xgot.d gas/testsuite/gas/mips/la.d gas/testsuite/gas/mips/la.s gas/testsuite/gas/mips/lb-pic.s gas/testsuite/gas/mips/lb-svr4pic-ilocks.d gas/testsuite/gas/mips/lb-svr4pic.d gas/testsuite/gas/mips/lb-xgot-ilocks.d gas/testsuite/gas/mips/lb-xgot.d gas/testsuite/gas/mips/lb.d gas/testsuite/gas/mips/lb.s gas/testsuite/gas/mips/lca-svr4pic.d gas/testsuite/gas/mips/lca-xgot.d gas/testsuite/gas/mips/lca.s gas/testsuite/gas/mips/ld-ilocks-addr32.d gas/testsuite/gas/mips/ld-ilocks.d gas/testsuite/gas/mips/ld-pic.s gas/testsuite/gas/mips/ld-svr4pic.d gas/testsuite/gas/mips/ld-xgot.d gas/testsuite/gas/mips/ld.d gas/testsuite/gas/mips/ld.s gas/testsuite/gas/mips/ldstla-32-1.l gas/testsuite/gas/mips/ldstla-32-1.s gas/testsuite/gas/mips/ldstla-32-mips3-1.l gas/testsuite/gas/mips/ldstla-32-mips3-1.s gas/testsuite/gas/mips/ldstla-32-mips3-shared.d gas/testsuite/gas/mips/ldstla-32-mips3.d gas/testsuite/gas/mips/ldstla-32-mips3.s gas/testsuite/gas/mips/ldstla-32-shared.d gas/testsuite/gas/mips/ldstla-32.d gas/testsuite/gas/mips/ldstla-32.s gas/testsuite/gas/mips/ldstla-eabi64.d gas/testsuite/gas/mips/ldstla-n64-shared.d gas/testsuite/gas/mips/ldstla-n64-sym32.d gas/testsuite/gas/mips/ldstla-n64.d gas/testsuite/gas/mips/ldstla-n64.s gas/testsuite/gas/mips/ldstla-sym32.s gas/testsuite/gas/mips/li.d gas/testsuite/gas/mips/li.s gas/testsuite/gas/mips/lif-svr4pic.d gas/testsuite/gas/mips/lif-xgot.d gas/testsuite/gas/mips/lifloat.d gas/testsuite/gas/mips/lifloat.s gas/testsuite/gas/mips/lineno.d gas/testsuite/gas/mips/lineno.s gas/testsuite/gas/mips/macro-warn-1-n32.d gas/testsuite/gas/mips/macro-warn-1-n32.l gas/testsuite/gas/mips/macro-warn-1.d gas/testsuite/gas/mips/macro-warn-1.l gas/testsuite/gas/mips/macro-warn-1.s gas/testsuite/gas/mips/macro-warn-2-n32.d gas/testsuite/gas/mips/macro-warn-2.d gas/testsuite/gas/mips/macro-warn-2.l gas/testsuite/gas/mips/macro-warn-2.s gas/testsuite/gas/mips/macro-warn-3.d gas/testsuite/gas/mips/macro-warn-3.l gas/testsuite/gas/mips/macro-warn-3.s gas/testsuite/gas/mips/macro-warn-4.d gas/testsuite/gas/mips/macro-warn-4.l gas/testsuite/gas/mips/macro-warn-4.s gas/testsuite/gas/mips/mips-abi32-pic.d gas/testsuite/gas/mips/mips-abi32-pic.s gas/testsuite/gas/mips/mips-abi32-pic2.d gas/testsuite/gas/mips/mips-abi32-pic2.s gas/testsuite/gas/mips/mips-abi32.d gas/testsuite/gas/mips/mips-abi32.s gas/testsuite/gas/mips/mips-gp32-fp32-pic.d gas/testsuite/gas/mips/mips-gp32-fp32-pic.s gas/testsuite/gas/mips/mips-gp32-fp32.d gas/testsuite/gas/mips/mips-gp32-fp32.s gas/testsuite/gas/mips/mips-gp32-fp64-pic.d gas/testsuite/gas/mips/mips-gp32-fp64-pic.s gas/testsuite/gas/mips/mips-gp32-fp64.d gas/testsuite/gas/mips/mips-gp32-fp64.l gas/testsuite/gas/mips/mips-gp32-fp64.s gas/testsuite/gas/mips/mips-gp64-fp32-pic.d gas/testsuite/gas/mips/mips-gp64-fp32-pic.l gas/testsuite/gas/mips/mips-gp64-fp32-pic.s gas/testsuite/gas/mips/mips-gp64-fp32.d gas/testsuite/gas/mips/mips-gp64-fp32.l gas/testsuite/gas/mips/mips-gp64-fp32.s gas/testsuite/gas/mips/mips-gp64-fp64-pic.d gas/testsuite/gas/mips/mips-gp64-fp64-pic.s gas/testsuite/gas/mips/mips-gp64-fp64.d gas/testsuite/gas/mips/mips-gp64-fp64.l gas/testsuite/gas/mips/mips-gp64-fp64.s gas/testsuite/gas/mips/mips-jalx.d gas/testsuite/gas/mips/mips-jalx.s gas/testsuite/gas/mips/mips-no-jalx.l gas/testsuite/gas/mips/mips-no-jalx.s gas/testsuite/gas/mips/mips.exp gas/testsuite/gas/mips/mips16-64.d gas/testsuite/gas/mips/mips16-dwarf2-n32.d gas/testsuite/gas/mips/mips16-dwarf2.d gas/testsuite/gas/mips/mips16-dwarf2.s gas/testsuite/gas/mips/mips16-e.d gas/testsuite/gas/mips/mips16-e.s gas/testsuite/gas/mips/mips16-f.d gas/testsuite/gas/mips/mips16-f.s gas/testsuite/gas/mips/mips16-hilo-n32.d gas/testsuite/gas/mips/mips16-hilo.d gas/testsuite/gas/mips/mips16-hilo.s gas/testsuite/gas/mips/mips16-jalx.d gas/testsuite/gas/mips/mips16-jalx.s gas/testsuite/gas/mips/mips16.d gas/testsuite/gas/mips/mips16.s gas/testsuite/gas/mips/mips16e-64.d gas/testsuite/gas/mips/mips16e-64.l gas/testsuite/gas/mips/mips16e-64.s gas/testsuite/gas/mips/mips16e-jrc.d gas/testsuite/gas/mips/mips16e-jrc.s gas/testsuite/gas/mips/mips16e-save.d gas/testsuite/gas/mips/mips16e-save.s gas/testsuite/gas/mips/mips16e.d gas/testsuite/gas/mips/mips16e.s gas/testsuite/gas/mips/mips32-dsp.d gas/testsuite/gas/mips/mips32-dsp.s gas/testsuite/gas/mips/mips32-mt.d gas/testsuite/gas/mips/mips32-mt.s gas/testsuite/gas/mips/mips32-sf32.d gas/testsuite/gas/mips/mips32-sf32.s gas/testsuite/gas/mips/mips32.d gas/testsuite/gas/mips/mips32.s gas/testsuite/gas/mips/mips32r2-ill-fp64.l gas/testsuite/gas/mips/mips32r2-ill-fp64.s gas/testsuite/gas/mips/mips32r2-ill.l gas/testsuite/gas/mips/mips32r2-ill.s gas/testsuite/gas/mips/mips32r2.d gas/testsuite/gas/mips/mips32r2.s gas/testsuite/gas/mips/mips4.d gas/testsuite/gas/mips/mips4.s gas/testsuite/gas/mips/mips4010.d gas/testsuite/gas/mips/mips4010.s gas/testsuite/gas/mips/mips4100.d gas/testsuite/gas/mips/mips4100.s gas/testsuite/gas/mips/mips4650.d gas/testsuite/gas/mips/mips4650.s gas/testsuite/gas/mips/mips5.d gas/testsuite/gas/mips/mips5.l gas/testsuite/gas/mips/mips5.s gas/testsuite/gas/mips/mips64-dsp.d gas/testsuite/gas/mips/mips64-dsp.s gas/testsuite/gas/mips/mips64-mdmx.d gas/testsuite/gas/mips/mips64-mdmx.s gas/testsuite/gas/mips/mips64-mips3d-incl.d gas/testsuite/gas/mips/mips64-mips3d.d gas/testsuite/gas/mips/mips64-mips3d.l gas/testsuite/gas/mips/mips64-mips3d.s gas/testsuite/gas/mips/mips64.d gas/testsuite/gas/mips/mips64.s gas/testsuite/gas/mips/mips64r2-ill.l gas/testsuite/gas/mips/mips64r2-ill.s gas/testsuite/gas/mips/mips64r2.d gas/testsuite/gas/mips/mips64r2.s gas/testsuite/gas/mips/mipsel16-e.d gas/testsuite/gas/mips/mipsel16-f.d gas/testsuite/gas/mips/mul-ilocks.d gas/testsuite/gas/mips/mul.d gas/testsuite/gas/mips/mul.s gas/testsuite/gas/mips/n32-consec.d gas/testsuite/gas/mips/n32-consec.s gas/testsuite/gas/mips/noat-1.d gas/testsuite/gas/mips/noat-1.s gas/testsuite/gas/mips/noat-2.l gas/testsuite/gas/mips/noat-2.s gas/testsuite/gas/mips/noat-3.l gas/testsuite/gas/mips/noat-3.s gas/testsuite/gas/mips/noat-4.l gas/testsuite/gas/mips/noat-4.s gas/testsuite/gas/mips/noat-5.l gas/testsuite/gas/mips/noat-5.s gas/testsuite/gas/mips/noat-6.l gas/testsuite/gas/mips/noat-6.s gas/testsuite/gas/mips/noat-7.l gas/testsuite/gas/mips/noat-7.s gas/testsuite/gas/mips/nodelay.d gas/testsuite/gas/mips/noreorder.d gas/testsuite/gas/mips/noreorder.s gas/testsuite/gas/mips/perfcount.d gas/testsuite/gas/mips/perfcount.s gas/testsuite/gas/mips/relax-swap1-mips1.d gas/testsuite/gas/mips/relax-swap1-mips2.d gas/testsuite/gas/mips/relax-swap1.l gas/testsuite/gas/mips/relax-swap1.s gas/testsuite/gas/mips/relax-swap2.d gas/testsuite/gas/mips/relax-swap2.l gas/testsuite/gas/mips/relax-swap2.s gas/testsuite/gas/mips/relax.d gas/testsuite/gas/mips/relax.l gas/testsuite/gas/mips/relax.s gas/testsuite/gas/mips/rm7000.d gas/testsuite/gas/mips/rm7000.s gas/testsuite/gas/mips/rol-hw.d gas/testsuite/gas/mips/rol.d gas/testsuite/gas/mips/rol.s gas/testsuite/gas/mips/rol64-hw.d gas/testsuite/gas/mips/rol64.d gas/testsuite/gas/mips/rol64.s gas/testsuite/gas/mips/sb.d gas/testsuite/gas/mips/sb.s gas/testsuite/gas/mips/sb1-ext-mdmx.d gas/testsuite/gas/mips/sb1-ext-mdmx.s gas/testsuite/gas/mips/sb1-ext-ps.d gas/testsuite/gas/mips/sb1-ext-ps.s gas/testsuite/gas/mips/set-arch.d gas/testsuite/gas/mips/set-arch.l gas/testsuite/gas/mips/set-arch.s gas/testsuite/gas/mips/smartmips.d gas/testsuite/gas/mips/smartmips.s gas/testsuite/gas/mips/sync.d gas/testsuite/gas/mips/sync.s gas/testsuite/gas/mips/tls-ill.l gas/testsuite/gas/mips/tls-ill.s gas/testsuite/gas/mips/tls-o32.d gas/testsuite/gas/mips/tls-o32.s gas/testsuite/gas/mips/tmips16-e.d gas/testsuite/gas/mips/tmips16-f.d gas/testsuite/gas/mips/tmipsel16-e.d gas/testsuite/gas/mips/tmipsel16-f.d gas/testsuite/gas/mips/trap20.d gas/testsuite/gas/mips/trap20.s gas/testsuite/gas/mips/trunc.d gas/testsuite/gas/mips/trunc.s gas/testsuite/gas/mips/uld.d gas/testsuite/gas/mips/uld.s gas/testsuite/gas/mips/uld2-eb.d gas/testsuite/gas/mips/uld2-el.d gas/testsuite/gas/mips/uld2.s gas/testsuite/gas/mips/ulh-pic.s gas/testsuite/gas/mips/ulh-svr4pic.d gas/testsuite/gas/mips/ulh-xgot.d gas/testsuite/gas/mips/ulh.d gas/testsuite/gas/mips/ulh.s gas/testsuite/gas/mips/ulh2-eb.d gas/testsuite/gas/mips/ulh2-el.d gas/testsuite/gas/mips/ulh2.s gas/testsuite/gas/mips/ulw.d gas/testsuite/gas/mips/ulw.s gas/testsuite/gas/mips/ulw2-eb-ilocks.d gas/testsuite/gas/mips/ulw2-eb.d gas/testsuite/gas/mips/ulw2-el-ilocks.d gas/testsuite/gas/mips/ulw2-el.d gas/testsuite/gas/mips/ulw2.s gas/testsuite/gas/mips/usd.d gas/testsuite/gas/mips/usd.s gas/testsuite/gas/mips/ush.d gas/testsuite/gas/mips/ush.s gas/testsuite/gas/mips/usw.d gas/testsuite/gas/mips/usw.s gas/testsuite/gas/mips/vr4111.d gas/testsuite/gas/mips/vr4111.s gas/testsuite/gas/mips/vr4120-2.d gas/testsuite/gas/mips/vr4120-2.s gas/testsuite/gas/mips/vr4120.d gas/testsuite/gas/mips/vr4120.s gas/testsuite/gas/mips/vr4130.d gas/testsuite/gas/mips/vr4130.s gas/testsuite/gas/mips/vr5400.d gas/testsuite/gas/mips/vr5400.s gas/testsuite/gas/mips/vr5500.d gas/testsuite/gas/mips/vr5500.s gas/testsuite/gas/mips/vxworks1-el.d gas/testsuite/gas/mips/vxworks1-xgot-el.d gas/testsuite/gas/mips/vxworks1-xgot.d gas/testsuite/gas/mips/vxworks1.d gas/testsuite/gas/mips/vxworks1.s gas/testsuite/gas/mmix/1cjmp1b-n.d gas/testsuite/gas/mmix/1cjmp1b-r.d gas/testsuite/gas/mmix/1cjmp1b.d gas/testsuite/gas/mmix/1cjmp1b.l gas/testsuite/gas/mmix/1cjmp1b.s gas/testsuite/gas/mmix/1cjmp1brn.d gas/testsuite/gas/mmix/1hjmp1b.d gas/testsuite/gas/mmix/1hjmp1b.l gas/testsuite/gas/mmix/1hjmp1b.s gas/testsuite/gas/mmix/align-1.d gas/testsuite/gas/mmix/align-1.s gas/testsuite/gas/mmix/basep-1.d gas/testsuite/gas/mmix/basep-1.s gas/testsuite/gas/mmix/basep-10.d gas/testsuite/gas/mmix/basep-10.s gas/testsuite/gas/mmix/basep-11.d gas/testsuite/gas/mmix/basep-11.s gas/testsuite/gas/mmix/basep-1b.d gas/testsuite/gas/mmix/basep-2.d gas/testsuite/gas/mmix/basep-2.s gas/testsuite/gas/mmix/basep-2b.d gas/testsuite/gas/mmix/basep-3.d gas/testsuite/gas/mmix/basep-3.s gas/testsuite/gas/mmix/basep-3b.d gas/testsuite/gas/mmix/basep-4.d gas/testsuite/gas/mmix/basep-5.d gas/testsuite/gas/mmix/basep-6.d gas/testsuite/gas/mmix/basep-7.d gas/testsuite/gas/mmix/basep-8.d gas/testsuite/gas/mmix/basep-8.s gas/testsuite/gas/mmix/basep-9.d gas/testsuite/gas/mmix/basep-9.s gas/testsuite/gas/mmix/bspec-1.d gas/testsuite/gas/mmix/bspec-1.s gas/testsuite/gas/mmix/bspec-2.d gas/testsuite/gas/mmix/bspec-2.s gas/testsuite/gas/mmix/builtin1.d gas/testsuite/gas/mmix/builtin1.s gas/testsuite/gas/mmix/builtin2.d gas/testsuite/gas/mmix/builtin3.d gas/testsuite/gas/mmix/byte-1.d gas/testsuite/gas/mmix/byte-1.s gas/testsuite/gas/mmix/bz-c.d gas/testsuite/gas/mmix/bz-c.s gas/testsuite/gas/mmix/comment-1.d gas/testsuite/gas/mmix/comment-1.s gas/testsuite/gas/mmix/comment-2.d gas/testsuite/gas/mmix/comment-2.s gas/testsuite/gas/mmix/comment-3.d gas/testsuite/gas/mmix/comment-3.s gas/testsuite/gas/mmix/cons-1.d gas/testsuite/gas/mmix/cons-1.s gas/testsuite/gas/mmix/cons-2.d gas/testsuite/gas/mmix/cons-2.s gas/testsuite/gas/mmix/err-bpo1.s gas/testsuite/gas/mmix/err-bpo2.s gas/testsuite/gas/mmix/err-bpo3.s gas/testsuite/gas/mmix/err-bpo4.s gas/testsuite/gas/mmix/err-bpo5.s gas/testsuite/gas/mmix/err-bpo6.s gas/testsuite/gas/mmix/err-bspec-1.s gas/testsuite/gas/mmix/err-bspec-2.s gas/testsuite/gas/mmix/err-bspec-3.s gas/testsuite/gas/mmix/err-bspec-4.s gas/testsuite/gas/mmix/err-bspec-5.s gas/testsuite/gas/mmix/err-builtin.s gas/testsuite/gas/mmix/err-byte1.s gas/testsuite/gas/mmix/err-byte2.s gas/testsuite/gas/mmix/err-case.s gas/testsuite/gas/mmix/err-fb-1.s gas/testsuite/gas/mmix/err-greg1.s gas/testsuite/gas/mmix/err-insn.s gas/testsuite/gas/mmix/err-is-1.s gas/testsuite/gas/mmix/err-loc-1.s gas/testsuite/gas/mmix/err-loc-2.s gas/testsuite/gas/mmix/err-loc-3.s gas/testsuite/gas/mmix/err-loc-4.s gas/testsuite/gas/mmix/err-loc-5.s gas/testsuite/gas/mmix/err-loc-6.s gas/testsuite/gas/mmix/err-loc-7.s gas/testsuite/gas/mmix/err-loc-8.s gas/testsuite/gas/mmix/err-local1.s gas/testsuite/gas/mmix/err-local2.s gas/testsuite/gas/mmix/err-ser-1.s gas/testsuite/gas/mmix/err-set.s gas/testsuite/gas/mmix/expr-1.d gas/testsuite/gas/mmix/expr-1.s gas/testsuite/gas/mmix/fb-1.d gas/testsuite/gas/mmix/fb-1.s gas/testsuite/gas/mmix/fb-2.d gas/testsuite/gas/mmix/fb-2.s gas/testsuite/gas/mmix/get-op-r.d gas/testsuite/gas/mmix/get-op.d gas/testsuite/gas/mmix/get-op.l gas/testsuite/gas/mmix/get-op.s gas/testsuite/gas/mmix/geta-c.d gas/testsuite/gas/mmix/geta-c.s gas/testsuite/gas/mmix/geta-op-r.d gas/testsuite/gas/mmix/geta-op.d gas/testsuite/gas/mmix/geta-op.l gas/testsuite/gas/mmix/geta-op.s gas/testsuite/gas/mmix/geta-opn.d gas/testsuite/gas/mmix/geta-oprn.d gas/testsuite/gas/mmix/greg1.d gas/testsuite/gas/mmix/greg1.s gas/testsuite/gas/mmix/greg1a.d gas/testsuite/gas/mmix/greg2.d gas/testsuite/gas/mmix/greg2.s gas/testsuite/gas/mmix/greg2a.d gas/testsuite/gas/mmix/greg3.d gas/testsuite/gas/mmix/greg3.s gas/testsuite/gas/mmix/greg4.d gas/testsuite/gas/mmix/greg4.s gas/testsuite/gas/mmix/greg5.d gas/testsuite/gas/mmix/greg5.s gas/testsuite/gas/mmix/greg6.d gas/testsuite/gas/mmix/greg6.s gas/testsuite/gas/mmix/greg7.d gas/testsuite/gas/mmix/greg7.s gas/testsuite/gas/mmix/greg8.d gas/testsuite/gas/mmix/greg8.s gas/testsuite/gas/mmix/greg9.d gas/testsuite/gas/mmix/greg9.s gas/testsuite/gas/mmix/hex-r.d gas/testsuite/gas/mmix/hex.d gas/testsuite/gas/mmix/hex.l gas/testsuite/gas/mmix/hex.s gas/testsuite/gas/mmix/hex2.d gas/testsuite/gas/mmix/hex2.s gas/testsuite/gas/mmix/is-1.d gas/testsuite/gas/mmix/is-1.s gas/testsuite/gas/mmix/jmp-op-n.d gas/testsuite/gas/mmix/jmp-op-r.d gas/testsuite/gas/mmix/jmp-op.d gas/testsuite/gas/mmix/jmp-op.l gas/testsuite/gas/mmix/jmp-op.s gas/testsuite/gas/mmix/jmp-oprn.d gas/testsuite/gas/mmix/jump-c.d gas/testsuite/gas/mmix/jump-c.s gas/testsuite/gas/mmix/list-in-n.d gas/testsuite/gas/mmix/list-in-r.d gas/testsuite/gas/mmix/list-in-rn.d gas/testsuite/gas/mmix/list-insns.d gas/testsuite/gas/mmix/list-insns.l gas/testsuite/gas/mmix/list-insns.s gas/testsuite/gas/mmix/list-pseudoints.l gas/testsuite/gas/mmix/list-pseudoints.s gas/testsuite/gas/mmix/list-textfirst gas/testsuite/gas/mmix/list-textfirst.l gas/testsuite/gas/mmix/list-textfirst.s gas/testsuite/gas/mmix/loc-1.d gas/testsuite/gas/mmix/loc-1.s gas/testsuite/gas/mmix/loc-2.d gas/testsuite/gas/mmix/loc-2.s gas/testsuite/gas/mmix/loc-3.d gas/testsuite/gas/mmix/loc-3.s gas/testsuite/gas/mmix/loc-4.d gas/testsuite/gas/mmix/loc-4.s gas/testsuite/gas/mmix/loc-5.d gas/testsuite/gas/mmix/loc-5.s gas/testsuite/gas/mmix/local-1.d gas/testsuite/gas/mmix/local-1.s gas/testsuite/gas/mmix/locall1.d gas/testsuite/gas/mmix/locall1.s gas/testsuite/gas/mmix/mmix-err.exp gas/testsuite/gas/mmix/mmix-list.exp gas/testsuite/gas/mmix/mmix.exp gas/testsuite/gas/mmix/odd-1.d gas/testsuite/gas/mmix/odd-1.s gas/testsuite/gas/mmix/op-0-1.d gas/testsuite/gas/mmix/op-0-1.s gas/testsuite/gas/mmix/op-0-1s.d gas/testsuite/gas/mmix/op-0-2.d gas/testsuite/gas/mmix/pop-op-r.d gas/testsuite/gas/mmix/pop-op.d gas/testsuite/gas/mmix/pop-op.l gas/testsuite/gas/mmix/pop-op.s gas/testsuite/gas/mmix/prefix1.d gas/testsuite/gas/mmix/prefix1.s gas/testsuite/gas/mmix/prefix2.d gas/testsuite/gas/mmix/prefix2.s gas/testsuite/gas/mmix/prefix3.d gas/testsuite/gas/mmix/prefix3.s gas/testsuite/gas/mmix/pseudo-1.d gas/testsuite/gas/mmix/pseudo-1.s gas/testsuite/gas/mmix/pushgo-op-r.d gas/testsuite/gas/mmix/pushgo-op.d gas/testsuite/gas/mmix/pushgo-op.l gas/testsuite/gas/mmix/pushgo-op.s gas/testsuite/gas/mmix/pushj-c.d gas/testsuite/gas/mmix/pushj-c.s gas/testsuite/gas/mmix/pushj-cs.d gas/testsuite/gas/mmix/put-op-r.d gas/testsuite/gas/mmix/put-op.d gas/testsuite/gas/mmix/put-op.l gas/testsuite/gas/mmix/put-op.s gas/testsuite/gas/mmix/reg-op-r.d gas/testsuite/gas/mmix/reg-op.d gas/testsuite/gas/mmix/reg-op.l gas/testsuite/gas/mmix/reg-op.s gas/testsuite/gas/mmix/reg3-op-r.d gas/testsuite/gas/mmix/reg3-op.d gas/testsuite/gas/mmix/reg3-op.l gas/testsuite/gas/mmix/reg3-op.s gas/testsuite/gas/mmix/regt-op-r.d gas/testsuite/gas/mmix/regt-op.d gas/testsuite/gas/mmix/regt-op.l gas/testsuite/gas/mmix/regt-op.s gas/testsuite/gas/mmix/regx-op-r.d gas/testsuite/gas/mmix/regx-op.d gas/testsuite/gas/mmix/regx-op.l gas/testsuite/gas/mmix/regx-op.s gas/testsuite/gas/mmix/regy-op-r.d gas/testsuite/gas/mmix/regy-op.d gas/testsuite/gas/mmix/regy-op.l gas/testsuite/gas/mmix/regy-op.s gas/testsuite/gas/mmix/relax1-n.d gas/testsuite/gas/mmix/relax1-r.d gas/testsuite/gas/mmix/relax1-rn.d gas/testsuite/gas/mmix/relax1.d gas/testsuite/gas/mmix/relax1.l gas/testsuite/gas/mmix/relax1.s gas/testsuite/gas/mmix/relax2.d gas/testsuite/gas/mmix/relax2.s gas/testsuite/gas/mmix/reloc16-n.d gas/testsuite/gas/mmix/reloc16-r.d gas/testsuite/gas/mmix/reloc16.d gas/testsuite/gas/mmix/reloc16.l gas/testsuite/gas/mmix/reloc16.s gas/testsuite/gas/mmix/reloc8-r.d gas/testsuite/gas/mmix/reloc8.d gas/testsuite/gas/mmix/reloc8.l gas/testsuite/gas/mmix/reloc8.s gas/testsuite/gas/mmix/relocl-n.d gas/testsuite/gas/mmix/reloclab-r.d gas/testsuite/gas/mmix/reloclab-rs.d gas/testsuite/gas/mmix/reloclab-s.d gas/testsuite/gas/mmix/reloclab.d gas/testsuite/gas/mmix/reloclab.l gas/testsuite/gas/mmix/reloclab.s gas/testsuite/gas/mmix/reloclrn.d gas/testsuite/gas/mmix/relocxrn.d gas/testsuite/gas/mmix/resume-op-r.d gas/testsuite/gas/mmix/resume-op.d gas/testsuite/gas/mmix/resume-op.l gas/testsuite/gas/mmix/resume-op.s gas/testsuite/gas/mmix/round2-op-r.d gas/testsuite/gas/mmix/round2-op.d gas/testsuite/gas/mmix/round2-op.l gas/testsuite/gas/mmix/round2-op.s gas/testsuite/gas/mmix/roundi-op-r.d gas/testsuite/gas/mmix/roundi-op.d gas/testsuite/gas/mmix/roundi-op.l gas/testsuite/gas/mmix/roundi-op.s gas/testsuite/gas/mmix/roundr-op-r.d gas/testsuite/gas/mmix/roundr-op.d gas/testsuite/gas/mmix/roundr-op.l gas/testsuite/gas/mmix/roundr-op.s gas/testsuite/gas/mmix/save-op-r.d gas/testsuite/gas/mmix/save-op.d gas/testsuite/gas/mmix/save-op.l gas/testsuite/gas/mmix/save-op.s gas/testsuite/gas/mmix/set-r.d gas/testsuite/gas/mmix/set.d gas/testsuite/gas/mmix/set.l gas/testsuite/gas/mmix/set.s gas/testsuite/gas/mmix/swym-op-r.d gas/testsuite/gas/mmix/swym-op.d gas/testsuite/gas/mmix/swym-op.l gas/testsuite/gas/mmix/swym-op.s gas/testsuite/gas/mmix/sym-1.d gas/testsuite/gas/mmix/sym-1.s gas/testsuite/gas/mmix/sync-op-r.d gas/testsuite/gas/mmix/sync-op.d gas/testsuite/gas/mmix/sync-op.l gas/testsuite/gas/mmix/sync-op.s gas/testsuite/gas/mmix/two-op-r.d gas/testsuite/gas/mmix/two-op.d gas/testsuite/gas/mmix/two-op.l gas/testsuite/gas/mmix/two-op.s gas/testsuite/gas/mmix/unsave-op-r.d gas/testsuite/gas/mmix/unsave-op.d gas/testsuite/gas/mmix/unsave-op.l gas/testsuite/gas/mmix/unsave-op.s gas/testsuite/gas/mmix/weak1-s.d gas/testsuite/gas/mmix/weak1.d gas/testsuite/gas/mmix/weak1.s gas/testsuite/gas/mmix/zerop-1.d gas/testsuite/gas/mmix/zerop-1.s gas/testsuite/gas/mn10200/add.s gas/testsuite/gas/mn10200/basic.exp gas/testsuite/gas/mn10200/bcc.s gas/testsuite/gas/mn10200/bccx.s gas/testsuite/gas/mn10200/bit.s gas/testsuite/gas/mn10200/cmp.s gas/testsuite/gas/mn10200/ext.s gas/testsuite/gas/mn10200/logical.s gas/testsuite/gas/mn10200/mov1.s gas/testsuite/gas/mn10200/mov2.s gas/testsuite/gas/mn10200/mov3.s gas/testsuite/gas/mn10200/mov4.s gas/testsuite/gas/mn10200/movb.s gas/testsuite/gas/mn10200/movbu.s gas/testsuite/gas/mn10200/movx.s gas/testsuite/gas/mn10200/muldiv.s gas/testsuite/gas/mn10200/other.s gas/testsuite/gas/mn10200/shift.s gas/testsuite/gas/mn10200/sub.s gas/testsuite/gas/mn10300/add.s gas/testsuite/gas/mn10300/am33-2.c gas/testsuite/gas/mn10300/am33-2.d gas/testsuite/gas/mn10300/am33-2.s gas/testsuite/gas/mn10300/am33.s gas/testsuite/gas/mn10300/am33_2.s gas/testsuite/gas/mn10300/am33_3.s gas/testsuite/gas/mn10300/am33_4.s gas/testsuite/gas/mn10300/am33_5.s gas/testsuite/gas/mn10300/am33_6.s gas/testsuite/gas/mn10300/am33_7.s gas/testsuite/gas/mn10300/am33_8.s gas/testsuite/gas/mn10300/basic.exp gas/testsuite/gas/mn10300/bcc.s gas/testsuite/gas/mn10300/bit.s gas/testsuite/gas/mn10300/cmp.s gas/testsuite/gas/mn10300/ext.s gas/testsuite/gas/mn10300/extend.s gas/testsuite/gas/mn10300/logical.s gas/testsuite/gas/mn10300/loop.s gas/testsuite/gas/mn10300/mov1.s gas/testsuite/gas/mn10300/mov2.s gas/testsuite/gas/mn10300/mov3.s gas/testsuite/gas/mn10300/mov4.s gas/testsuite/gas/mn10300/mov5.s gas/testsuite/gas/mn10300/movbu.s gas/testsuite/gas/mn10300/movhu.s gas/testsuite/gas/mn10300/movm.s gas/testsuite/gas/mn10300/movpc.l gas/testsuite/gas/mn10300/movpc.s gas/testsuite/gas/mn10300/muldiv.s gas/testsuite/gas/mn10300/other.s gas/testsuite/gas/mn10300/relax.d gas/testsuite/gas/mn10300/relax.s gas/testsuite/gas/mn10300/shift.s gas/testsuite/gas/mn10300/sub.s gas/testsuite/gas/mn10300/udf.s gas/testsuite/gas/mri/char.d gas/testsuite/gas/mri/char.s gas/testsuite/gas/mri/comment.d gas/testsuite/gas/mri/comment.s gas/testsuite/gas/mri/common.d gas/testsuite/gas/mri/common.s gas/testsuite/gas/mri/constants.d gas/testsuite/gas/mri/constants.s gas/testsuite/gas/mri/empty.s gas/testsuite/gas/mri/equ.d gas/testsuite/gas/mri/equ.s gas/testsuite/gas/mri/expr.d gas/testsuite/gas/mri/expr.s gas/testsuite/gas/mri/float.d gas/testsuite/gas/mri/float.s gas/testsuite/gas/mri/for.d gas/testsuite/gas/mri/for.s gas/testsuite/gas/mri/if.d gas/testsuite/gas/mri/if.s gas/testsuite/gas/mri/immconst.d gas/testsuite/gas/mri/label.d gas/testsuite/gas/mri/label.s gas/testsuite/gas/mri/moveml.d gas/testsuite/gas/mri/moveml.s gas/testsuite/gas/mri/mri.exp gas/testsuite/gas/mri/repeat.d gas/testsuite/gas/mri/repeat.s gas/testsuite/gas/mri/semi.d gas/testsuite/gas/mri/semi.s gas/testsuite/gas/mri/while.d gas/testsuite/gas/mri/while.s gas/testsuite/gas/msp430/msp430.exp gas/testsuite/gas/msp430/opcode.d gas/testsuite/gas/msp430/opcode.s gas/testsuite/gas/mt/allinsn.d gas/testsuite/gas/mt/allinsn.s gas/testsuite/gas/mt/badinsn.s gas/testsuite/gas/mt/badinsn1.s gas/testsuite/gas/mt/badoffsethigh.s gas/testsuite/gas/mt/badoffsetlow.s gas/testsuite/gas/mt/badorder.s gas/testsuite/gas/mt/badreg.s gas/testsuite/gas/mt/badsignedimmhigh.s gas/testsuite/gas/mt/badsignedimmlow.s gas/testsuite/gas/mt/badsyntax.s gas/testsuite/gas/mt/badsyntax1.s gas/testsuite/gas/mt/badunsignedimmhigh.s gas/testsuite/gas/mt/badunsignedimmlow.s gas/testsuite/gas/mt/errors.exp gas/testsuite/gas/mt/ldst.s gas/testsuite/gas/mt/misc.d gas/testsuite/gas/mt/misc.s gas/testsuite/gas/mt/ms1-16-003.d gas/testsuite/gas/mt/ms1-16-003.s gas/testsuite/gas/mt/ms2.d gas/testsuite/gas/mt/ms2.s gas/testsuite/gas/mt/msys.d gas/testsuite/gas/mt/msys.s gas/testsuite/gas/mt/mt.exp gas/testsuite/gas/mt/relocs.d gas/testsuite/gas/mt/relocs.exp gas/testsuite/gas/mt/relocs1.s gas/testsuite/gas/mt/relocs2.s gas/testsuite/gas/openrisc/addi.d gas/testsuite/gas/openrisc/addi.s gas/testsuite/gas/openrisc/allinsn.d gas/testsuite/gas/openrisc/allinsn.exp gas/testsuite/gas/openrisc/allinsn.s gas/testsuite/gas/openrisc/lohi.d gas/testsuite/gas/openrisc/lohi.s gas/testsuite/gas/openrisc/store.d gas/testsuite/gas/openrisc/store.s gas/testsuite/gas/pdp11/opcode.d gas/testsuite/gas/pdp11/opcode.s gas/testsuite/gas/pdp11/pdp11.exp gas/testsuite/gas/pj/ops.d gas/testsuite/gas/pj/ops.s gas/testsuite/gas/pj/pj.exp gas/testsuite/gas/ppc/aix.exp gas/testsuite/gas/ppc/align.s gas/testsuite/gas/ppc/altivec.d gas/testsuite/gas/ppc/altivec.s gas/testsuite/gas/ppc/altivec_xcoff.d gas/testsuite/gas/ppc/altivec_xcoff.s gas/testsuite/gas/ppc/altivec_xcoff64.d gas/testsuite/gas/ppc/altivec_xcoff64.s gas/testsuite/gas/ppc/astest.d gas/testsuite/gas/ppc/astest.s gas/testsuite/gas/ppc/astest2.d gas/testsuite/gas/ppc/astest2.s gas/testsuite/gas/ppc/astest2_64.d gas/testsuite/gas/ppc/astest2_64.s gas/testsuite/gas/ppc/astest64.d gas/testsuite/gas/ppc/astest64.s gas/testsuite/gas/ppc/booke.d gas/testsuite/gas/ppc/booke.s gas/testsuite/gas/ppc/booke_xcoff.d gas/testsuite/gas/ppc/booke_xcoff.s gas/testsuite/gas/ppc/booke_xcoff64.d gas/testsuite/gas/ppc/booke_xcoff64.s gas/testsuite/gas/ppc/e500.d gas/testsuite/gas/ppc/e500.s gas/testsuite/gas/ppc/generate.sh gas/testsuite/gas/ppc/machine.d gas/testsuite/gas/ppc/machine.s gas/testsuite/gas/ppc/power4.d gas/testsuite/gas/ppc/power4.s gas/testsuite/gas/ppc/ppc.exp gas/testsuite/gas/ppc/simpshft.d gas/testsuite/gas/ppc/simpshft.s gas/testsuite/gas/ppc/test1elf.asm gas/testsuite/gas/ppc/test1elf32.d gas/testsuite/gas/ppc/test1elf32.s gas/testsuite/gas/ppc/test1elf64.d gas/testsuite/gas/ppc/test1elf64.s gas/testsuite/gas/ppc/test1xcoff.asm gas/testsuite/gas/ppc/test1xcoff32.d gas/testsuite/gas/ppc/test1xcoff32.s gas/testsuite/gas/ppc/textalign-xcoff-001.d gas/testsuite/gas/ppc/textalign-xcoff-001.s gas/testsuite/gas/ppc/textalign-xcoff-002.d gas/testsuite/gas/s390/esa-g5.d gas/testsuite/gas/s390/esa-g5.s gas/testsuite/gas/s390/esa-operands.d gas/testsuite/gas/s390/esa-operands.s gas/testsuite/gas/s390/esa-reloc.d gas/testsuite/gas/s390/esa-reloc.s gas/testsuite/gas/s390/esa-z9-109.d gas/testsuite/gas/s390/esa-z9-109.s gas/testsuite/gas/s390/esa-z900.d gas/testsuite/gas/s390/esa-z900.s gas/testsuite/gas/s390/esa-z990.d gas/testsuite/gas/s390/esa-z990.s gas/testsuite/gas/s390/operands.d gas/testsuite/gas/s390/operands.s gas/testsuite/gas/s390/operands64.d gas/testsuite/gas/s390/operands64.s gas/testsuite/gas/s390/s390.exp gas/testsuite/gas/s390/zarch-operands.d gas/testsuite/gas/s390/zarch-operands.s gas/testsuite/gas/s390/zarch-reloc.d gas/testsuite/gas/s390/zarch-reloc.s gas/testsuite/gas/s390/zarch-z9-109.d gas/testsuite/gas/s390/zarch-z9-109.s gas/testsuite/gas/s390/zarch-z900.d gas/testsuite/gas/s390/zarch-z900.s gas/testsuite/gas/s390/zarch-z990.d gas/testsuite/gas/s390/zarch-z990.s gas/testsuite/gas/sh/arch/arch.exp gas/testsuite/gas/sh/arch/arch_expected.txt gas/testsuite/gas/sh/arch/sh-dsp.s gas/testsuite/gas/sh/arch/sh.s gas/testsuite/gas/sh/arch/sh2.s gas/testsuite/gas/sh/arch/sh2a-nofpu-or-sh3-nommu.s gas/testsuite/gas/sh/arch/sh2a-nofpu-or-sh4-nommu-nofpu.s gas/testsuite/gas/sh/arch/sh2a-nofpu.s gas/testsuite/gas/sh/arch/sh2a-or-sh3e.s gas/testsuite/gas/sh/arch/sh2a-or-sh4.s gas/testsuite/gas/sh/arch/sh2a.s gas/testsuite/gas/sh/arch/sh2e.s gas/testsuite/gas/sh/arch/sh3-dsp.s gas/testsuite/gas/sh/arch/sh3-nommu.s gas/testsuite/gas/sh/arch/sh3.s gas/testsuite/gas/sh/arch/sh3e.s gas/testsuite/gas/sh/arch/sh4-nofpu.s gas/testsuite/gas/sh/arch/sh4-nommu-nofpu.s gas/testsuite/gas/sh/arch/sh4.s gas/testsuite/gas/sh/arch/sh4a-nofpu.s gas/testsuite/gas/sh/arch/sh4a.s gas/testsuite/gas/sh/arch/sh4al-dsp.s gas/testsuite/gas/sh/basic.exp gas/testsuite/gas/sh/dsp.d gas/testsuite/gas/sh/dsp.s gas/testsuite/gas/sh/err-1.s gas/testsuite/gas/sh/err-at.s gas/testsuite/gas/sh/err-be.s gas/testsuite/gas/sh/err-le.s gas/testsuite/gas/sh/err-sh4a-fp.s gas/testsuite/gas/sh/err-sh4a.s gas/testsuite/gas/sh/err-sh4al-dsp.s gas/testsuite/gas/sh/err.exp gas/testsuite/gas/sh/fp.s gas/testsuite/gas/sh/pcrel-coff.d gas/testsuite/gas/sh/pcrel-coff.s gas/testsuite/gas/sh/pcrel-hms.d gas/testsuite/gas/sh/pcrel.d gas/testsuite/gas/sh/pcrel.l gas/testsuite/gas/sh/pcrel.s gas/testsuite/gas/sh/pcrel2.d gas/testsuite/gas/sh/pcrel2.s gas/testsuite/gas/sh/pic.d gas/testsuite/gas/sh/pic.s gas/testsuite/gas/sh/reg-prefix.d gas/testsuite/gas/sh/reg-prefix.s gas/testsuite/gas/sh/renesas-1.d gas/testsuite/gas/sh/renesas-1.s gas/testsuite/gas/sh/sh2a.d gas/testsuite/gas/sh/sh2a.s gas/testsuite/gas/sh/sh4a-dsp.d gas/testsuite/gas/sh/sh4a-dsp.s gas/testsuite/gas/sh/sh4a-fp.d gas/testsuite/gas/sh/sh4a-fp.s gas/testsuite/gas/sh/sh4a.d gas/testsuite/gas/sh/sh4a.s gas/testsuite/gas/sh/sh4al-dsp.d gas/testsuite/gas/sh/sh4al-dsp.s gas/testsuite/gas/sh/sh64/abi-32.d gas/testsuite/gas/sh/sh64/abi-32.s gas/testsuite/gas/sh/sh64/abi-64.d gas/testsuite/gas/sh/sh64/abi-64.s gas/testsuite/gas/sh/sh64/basic-1.d gas/testsuite/gas/sh/sh64/basic-1.s gas/testsuite/gas/sh/sh64/case-1.d gas/testsuite/gas/sh/sh64/case-1.s gas/testsuite/gas/sh/sh64/case-noexp-1.d gas/testsuite/gas/sh/sh64/crange1-1.d gas/testsuite/gas/sh/sh64/crange1-2.d gas/testsuite/gas/sh/sh64/crange1.s gas/testsuite/gas/sh/sh64/crange2-1.d gas/testsuite/gas/sh/sh64/crange2-2.d gas/testsuite/gas/sh/sh64/crange2-noexp-1.d gas/testsuite/gas/sh/sh64/crange2.s gas/testsuite/gas/sh/sh64/crange3-1.d gas/testsuite/gas/sh/sh64/crange3.s gas/testsuite/gas/sh/sh64/crange4-1.d gas/testsuite/gas/sh/sh64/crange4.s gas/testsuite/gas/sh/sh64/crange5-1.d gas/testsuite/gas/sh/sh64/crange5.s gas/testsuite/gas/sh/sh64/creg-1.d gas/testsuite/gas/sh/sh64/creg-1.s gas/testsuite/gas/sh/sh64/creg-2.d gas/testsuite/gas/sh/sh64/creg-2.s gas/testsuite/gas/sh/sh64/datal-1.s gas/testsuite/gas/sh/sh64/datal-2.d gas/testsuite/gas/sh/sh64/datal-2.s gas/testsuite/gas/sh/sh64/datal-3.s gas/testsuite/gas/sh/sh64/datal32-1.d gas/testsuite/gas/sh/sh64/datal32-3.d gas/testsuite/gas/sh/sh64/datal64-1.d gas/testsuite/gas/sh/sh64/datal64-3.d gas/testsuite/gas/sh/sh64/endian-1.d gas/testsuite/gas/sh/sh64/endian-1.s gas/testsuite/gas/sh/sh64/endian-2.d gas/testsuite/gas/sh/sh64/endian-2.s gas/testsuite/gas/sh/sh64/err-1.s gas/testsuite/gas/sh/sh64/err-2.s gas/testsuite/gas/sh/sh64/err-3.s gas/testsuite/gas/sh/sh64/err-4.s gas/testsuite/gas/sh/sh64/err-abi-32.s gas/testsuite/gas/sh/sh64/err-abi-64.s gas/testsuite/gas/sh/sh64/err-dsp.s gas/testsuite/gas/sh/sh64/err-movi-noexp-1.s gas/testsuite/gas/sh/sh64/err-noexp-cmd1.s gas/testsuite/gas/sh/sh64/err-pt-1.s gas/testsuite/gas/sh/sh64/err-pt32-cmd1.s gas/testsuite/gas/sh/sh64/err-pt32-cmd2.s gas/testsuite/gas/sh/sh64/err-pt32-cmd3.s gas/testsuite/gas/sh/sh64/err-ptb-1.s gas/testsuite/gas/sh/sh64/err-ptb-2.s gas/testsuite/gas/sh/sh64/err.exp gas/testsuite/gas/sh/sh64/immexpr1.s gas/testsuite/gas/sh/sh64/immexpr2.s gas/testsuite/gas/sh/sh64/immexpr32-1.d gas/testsuite/gas/sh/sh64/immexpr32-2.d gas/testsuite/gas/sh/sh64/immexpr64-1.d gas/testsuite/gas/sh/sh64/immexpr64-2.d gas/testsuite/gas/sh/sh64/lineno.d gas/testsuite/gas/sh/sh64/lineno.s gas/testsuite/gas/sh/sh64/localcom-1.d gas/testsuite/gas/sh/sh64/localcom-1.s gas/testsuite/gas/sh/sh64/mix-1.d gas/testsuite/gas/sh/sh64/mix-1.s gas/testsuite/gas/sh/sh64/mix-noexp-1.d gas/testsuite/gas/sh/sh64/movi-1.s gas/testsuite/gas/sh/sh64/movi-2.s gas/testsuite/gas/sh/sh64/movi-3.d gas/testsuite/gas/sh/sh64/movi-3.s gas/testsuite/gas/sh/sh64/movi32-1.d gas/testsuite/gas/sh/sh64/movi32-2.d gas/testsuite/gas/sh/sh64/movi32-noexp-2.d gas/testsuite/gas/sh/sh64/movi64-1.d gas/testsuite/gas/sh/sh64/movi64-2.d gas/testsuite/gas/sh/sh64/movi64-2.s gas/testsuite/gas/sh/sh64/movi64-3.d gas/testsuite/gas/sh/sh64/movi64-noexp-2.d gas/testsuite/gas/sh/sh64/pt-1.d gas/testsuite/gas/sh/sh64/pt-1.s gas/testsuite/gas/sh/sh64/pt-2.s gas/testsuite/gas/sh/sh64/pt-noexp-1.d gas/testsuite/gas/sh/sh64/pt32-1.d gas/testsuite/gas/sh/sh64/pt32-noexp-2.d gas/testsuite/gas/sh/sh64/pt64-1.d gas/testsuite/gas/sh/sh64/pt64-32-1.d gas/testsuite/gas/sh/sh64/pt64-32-2.d gas/testsuite/gas/sh/sh64/pt64-noexp-2.d gas/testsuite/gas/sh/sh64/ptc-1.s gas/testsuite/gas/sh/sh64/ptc32-1.d gas/testsuite/gas/sh/sh64/ptc32-noexp-1.d gas/testsuite/gas/sh/sh64/ptc64-1.d gas/testsuite/gas/sh/sh64/ptc64-32-1.d gas/testsuite/gas/sh/sh64/ptc64-noexp-1.d gas/testsuite/gas/sh/sh64/ptext-1.s gas/testsuite/gas/sh/sh64/ptext32-1.d gas/testsuite/gas/sh/sh64/ptext32-noexp-1.d gas/testsuite/gas/sh/sh64/ptext64-1.d gas/testsuite/gas/sh/sh64/ptext64-32-1.d gas/testsuite/gas/sh/sh64/ptext64-noexp-1.d gas/testsuite/gas/sh/sh64/rel-1.s gas/testsuite/gas/sh/sh64/rel-2.s gas/testsuite/gas/sh/sh64/rel-3.s gas/testsuite/gas/sh/sh64/rel-4.s gas/testsuite/gas/sh/sh64/rel-5.s gas/testsuite/gas/sh/sh64/rel32-1.d gas/testsuite/gas/sh/sh64/rel32-2.d gas/testsuite/gas/sh/sh64/rel32-3.d gas/testsuite/gas/sh/sh64/rel32-4.d gas/testsuite/gas/sh/sh64/rel32-5.d gas/testsuite/gas/sh/sh64/rel64-1.d gas/testsuite/gas/sh/sh64/rel64-2.d gas/testsuite/gas/sh/sh64/rel64-3.d gas/testsuite/gas/sh/sh64/rel64-4.d gas/testsuite/gas/sh/sh64/rel64-5.d gas/testsuite/gas/sh/sh64/relax-1.d gas/testsuite/gas/sh/sh64/relax-1.s gas/testsuite/gas/sh/sh64/relax-2.d gas/testsuite/gas/sh/sh64/relax-2.s gas/testsuite/gas/sh/sh64/relax-3.d gas/testsuite/gas/sh/sh64/relax-3.s gas/testsuite/gas/sh/sh64/sh64.exp gas/testsuite/gas/sh/sh64/shift-1.s gas/testsuite/gas/sh/sh64/shift-2.s gas/testsuite/gas/sh/sh64/shift-3.s gas/testsuite/gas/sh/sh64/shift32-1.d gas/testsuite/gas/sh/sh64/shift32-3.d gas/testsuite/gas/sh/sh64/shift32-noexp-3.d gas/testsuite/gas/sh/sh64/shift64-1.d gas/testsuite/gas/sh/sh64/shift64-2.d gas/testsuite/gas/sh/sh64/shift64-3.d gas/testsuite/gas/sh/sh64/shift64-noexp-3.d gas/testsuite/gas/sh/sh64/syntax-1.d gas/testsuite/gas/sh/sh64/syntax-1.s gas/testsuite/gas/sh/sh64/syntax-2.d gas/testsuite/gas/sh/sh64/syntax-2.s gas/testsuite/gas/sh/sh64/ua-1.s gas/testsuite/gas/sh/sh64/ua32-1.d gas/testsuite/gas/sh/sh64/ua64-1.d gas/testsuite/gas/sh/tlsd.d gas/testsuite/gas/sh/tlsd.s gas/testsuite/gas/sh/tlsnopic.d gas/testsuite/gas/sh/tlsnopic.s gas/testsuite/gas/sh/tlspic.d gas/testsuite/gas/sh/tlspic.s gas/testsuite/gas/sh/too_large.d gas/testsuite/gas/sh/too_large.s gas/testsuite/gas/sparc-solaris/addend.exp gas/testsuite/gas/sparc-solaris/addend.s gas/testsuite/gas/sparc-solaris/gas.exp gas/testsuite/gas/sparc-solaris/sol-cc.s gas/testsuite/gas/sparc-solaris/sol-gcc.s gas/testsuite/gas/sparc/asi.d gas/testsuite/gas/sparc/asi.s gas/testsuite/gas/sparc/membar.d gas/testsuite/gas/sparc/membar.s gas/testsuite/gas/sparc/mism-1.s gas/testsuite/gas/sparc/mismatch.exp gas/testsuite/gas/sparc/pcrel.d gas/testsuite/gas/sparc/pcrel.s gas/testsuite/gas/sparc/pcrel64.d gas/testsuite/gas/sparc/pcrel64.s gas/testsuite/gas/sparc/plt.d gas/testsuite/gas/sparc/plt.s gas/testsuite/gas/sparc/plt64.d gas/testsuite/gas/sparc/plt64.s gas/testsuite/gas/sparc/prefetch.d gas/testsuite/gas/sparc/prefetch.s gas/testsuite/gas/sparc/rdhpr.d gas/testsuite/gas/sparc/rdhpr.s gas/testsuite/gas/sparc/rdpr.d gas/testsuite/gas/sparc/rdpr.s gas/testsuite/gas/sparc/reloc64.d gas/testsuite/gas/sparc/reloc64.s gas/testsuite/gas/sparc/set64.d gas/testsuite/gas/sparc/set64.s gas/testsuite/gas/sparc/sparc.exp gas/testsuite/gas/sparc/splet-2.d gas/testsuite/gas/sparc/splet-2.s gas/testsuite/gas/sparc/splet.d gas/testsuite/gas/sparc/splet.s gas/testsuite/gas/sparc/synth.d gas/testsuite/gas/sparc/synth.s gas/testsuite/gas/sparc/synth64.d gas/testsuite/gas/sparc/synth64.s gas/testsuite/gas/sparc/unalign.d gas/testsuite/gas/sparc/unalign.s gas/testsuite/gas/sparc/vxworks-pic.d gas/testsuite/gas/sparc/vxworks-pic.s gas/testsuite/gas/sparc/window.d gas/testsuite/gas/sparc/window.s gas/testsuite/gas/sparc/wrhpr.d gas/testsuite/gas/sparc/wrhpr.s gas/testsuite/gas/sparc/wrpr.d gas/testsuite/gas/sparc/wrpr.s gas/testsuite/gas/sun4/addend.d gas/testsuite/gas/sun4/addend.exp gas/testsuite/gas/sun4/addend.s gas/testsuite/gas/symver/symver.exp gas/testsuite/gas/symver/symver0.d gas/testsuite/gas/symver/symver0.s gas/testsuite/gas/symver/symver1.d gas/testsuite/gas/symver/symver1.s gas/testsuite/gas/symver/symver2.l gas/testsuite/gas/symver/symver2.s gas/testsuite/gas/symver/symver3.l gas/testsuite/gas/symver/symver3.s gas/testsuite/gas/symver/symver4.l gas/testsuite/gas/symver/symver4.s gas/testsuite/gas/symver/symver5.l gas/testsuite/gas/symver/symver5.s gas/testsuite/gas/symver/symver6.l gas/testsuite/gas/symver/symver6.s gas/testsuite/gas/template gas/testsuite/gas/tic4x/addressing.s gas/testsuite/gas/tic4x/addressing_c3x.d gas/testsuite/gas/tic4x/addressing_c4x.d gas/testsuite/gas/tic4x/allopcodes.S gas/testsuite/gas/tic4x/data.d gas/testsuite/gas/tic4x/data.s gas/testsuite/gas/tic4x/float.d gas/testsuite/gas/tic4x/float.s gas/testsuite/gas/tic4x/opclasses.h gas/testsuite/gas/tic4x/opcodes.s gas/testsuite/gas/tic4x/opcodes_c3x.d gas/testsuite/gas/tic4x/opcodes_c4x.d gas/testsuite/gas/tic4x/opcodes_new.d gas/testsuite/gas/tic4x/rebuild.sh gas/testsuite/gas/tic4x/registers.s gas/testsuite/gas/tic4x/registers_c3x.d gas/testsuite/gas/tic4x/registers_c4x.d gas/testsuite/gas/tic4x/tic4x.exp gas/testsuite/gas/tic4x/zeros.d gas/testsuite/gas/tic4x/zeros.s gas/testsuite/gas/tic54x/address.d gas/testsuite/gas/tic54x/address.s gas/testsuite/gas/tic54x/addrfar.d gas/testsuite/gas/tic54x/align.d gas/testsuite/gas/tic54x/align.s gas/testsuite/gas/tic54x/all-opcodes.d gas/testsuite/gas/tic54x/all-opcodes.s gas/testsuite/gas/tic54x/asg.d gas/testsuite/gas/tic54x/asg.s gas/testsuite/gas/tic54x/cons.d gas/testsuite/gas/tic54x/cons.s gas/testsuite/gas/tic54x/consfar.d gas/testsuite/gas/tic54x/extaddr.d gas/testsuite/gas/tic54x/extaddr.s gas/testsuite/gas/tic54x/field.d gas/testsuite/gas/tic54x/field.s gas/testsuite/gas/tic54x/in_mlib.asm gas/testsuite/gas/tic54x/labels.d gas/testsuite/gas/tic54x/labels.inc gas/testsuite/gas/tic54x/labels.s gas/testsuite/gas/tic54x/loop.d gas/testsuite/gas/tic54x/loop.s gas/testsuite/gas/tic54x/lp.d gas/testsuite/gas/tic54x/lp.s gas/testsuite/gas/tic54x/macro.d gas/testsuite/gas/tic54x/macro.s gas/testsuite/gas/tic54x/macro1.s gas/testsuite/gas/tic54x/macros.lib gas/testsuite/gas/tic54x/math.d gas/testsuite/gas/tic54x/math.s gas/testsuite/gas/tic54x/opcodes.d gas/testsuite/gas/tic54x/opcodes.s gas/testsuite/gas/tic54x/sections.d gas/testsuite/gas/tic54x/sections.s gas/testsuite/gas/tic54x/set.d gas/testsuite/gas/tic54x/set.s gas/testsuite/gas/tic54x/struct.d gas/testsuite/gas/tic54x/struct.s gas/testsuite/gas/tic54x/subsym.d gas/testsuite/gas/tic54x/subsym.s gas/testsuite/gas/tic54x/subsym1.s gas/testsuite/gas/tic54x/tic54x.exp gas/testsuite/gas/v850/arith.s gas/testsuite/gas/v850/basic.exp gas/testsuite/gas/v850/bit.s gas/testsuite/gas/v850/branch.s gas/testsuite/gas/v850/compare.s gas/testsuite/gas/v850/fepsw.s gas/testsuite/gas/v850/hilo.s gas/testsuite/gas/v850/hilo2.s gas/testsuite/gas/v850/jumps.s gas/testsuite/gas/v850/logical.s gas/testsuite/gas/v850/mem.s gas/testsuite/gas/v850/misc.s gas/testsuite/gas/v850/move.s gas/testsuite/gas/v850/range.s gas/testsuite/gas/v850/reloc.s gas/testsuite/gas/v850/split-lo16.d gas/testsuite/gas/v850/split-lo16.s gas/testsuite/gas/v850/v850e1.d gas/testsuite/gas/v850/v850e1.s gas/testsuite/gas/vax/elf-rel.d gas/testsuite/gas/vax/elf-rel.s gas/testsuite/gas/vax/flonum.d gas/testsuite/gas/vax/flonum.s gas/testsuite/gas/vax/quad.s gas/testsuite/gas/vax/quad_elf.s gas/testsuite/gas/vax/vax.exp gas/testsuite/gas/xc16x/add.s gas/testsuite/gas/xc16x/add_test.s gas/testsuite/gas/xc16x/addb.s gas/testsuite/gas/xc16x/addc.s gas/testsuite/gas/xc16x/addcb.s gas/testsuite/gas/xc16x/and.s gas/testsuite/gas/xc16x/andb.s gas/testsuite/gas/xc16x/bfldl.s gas/testsuite/gas/xc16x/bit.s gas/testsuite/gas/xc16x/calla.s gas/testsuite/gas/xc16x/calli.s gas/testsuite/gas/xc16x/cmp.s gas/testsuite/gas/xc16x/cmp_test.s gas/testsuite/gas/xc16x/cmpb.s gas/testsuite/gas/xc16x/cmpi.s gas/testsuite/gas/xc16x/cpl.s gas/testsuite/gas/xc16x/div.s gas/testsuite/gas/xc16x/jmpa.s gas/testsuite/gas/xc16x/jmpi.s gas/testsuite/gas/xc16x/jmpr.s gas/testsuite/gas/xc16x/mov.s gas/testsuite/gas/xc16x/mov_test.s gas/testsuite/gas/xc16x/movb.s gas/testsuite/gas/xc16x/movbs.s gas/testsuite/gas/xc16x/movbz.s gas/testsuite/gas/xc16x/mul.s gas/testsuite/gas/xc16x/neg.s gas/testsuite/gas/xc16x/nop.s gas/testsuite/gas/xc16x/or.s gas/testsuite/gas/xc16x/orb.s gas/testsuite/gas/xc16x/prior.s gas/testsuite/gas/xc16x/pushpop.s gas/testsuite/gas/xc16x/ret.s gas/testsuite/gas/xc16x/scxt.s gas/testsuite/gas/xc16x/shlrol.s gas/testsuite/gas/xc16x/sub.s gas/testsuite/gas/xc16x/sub_test.s gas/testsuite/gas/xc16x/subb.s gas/testsuite/gas/xc16x/subc.s gas/testsuite/gas/xc16x/subcb.s gas/testsuite/gas/xc16x/syscontrol1.s gas/testsuite/gas/xc16x/syscontrol2.s gas/testsuite/gas/xc16x/trap.s gas/testsuite/gas/xc16x/xc16x.exp gas/testsuite/gas/xc16x/xor.s gas/testsuite/gas/xc16x/xorb.s gas/testsuite/gas/xstormy16/allinsn.d gas/testsuite/gas/xstormy16/allinsn.exp gas/testsuite/gas/xstormy16/allinsn.s gas/testsuite/gas/xstormy16/allinsn.sh gas/testsuite/gas/xstormy16/gcc.d gas/testsuite/gas/xstormy16/gcc.s gas/testsuite/gas/xstormy16/gcc.sh gas/testsuite/gas/xstormy16/reloc-1.d gas/testsuite/gas/xstormy16/reloc-1.s gas/testsuite/gas/xstormy16/reloc-2.d gas/testsuite/gas/xstormy16/reloc-2.s gas/testsuite/gas/xtensa/all.exp gas/testsuite/gas/xtensa/entry_align.s gas/testsuite/gas/xtensa/entry_misalign.s gas/testsuite/gas/xtensa/entry_misalign2.s gas/testsuite/gas/xtensa/j_too_far.s gas/testsuite/gas/xtensa/loop_align.s gas/testsuite/gas/xtensa/loop_misalign.s gas/testsuite/gas/xtensa/short_branch_offset.d gas/testsuite/gas/xtensa/short_branch_offset.s gas/testsuite/gas/z80/offset.d gas/testsuite/gas/z80/offset.s gas/testsuite/gas/z80/quotes.d gas/testsuite/gas/z80/quotes.s gas/testsuite/gas/z80/redef.d gas/testsuite/gas/z80/redef.s gas/testsuite/gas/z80/suffix.d gas/testsuite/gas/z80/suffix.s gas/testsuite/gas/z80/z80.exp gas/testsuite/gas/z8k/calr-backf.s gas/testsuite/gas/z8k/calr-forwf.s gas/testsuite/gas/z8k/calr.d gas/testsuite/gas/z8k/calr.s gas/testsuite/gas/z8k/ctrl-names.d gas/testsuite/gas/z8k/ctrl-names.s gas/testsuite/gas/z8k/dec.s gas/testsuite/gas/z8k/decbf.s gas/testsuite/gas/z8k/decf.s gas/testsuite/gas/z8k/djnz-backf.s gas/testsuite/gas/z8k/djnz-backf2.s gas/testsuite/gas/z8k/djnz.d gas/testsuite/gas/z8k/djnz.s gas/testsuite/gas/z8k/eidi.s gas/testsuite/gas/z8k/eidif.s gas/testsuite/gas/z8k/inc.s gas/testsuite/gas/z8k/incbf.s gas/testsuite/gas/z8k/incf.s gas/testsuite/gas/z8k/inout.d gas/testsuite/gas/z8k/inout.s gas/testsuite/gas/z8k/jmp-cc.d gas/testsuite/gas/z8k/jmp-cc.s gas/testsuite/gas/z8k/jr-back.d gas/testsuite/gas/z8k/jr-back.s gas/testsuite/gas/z8k/jr-backf.s gas/testsuite/gas/z8k/jr-forw.d gas/testsuite/gas/z8k/jr-forw.s gas/testsuite/gas/z8k/jr-forwf.s gas/testsuite/gas/z8k/ldk.s gas/testsuite/gas/z8k/ldkf.s gas/testsuite/gas/z8k/ret-cc.d gas/testsuite/gas/z8k/ret-cc.s gas/testsuite/gas/z8k/z8k.exp gas/testsuite/lib/doboth gas/testsuite/lib/doobjcmp gas/testsuite/lib/dostriptest gas/testsuite/lib/dotest gas/testsuite/lib/dounsreloc gas/testsuite/lib/dounssym gas/testsuite/lib/gas-defs.exp gas/testsuite/lib/gas-dg.exp gas/testsuite/lib/run gas/write.c gas/write.h gdb/CONTRIBUTE gdb/COPYING gdb/ChangeLog gdb/ChangeLog-1990 gdb/ChangeLog-1991 gdb/ChangeLog-1992 gdb/ChangeLog-1993 gdb/ChangeLog-1994 gdb/ChangeLog-1995 gdb/ChangeLog-1996 gdb/ChangeLog-1997 gdb/ChangeLog-1998 gdb/ChangeLog-1999 gdb/ChangeLog-2000 gdb/ChangeLog-2001 gdb/ChangeLog-2002 gdb/ChangeLog-2003 gdb/ChangeLog-2004 gdb/ChangeLog-2005 gdb/ChangeLog-3.x gdb/MAINTAINERS gdb/Makefile.in gdb/NEWS gdb/PROBLEMS gdb/README gdb/abug-rom.c gdb/acinclude.m4 gdb/aclocal.m4 gdb/ada-exp.y gdb/ada-lang.c gdb/ada-lang.h gdb/ada-lex.l gdb/ada-typeprint.c gdb/ada-valprint.c gdb/aix-thread.c gdb/alpha-linux-nat.c gdb/alpha-linux-tdep.c gdb/alpha-mdebug-tdep.c gdb/alpha-nat.c gdb/alpha-osf1-tdep.c gdb/alpha-tdep.c gdb/alpha-tdep.h gdb/alphabsd-nat.c gdb/alphabsd-tdep.c gdb/alphabsd-tdep.h gdb/alphafbsd-tdep.c gdb/alphanbsd-tdep.c gdb/alphaobsd-tdep.c gdb/amd64-linux-nat.c gdb/amd64-linux-tdep.c gdb/amd64-nat.c gdb/amd64-nat.h gdb/amd64-sol2-tdep.c gdb/amd64-tdep.c gdb/amd64-tdep.h gdb/amd64bsd-nat.c gdb/amd64fbsd-nat.c gdb/amd64fbsd-tdep.c gdb/amd64nbsd-nat.c gdb/amd64nbsd-tdep.c gdb/amd64obsd-nat.c gdb/amd64obsd-tdep.c gdb/annotate.c gdb/annotate.h gdb/arch-utils.c gdb/arch-utils.h gdb/arm-linux-nat.c gdb/arm-linux-tdep.c gdb/arm-linux-tdep.h gdb/arm-tdep.c gdb/arm-tdep.h gdb/armnbsd-nat.c gdb/armnbsd-tdep.c gdb/armobsd-tdep.c gdb/auxv.c gdb/auxv.h gdb/avr-tdep.c gdb/ax-gdb.c gdb/ax-gdb.h gdb/ax-general.c gdb/ax.h gdb/bcache.c gdb/bcache.h gdb/bfd-target.c gdb/bfd-target.h gdb/block.c gdb/block.h gdb/blockframe.c gdb/breakpoint.c gdb/breakpoint.h gdb/bsd-kvm.c gdb/bsd-kvm.h gdb/bsd-uthread.c gdb/bsd-uthread.h gdb/buildsym.c gdb/buildsym.h gdb/c-exp.y gdb/c-lang.c gdb/c-lang.h gdb/c-typeprint.c gdb/c-valprint.c gdb/call-cmds.h gdb/charset.c gdb/charset.h gdb/cli-out.c gdb/cli-out.h gdb/cli/cli-cmds.c gdb/cli/cli-cmds.h gdb/cli/cli-decode.c gdb/cli/cli-decode.h gdb/cli/cli-dump.c gdb/cli/cli-dump.h gdb/cli/cli-interp.c gdb/cli/cli-logging.c gdb/cli/cli-script.c gdb/cli/cli-script.h gdb/cli/cli-setshow.c gdb/cli/cli-setshow.h gdb/cli/cli-utils.c gdb/cli/cli-utils.h gdb/coff-pe-read.c gdb/coff-pe-read.h gdb/coff-solib.c gdb/coff-solib.h gdb/coffread.c gdb/command.h gdb/complaints.c gdb/complaints.h gdb/completer.c gdb/completer.h gdb/config.in gdb/config/alpha/alpha-linux.mh gdb/config/alpha/alpha-linux.mt gdb/config/alpha/alpha-osf1.mh gdb/config/alpha/alpha-osf1.mt gdb/config/alpha/alpha-osf2.mh gdb/config/alpha/alpha-osf3.mh gdb/config/alpha/alpha.mt gdb/config/alpha/fbsd.mh gdb/config/alpha/fbsd.mt gdb/config/alpha/nbsd.mh gdb/config/alpha/nbsd.mt gdb/config/alpha/nm-linux.h gdb/config/alpha/nm-osf.h gdb/config/alpha/nm-osf2.h gdb/config/alpha/nm-osf3.h gdb/config/alpha/obsd.mt gdb/config/alpha/tm-alpha.h gdb/config/alpha/tm-alphalinux.h gdb/config/arm/embed.mt gdb/config/arm/linux.mh gdb/config/arm/linux.mt gdb/config/arm/nbsd.mt gdb/config/arm/nbsdaout.mh gdb/config/arm/nbsdelf.mh gdb/config/arm/nm-linux.h gdb/config/arm/nm-nbsdaout.h gdb/config/arm/obsd.mt gdb/config/arm/tm-arm.h gdb/config/arm/tm-embed.h gdb/config/arm/tm-linux.h gdb/config/arm/tm-wince.h gdb/config/arm/wince.mt gdb/config/avr/avr.mt gdb/config/cris/cris.mt gdb/config/d10v/d10v.mt gdb/config/djgpp/README gdb/config/djgpp/config.sed gdb/config/djgpp/djcheck.sh gdb/config/djgpp/djconfig.sh gdb/config/djgpp/fnchange.lst gdb/config/frv/frv.mt gdb/config/frv/tm-frv.h gdb/config/h8300/h8300.mt gdb/config/i386/cygwin.mh gdb/config/i386/cygwin.mt gdb/config/i386/fbsd.mh gdb/config/i386/fbsd.mt gdb/config/i386/fbsd64.mh gdb/config/i386/fbsd64.mt gdb/config/i386/go32.mh gdb/config/i386/i386.mt gdb/config/i386/i386gnu.mh gdb/config/i386/i386gnu.mt gdb/config/i386/i386sco.mh gdb/config/i386/i386sco4.mh gdb/config/i386/i386sco5.mh gdb/config/i386/i386sol2.mh gdb/config/i386/i386sol2.mt gdb/config/i386/i386v.mh gdb/config/i386/i386v4.mh gdb/config/i386/i386v42mp.mh gdb/config/i386/linux.mh gdb/config/i386/linux.mt gdb/config/i386/linux64.mh gdb/config/i386/linux64.mt gdb/config/i386/nbsd.mt gdb/config/i386/nbsd64.mh gdb/config/i386/nbsd64.mt gdb/config/i386/nbsdaout.mh gdb/config/i386/nbsdelf.mh gdb/config/i386/ncr3000.mh gdb/config/i386/ncr3000.mt gdb/config/i386/nm-cygwin.h gdb/config/i386/nm-fbsd.h gdb/config/i386/nm-go32.h gdb/config/i386/nm-i386.h gdb/config/i386/nm-i386gnu.h gdb/config/i386/nm-i386sco.h gdb/config/i386/nm-i386sco4.h gdb/config/i386/nm-i386sco5.h gdb/config/i386/nm-i386sol2.h gdb/config/i386/nm-i386v.h gdb/config/i386/nm-i386v4.h gdb/config/i386/nm-i386v42mp.h gdb/config/i386/nm-linux.h gdb/config/i386/nm-linux64.h gdb/config/i386/nto.mh gdb/config/i386/nto.mt gdb/config/i386/obsd.mh gdb/config/i386/obsd.mt gdb/config/i386/obsd64.mh gdb/config/i386/obsd64.mt gdb/config/i386/obsdaout.mh gdb/config/i386/sol2-64.mh gdb/config/i386/sol2-64.mt gdb/config/i386/tm-i386sol2.h gdb/config/i386/tm-linux.h gdb/config/i386/tm-nto.h gdb/config/ia64/ia64.mt gdb/config/ia64/linux.mh gdb/config/ia64/linux.mt gdb/config/ia64/nm-linux.h gdb/config/ia64/tm-linux.h gdb/config/iq2000/iq2000.mt gdb/config/m32c/m32c.mt gdb/config/m32r/linux.mh gdb/config/m32r/linux.mt gdb/config/m32r/m32r.mt gdb/config/m32r/nm-linux.h gdb/config/m68hc11/m68hc11.mt gdb/config/m68k/cisco.mt gdb/config/m68k/linux.mh gdb/config/m68k/linux.mt gdb/config/m68k/monitor.mt gdb/config/m68k/nbsd.mt gdb/config/m68k/nbsdaout.mh gdb/config/m68k/nbsdelf.mh gdb/config/m68k/nm-linux.h gdb/config/m68k/obsd.mh gdb/config/m68k/obsd.mt gdb/config/m68k/os68k.mt gdb/config/m68k/st2000.mt gdb/config/m68k/tm-cisco.h gdb/config/m68k/tm-monitor.h gdb/config/m68k/tm-os68k.h gdb/config/m88k/obsd.mh gdb/config/m88k/obsd.mt gdb/config/mips/embed.mt gdb/config/mips/irix5.mh gdb/config/mips/irix5.mt gdb/config/mips/irix6.mh gdb/config/mips/irix6.mt gdb/config/mips/linux.mh gdb/config/mips/linux.mt gdb/config/mips/nbsd.mh gdb/config/mips/nbsd.mt gdb/config/mips/nm-irix5.h gdb/config/mips/nm-linux.h gdb/config/mips/obsd64.mh gdb/config/mips/obsd64.mt gdb/config/mips/tm-linux.h gdb/config/mips/tm-nbsd.h gdb/config/mips/tm-wince.h gdb/config/mips/wince.mt gdb/config/mn10300/linux.mt gdb/config/mn10300/mn10300.mt gdb/config/mt/mt.mt gdb/config/nm-linux.h gdb/config/nm-lynx.h gdb/config/nm-nbsd.h gdb/config/nm-nbsdaout.h gdb/config/pa/hppa.mt gdb/config/pa/hppa64.mt gdb/config/pa/hppahpux.mt gdb/config/pa/hpux.mh gdb/config/pa/linux.mh gdb/config/pa/linux.mt gdb/config/pa/nm-linux.h gdb/config/pa/obsd.mh gdb/config/pa/obsd.mt gdb/config/pa/tm-hppa.h gdb/config/pa/tm-hppah.h gdb/config/pa/tm-linux.h gdb/config/powerpc/aix.mh gdb/config/powerpc/aix.mt gdb/config/powerpc/linux.mh gdb/config/powerpc/linux.mt gdb/config/powerpc/nbsd.mh gdb/config/powerpc/nbsd.mt gdb/config/powerpc/nm-aix.h gdb/config/powerpc/nm-linux.h gdb/config/powerpc/nm-ppc64-linux.h gdb/config/powerpc/obsd.mh gdb/config/powerpc/obsd.mt gdb/config/powerpc/ppc-eabi.mt gdb/config/powerpc/ppc-sim.mt gdb/config/powerpc/ppc64-linux.mh gdb/config/powerpc/tm-linux.h gdb/config/powerpc/tm-ppc-eabi.h gdb/config/rs6000/aix4.mh gdb/config/rs6000/aix4.mt gdb/config/rs6000/nm-rs6000.h gdb/config/rs6000/rs6000.mh gdb/config/rs6000/rs6000.mt gdb/config/rs6000/rs6000lynx.mh gdb/config/rs6000/rs6000lynx.mt gdb/config/rs6000/tm-rs6000.h gdb/config/rs6000/tm-rs6000ly.h gdb/config/s390/nm-linux.h gdb/config/s390/s390.mh gdb/config/s390/s390.mt gdb/config/sh/embed.mt gdb/config/sh/linux.mt gdb/config/sh/nbsd.mh gdb/config/sh/nbsd.mt gdb/config/sh/sh64.mt gdb/config/sh/tm-linux.h gdb/config/sh/tm-nbsd.h gdb/config/sh/tm-sh.h gdb/config/sh/tm-wince.h gdb/config/sh/wince.mt gdb/config/sparc/fbsd.mh gdb/config/sparc/fbsd.mt gdb/config/sparc/linux.mh gdb/config/sparc/linux.mt gdb/config/sparc/linux64.mh gdb/config/sparc/linux64.mt gdb/config/sparc/nbsd.mt gdb/config/sparc/nbsd64.mh gdb/config/sparc/nbsd64.mt gdb/config/sparc/nbsdaout.mh gdb/config/sparc/nbsdelf.mh gdb/config/sparc/nm-linux.h gdb/config/sparc/nm-sol2.h gdb/config/sparc/obsd.mt gdb/config/sparc/obsd64.mt gdb/config/sparc/sol2-64.mt gdb/config/sparc/sol2.mh gdb/config/sparc/sol2.mt gdb/config/sparc/sparc.mt gdb/config/sparc/sparc64.mt gdb/config/sparc/tm-sol2.h gdb/config/tm-linux.h gdb/config/tm-nto.h gdb/config/v850/v850.mt gdb/config/vax/nbsd.mt gdb/config/vax/nbsdaout.mh gdb/config/vax/nbsdelf.mh gdb/config/vax/nm-vax.h gdb/config/vax/obsd.mh gdb/config/vax/obsd.mt gdb/config/vax/vax.mh gdb/config/vax/vax.mt gdb/config/xstormy16/xstormy16.mt gdb/configure gdb/configure.ac gdb/configure.host gdb/configure.tgt gdb/copying.awk gdb/copying.c gdb/core-aout.c gdb/core-regset.c gdb/corefile.c gdb/corelow.c gdb/cp-abi.c gdb/cp-abi.h gdb/cp-name-parser.y gdb/cp-namespace.c gdb/cp-support.c gdb/cp-support.h gdb/cp-valprint.c gdb/cpu32bug-rom.c gdb/cris-tdep.c gdb/d10v-tdep.c gdb/dbug-rom.c gdb/dbxread.c gdb/dcache.c gdb/dcache.h gdb/defs.h gdb/demangle.c gdb/dictionary.c gdb/dictionary.h gdb/dink32-rom.c gdb/disasm.c gdb/disasm.h gdb/doc/ChangeLog gdb/doc/LRS gdb/doc/Makefile.in gdb/doc/a4rc.sed gdb/doc/agentexpr.texi gdb/doc/all-cfg.texi gdb/doc/annotate.texinfo gdb/doc/configure gdb/doc/configure.ac gdb/doc/fdl.texi gdb/doc/gdb.texinfo gdb/doc/gdbint.texinfo gdb/doc/gpl.texi gdb/doc/lpsrc.sed gdb/doc/observer.texi gdb/doc/psrc.sed gdb/doc/refcard.tex gdb/doc/stabs.texinfo gdb/doublest.c gdb/doublest.h gdb/dsrec.c gdb/dummy-frame.c gdb/dummy-frame.h gdb/dve3900-rom.c gdb/dwarf2-frame.c gdb/dwarf2-frame.h gdb/dwarf2expr.c gdb/dwarf2expr.h gdb/dwarf2loc.c gdb/dwarf2loc.h gdb/dwarf2read.c gdb/dwarfread.c gdb/elfread.c gdb/environ.c gdb/environ.h gdb/eval.c gdb/event-loop.c gdb/event-loop.h gdb/event-top.c gdb/event-top.h gdb/exc_request.defs gdb/exceptions.c gdb/exceptions.h gdb/exec.c gdb/exec.h gdb/expprint.c gdb/expression.h gdb/f-exp.y gdb/f-lang.c gdb/f-lang.h gdb/f-typeprint.c gdb/f-valprint.c gdb/fbsd-nat.c gdb/fbsd-nat.h gdb/findvar.c gdb/fork-child.c gdb/frame-base.c gdb/frame-base.h gdb/frame-unwind.c gdb/frame-unwind.h gdb/frame.c gdb/frame.h gdb/frv-linux-tdep.c gdb/frv-tdep.c gdb/frv-tdep.h gdb/gcore.c gdb/gdb-events.c gdb/gdb-events.h gdb/gdb-events.sh gdb/gdb-stabs.h gdb/gdb.1 gdb/gdb.c gdb/gdb.gdb gdb/gdb.h gdb/gdb_assert.h gdb/gdb_curses.h gdb/gdb_dirent.h gdb/gdb_gcore.sh gdb/gdb_indent.sh gdb/gdb_locale.h gdb/gdb_mbuild.sh gdb/gdb_obstack.h gdb/gdb_proc_service.h gdb/gdb_ptrace.h gdb/gdb_regex.h gdb/gdb_select.h gdb/gdb_stat.h gdb/gdb_string.h gdb/gdb_thread_db.h gdb/gdb_vfork.h gdb/gdb_wait.h gdb/gdbarch.c gdb/gdbarch.h gdb/gdbarch.sh gdb/gdbcmd.h gdb/gdbcore.h gdb/gdbinit.in gdb/gdbserver/ChangeLog gdb/gdbserver/Makefile.in gdb/gdbserver/README gdb/gdbserver/acinclude.m4 gdb/gdbserver/aclocal.m4 gdb/gdbserver/config.in gdb/gdbserver/configure gdb/gdbserver/configure.ac gdb/gdbserver/configure.srv gdb/gdbserver/gdb_proc_service.h gdb/gdbserver/gdbreplay.c gdb/gdbserver/gdbserver.1 gdb/gdbserver/i387-fp.c gdb/gdbserver/i387-fp.h gdb/gdbserver/inferiors.c gdb/gdbserver/linux-arm-low.c gdb/gdbserver/linux-cris-low.c gdb/gdbserver/linux-crisv32-low.c gdb/gdbserver/linux-i386-low.c gdb/gdbserver/linux-ia64-low.c gdb/gdbserver/linux-low.c gdb/gdbserver/linux-low.h gdb/gdbserver/linux-m32r-low.c gdb/gdbserver/linux-m68k-low.c gdb/gdbserver/linux-mips-low.c gdb/gdbserver/linux-ppc-low.c gdb/gdbserver/linux-ppc64-low.c gdb/gdbserver/linux-s390-low.c gdb/gdbserver/linux-sh-low.c gdb/gdbserver/linux-x86-64-low.c gdb/gdbserver/mem-break.c gdb/gdbserver/mem-break.h gdb/gdbserver/proc-service.c gdb/gdbserver/regcache.c gdb/gdbserver/regcache.h gdb/gdbserver/remote-utils.c gdb/gdbserver/server.c gdb/gdbserver/server.h gdb/gdbserver/target.c gdb/gdbserver/target.h gdb/gdbserver/terminal.h gdb/gdbserver/thread-db.c gdb/gdbserver/utils.c gdb/gdbserver/win32-i386-low.c gdb/gdbthread.h gdb/gdbtypes.c gdb/gdbtypes.h gdb/glibc-tdep.c gdb/glibc-tdep.h gdb/gnu-nat.c gdb/gnu-nat.h gdb/gnu-v2-abi.c gdb/gnu-v2-abi.h gdb/gnu-v3-abi.c gdb/go32-nat.c gdb/gregset.h gdb/h8300-tdep.c gdb/hpacc-abi.c gdb/hppa-hpux-nat.c gdb/hppa-hpux-tdep.c gdb/hppa-linux-nat.c gdb/hppa-linux-tdep.c gdb/hppa-tdep.c gdb/hppa-tdep.h gdb/hppabsd-nat.c gdb/hppabsd-tdep.c gdb/hpread.c gdb/hpux-thread.c gdb/i386-cygwin-tdep.c gdb/i386-linux-nat.c gdb/i386-linux-tdep.c gdb/i386-linux-tdep.h gdb/i386-nat.c gdb/i386-nto-tdep.c gdb/i386-sol2-nat.c gdb/i386-sol2-tdep.c gdb/i386-stub.c gdb/i386-tdep.c gdb/i386-tdep.h gdb/i386bsd-nat.c gdb/i386bsd-nat.h gdb/i386bsd-tdep.c gdb/i386fbsd-nat.c gdb/i386fbsd-tdep.c gdb/i386gnu-nat.c gdb/i386gnu-tdep.c gdb/i386nbsd-nat.c gdb/i386nbsd-tdep.c gdb/i386obsd-nat.c gdb/i386obsd-tdep.c gdb/i386v-nat.c gdb/i386v4-nat.c gdb/i387-tdep.c gdb/i387-tdep.h gdb/ia64-linux-nat.c gdb/ia64-linux-tdep.c gdb/ia64-tdep.c gdb/ia64-tdep.h gdb/inf-child.c gdb/inf-child.h gdb/inf-loop.c gdb/inf-loop.h gdb/inf-ptrace.c gdb/inf-ptrace.h gdb/inf-ttrace.c gdb/inf-ttrace.h gdb/infcall.c gdb/infcall.h gdb/infcmd.c gdb/inferior.h gdb/inflow.c gdb/inflow.h gdb/infptrace.c gdb/infrun.c gdb/inftarg.c gdb/interps.c gdb/interps.h gdb/iq2000-tdep.c gdb/irix5-nat.c gdb/jv-exp.y gdb/jv-lang.c gdb/jv-lang.h gdb/jv-typeprint.c gdb/jv-valprint.c gdb/language.c gdb/language.h gdb/libunwind-frame.c gdb/libunwind-frame.h gdb/linespec.c gdb/linespec.h gdb/linux-fork.c gdb/linux-fork.h gdb/linux-nat.c gdb/linux-nat.h gdb/linux-thread-db.c gdb/lynx-nat.c gdb/m2-exp.y gdb/m2-lang.c gdb/m2-lang.h gdb/m2-typeprint.c gdb/m2-valprint.c gdb/m32c-tdep.c gdb/m32r-linux-nat.c gdb/m32r-linux-tdep.c gdb/m32r-rom.c gdb/m32r-stub.c gdb/m32r-tdep.c gdb/m32r-tdep.h gdb/m68hc11-tdep.c gdb/m68k-stub.c gdb/m68k-tdep.c gdb/m68k-tdep.h gdb/m68kbsd-nat.c gdb/m68kbsd-tdep.c gdb/m68klinux-nat.c gdb/m68klinux-tdep.c gdb/m88k-tdep.c gdb/m88k-tdep.h gdb/m88kbsd-nat.c gdb/macrocmd.c gdb/macroexp.c gdb/macroexp.h gdb/macroscope.c gdb/macroscope.h gdb/macrotab.c gdb/macrotab.h gdb/main.c gdb/main.h gdb/maint.c gdb/mdebugread.c gdb/mdebugread.h gdb/mem-break.c gdb/memattr.c gdb/memattr.h gdb/mi/ChangeLog-1999-2003 gdb/mi/gdb-mi.el gdb/mi/mi-cmd-break.c gdb/mi/mi-cmd-disas.c gdb/mi/mi-cmd-env.c gdb/mi/mi-cmd-file.c gdb/mi/mi-cmd-stack.c gdb/mi/mi-cmd-var.c gdb/mi/mi-cmds.c gdb/mi/mi-cmds.h gdb/mi/mi-common.c gdb/mi/mi-common.h gdb/mi/mi-console.c gdb/mi/mi-console.h gdb/mi/mi-getopt.c gdb/mi/mi-getopt.h gdb/mi/mi-interp.c gdb/mi/mi-main.c gdb/mi/mi-main.h gdb/mi/mi-out.c gdb/mi/mi-out.h gdb/mi/mi-parse.c gdb/mi/mi-parse.h gdb/mi/mi-symbol-cmds.c gdb/mingw-hdep.c gdb/minsyms.c gdb/mips-irix-tdep.c gdb/mips-linux-nat.c gdb/mips-linux-tdep.c gdb/mips-linux-tdep.h gdb/mips-mdebug-tdep.c gdb/mips-mdebug-tdep.h gdb/mips-tdep.c gdb/mips-tdep.h gdb/mips64obsd-nat.c gdb/mips64obsd-tdep.c gdb/mipsnbsd-nat.c gdb/mipsnbsd-tdep.c gdb/mipsnbsd-tdep.h gdb/mipsread.c gdb/mipsv4-nat.c gdb/mn10300-linux-tdep.c gdb/mn10300-tdep.c gdb/mn10300-tdep.h gdb/monitor.c gdb/monitor.h gdb/msg.defs gdb/msg_reply.defs gdb/mt-tdep.c gdb/nbsd-tdep.c gdb/nbsd-tdep.h gdb/nlmread.c gdb/notify.defs gdb/nto-procfs.c gdb/nto-tdep.c gdb/nto-tdep.h gdb/objc-exp.y gdb/objc-lang.c gdb/objc-lang.h gdb/objfiles.c gdb/objfiles.h gdb/obsd-tdep.c gdb/obsd-tdep.h gdb/observer.c gdb/observer.sh gdb/ocd.c gdb/ocd.h gdb/osabi.c gdb/osabi.h gdb/osf-share/AT386/cma_thread_io.h gdb/osf-share/HP800/cma_thread_io.h gdb/osf-share/README gdb/osf-share/RIOS/cma_thread_io.h gdb/osf-share/cma_attr.h gdb/osf-share/cma_deb_core.h gdb/osf-share/cma_debug_client.h gdb/osf-share/cma_errors.h gdb/osf-share/cma_handle.h gdb/osf-share/cma_init.h gdb/osf-share/cma_list.h gdb/osf-share/cma_mutex.h gdb/osf-share/cma_sched.h gdb/osf-share/cma_semaphore_defs.h gdb/osf-share/cma_sequence.h gdb/osf-share/cma_stack.h gdb/osf-share/cma_stack_int.h gdb/osf-share/cma_tcb_defs.h gdb/osf-share/cma_util.h gdb/p-exp.y gdb/p-lang.c gdb/p-lang.h gdb/p-typeprint.c gdb/p-valprint.c gdb/parse.c gdb/parser-defs.h gdb/po/gdbtext gdb/posix-hdep.c gdb/ppc-bdm.c gdb/ppc-linux-nat.c gdb/ppc-linux-tdep.c gdb/ppc-sysv-tdep.c gdb/ppc-tdep.h gdb/ppcbug-rom.c gdb/ppcnbsd-nat.c gdb/ppcnbsd-tdep.c gdb/ppcnbsd-tdep.h gdb/ppcobsd-nat.c gdb/ppcobsd-tdep.c gdb/ppcobsd-tdep.h gdb/printcmd.c gdb/proc-api.c gdb/proc-events.c gdb/proc-flags.c gdb/proc-service.c gdb/proc-utils.h gdb/proc-why.c gdb/process_reply.defs gdb/procfs.c gdb/prologue-value.c gdb/prologue-value.h gdb/regcache.c gdb/regcache.h gdb/regformats/reg-arm.dat gdb/regformats/reg-cris.dat gdb/regformats/reg-crisv32.dat gdb/regformats/reg-i386-linux.dat gdb/regformats/reg-i386.dat gdb/regformats/reg-ia64.dat gdb/regformats/reg-m32r.dat gdb/regformats/reg-m68k.dat gdb/regformats/reg-mips.dat gdb/regformats/reg-ppc.dat gdb/regformats/reg-ppc64.dat gdb/regformats/reg-s390.dat gdb/regformats/reg-s390x.dat gdb/regformats/reg-sh.dat gdb/regformats/reg-x86-64.dat gdb/regformats/regdat.sh gdb/regformats/regdef.h gdb/reggroups.c gdb/reggroups.h gdb/regset.c gdb/regset.h gdb/remote-e7000.c gdb/remote-est.c gdb/remote-fileio.c gdb/remote-fileio.h gdb/remote-hms.c gdb/remote-m32r-sdi.c gdb/remote-mips.c gdb/remote-sds.c gdb/remote-sim.c gdb/remote-st.c gdb/remote-utils.c gdb/remote-utils.h gdb/remote.c gdb/remote.h gdb/reply_mig_hack.awk gdb/rom68k-rom.c gdb/rs6000-aix-tdep.c gdb/rs6000-nat.c gdb/rs6000-tdep.c gdb/rs6000-tdep.h gdb/s390-nat.c gdb/s390-tdep.c gdb/s390-tdep.h gdb/scm-exp.c gdb/scm-lang.c gdb/scm-lang.h gdb/scm-tags.h gdb/scm-valprint.c gdb/sentinel-frame.c gdb/sentinel-frame.h gdb/ser-base.c gdb/ser-base.h gdb/ser-e7kpc.c gdb/ser-go32.c gdb/ser-mingw.c gdb/ser-pipe.c gdb/ser-tcp.c gdb/ser-tcp.h gdb/ser-unix.c gdb/ser-unix.h gdb/serial.c gdb/serial.h gdb/sh-linux-tdep.c gdb/sh-stub.c gdb/sh-tdep.c gdb/sh-tdep.h gdb/sh3-rom.c gdb/sh64-tdep.c gdb/shnbsd-nat.c gdb/shnbsd-tdep.c gdb/shnbsd-tdep.h gdb/signals/signals.c gdb/sim-regno.h gdb/sol-thread.c gdb/sol2-tdep.c gdb/sol2-tdep.h gdb/solib-aix5.c gdb/solib-frv.c gdb/solib-irix.c gdb/solib-legacy.c gdb/solib-null.c gdb/solib-osf.c gdb/solib-pa64.c gdb/solib-pa64.h gdb/solib-som.c gdb/solib-som.h gdb/solib-sunos.c gdb/solib-svr4.c gdb/solib-svr4.h gdb/solib.c gdb/solib.h gdb/solist.h gdb/somread.c gdb/source.c gdb/source.h gdb/sparc-linux-nat.c gdb/sparc-linux-tdep.c gdb/sparc-nat.c gdb/sparc-nat.h gdb/sparc-sol2-nat.c gdb/sparc-sol2-tdep.c gdb/sparc-stub.c gdb/sparc-tdep.c gdb/sparc-tdep.h gdb/sparc64-linux-nat.c gdb/sparc64-linux-tdep.c gdb/sparc64-nat.c gdb/sparc64-sol2-tdep.c gdb/sparc64-tdep.c gdb/sparc64-tdep.h gdb/sparc64fbsd-nat.c gdb/sparc64fbsd-tdep.c gdb/sparc64nbsd-nat.c gdb/sparc64nbsd-tdep.c gdb/sparc64obsd-tdep.c gdb/sparcnbsd-nat.c gdb/sparcnbsd-tdep.c gdb/sparcobsd-tdep.c gdb/srec.h gdb/stabsread.c gdb/stabsread.h gdb/stack.c gdb/stack.h gdb/std-regs.c gdb/stop-gdb.c gdb/symfile-mem.c gdb/symfile.c gdb/symfile.h gdb/symmisc.c gdb/symtab.c gdb/symtab.h gdb/target.c gdb/target.h gdb/terminal.h gdb/testsuite/.gdbinit gdb/testsuite/ChangeLog gdb/testsuite/Makefile.in gdb/testsuite/TODO gdb/testsuite/aclocal.m4 gdb/testsuite/config/abug.exp gdb/testsuite/config/arm-ice.exp gdb/testsuite/config/cfdbug.exp gdb/testsuite/config/cpu32bug.exp gdb/testsuite/config/cygmon.exp gdb/testsuite/config/d10v.exp gdb/testsuite/config/dve.exp gdb/testsuite/config/est.exp gdb/testsuite/config/gdbserver.exp gdb/testsuite/config/h8300.exp gdb/testsuite/config/hmsirom.exp gdb/testsuite/config/i386-bozo.exp gdb/testsuite/config/i960.exp gdb/testsuite/config/m32r-stub.exp gdb/testsuite/config/m32r.exp gdb/testsuite/config/m68k-emc.exp gdb/testsuite/config/mips-idt.exp gdb/testsuite/config/mips.exp gdb/testsuite/config/mn10300-eval.exp gdb/testsuite/config/monitor.exp gdb/testsuite/config/netware.exp gdb/testsuite/config/nind.exp gdb/testsuite/config/proelf.exp gdb/testsuite/config/rom68k.exp gdb/testsuite/config/sh.exp gdb/testsuite/config/sid.exp gdb/testsuite/config/sim.exp gdb/testsuite/config/slite.exp gdb/testsuite/config/unix.exp gdb/testsuite/config/unknown.exp gdb/testsuite/config/vr4300.exp gdb/testsuite/config/vr5000.exp gdb/testsuite/config/vx.exp gdb/testsuite/config/vxworks.exp gdb/testsuite/config/vxworks29k.exp gdb/testsuite/configure gdb/testsuite/configure.ac gdb/testsuite/gdb.ada/Makefile.in gdb/testsuite/gdb.ada/array_return.exp gdb/testsuite/gdb.ada/array_return/p.adb gdb/testsuite/gdb.ada/array_return/pck.adb gdb/testsuite/gdb.ada/array_return/pck.ads gdb/testsuite/gdb.ada/arrayidx.exp gdb/testsuite/gdb.ada/arrayidx/p.adb gdb/testsuite/gdb.ada/exec_changed.exp gdb/testsuite/gdb.ada/exec_changed/first.adb gdb/testsuite/gdb.ada/exec_changed/second.adb gdb/testsuite/gdb.ada/fixed_points.exp gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb gdb/testsuite/gdb.ada/gnat_ada.gpr gdb/testsuite/gdb.ada/null_record.exp gdb/testsuite/gdb.ada/null_record/bar.adb gdb/testsuite/gdb.ada/null_record/bar.ads gdb/testsuite/gdb.ada/null_record/null_record.adb gdb/testsuite/gdb.ada/packed_array.exp gdb/testsuite/gdb.ada/packed_array/pa.adb gdb/testsuite/gdb.ada/start.exp gdb/testsuite/gdb.ada/start/dummy.adb gdb/testsuite/gdb.arch/Makefile.in gdb/testsuite/gdb.arch/alpha-step.c gdb/testsuite/gdb.arch/alpha-step.exp gdb/testsuite/gdb.arch/altivec-abi.c gdb/testsuite/gdb.arch/altivec-abi.exp gdb/testsuite/gdb.arch/altivec-regs.c gdb/testsuite/gdb.arch/altivec-regs.exp gdb/testsuite/gdb.arch/e500-abi.c gdb/testsuite/gdb.arch/e500-abi.exp gdb/testsuite/gdb.arch/e500-prologue.c gdb/testsuite/gdb.arch/e500-prologue.exp gdb/testsuite/gdb.arch/e500-regs.c gdb/testsuite/gdb.arch/e500-regs.exp gdb/testsuite/gdb.arch/gdb1291.exp gdb/testsuite/gdb.arch/gdb1291.s gdb/testsuite/gdb.arch/gdb1431.exp gdb/testsuite/gdb.arch/gdb1431.s gdb/testsuite/gdb.arch/gdb1558.c gdb/testsuite/gdb.arch/gdb1558.exp gdb/testsuite/gdb.arch/i386-cpuid.h gdb/testsuite/gdb.arch/i386-prologue.c gdb/testsuite/gdb.arch/i386-prologue.exp gdb/testsuite/gdb.arch/i386-size.c gdb/testsuite/gdb.arch/i386-size.exp gdb/testsuite/gdb.arch/i386-sse.c gdb/testsuite/gdb.arch/i386-sse.exp gdb/testsuite/gdb.arch/i386-unwind.c gdb/testsuite/gdb.arch/i386-unwind.exp gdb/testsuite/gdb.arch/pa-nullify.exp gdb/testsuite/gdb.arch/pa-nullify.s gdb/testsuite/gdb.arch/pa64-nullify.s gdb/testsuite/gdb.arch/powerpc-aix-prologue.c gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp gdb/testsuite/gdb.arch/powerpc-prologue.c gdb/testsuite/gdb.arch/powerpc-prologue.exp gdb/testsuite/gdb.asm/Makefile.in gdb/testsuite/gdb.asm/alpha.inc gdb/testsuite/gdb.asm/arm.inc gdb/testsuite/gdb.asm/asm-source.exp gdb/testsuite/gdb.asm/asmsrc1.s gdb/testsuite/gdb.asm/asmsrc2.s gdb/testsuite/gdb.asm/common.inc gdb/testsuite/gdb.asm/d10v.inc gdb/testsuite/gdb.asm/empty.inc gdb/testsuite/gdb.asm/frv.inc gdb/testsuite/gdb.asm/h8300.inc gdb/testsuite/gdb.asm/i386.inc gdb/testsuite/gdb.asm/ia64.inc gdb/testsuite/gdb.asm/iq2000.inc gdb/testsuite/gdb.asm/m32c.inc gdb/testsuite/gdb.asm/m32r-linux.inc gdb/testsuite/gdb.asm/m32r.inc gdb/testsuite/gdb.asm/m68hc11.inc gdb/testsuite/gdb.asm/m68k.inc gdb/testsuite/gdb.asm/mips.inc gdb/testsuite/gdb.asm/netbsd.inc gdb/testsuite/gdb.asm/openbsd.inc gdb/testsuite/gdb.asm/pa.inc gdb/testsuite/gdb.asm/pa64.inc gdb/testsuite/gdb.asm/powerpc.inc gdb/testsuite/gdb.asm/s390.inc gdb/testsuite/gdb.asm/s390x.inc gdb/testsuite/gdb.asm/sh.inc gdb/testsuite/gdb.asm/sparc.inc gdb/testsuite/gdb.asm/sparc64.inc gdb/testsuite/gdb.asm/v850.inc gdb/testsuite/gdb.asm/x86_64.inc gdb/testsuite/gdb.asm/xstormy16.inc gdb/testsuite/gdb.base/Makefile.in gdb/testsuite/gdb.base/a2-run.exp gdb/testsuite/gdb.base/advance.c gdb/testsuite/gdb.base/advance.exp gdb/testsuite/gdb.base/all-bin.exp gdb/testsuite/gdb.base/all-types.c gdb/testsuite/gdb.base/annota1.c gdb/testsuite/gdb.base/annota1.exp gdb/testsuite/gdb.base/annota3.c gdb/testsuite/gdb.base/annota3.exp gdb/testsuite/gdb.base/args.c gdb/testsuite/gdb.base/args.exp gdb/testsuite/gdb.base/arithmet.exp gdb/testsuite/gdb.base/arrayidx.c gdb/testsuite/gdb.base/arrayidx.exp gdb/testsuite/gdb.base/assign.exp gdb/testsuite/gdb.base/async.c gdb/testsuite/gdb.base/async.exp gdb/testsuite/gdb.base/attach.c gdb/testsuite/gdb.base/attach.exp gdb/testsuite/gdb.base/attach2.c gdb/testsuite/gdb.base/auxv.c gdb/testsuite/gdb.base/auxv.exp gdb/testsuite/gdb.base/average.c gdb/testsuite/gdb.base/bang.exp gdb/testsuite/gdb.base/bar.c gdb/testsuite/gdb.base/baz.c gdb/testsuite/gdb.base/bfp-test.c gdb/testsuite/gdb.base/bfp-test.exp gdb/testsuite/gdb.base/bigcore.c gdb/testsuite/gdb.base/bigcore.exp gdb/testsuite/gdb.base/bitfields.c gdb/testsuite/gdb.base/bitfields.exp gdb/testsuite/gdb.base/bitfields2.c gdb/testsuite/gdb.base/bitfields2.exp gdb/testsuite/gdb.base/bitops.exp gdb/testsuite/gdb.base/branches.c gdb/testsuite/gdb.base/break.c gdb/testsuite/gdb.base/break.exp gdb/testsuite/gdb.base/break1.c gdb/testsuite/gdb.base/call-ar-st.c gdb/testsuite/gdb.base/call-ar-st.exp gdb/testsuite/gdb.base/call-rt-st.c gdb/testsuite/gdb.base/call-rt-st.exp gdb/testsuite/gdb.base/call-sc.c gdb/testsuite/gdb.base/call-sc.exp gdb/testsuite/gdb.base/call-strs.c gdb/testsuite/gdb.base/call-strs.exp gdb/testsuite/gdb.base/callfuncs.c gdb/testsuite/gdb.base/callfuncs.exp gdb/testsuite/gdb.base/charset.c gdb/testsuite/gdb.base/charset.exp gdb/testsuite/gdb.base/checkpoint.c gdb/testsuite/gdb.base/checkpoint.exp gdb/testsuite/gdb.base/chng-syms.c gdb/testsuite/gdb.base/chng-syms.exp gdb/testsuite/gdb.base/code-expr.exp gdb/testsuite/gdb.base/commands.exp gdb/testsuite/gdb.base/completion.exp gdb/testsuite/gdb.base/complex.c gdb/testsuite/gdb.base/complex.exp gdb/testsuite/gdb.base/cond-expr.exp gdb/testsuite/gdb.base/condbreak.exp gdb/testsuite/gdb.base/consecutive.c gdb/testsuite/gdb.base/consecutive.exp gdb/testsuite/gdb.base/constvars.c gdb/testsuite/gdb.base/constvars.exp gdb/testsuite/gdb.base/corefile.exp gdb/testsuite/gdb.base/coremaker.c gdb/testsuite/gdb.base/coremaker2.c gdb/testsuite/gdb.base/cursal.c gdb/testsuite/gdb.base/cursal.exp gdb/testsuite/gdb.base/cvexpr.c gdb/testsuite/gdb.base/cvexpr.exp gdb/testsuite/gdb.base/d10v.ld gdb/testsuite/gdb.base/d10vovly.c gdb/testsuite/gdb.base/dbx.exp gdb/testsuite/gdb.base/default.exp gdb/testsuite/gdb.base/define.exp gdb/testsuite/gdb.base/del.c gdb/testsuite/gdb.base/del.exp gdb/testsuite/gdb.base/detach.exp gdb/testsuite/gdb.base/display.c gdb/testsuite/gdb.base/display.exp gdb/testsuite/gdb.base/dump.c gdb/testsuite/gdb.base/dump.exp gdb/testsuite/gdb.base/echo.exp gdb/testsuite/gdb.base/ena-dis-br.exp gdb/testsuite/gdb.base/ending-run.c gdb/testsuite/gdb.base/ending-run.exp gdb/testsuite/gdb.base/environ.exp gdb/testsuite/gdb.base/eval-skip.exp gdb/testsuite/gdb.base/execd-prog.c gdb/testsuite/gdb.base/exprs.c gdb/testsuite/gdb.base/exprs.exp gdb/testsuite/gdb.base/fileio.c gdb/testsuite/gdb.base/fileio.exp gdb/testsuite/gdb.base/finish.exp gdb/testsuite/gdb.base/float.exp gdb/testsuite/gdb.base/foll-exec.c gdb/testsuite/gdb.base/foll-exec.exp gdb/testsuite/gdb.base/foll-fork.c gdb/testsuite/gdb.base/foll-fork.exp gdb/testsuite/gdb.base/foll-vfork.c gdb/testsuite/gdb.base/foll-vfork.exp gdb/testsuite/gdb.base/foo.c gdb/testsuite/gdb.base/freebpcmd.c gdb/testsuite/gdb.base/freebpcmd.exp gdb/testsuite/gdb.base/funcargs.c gdb/testsuite/gdb.base/funcargs.exp gdb/testsuite/gdb.base/gcore.c gdb/testsuite/gdb.base/gcore.exp gdb/testsuite/gdb.base/gdb1056.exp gdb/testsuite/gdb.base/gdb1090.c gdb/testsuite/gdb.base/gdb1090.exp gdb/testsuite/gdb.base/gdb1250.c gdb/testsuite/gdb.base/gdb1250.exp gdb/testsuite/gdb.base/gdb1555-main.c gdb/testsuite/gdb.base/gdb1555.c gdb/testsuite/gdb.base/gdb1555.exp gdb/testsuite/gdb.base/gdb1821.c gdb/testsuite/gdb.base/gdb1821.exp gdb/testsuite/gdb.base/gdb_history gdb/testsuite/gdb.base/gdbvars.exp gdb/testsuite/gdb.base/grbx.c gdb/testsuite/gdb.base/help.exp gdb/testsuite/gdb.base/huge.c gdb/testsuite/gdb.base/huge.exp gdb/testsuite/gdb.base/ifelse.exp gdb/testsuite/gdb.base/info-proc.exp gdb/testsuite/gdb.base/int-type.c gdb/testsuite/gdb.base/interp.exp gdb/testsuite/gdb.base/interrupt.c gdb/testsuite/gdb.base/interrupt.exp gdb/testsuite/gdb.base/jump.c gdb/testsuite/gdb.base/jump.exp gdb/testsuite/gdb.base/langs.exp gdb/testsuite/gdb.base/langs0.c gdb/testsuite/gdb.base/langs1.c gdb/testsuite/gdb.base/langs1.f gdb/testsuite/gdb.base/langs2.c gdb/testsuite/gdb.base/langs2.cxx gdb/testsuite/gdb.base/lineinc.c gdb/testsuite/gdb.base/lineinc.exp gdb/testsuite/gdb.base/lineinc1.h gdb/testsuite/gdb.base/lineinc2.h gdb/testsuite/gdb.base/lineinc3.h gdb/testsuite/gdb.base/list.exp gdb/testsuite/gdb.base/list0.c gdb/testsuite/gdb.base/list0.h gdb/testsuite/gdb.base/list1.c gdb/testsuite/gdb.base/logical.exp gdb/testsuite/gdb.base/long_long.c gdb/testsuite/gdb.base/long_long.exp gdb/testsuite/gdb.base/m32r.ld gdb/testsuite/gdb.base/m32rovly.c gdb/testsuite/gdb.base/macscp.exp gdb/testsuite/gdb.base/macscp1.c gdb/testsuite/gdb.base/macscp2.h gdb/testsuite/gdb.base/macscp3.h gdb/testsuite/gdb.base/macscp4.h gdb/testsuite/gdb.base/maint.exp gdb/testsuite/gdb.base/mips_pro.c gdb/testsuite/gdb.base/mips_pro.exp gdb/testsuite/gdb.base/miscexprs.c gdb/testsuite/gdb.base/miscexprs.exp gdb/testsuite/gdb.base/multi-forks.c gdb/testsuite/gdb.base/multi-forks.exp gdb/testsuite/gdb.base/nodebug.c gdb/testsuite/gdb.base/nodebug.exp gdb/testsuite/gdb.base/opaque.exp gdb/testsuite/gdb.base/opaque0.c gdb/testsuite/gdb.base/opaque1.c gdb/testsuite/gdb.base/overlays.c gdb/testsuite/gdb.base/overlays.exp gdb/testsuite/gdb.base/ovlymgr.c gdb/testsuite/gdb.base/ovlymgr.h gdb/testsuite/gdb.base/page.exp gdb/testsuite/gdb.base/pc-fp.c gdb/testsuite/gdb.base/pc-fp.exp gdb/testsuite/gdb.base/pending.c gdb/testsuite/gdb.base/pending.exp gdb/testsuite/gdb.base/pendshr.c gdb/testsuite/gdb.base/pi.txt gdb/testsuite/gdb.base/pointers.c gdb/testsuite/gdb.base/pointers.exp gdb/testsuite/gdb.base/prelink-lib.c gdb/testsuite/gdb.base/prelink.c gdb/testsuite/gdb.base/prelink.exp gdb/testsuite/gdb.base/printcmds.c gdb/testsuite/gdb.base/printcmds.exp gdb/testsuite/gdb.base/psymtab.exp gdb/testsuite/gdb.base/psymtab1.c gdb/testsuite/gdb.base/psymtab2.c gdb/testsuite/gdb.base/ptr-typedef.c gdb/testsuite/gdb.base/ptr-typedef.exp gdb/testsuite/gdb.base/ptype.c gdb/testsuite/gdb.base/ptype.exp gdb/testsuite/gdb.base/ptype1.c gdb/testsuite/gdb.base/radix.exp gdb/testsuite/gdb.base/readline.exp gdb/testsuite/gdb.base/recurse.c gdb/testsuite/gdb.base/recurse.exp gdb/testsuite/gdb.base/regs.exp gdb/testsuite/gdb.base/relational.exp gdb/testsuite/gdb.base/relocate.c gdb/testsuite/gdb.base/relocate.exp gdb/testsuite/gdb.base/remote.c gdb/testsuite/gdb.base/remote.exp gdb/testsuite/gdb.base/remotetimeout.exp gdb/testsuite/gdb.base/reread.exp gdb/testsuite/gdb.base/reread1.c gdb/testsuite/gdb.base/reread2.c gdb/testsuite/gdb.base/restore.c gdb/testsuite/gdb.base/restore.exp gdb/testsuite/gdb.base/return.c gdb/testsuite/gdb.base/return.exp gdb/testsuite/gdb.base/return2.c gdb/testsuite/gdb.base/return2.exp gdb/testsuite/gdb.base/run.c gdb/testsuite/gdb.base/savedregs.c gdb/testsuite/gdb.base/savedregs.exp gdb/testsuite/gdb.base/scope.exp gdb/testsuite/gdb.base/scope0.c gdb/testsuite/gdb.base/scope1.c gdb/testsuite/gdb.base/sect-cmd.exp gdb/testsuite/gdb.base/sep-proc.c gdb/testsuite/gdb.base/sep.c gdb/testsuite/gdb.base/sep.exp gdb/testsuite/gdb.base/sepdebug.c gdb/testsuite/gdb.base/sepdebug.exp gdb/testsuite/gdb.base/setshow.c gdb/testsuite/gdb.base/setshow.exp gdb/testsuite/gdb.base/setvar.c gdb/testsuite/gdb.base/setvar.exp gdb/testsuite/gdb.base/shlib-call.exp gdb/testsuite/gdb.base/shmain.c gdb/testsuite/gdb.base/shr1.c gdb/testsuite/gdb.base/shr2.c gdb/testsuite/gdb.base/shreloc.c gdb/testsuite/gdb.base/shreloc.exp gdb/testsuite/gdb.base/shreloc1.c gdb/testsuite/gdb.base/shreloc2.c gdb/testsuite/gdb.base/sigall.c gdb/testsuite/gdb.base/sigall.exp gdb/testsuite/gdb.base/sigaltstack.c gdb/testsuite/gdb.base/sigaltstack.exp gdb/testsuite/gdb.base/sigbpt.c gdb/testsuite/gdb.base/sigbpt.exp gdb/testsuite/gdb.base/siginfo.c gdb/testsuite/gdb.base/siginfo.exp gdb/testsuite/gdb.base/signals.c gdb/testsuite/gdb.base/signals.exp gdb/testsuite/gdb.base/signull.c gdb/testsuite/gdb.base/signull.exp gdb/testsuite/gdb.base/sigrepeat.c gdb/testsuite/gdb.base/sigrepeat.exp gdb/testsuite/gdb.base/sigstep.c gdb/testsuite/gdb.base/sigstep.exp gdb/testsuite/gdb.base/sizeof.c gdb/testsuite/gdb.base/sizeof.exp gdb/testsuite/gdb.base/so-impl-ld.c gdb/testsuite/gdb.base/so-impl-ld.exp gdb/testsuite/gdb.base/so-indr-cl.c gdb/testsuite/gdb.base/so-indr-cl.exp gdb/testsuite/gdb.base/solib.c gdb/testsuite/gdb.base/solib.exp gdb/testsuite/gdb.base/solib1.c gdb/testsuite/gdb.base/solib2.c gdb/testsuite/gdb.base/source-error.gdb gdb/testsuite/gdb.base/source.exp gdb/testsuite/gdb.base/ss.h gdb/testsuite/gdb.base/start.c gdb/testsuite/gdb.base/start.exp gdb/testsuite/gdb.base/step-line.c gdb/testsuite/gdb.base/step-line.exp gdb/testsuite/gdb.base/step-line.inp gdb/testsuite/gdb.base/step-test.c gdb/testsuite/gdb.base/step-test.exp gdb/testsuite/gdb.base/store.c gdb/testsuite/gdb.base/store.exp gdb/testsuite/gdb.base/structs.c gdb/testsuite/gdb.base/structs.exp gdb/testsuite/gdb.base/structs2.c gdb/testsuite/gdb.base/structs2.exp gdb/testsuite/gdb.base/sum.c gdb/testsuite/gdb.base/term.exp gdb/testsuite/gdb.base/twice.c gdb/testsuite/gdb.base/twice.exp gdb/testsuite/gdb.base/unload.c gdb/testsuite/gdb.base/unload.exp gdb/testsuite/gdb.base/unloadshr.c gdb/testsuite/gdb.base/until.exp gdb/testsuite/gdb.base/varargs.c gdb/testsuite/gdb.base/varargs.exp gdb/testsuite/gdb.base/vforked-prog.c gdb/testsuite/gdb.base/volatile.exp gdb/testsuite/gdb.base/watchpoint.c gdb/testsuite/gdb.base/watchpoint.exp gdb/testsuite/gdb.base/whatis-exp.exp gdb/testsuite/gdb.base/whatis.c gdb/testsuite/gdb.base/whatis.exp gdb/testsuite/gdb.cp/Makefile.in gdb/testsuite/gdb.cp/ambiguous.cc gdb/testsuite/gdb.cp/ambiguous.exp gdb/testsuite/gdb.cp/annota2.cc gdb/testsuite/gdb.cp/annota2.exp gdb/testsuite/gdb.cp/annota3.cc gdb/testsuite/gdb.cp/annota3.exp gdb/testsuite/gdb.cp/anon-union.cc gdb/testsuite/gdb.cp/anon-union.exp gdb/testsuite/gdb.cp/bool.cc gdb/testsuite/gdb.cp/bool.exp gdb/testsuite/gdb.cp/breakpoint.cc gdb/testsuite/gdb.cp/breakpoint.exp gdb/testsuite/gdb.cp/bs15503.cc gdb/testsuite/gdb.cp/bs15503.exp gdb/testsuite/gdb.cp/casts.cc gdb/testsuite/gdb.cp/casts.exp gdb/testsuite/gdb.cp/class2.cc gdb/testsuite/gdb.cp/class2.exp gdb/testsuite/gdb.cp/classes.cc gdb/testsuite/gdb.cp/classes.exp gdb/testsuite/gdb.cp/cplusfuncs.cc gdb/testsuite/gdb.cp/cplusfuncs.exp gdb/testsuite/gdb.cp/ctti.exp gdb/testsuite/gdb.cp/cttiadd.cc gdb/testsuite/gdb.cp/cttiadd1.cc gdb/testsuite/gdb.cp/cttiadd2.cc gdb/testsuite/gdb.cp/cttiadd3.cc gdb/testsuite/gdb.cp/demangle.exp gdb/testsuite/gdb.cp/derivation.cc gdb/testsuite/gdb.cp/derivation.exp gdb/testsuite/gdb.cp/exception.cc gdb/testsuite/gdb.cp/exception.exp gdb/testsuite/gdb.cp/gdb1355.cc gdb/testsuite/gdb.cp/gdb1355.exp gdb/testsuite/gdb.cp/hang.H gdb/testsuite/gdb.cp/hang.exp gdb/testsuite/gdb.cp/hang1.C gdb/testsuite/gdb.cp/hang2.C gdb/testsuite/gdb.cp/hang3.C gdb/testsuite/gdb.cp/inherit.exp gdb/testsuite/gdb.cp/local.cc gdb/testsuite/gdb.cp/local.exp gdb/testsuite/gdb.cp/m-data.cc gdb/testsuite/gdb.cp/m-data.exp gdb/testsuite/gdb.cp/m-static.cc gdb/testsuite/gdb.cp/m-static.exp gdb/testsuite/gdb.cp/m-static.h gdb/testsuite/gdb.cp/m-static1.cc gdb/testsuite/gdb.cp/maint.exp gdb/testsuite/gdb.cp/member-ptr.cc gdb/testsuite/gdb.cp/member-ptr.exp gdb/testsuite/gdb.cp/method.cc gdb/testsuite/gdb.cp/method.exp gdb/testsuite/gdb.cp/misc.cc gdb/testsuite/gdb.cp/misc.exp gdb/testsuite/gdb.cp/namespace.cc gdb/testsuite/gdb.cp/namespace.exp gdb/testsuite/gdb.cp/namespace1.cc gdb/testsuite/gdb.cp/overload.cc gdb/testsuite/gdb.cp/overload.exp gdb/testsuite/gdb.cp/ovldbreak.cc gdb/testsuite/gdb.cp/ovldbreak.exp gdb/testsuite/gdb.cp/pr-1023.cc gdb/testsuite/gdb.cp/pr-1023.exp gdb/testsuite/gdb.cp/pr-1210.cc gdb/testsuite/gdb.cp/pr-1210.exp gdb/testsuite/gdb.cp/pr-574.cc gdb/testsuite/gdb.cp/pr-574.exp gdb/testsuite/gdb.cp/printmethod.cc gdb/testsuite/gdb.cp/printmethod.exp gdb/testsuite/gdb.cp/psmang.exp gdb/testsuite/gdb.cp/psmang1.cc gdb/testsuite/gdb.cp/psmang2.cc gdb/testsuite/gdb.cp/ref-params.cc gdb/testsuite/gdb.cp/ref-params.exp gdb/testsuite/gdb.cp/ref-types.cc gdb/testsuite/gdb.cp/ref-types.exp gdb/testsuite/gdb.cp/rtti.exp gdb/testsuite/gdb.cp/rtti.h gdb/testsuite/gdb.cp/rtti1.cc gdb/testsuite/gdb.cp/rtti2.cc gdb/testsuite/gdb.cp/templates.cc gdb/testsuite/gdb.cp/templates.exp gdb/testsuite/gdb.cp/try_catch.cc gdb/testsuite/gdb.cp/try_catch.exp gdb/testsuite/gdb.cp/userdef.cc gdb/testsuite/gdb.cp/userdef.exp gdb/testsuite/gdb.cp/virtfunc.cc gdb/testsuite/gdb.cp/virtfunc.exp gdb/testsuite/gdb.disasm/Makefile.in gdb/testsuite/gdb.disasm/am33.exp gdb/testsuite/gdb.disasm/am33.s gdb/testsuite/gdb.disasm/h8300s.exp gdb/testsuite/gdb.disasm/h8300s.s gdb/testsuite/gdb.disasm/hppa.exp gdb/testsuite/gdb.disasm/hppa.s gdb/testsuite/gdb.disasm/mn10200.s gdb/testsuite/gdb.disasm/mn10300.exp gdb/testsuite/gdb.disasm/mn10300.s gdb/testsuite/gdb.disasm/sh3.exp gdb/testsuite/gdb.disasm/sh3.s gdb/testsuite/gdb.disasm/t01_mov.exp gdb/testsuite/gdb.disasm/t01_mov.s gdb/testsuite/gdb.disasm/t02_mova.exp gdb/testsuite/gdb.disasm/t02_mova.s gdb/testsuite/gdb.disasm/t03_add.exp gdb/testsuite/gdb.disasm/t03_add.s gdb/testsuite/gdb.disasm/t04_sub.exp gdb/testsuite/gdb.disasm/t04_sub.s gdb/testsuite/gdb.disasm/t05_cmp.exp gdb/testsuite/gdb.disasm/t05_cmp.s gdb/testsuite/gdb.disasm/t06_ari2.exp gdb/testsuite/gdb.disasm/t06_ari2.s gdb/testsuite/gdb.disasm/t07_ari3.exp gdb/testsuite/gdb.disasm/t07_ari3.s gdb/testsuite/gdb.disasm/t08_or.exp gdb/testsuite/gdb.disasm/t08_or.s gdb/testsuite/gdb.disasm/t09_xor.exp gdb/testsuite/gdb.disasm/t09_xor.s gdb/testsuite/gdb.disasm/t10_and.exp gdb/testsuite/gdb.disasm/t10_and.s gdb/testsuite/gdb.disasm/t11_logs.exp gdb/testsuite/gdb.disasm/t11_logs.s gdb/testsuite/gdb.disasm/t12_bit.exp gdb/testsuite/gdb.disasm/t12_bit.s gdb/testsuite/gdb.disasm/t13_otr.exp gdb/testsuite/gdb.disasm/t13_otr.s gdb/testsuite/gdb.dwarf2/Makefile.in gdb/testsuite/gdb.dwarf2/dup-psym.S gdb/testsuite/gdb.dwarf2/dup-psym.exp gdb/testsuite/gdb.dwarf2/dw2-basic.S gdb/testsuite/gdb.dwarf2/dw2-basic.exp gdb/testsuite/gdb.dwarf2/dw2-intercu.S gdb/testsuite/gdb.dwarf2/dw2-intercu.exp gdb/testsuite/gdb.dwarf2/dw2-intermix.S gdb/testsuite/gdb.dwarf2/dw2-intermix.exp gdb/testsuite/gdb.dwarf2/file1.txt gdb/testsuite/gdb.dwarf2/mac-fileno.S gdb/testsuite/gdb.dwarf2/mac-fileno.exp gdb/testsuite/gdb.dwarf2/main.c gdb/testsuite/gdb.fortran/Makefile.in gdb/testsuite/gdb.fortran/array-element.exp gdb/testsuite/gdb.fortran/array-element.f gdb/testsuite/gdb.fortran/derived-type.exp gdb/testsuite/gdb.fortran/derived-type.f90 gdb/testsuite/gdb.fortran/exprs.exp gdb/testsuite/gdb.fortran/subarray.exp gdb/testsuite/gdb.fortran/subarray.f gdb/testsuite/gdb.fortran/types.exp gdb/testsuite/gdb.gdb/complaints.exp gdb/testsuite/gdb.gdb/observer.exp gdb/testsuite/gdb.gdb/selftest.exp gdb/testsuite/gdb.gdb/xfullpath.exp gdb/testsuite/gdb.hp/Makefile.in gdb/testsuite/gdb.hp/configure gdb/testsuite/gdb.hp/configure.ac gdb/testsuite/gdb.hp/gdb.aCC/Makefile.in gdb/testsuite/gdb.hp/gdb.aCC/configure gdb/testsuite/gdb.hp/gdb.aCC/configure.ac gdb/testsuite/gdb.hp/gdb.aCC/exception.exp gdb/testsuite/gdb.hp/gdb.aCC/optimize.c gdb/testsuite/gdb.hp/gdb.aCC/optimize.exp gdb/testsuite/gdb.hp/gdb.aCC/run.c gdb/testsuite/gdb.hp/gdb.aCC/watch-cmd.exp gdb/testsuite/gdb.hp/gdb.base-hp/Makefile.in gdb/testsuite/gdb.hp/gdb.base-hp/callfwmall.c gdb/testsuite/gdb.hp/gdb.base-hp/callfwmall.exp gdb/testsuite/gdb.hp/gdb.base-hp/configure gdb/testsuite/gdb.hp/gdb.base-hp/configure.ac gdb/testsuite/gdb.hp/gdb.base-hp/dollar.c gdb/testsuite/gdb.hp/gdb.base-hp/dollar.exp gdb/testsuite/gdb.hp/gdb.base-hp/genso-thresh.c gdb/testsuite/gdb.hp/gdb.base-hp/hwwatchbus.c gdb/testsuite/gdb.hp/gdb.base-hp/hwwatchbus.exp gdb/testsuite/gdb.hp/gdb.base-hp/pxdb.c gdb/testsuite/gdb.hp/gdb.base-hp/pxdb.exp gdb/testsuite/gdb.hp/gdb.base-hp/reg-pa64.exp gdb/testsuite/gdb.hp/gdb.base-hp/reg-pa64.s gdb/testsuite/gdb.hp/gdb.base-hp/reg.exp gdb/testsuite/gdb.hp/gdb.base-hp/reg.s gdb/testsuite/gdb.hp/gdb.base-hp/sized-enum.c gdb/testsuite/gdb.hp/gdb.base-hp/sized-enum.exp gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh.exp gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh.mk gdb/testsuite/gdb.hp/gdb.base-hp/so-thresh.sh gdb/testsuite/gdb.hp/gdb.compat/Makefile.in gdb/testsuite/gdb.hp/gdb.compat/average.c gdb/testsuite/gdb.hp/gdb.compat/configure gdb/testsuite/gdb.hp/gdb.compat/configure.ac gdb/testsuite/gdb.hp/gdb.compat/sum.c gdb/testsuite/gdb.hp/gdb.compat/xdb.c gdb/testsuite/gdb.hp/gdb.compat/xdb0.c gdb/testsuite/gdb.hp/gdb.compat/xdb0.h gdb/testsuite/gdb.hp/gdb.compat/xdb1.c gdb/testsuite/gdb.hp/gdb.compat/xdb1.exp gdb/testsuite/gdb.hp/gdb.compat/xdb2.exp gdb/testsuite/gdb.hp/gdb.compat/xdb3.exp gdb/testsuite/gdb.hp/gdb.defects/Makefile.in gdb/testsuite/gdb.hp/gdb.defects/bs14602.c gdb/testsuite/gdb.hp/gdb.defects/bs14602.exp gdb/testsuite/gdb.hp/gdb.defects/configure gdb/testsuite/gdb.hp/gdb.defects/configure.ac gdb/testsuite/gdb.hp/gdb.defects/solib-d.c gdb/testsuite/gdb.hp/gdb.defects/solib-d.exp gdb/testsuite/gdb.hp/gdb.defects/solib-d1.c gdb/testsuite/gdb.hp/gdb.defects/solib-d2.c gdb/testsuite/gdb.hp/gdb.objdbg/Makefile.in gdb/testsuite/gdb.hp/gdb.objdbg/configure gdb/testsuite/gdb.hp/gdb.objdbg/configure.ac gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01.exp gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x1.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x2.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x3.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg01/x3.h gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02.exp gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02/x1.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02/x2.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg02/x3.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03.exp gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03/x1.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03/x2.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg03/x3.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04.exp gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04/x.h gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04/x1.cc gdb/testsuite/gdb.hp/gdb.objdbg/objdbg04/x2.cc gdb/testsuite/gdb.hp/gdb.objdbg/tools/symaddr gdb/testsuite/gdb.hp/gdb.objdbg/tools/symaddr.pa64 gdb/testsuite/gdb.hp/gdb.objdbg/tools/test-objdbg.cc gdb/testsuite/gdb.hp/tools/odump gdb/testsuite/gdb.java/Makefile.in gdb/testsuite/gdb.java/jmain.exp gdb/testsuite/gdb.java/jmain.java gdb/testsuite/gdb.java/jmisc.exp gdb/testsuite/gdb.java/jmisc.java gdb/testsuite/gdb.java/jmisc1.exp gdb/testsuite/gdb.java/jprint.exp gdb/testsuite/gdb.java/jprint.java gdb/testsuite/gdb.java/jv-exp.exp gdb/testsuite/gdb.java/jv-print.exp gdb/testsuite/gdb.mi/ChangeLog-1999-2003 gdb/testsuite/gdb.mi/Makefile.in gdb/testsuite/gdb.mi/array.f gdb/testsuite/gdb.mi/basics.c gdb/testsuite/gdb.mi/gdb669.exp gdb/testsuite/gdb.mi/gdb680.exp gdb/testsuite/gdb.mi/gdb701.c gdb/testsuite/gdb.mi/gdb701.exp gdb/testsuite/gdb.mi/gdb792.cc gdb/testsuite/gdb.mi/gdb792.exp gdb/testsuite/gdb.mi/mi-basics.exp gdb/testsuite/gdb.mi/mi-break.exp gdb/testsuite/gdb.mi/mi-cli.exp gdb/testsuite/gdb.mi/mi-console.c gdb/testsuite/gdb.mi/mi-console.exp gdb/testsuite/gdb.mi/mi-disassemble.exp gdb/testsuite/gdb.mi/mi-eval.exp gdb/testsuite/gdb.mi/mi-file.exp gdb/testsuite/gdb.mi/mi-hack-cli.exp gdb/testsuite/gdb.mi/mi-pthreads.exp gdb/testsuite/gdb.mi/mi-read-memory.c gdb/testsuite/gdb.mi/mi-read-memory.exp gdb/testsuite/gdb.mi/mi-regs.exp gdb/testsuite/gdb.mi/mi-return.exp gdb/testsuite/gdb.mi/mi-simplerun.exp gdb/testsuite/gdb.mi/mi-stack.c gdb/testsuite/gdb.mi/mi-stack.exp gdb/testsuite/gdb.mi/mi-stepi.exp gdb/testsuite/gdb.mi/mi-syn-frame.c gdb/testsuite/gdb.mi/mi-syn-frame.exp gdb/testsuite/gdb.mi/mi-until.exp gdb/testsuite/gdb.mi/mi-var-block.exp gdb/testsuite/gdb.mi/mi-var-child-f.exp gdb/testsuite/gdb.mi/mi-var-child.c gdb/testsuite/gdb.mi/mi-var-child.exp gdb/testsuite/gdb.mi/mi-var-cmd.exp gdb/testsuite/gdb.mi/mi-var-display.exp gdb/testsuite/gdb.mi/mi-watch.exp gdb/testsuite/gdb.mi/mi2-basics.exp gdb/testsuite/gdb.mi/mi2-break.exp gdb/testsuite/gdb.mi/mi2-cli.exp gdb/testsuite/gdb.mi/mi2-console.exp gdb/testsuite/gdb.mi/mi2-disassemble.exp gdb/testsuite/gdb.mi/mi2-eval.exp gdb/testsuite/gdb.mi/mi2-file.exp gdb/testsuite/gdb.mi/mi2-hack-cli.exp gdb/testsuite/gdb.mi/mi2-pthreads.exp gdb/testsuite/gdb.mi/mi2-read-memory.exp gdb/testsuite/gdb.mi/mi2-regs.exp gdb/testsuite/gdb.mi/mi2-return.exp gdb/testsuite/gdb.mi/mi2-simplerun.exp gdb/testsuite/gdb.mi/mi2-stack.exp gdb/testsuite/gdb.mi/mi2-stepi.exp gdb/testsuite/gdb.mi/mi2-syn-frame.exp gdb/testsuite/gdb.mi/mi2-until.exp gdb/testsuite/gdb.mi/mi2-var-block.exp gdb/testsuite/gdb.mi/mi2-var-child.exp gdb/testsuite/gdb.mi/mi2-var-cmd.exp gdb/testsuite/gdb.mi/mi2-var-display.exp gdb/testsuite/gdb.mi/mi2-watch.exp gdb/testsuite/gdb.mi/pthreads.c gdb/testsuite/gdb.mi/testcmds gdb/testsuite/gdb.mi/until.c gdb/testsuite/gdb.mi/var-cmd.c gdb/testsuite/gdb.objc/Makefile.in gdb/testsuite/gdb.objc/basicclass.exp gdb/testsuite/gdb.objc/basicclass.m gdb/testsuite/gdb.objc/nondebug.exp gdb/testsuite/gdb.objc/nondebug.m gdb/testsuite/gdb.objc/objcdecode.exp gdb/testsuite/gdb.objc/objcdecode.m gdb/testsuite/gdb.server/Makefile.in gdb/testsuite/gdb.server/server-run.exp gdb/testsuite/gdb.server/server.c gdb/testsuite/gdb.stabs/Makefile.in gdb/testsuite/gdb.stabs/aout.sed gdb/testsuite/gdb.stabs/configure gdb/testsuite/gdb.stabs/configure.ac gdb/testsuite/gdb.stabs/ecoff.sed gdb/testsuite/gdb.stabs/exclfwd.exp gdb/testsuite/gdb.stabs/exclfwd.h gdb/testsuite/gdb.stabs/exclfwd1.c gdb/testsuite/gdb.stabs/exclfwd2.c gdb/testsuite/gdb.stabs/hppa.sed gdb/testsuite/gdb.stabs/weird.def gdb/testsuite/gdb.stabs/weird.exp gdb/testsuite/gdb.stabs/xcoff.sed gdb/testsuite/gdb.threads/Makefile.in gdb/testsuite/gdb.threads/bp_in_thread.c gdb/testsuite/gdb.threads/bp_in_thread.exp gdb/testsuite/gdb.threads/gcore-thread.exp gdb/testsuite/gdb.threads/killed.c gdb/testsuite/gdb.threads/killed.exp gdb/testsuite/gdb.threads/linux-dp.c gdb/testsuite/gdb.threads/linux-dp.exp gdb/testsuite/gdb.threads/manythreads.c gdb/testsuite/gdb.threads/manythreads.exp gdb/testsuite/gdb.threads/print-threads.c gdb/testsuite/gdb.threads/print-threads.exp gdb/testsuite/gdb.threads/pthread_cond_wait.c gdb/testsuite/gdb.threads/pthread_cond_wait.exp gdb/testsuite/gdb.threads/pthreads.c gdb/testsuite/gdb.threads/pthreads.exp gdb/testsuite/gdb.threads/schedlock.c gdb/testsuite/gdb.threads/schedlock.exp gdb/testsuite/gdb.threads/staticthreads.c gdb/testsuite/gdb.threads/staticthreads.exp gdb/testsuite/gdb.threads/step.c gdb/testsuite/gdb.threads/step.exp gdb/testsuite/gdb.threads/step2.exp gdb/testsuite/gdb.threads/switch-threads.c gdb/testsuite/gdb.threads/switch-threads.exp gdb/testsuite/gdb.threads/thread-specific.c gdb/testsuite/gdb.threads/thread-specific.exp gdb/testsuite/gdb.threads/thread_check.c gdb/testsuite/gdb.threads/thread_check.exp gdb/testsuite/gdb.threads/threadapply.c gdb/testsuite/gdb.threads/threadapply.exp gdb/testsuite/gdb.threads/tls-main.c gdb/testsuite/gdb.threads/tls-shared.c gdb/testsuite/gdb.threads/tls-shared.exp gdb/testsuite/gdb.threads/tls.c gdb/testsuite/gdb.threads/tls.exp gdb/testsuite/gdb.threads/watchthreads.c gdb/testsuite/gdb.threads/watchthreads.exp gdb/testsuite/gdb.trace/Makefile.in gdb/testsuite/gdb.trace/actions.c gdb/testsuite/gdb.trace/actions.exp gdb/testsuite/gdb.trace/backtrace.exp gdb/testsuite/gdb.trace/circ.c gdb/testsuite/gdb.trace/circ.exp gdb/testsuite/gdb.trace/collection.c gdb/testsuite/gdb.trace/collection.exp gdb/testsuite/gdb.trace/deltrace.exp gdb/testsuite/gdb.trace/gdb_c_test.c gdb/testsuite/gdb.trace/infotrace.exp gdb/testsuite/gdb.trace/limits.c gdb/testsuite/gdb.trace/limits.exp gdb/testsuite/gdb.trace/packetlen.exp gdb/testsuite/gdb.trace/passc-dyn.exp gdb/testsuite/gdb.trace/passcount.exp gdb/testsuite/gdb.trace/report.exp gdb/testsuite/gdb.trace/save-trace.exp gdb/testsuite/gdb.trace/tfind.exp gdb/testsuite/gdb.trace/tracecmd.exp gdb/testsuite/gdb.trace/while-dyn.exp gdb/testsuite/gdb.trace/while-stepping.exp gdb/testsuite/lib/ada.exp gdb/testsuite/lib/compiler.c gdb/testsuite/lib/compiler.cc gdb/testsuite/lib/cp-support.exp gdb/testsuite/lib/emc-support.exp gdb/testsuite/lib/gdb.exp gdb/testsuite/lib/gdbserver-support.exp gdb/testsuite/lib/java.exp gdb/testsuite/lib/mi-support.exp gdb/testsuite/lib/trace-support.exp gdb/thread.c gdb/top.c gdb/top.h gdb/tracepoint.c gdb/tracepoint.h gdb/trad-frame.c gdb/trad-frame.h gdb/tramp-frame.c gdb/tramp-frame.h gdb/tui/ChangeLog-1998-2003 gdb/tui/tui-command.c gdb/tui/tui-command.h gdb/tui/tui-data.c gdb/tui/tui-data.h gdb/tui/tui-disasm.c gdb/tui/tui-disasm.h gdb/tui/tui-file.c gdb/tui/tui-file.h gdb/tui/tui-hooks.c gdb/tui/tui-hooks.h gdb/tui/tui-interp.c gdb/tui/tui-io.c gdb/tui/tui-io.h gdb/tui/tui-layout.c gdb/tui/tui-layout.h gdb/tui/tui-main.c gdb/tui/tui-out.c gdb/tui/tui-regs.c gdb/tui/tui-regs.h gdb/tui/tui-source.c gdb/tui/tui-source.h gdb/tui/tui-stack.c gdb/tui/tui-stack.h gdb/tui/tui-win.c gdb/tui/tui-win.h gdb/tui/tui-windata.c gdb/tui/tui-windata.h gdb/tui/tui-wingeneral.c gdb/tui/tui-wingeneral.h gdb/tui/tui-winsource.c gdb/tui/tui-winsource.h gdb/tui/tui.c gdb/tui/tui.h gdb/typeprint.c gdb/typeprint.h gdb/ui-file.c gdb/ui-file.h gdb/ui-out.c gdb/ui-out.h gdb/user-regs.c gdb/user-regs.h gdb/utils.c gdb/uw-thread.c gdb/v850-tdep.c gdb/valarith.c gdb/valops.c gdb/valprint.c gdb/valprint.h gdb/value.c gdb/value.h gdb/varobj.c gdb/varobj.h gdb/vax-nat.c gdb/vax-tdep.c gdb/vax-tdep.h gdb/vaxbsd-nat.c gdb/vaxnbsd-tdep.c gdb/vaxobsd-tdep.c gdb/version.h gdb/version.in gdb/vx-share/README gdb/win32-nat.c gdb/win32-termcap.c gdb/wince-stub.c gdb/wince-stub.h gdb/wince.c gdb/windows-nat.c gdb/windows-termcap.c gdb/wrapper.c gdb/wrapper.h gdb/xcoffread.c gdb/xcoffsolib.c gdb/xcoffsolib.h gdb/xstormy16-tdep.c gprof/.gdbinit gprof/ChangeLog gprof/ChangeLog-2004 gprof/ChangeLog-2005 gprof/ChangeLog-9203 gprof/MAINTAINERS gprof/Makefile.am gprof/Makefile.in gprof/README gprof/TEST gprof/TODO gprof/acinclude.m4 gprof/aclocal.m4 gprof/alpha.c gprof/basic_blocks.c gprof/basic_blocks.h gprof/bb_exit_func.c gprof/bbconv.pl gprof/bsd_callg_bl.m gprof/call_graph.c gprof/call_graph.h gprof/cg_arcs.c gprof/cg_arcs.h gprof/cg_dfn.c gprof/cg_dfn.h gprof/cg_print.c gprof/cg_print.h gprof/configure gprof/configure.in gprof/corefile.c gprof/corefile.h gprof/dep-in.sed gprof/flat_bl.m gprof/fsf_callg_bl.m gprof/gconfig.in gprof/gen-c-prog.awk gprof/gmon.h gprof/gmon_io.c gprof/gmon_io.h gprof/gmon_out.h gprof/gprof.c gprof/gprof.h gprof/gprof.texi gprof/hertz.c gprof/hertz.h gprof/hist.c gprof/hist.h gprof/i386.c gprof/mips.c gprof/po/.cvsignore gprof/po/Make-in gprof/po/POTFILES.in gprof/po/da.po gprof/po/de.po gprof/po/es.po gprof/po/fr.po gprof/po/ga.po gprof/po/gprof.pot gprof/po/id.po gprof/po/pt_BR.po gprof/po/rw.po gprof/po/sv.po gprof/po/tr.po gprof/po/vi.po gprof/search_list.c gprof/search_list.h gprof/source.c gprof/source.h gprof/sparc.c gprof/stamp-h.in gprof/sym_ids.c gprof/sym_ids.h gprof/symtab.c gprof/symtab.h gprof/tahoe.c gprof/utils.c gprof/utils.h gprof/vax.c intl/ChangeLog intl/Makefile.in intl/README intl/VERSION intl/aclocal.m4 intl/bindtextdom.c intl/config.h.in intl/config.intl.in intl/configure intl/configure.ac intl/dcgettext.c intl/dcigettext.c intl/dcngettext.c intl/dgettext.c intl/dngettext.c intl/eval-plural.h intl/explodename.c intl/finddomain.c intl/gettext.c intl/gettextP.h intl/gmo.h intl/hash-string.h intl/intl-compat.c intl/l10nflist.c intl/libgnuintl.h intl/loadinfo.h intl/loadmsgcat.c intl/localcharset.c intl/localcharset.h intl/locale.alias intl/localealias.c intl/localename.c intl/log.c intl/ngettext.c intl/osdep.c intl/plural-exp.c intl/plural-exp.h intl/plural.c intl/plural.y intl/relocatable.c intl/relocatable.h intl/textdomain.c ld/ChangeLog ld/ChangeLog-0001 ld/ChangeLog-0203 ld/ChangeLog-2004 ld/ChangeLog-2005 ld/ChangeLog-9197 ld/ChangeLog-9899 ld/MAINTAINERS ld/Makefile.am ld/Makefile.in ld/NEWS ld/README ld/TODO ld/acinclude.m4 ld/aclocal.m4 ld/config.in ld/configure ld/configure.host ld/configure.in ld/configure.tgt ld/deffile.h ld/deffilep.y ld/dep-in.sed ld/elf-hints-local.h ld/emulparams/README ld/emulparams/aix5ppc.sh ld/emulparams/aix5rs6.sh ld/emulparams/aixppc.sh ld/emulparams/aixrs6.sh ld/emulparams/alpha.sh ld/emulparams/arcelf.sh ld/emulparams/arm_epoc_pe.sh ld/emulparams/armaoutb.sh ld/emulparams/armaoutl.sh ld/emulparams/armcoff.sh ld/emulparams/armelf.sh ld/emulparams/armelf_fbsd.sh ld/emulparams/armelf_linux.sh ld/emulparams/armelf_linux_eabi.sh ld/emulparams/armelf_nbsd.sh ld/emulparams/armelf_vxworks.sh ld/emulparams/armelfb.sh ld/emulparams/armelfb_linux.sh ld/emulparams/armelfb_linux_eabi.sh ld/emulparams/armelfb_nbsd.sh ld/emulparams/armnbsd.sh ld/emulparams/armnto.sh ld/emulparams/armpe.sh ld/emulparams/armsymbian.sh ld/emulparams/avr1.sh ld/emulparams/avr2.sh ld/emulparams/avr3.sh ld/emulparams/avr4.sh ld/emulparams/avr5.sh ld/emulparams/avr6.sh ld/emulparams/bfin.sh ld/emulparams/coff_i860.sh ld/emulparams/coff_sparc.sh ld/emulparams/crisaout.sh ld/emulparams/criself.sh ld/emulparams/crislinux.sh ld/emulparams/d10velf.sh ld/emulparams/d30v_e.sh ld/emulparams/d30v_o.sh ld/emulparams/d30velf.sh ld/emulparams/delta68.sh ld/emulparams/elf32_dlx.sh ld/emulparams/elf32_i860.sh ld/emulparams/elf32_i960.sh ld/emulparams/elf32_sparc.sh ld/emulparams/elf32_sparc_vxworks.sh ld/emulparams/elf32am33lin.sh ld/emulparams/elf32b4300.sh ld/emulparams/elf32bfinfd.sh ld/emulparams/elf32bmip.sh ld/emulparams/elf32bmipn32-defs.sh ld/emulparams/elf32bmipn32.sh ld/emulparams/elf32bsmip.sh ld/emulparams/elf32btsmip.sh ld/emulparams/elf32btsmipn32.sh ld/emulparams/elf32cr16c.sh ld/emulparams/elf32crx.sh ld/emulparams/elf32ebmip.sh ld/emulparams/elf32ebmipvxworks.sh ld/emulparams/elf32elmip.sh ld/emulparams/elf32elmipvxworks.sh ld/emulparams/elf32fr30.sh ld/emulparams/elf32frv.sh ld/emulparams/elf32frvfd.sh ld/emulparams/elf32i370.sh ld/emulparams/elf32ip2k.sh ld/emulparams/elf32iq10.sh ld/emulparams/elf32iq2000.sh ld/emulparams/elf32l4300.sh ld/emulparams/elf32lmip.sh ld/emulparams/elf32lppc.sh ld/emulparams/elf32lppcnto.sh ld/emulparams/elf32lppcsim.sh ld/emulparams/elf32lsmip.sh ld/emulparams/elf32ltsmip.sh ld/emulparams/elf32ltsmipn32.sh ld/emulparams/elf32m32c.sh ld/emulparams/elf32mcore.sh ld/emulparams/elf32mipswindiss.sh ld/emulparams/elf32mt.sh ld/emulparams/elf32openrisc.sh ld/emulparams/elf32ppc.sh ld/emulparams/elf32ppc_fbsd.sh ld/emulparams/elf32ppccommon.sh ld/emulparams/elf32ppclinux.sh ld/emulparams/elf32ppcnto.sh ld/emulparams/elf32ppcsim.sh ld/emulparams/elf32ppcvxworks.sh ld/emulparams/elf32ppcwindiss.sh ld/emulparams/elf32vax.sh ld/emulparams/elf32xc16x.sh ld/emulparams/elf32xc16xl.sh ld/emulparams/elf32xc16xs.sh ld/emulparams/elf32xstormy16.sh ld/emulparams/elf32xtensa.sh ld/emulparams/elf64_aix.sh ld/emulparams/elf64_ia64.sh ld/emulparams/elf64_ia64_fbsd.sh ld/emulparams/elf64_s390.sh ld/emulparams/elf64_sparc.sh ld/emulparams/elf64_sparc_fbsd.sh ld/emulparams/elf64alpha.sh ld/emulparams/elf64alpha_fbsd.sh ld/emulparams/elf64alpha_nbsd.sh ld/emulparams/elf64bmip.sh ld/emulparams/elf64btsmip.sh ld/emulparams/elf64hppa.sh ld/emulparams/elf64lppc.sh ld/emulparams/elf64ltsmip.sh ld/emulparams/elf64mmix.sh ld/emulparams/elf64ppc.sh ld/emulparams/elf_fbsd.sh ld/emulparams/elf_i386.sh ld/emulparams/elf_i386_be.sh ld/emulparams/elf_i386_chaos.sh ld/emulparams/elf_i386_fbsd.sh ld/emulparams/elf_i386_ldso.sh ld/emulparams/elf_i386_vxworks.sh ld/emulparams/elf_s390.sh ld/emulparams/elf_x86_64.sh ld/emulparams/elf_x86_64_fbsd.sh ld/emulparams/gld960.sh ld/emulparams/gld960coff.sh ld/emulparams/h8300.sh ld/emulparams/h8300elf.sh ld/emulparams/h8300h.sh ld/emulparams/h8300helf.sh ld/emulparams/h8300hn.sh ld/emulparams/h8300hnelf.sh ld/emulparams/h8300s.sh ld/emulparams/h8300self.sh ld/emulparams/h8300sn.sh ld/emulparams/h8300snelf.sh ld/emulparams/h8300sx.sh ld/emulparams/h8300sxelf.sh ld/emulparams/h8300sxn.sh ld/emulparams/h8300sxnelf.sh ld/emulparams/h8500.sh ld/emulparams/h8500b.sh ld/emulparams/h8500c.sh ld/emulparams/h8500m.sh ld/emulparams/h8500s.sh ld/emulparams/hp300bsd.sh ld/emulparams/hp3hpux.sh ld/emulparams/hppa64linux.sh ld/emulparams/hppaelf.sh ld/emulparams/hppalinux.sh ld/emulparams/hppanbsd.sh ld/emulparams/hppaobsd.sh ld/emulparams/i386aout.sh ld/emulparams/i386beos.sh ld/emulparams/i386bsd.sh ld/emulparams/i386coff.sh ld/emulparams/i386go32.sh ld/emulparams/i386linux.sh ld/emulparams/i386lynx.sh ld/emulparams/i386mach.sh ld/emulparams/i386moss.sh ld/emulparams/i386msdos.sh ld/emulparams/i386nbsd.sh ld/emulparams/i386nto.sh ld/emulparams/i386nw.sh ld/emulparams/i386pe.sh ld/emulparams/i386pe_posix.sh ld/emulparams/lnk960.sh ld/emulparams/m32relf.sh ld/emulparams/m32relf_linux.sh ld/emulparams/m32rlelf.sh ld/emulparams/m32rlelf_linux.sh ld/emulparams/m68hc11elf.sh ld/emulparams/m68hc11elfb.sh ld/emulparams/m68hc12elf.sh ld/emulparams/m68hc12elfb.sh ld/emulparams/m68k4knbsd.sh ld/emulparams/m68kaout.sh ld/emulparams/m68kaux.sh ld/emulparams/m68kcoff.sh ld/emulparams/m68kelf.sh ld/emulparams/m68kelfnbsd.sh ld/emulparams/m68klinux.sh ld/emulparams/m68knbsd.sh ld/emulparams/m68kpsos.sh ld/emulparams/m88kbcs.sh ld/emulparams/maxqcoff.sh ld/emulparams/mcorepe.sh ld/emulparams/mipsbig.sh ld/emulparams/mipsbsd.sh ld/emulparams/mipsidt.sh ld/emulparams/mipsidtl.sh ld/emulparams/mipslit.sh ld/emulparams/mipslnews.sh ld/emulparams/mipspe.sh ld/emulparams/mmo.sh ld/emulparams/mn10200.sh ld/emulparams/mn10300.sh ld/emulparams/msp430all.sh ld/emulparams/news.sh ld/emulparams/ns32knbsd.sh ld/emulparams/or32.sh ld/emulparams/or32elf.sh ld/emulparams/pc532macha.sh ld/emulparams/pdp11.sh ld/emulparams/pjelf.sh ld/emulparams/pjlelf.sh ld/emulparams/ppclynx.sh ld/emulparams/ppcmacos.sh ld/emulparams/ppcnw.sh ld/emulparams/ppcpe.sh ld/emulparams/riscix.sh ld/emulparams/sh.sh ld/emulparams/shelf.sh ld/emulparams/shelf32.sh ld/emulparams/shelf32_linux.sh ld/emulparams/shelf32_nbsd.sh ld/emulparams/shelf64.sh ld/emulparams/shelf64_nbsd.sh ld/emulparams/shelf_linux.sh ld/emulparams/shelf_nbsd.sh ld/emulparams/shelf_nto.sh ld/emulparams/shl.sh ld/emulparams/shlelf.sh ld/emulparams/shlelf32.sh ld/emulparams/shlelf32_linux.sh ld/emulparams/shlelf32_nbsd.sh ld/emulparams/shlelf64.sh ld/emulparams/shlelf64_nbsd.sh ld/emulparams/shlelf_linux.sh ld/emulparams/shlelf_nbsd.sh ld/emulparams/shlelf_nto.sh ld/emulparams/shlsymbian.sh ld/emulparams/shpe.sh ld/emulparams/sparcaout.sh ld/emulparams/sparclinux.sh ld/emulparams/sparcnbsd.sh ld/emulparams/st2000.sh ld/emulparams/sun3.sh ld/emulparams/sun4.sh ld/emulparams/tic30aout.sh ld/emulparams/tic30coff.sh ld/emulparams/tic3xcoff.sh ld/emulparams/tic3xcoff_onchip.sh ld/emulparams/tic4xcoff.sh ld/emulparams/tic54xcoff.sh ld/emulparams/tic80coff.sh ld/emulparams/v850.sh ld/emulparams/vanilla.sh ld/emulparams/vax.sh ld/emulparams/vaxnbsd.sh ld/emulparams/vsta.sh ld/emulparams/vxworks.sh ld/emulparams/w65.sh ld/emulparams/xtensa-config.sh ld/emulparams/z80.sh ld/emulparams/z8001.sh ld/emulparams/z8002.sh ld/emultempl/README ld/emultempl/aix.em ld/emultempl/alphaelf.em ld/emultempl/armcoff.em ld/emultempl/armelf.em ld/emultempl/astring.sed ld/emultempl/avrelf.em ld/emultempl/beos.em ld/emultempl/crxelf.em ld/emultempl/elf-generic.em ld/emultempl/elf32.em ld/emultempl/genelf.em ld/emultempl/generic.em ld/emultempl/gld960.em ld/emultempl/gld960c.em ld/emultempl/hppaelf.em ld/emultempl/ia64elf.em ld/emultempl/irix.em ld/emultempl/linux.em ld/emultempl/lnk960.em ld/emultempl/m68hc1xelf.em ld/emultempl/m68kcoff.em ld/emultempl/m68kelf.em ld/emultempl/mipsecoff.em ld/emultempl/mmix-elfnmmo.em ld/emultempl/mmixelf.em ld/emultempl/mmo.em ld/emultempl/needrelax.em ld/emultempl/netbsd.em ld/emultempl/ostring.sed ld/emultempl/pe.em ld/emultempl/ppc32elf.em ld/emultempl/ppc64elf.em ld/emultempl/sh64elf.em ld/emultempl/sunos.em ld/emultempl/ticoff.em ld/emultempl/vanilla.em ld/emultempl/vxworks.em ld/emultempl/xtensaelf.em ld/emultempl/z80.em ld/fdl.texi ld/gen-doc.texi ld/genscripts.sh ld/h8-doc.texi ld/ld.h ld/ld.texinfo ld/ldcref.c ld/ldctor.c ld/ldctor.h ld/ldemul.c ld/ldemul.h ld/ldexp.c ld/ldexp.h ld/ldfile.c ld/ldfile.h ld/ldgram.y ld/ldint.texinfo ld/ldlang.c ld/ldlang.h ld/ldlex.h ld/ldlex.l ld/ldmain.c ld/ldmain.h ld/ldmisc.c ld/ldmisc.h ld/ldver.c ld/ldver.h ld/ldwrite.c ld/ldwrite.h ld/lexsup.c ld/mri.c ld/mri.h ld/pe-dll.c ld/pe-dll.h ld/po/.cvsignore ld/po/Make-in ld/po/POTFILES.in ld/po/da.po ld/po/es.po ld/po/fr.po ld/po/ld.pot ld/po/sv.po ld/po/tr.po ld/po/vi.po ld/po/zh_CN.po ld/po/zh_TW.po ld/scripttempl/README ld/scripttempl/a29k.sc ld/scripttempl/aix.sc ld/scripttempl/alpha.sc ld/scripttempl/aout.sc ld/scripttempl/armaout.sc ld/scripttempl/armbpabi.sc ld/scripttempl/armcoff.sc ld/scripttempl/avr.sc ld/scripttempl/crisaout.sc ld/scripttempl/delta68.sc ld/scripttempl/dlx.sc ld/scripttempl/ebmon29k.sc ld/scripttempl/elf.sc ld/scripttempl/elf32cr16c.sc ld/scripttempl/elf32crx.sc ld/scripttempl/elf32msp430.sc ld/scripttempl/elf32msp430_3.sc ld/scripttempl/elf32sh-symbian.sc ld/scripttempl/elf32xc16x.sc ld/scripttempl/elf32xc16xl.sc ld/scripttempl/elf32xc16xs.sc ld/scripttempl/elf_chaos.sc ld/scripttempl/elfd10v.sc ld/scripttempl/elfd30v.sc ld/scripttempl/elfi370.sc ld/scripttempl/elfm68hc11.sc ld/scripttempl/elfm68hc12.sc ld/scripttempl/elfxtensa.sc ld/scripttempl/epocpe.sc ld/scripttempl/h8300.sc ld/scripttempl/h8300h.sc ld/scripttempl/h8300hn.sc ld/scripttempl/h8300s.sc ld/scripttempl/h8300sn.sc ld/scripttempl/h8300sx.sc ld/scripttempl/h8300sxn.sc ld/scripttempl/h8500.sc ld/scripttempl/h8500b.sc ld/scripttempl/h8500c.sc ld/scripttempl/h8500m.sc ld/scripttempl/h8500s.sc ld/scripttempl/hppaelf.sc ld/scripttempl/i386beos.sc ld/scripttempl/i386coff.sc ld/scripttempl/i386go32.sc ld/scripttempl/i386msdos.sc ld/scripttempl/i860coff.sc ld/scripttempl/i960.sc ld/scripttempl/ip2k.sc ld/scripttempl/iq2000.sc ld/scripttempl/m68kaux.sc ld/scripttempl/m68kcoff.sc ld/scripttempl/m68klynx.sc ld/scripttempl/m88kbcs.sc ld/scripttempl/maxqcoff.sc ld/scripttempl/mcorepe.sc ld/scripttempl/mips.sc ld/scripttempl/mipsbsd.sc ld/scripttempl/mmo.sc ld/scripttempl/nw.sc ld/scripttempl/or32.sc ld/scripttempl/pe.sc ld/scripttempl/pj.sc ld/scripttempl/ppcpe.sc ld/scripttempl/psos.sc ld/scripttempl/riscix.sc ld/scripttempl/sa29200.sc ld/scripttempl/sh.sc ld/scripttempl/sparccoff.sc ld/scripttempl/sparclynx.sc ld/scripttempl/st2000.sc ld/scripttempl/tic30aout.sc ld/scripttempl/tic30coff.sc ld/scripttempl/tic4xcoff.sc ld/scripttempl/tic54xcoff.sc ld/scripttempl/tic80coff.sc ld/scripttempl/v850.sc ld/scripttempl/vanilla.sc ld/scripttempl/w65.sc ld/scripttempl/xstormy16.sc ld/scripttempl/z80.sc ld/scripttempl/z8000.sc ld/stamp-h.in ld/sysdep.h ld/testsuite/ChangeLog ld/testsuite/ChangeLog-2004 ld/testsuite/ChangeLog-2005 ld/testsuite/ChangeLog-9303 ld/testsuite/config/default.exp ld/testsuite/ld-alpha/align.s ld/testsuite/ld-alpha/alpha.exp ld/testsuite/ld-alpha/tlsbin.dd ld/testsuite/ld-alpha/tlsbin.rd ld/testsuite/ld-alpha/tlsbin.s ld/testsuite/ld-alpha/tlsbin.sd ld/testsuite/ld-alpha/tlsbin.td ld/testsuite/ld-alpha/tlsbinpic.s ld/testsuite/ld-alpha/tlsbinr.dd ld/testsuite/ld-alpha/tlsbinr.rd ld/testsuite/ld-alpha/tlsbinr.sd ld/testsuite/ld-alpha/tlsg.s ld/testsuite/ld-alpha/tlsg.sd ld/testsuite/ld-alpha/tlslib.s ld/testsuite/ld-alpha/tlspic.dd ld/testsuite/ld-alpha/tlspic.rd ld/testsuite/ld-alpha/tlspic.sd ld/testsuite/ld-alpha/tlspic.td ld/testsuite/ld-alpha/tlspic1.s ld/testsuite/ld-alpha/tlspic2.s ld/testsuite/ld-arm/arm-app-abs32.d ld/testsuite/ld-arm/arm-app-abs32.r ld/testsuite/ld-arm/arm-app-abs32.s ld/testsuite/ld-arm/arm-app.d ld/testsuite/ld-arm/arm-app.r ld/testsuite/ld-arm/arm-app.s ld/testsuite/ld-arm/arm-be8.d ld/testsuite/ld-arm/arm-be8.s ld/testsuite/ld-arm/arm-call.d ld/testsuite/ld-arm/arm-call1.s ld/testsuite/ld-arm/arm-call2.s ld/testsuite/ld-arm/arm-dyn.ld ld/testsuite/ld-arm/arm-elf.exp ld/testsuite/ld-arm/arm-lib-plt32.d ld/testsuite/ld-arm/arm-lib-plt32.r ld/testsuite/ld-arm/arm-lib-plt32.s ld/testsuite/ld-arm/arm-lib.d ld/testsuite/ld-arm/arm-lib.ld ld/testsuite/ld-arm/arm-lib.r ld/testsuite/ld-arm/arm-lib.s ld/testsuite/ld-arm/arm-movwt.d ld/testsuite/ld-arm/arm-movwt.s ld/testsuite/ld-arm/arm-rel31.d ld/testsuite/ld-arm/arm-rel31.s ld/testsuite/ld-arm/arm-static-app.d ld/testsuite/ld-arm/arm-static-app.r ld/testsuite/ld-arm/arm-static-app.s ld/testsuite/ld-arm/arm-target1-abs.d ld/testsuite/ld-arm/arm-target1-rel.d ld/testsuite/ld-arm/arm-target1.s ld/testsuite/ld-arm/arm-target2-abs.d ld/testsuite/ld-arm/arm-target2-got-rel.d ld/testsuite/ld-arm/arm-target2-rel.d ld/testsuite/ld-arm/arm-target2.s ld/testsuite/ld-arm/arm.ld ld/testsuite/ld-arm/group-relocs-alu-bad.d ld/testsuite/ld-arm/group-relocs-alu-bad.s ld/testsuite/ld-arm/group-relocs-ldc-bad.d ld/testsuite/ld-arm/group-relocs-ldc-bad.s ld/testsuite/ld-arm/group-relocs-ldr-bad.d ld/testsuite/ld-arm/group-relocs-ldr-bad.s ld/testsuite/ld-arm/group-relocs-ldrs-bad.d ld/testsuite/ld-arm/group-relocs-ldrs-bad.s ld/testsuite/ld-arm/group-relocs.d ld/testsuite/ld-arm/group-relocs.s ld/testsuite/ld-arm/mixed-app-v5.d ld/testsuite/ld-arm/mixed-app.d ld/testsuite/ld-arm/mixed-app.r ld/testsuite/ld-arm/mixed-app.s ld/testsuite/ld-arm/mixed-app.sym ld/testsuite/ld-arm/mixed-lib.d ld/testsuite/ld-arm/mixed-lib.r ld/testsuite/ld-arm/mixed-lib.s ld/testsuite/ld-arm/mixed-lib.sym ld/testsuite/ld-arm/thumb-entry.d ld/testsuite/ld-arm/thumb-entry.s ld/testsuite/ld-arm/thumb-rel32.d ld/testsuite/ld-arm/thumb-rel32.s ld/testsuite/ld-arm/tls-app.d ld/testsuite/ld-arm/tls-app.r ld/testsuite/ld-arm/tls-app.s ld/testsuite/ld-arm/tls-lib.d ld/testsuite/ld-arm/tls-lib.r ld/testsuite/ld-arm/tls-lib.s ld/testsuite/ld-arm/use-thumb-lib.s ld/testsuite/ld-arm/use-thumb-lib.sym ld/testsuite/ld-arm/vxworks1-lib.dd ld/testsuite/ld-arm/vxworks1-lib.nd ld/testsuite/ld-arm/vxworks1-lib.rd ld/testsuite/ld-arm/vxworks1-lib.s ld/testsuite/ld-arm/vxworks1-static.d ld/testsuite/ld-arm/vxworks1.dd ld/testsuite/ld-arm/vxworks1.ld ld/testsuite/ld-arm/vxworks1.rd ld/testsuite/ld-arm/vxworks1.s ld/testsuite/ld-arm/vxworks2-static.sd ld/testsuite/ld-arm/vxworks2.s ld/testsuite/ld-arm/vxworks2.sd ld/testsuite/ld-auto-import/auto-import.exp ld/testsuite/ld-auto-import/client.c ld/testsuite/ld-auto-import/dll.c ld/testsuite/ld-bootstrap/bootstrap.exp ld/testsuite/ld-cdtest/cdtest-bar.cc ld/testsuite/ld-cdtest/cdtest-foo.cc ld/testsuite/ld-cdtest/cdtest-foo.h ld/testsuite/ld-cdtest/cdtest-main.cc ld/testsuite/ld-cdtest/cdtest-nrv.dat ld/testsuite/ld-cdtest/cdtest.dat ld/testsuite/ld-cdtest/cdtest.exp ld/testsuite/ld-checks/asm.s ld/testsuite/ld-checks/checks.exp ld/testsuite/ld-checks/script ld/testsuite/ld-cris/badgotr1.d ld/testsuite/ld-cris/comref1.s ld/testsuite/ld-cris/cris.exp ld/testsuite/ld-cris/def2.d ld/testsuite/ld-cris/def3.d ld/testsuite/ld-cris/dso-1.s ld/testsuite/ld-cris/dso-2.s ld/testsuite/ld-cris/dso-3.s ld/testsuite/ld-cris/dsofnf.s ld/testsuite/ld-cris/dsofnf2.s ld/testsuite/ld-cris/dsov32-1.s ld/testsuite/ld-cris/dsov32-2.s ld/testsuite/ld-cris/dsov32-3.s ld/testsuite/ld-cris/dsov32-4.s ld/testsuite/ld-cris/euwref1.s ld/testsuite/ld-cris/expdref1.s ld/testsuite/ld-cris/expdyn1.d ld/testsuite/ld-cris/expdyn1.s ld/testsuite/ld-cris/expdyn2.d ld/testsuite/ld-cris/expdyn3.d ld/testsuite/ld-cris/expdyn4.d ld/testsuite/ld-cris/expdyn5.d ld/testsuite/ld-cris/expdyn6.d ld/testsuite/ld-cris/expdyn7.d ld/testsuite/ld-cris/globsym1ref.s ld/testsuite/ld-cris/globsymw1.s ld/testsuite/ld-cris/globsymw2.s ld/testsuite/ld-cris/gotplt1.d ld/testsuite/ld-cris/gotplt2.d ld/testsuite/ld-cris/gotplt3.d ld/testsuite/ld-cris/gotrel1.s ld/testsuite/ld-cris/gotrel2.s ld/testsuite/ld-cris/hiddef1.d ld/testsuite/ld-cris/hiddef1.s ld/testsuite/ld-cris/hide1 ld/testsuite/ld-cris/hidrefgotplt1.s ld/testsuite/ld-cris/ldsym1.d ld/testsuite/ld-cris/libdso-1.d ld/testsuite/ld-cris/libdso-10.d ld/testsuite/ld-cris/libdso-11.d ld/testsuite/ld-cris/libdso-12.d ld/testsuite/ld-cris/libdso-13.d ld/testsuite/ld-cris/libdso-14.d ld/testsuite/ld-cris/libdso-2.d ld/testsuite/ld-cris/libdso-3.d ld/testsuite/ld-cris/libdso-4.d ld/testsuite/ld-cris/locref1.d ld/testsuite/ld-cris/locref1.s ld/testsuite/ld-cris/locref2.d ld/testsuite/ld-cris/locref2.s ld/testsuite/ld-cris/move-1.s ld/testsuite/ld-cris/nodyn4.d ld/testsuite/ld-cris/nodyn5.d ld/testsuite/ld-cris/noglob1.d ld/testsuite/ld-cris/noglob1.s ld/testsuite/ld-cris/noov.d ld/testsuite/ld-cris/noov.s ld/testsuite/ld-cris/pv32-1.d ld/testsuite/ld-cris/pv32.s ld/testsuite/ld-cris/stabs1.s ld/testsuite/ld-cris/start1.s ld/testsuite/ld-cris/undef1.d ld/testsuite/ld-cris/undef2.d ld/testsuite/ld-cris/undef3.d ld/testsuite/ld-cris/v10-v32.d ld/testsuite/ld-cris/v10-va.d ld/testsuite/ld-cris/v32-ba-1.d ld/testsuite/ld-cris/v32-ba-1.s ld/testsuite/ld-cris/v32-bin-1.d ld/testsuite/ld-cris/v32-bin-1.s ld/testsuite/ld-cris/v32-v10.d ld/testsuite/ld-cris/v32-va.d ld/testsuite/ld-cris/va-v10.d ld/testsuite/ld-cris/va-v32.d ld/testsuite/ld-cris/warn1.d ld/testsuite/ld-cris/warn2.d ld/testsuite/ld-cris/warn3.d ld/testsuite/ld-cris/warn4.d ld/testsuite/ld-cris/weakref1.d ld/testsuite/ld-cris/weakref2.d ld/testsuite/ld-crx/crx.exp ld/testsuite/ld-crx/crx.ld ld/testsuite/ld-crx/reloc-abs32.d ld/testsuite/ld-crx/reloc-abs32.s ld/testsuite/ld-crx/reloc-imm16.d ld/testsuite/ld-crx/reloc-imm16.s ld/testsuite/ld-crx/reloc-imm32.d ld/testsuite/ld-crx/reloc-imm32.s ld/testsuite/ld-crx/reloc-num16.d ld/testsuite/ld-crx/reloc-num16.s ld/testsuite/ld-crx/reloc-num32.d ld/testsuite/ld-crx/reloc-num32.s ld/testsuite/ld-crx/reloc-num8.d ld/testsuite/ld-crx/reloc-num8.s ld/testsuite/ld-crx/reloc-regrel12.d ld/testsuite/ld-crx/reloc-regrel12.s ld/testsuite/ld-crx/reloc-regrel22.d ld/testsuite/ld-crx/reloc-regrel22.s ld/testsuite/ld-crx/reloc-regrel28.d ld/testsuite/ld-crx/reloc-regrel28.s ld/testsuite/ld-crx/reloc-regrel32.d ld/testsuite/ld-crx/reloc-regrel32.s ld/testsuite/ld-crx/reloc-rel16.d ld/testsuite/ld-crx/reloc-rel16.s ld/testsuite/ld-crx/reloc-rel24.d ld/testsuite/ld-crx/reloc-rel24.s ld/testsuite/ld-crx/reloc-rel32.d ld/testsuite/ld-crx/reloc-rel32.s ld/testsuite/ld-crx/reloc-rel4.d ld/testsuite/ld-crx/reloc-rel4.s ld/testsuite/ld-crx/reloc-rel8-cmp.d ld/testsuite/ld-crx/reloc-rel8-cmp.s ld/testsuite/ld-crx/reloc-rel8.d ld/testsuite/ld-crx/reloc-rel8.s ld/testsuite/ld-cygwin/exe-export.exp ld/testsuite/ld-cygwin/testdll.c ld/testsuite/ld-cygwin/testdll.def ld/testsuite/ld-cygwin/testexe.c ld/testsuite/ld-cygwin/testexe.def ld/testsuite/ld-d10v/d10v.exp ld/testsuite/ld-d10v/default_layout.d ld/testsuite/ld-d10v/linktest-001.s ld/testsuite/ld-d10v/linktest-002.lt ld/testsuite/ld-d10v/linktest-002.s ld/testsuite/ld-d10v/regression-001.lt ld/testsuite/ld-d10v/regression-001.s ld/testsuite/ld-d10v/reloc-001.d ld/testsuite/ld-d10v/reloc-001.ld ld/testsuite/ld-d10v/reloc-001.s ld/testsuite/ld-d10v/reloc-002.d ld/testsuite/ld-d10v/reloc-002.ld ld/testsuite/ld-d10v/reloc-003.d ld/testsuite/ld-d10v/reloc-003.ld ld/testsuite/ld-d10v/reloc-004.d ld/testsuite/ld-d10v/reloc-004.ld ld/testsuite/ld-d10v/reloc-005.d ld/testsuite/ld-d10v/reloc-005.ld ld/testsuite/ld-d10v/reloc-005.s ld/testsuite/ld-d10v/reloc-006.d ld/testsuite/ld-d10v/reloc-006.ld ld/testsuite/ld-d10v/reloc-007.d ld/testsuite/ld-d10v/reloc-007.ld ld/testsuite/ld-d10v/reloc-008.d ld/testsuite/ld-d10v/reloc-008.ld ld/testsuite/ld-d10v/reloc-009.d ld/testsuite/ld-d10v/reloc-009.ld ld/testsuite/ld-d10v/reloc-009.s ld/testsuite/ld-d10v/reloc-010.d ld/testsuite/ld-d10v/reloc-010.ld ld/testsuite/ld-d10v/reloc-011.d ld/testsuite/ld-d10v/reloc-011.ld ld/testsuite/ld-d10v/reloc-012.d ld/testsuite/ld-d10v/reloc-012.ld ld/testsuite/ld-d10v/reloc-013.d ld/testsuite/ld-d10v/reloc-013.ld ld/testsuite/ld-d10v/reloc-014.d ld/testsuite/ld-d10v/reloc-014.ld ld/testsuite/ld-d10v/reloc-015.d ld/testsuite/ld-d10v/reloc-015.ld ld/testsuite/ld-d10v/reloc-016.d ld/testsuite/ld-d10v/reloc-016.ld ld/testsuite/ld-d10v/simple.s ld/testsuite/ld-discard/discard.exp ld/testsuite/ld-discard/discard.ld ld/testsuite/ld-discard/exit.s ld/testsuite/ld-discard/extern.d ld/testsuite/ld-discard/extern.s ld/testsuite/ld-discard/start.d ld/testsuite/ld-discard/start.s ld/testsuite/ld-discard/static.d ld/testsuite/ld-discard/static.s ld/testsuite/ld-elf/begin.c ld/testsuite/ld-elf/binutils.exp ld/testsuite/ld-elf/commonpage1.d ld/testsuite/ld-elf/eh1.d ld/testsuite/ld-elf/eh1.s ld/testsuite/ld-elf/eh1a.s ld/testsuite/ld-elf/eh2.d ld/testsuite/ld-elf/eh2a.s ld/testsuite/ld-elf/eh3.d ld/testsuite/ld-elf/eh3.s ld/testsuite/ld-elf/eh3a.s ld/testsuite/ld-elf/elf.exp ld/testsuite/ld-elf/empty.d ld/testsuite/ld-elf/empty.s ld/testsuite/ld-elf/empty2.d ld/testsuite/ld-elf/empty2.s ld/testsuite/ld-elf/end.c ld/testsuite/ld-elf/endhidden.c ld/testsuite/ld-elf/endprotected.c ld/testsuite/ld-elf/exclude.exp ld/testsuite/ld-elf/exclude1.s ld/testsuite/ld-elf/exclude2.s ld/testsuite/ld-elf/fini.c ld/testsuite/ld-elf/fini.out ld/testsuite/ld-elf/foo.c ld/testsuite/ld-elf/foo.map ld/testsuite/ld-elf/frame.exp ld/testsuite/ld-elf/frame.s ld/testsuite/ld-elf/group.ld ld/testsuite/ld-elf/group1.d ld/testsuite/ld-elf/group1a.s ld/testsuite/ld-elf/group1b.s ld/testsuite/ld-elf/group2.d ld/testsuite/ld-elf/hidden.out ld/testsuite/ld-elf/init.c ld/testsuite/ld-elf/init.out ld/testsuite/ld-elf/main.c ld/testsuite/ld-elf/maxpage1.d ld/testsuite/ld-elf/maxpage1.s ld/testsuite/ld-elf/maxpage2.d ld/testsuite/ld-elf/merge.d ld/testsuite/ld-elf/merge.ld ld/testsuite/ld-elf/merge.s ld/testsuite/ld-elf/merge2.d ld/testsuite/ld-elf/merge2.s ld/testsuite/ld-elf/normal.out ld/testsuite/ld-elf/orphan.d ld/testsuite/ld-elf/orphan.ld ld/testsuite/ld-elf/orphan.s ld/testsuite/ld-elf/orphan2.d ld/testsuite/ld-elf/orphan2.s ld/testsuite/ld-elf/preinit.c ld/testsuite/ld-elf/preinit.out ld/testsuite/ld-elf/sec64k.exp ld/testsuite/ld-elf/shared.exp ld/testsuite/ld-elf/stab.d ld/testsuite/ld-elf/start.s ld/testsuite/ld-elf/symbol1ref.s ld/testsuite/ld-elf/symbol1w.s ld/testsuite/ld-elf/table.s ld/testsuite/ld-elf/tbss.s ld/testsuite/ld-elf/tbss1.s ld/testsuite/ld-elf/tbss2.s ld/testsuite/ld-elf/tdata1.s ld/testsuite/ld-elf/tdata2.s ld/testsuite/ld-elf/tls_common.exp ld/testsuite/ld-elf/tls_common.s ld/testsuite/ld-elf/unknown.d ld/testsuite/ld-elf/unknown2.d ld/testsuite/ld-elf/unknown2.s ld/testsuite/ld-elf/warn1.d ld/testsuite/ld-elfcomm/common1a.c ld/testsuite/ld-elfcomm/common1b.c ld/testsuite/ld-elfcomm/elfcomm.exp ld/testsuite/ld-elfvers/vers.exp ld/testsuite/ld-elfvers/vers1.c ld/testsuite/ld-elfvers/vers1.dsym ld/testsuite/ld-elfvers/vers1.map ld/testsuite/ld-elfvers/vers1.sym ld/testsuite/ld-elfvers/vers1.ver ld/testsuite/ld-elfvers/vers13.asym ld/testsuite/ld-elfvers/vers15.c ld/testsuite/ld-elfvers/vers15.dsym ld/testsuite/ld-elfvers/vers15.sym ld/testsuite/ld-elfvers/vers15.ver ld/testsuite/ld-elfvers/vers16.c ld/testsuite/ld-elfvers/vers16.dsym ld/testsuite/ld-elfvers/vers16.map ld/testsuite/ld-elfvers/vers16a.c ld/testsuite/ld-elfvers/vers16a.dsym ld/testsuite/ld-elfvers/vers16a.ver ld/testsuite/ld-elfvers/vers17.c ld/testsuite/ld-elfvers/vers17.dsym ld/testsuite/ld-elfvers/vers17.map ld/testsuite/ld-elfvers/vers17.ver ld/testsuite/ld-elfvers/vers18.c ld/testsuite/ld-elfvers/vers18.dsym ld/testsuite/ld-elfvers/vers18.map ld/testsuite/ld-elfvers/vers18.sym ld/testsuite/ld-elfvers/vers18.ver ld/testsuite/ld-elfvers/vers19.c ld/testsuite/ld-elfvers/vers19.dsym ld/testsuite/ld-elfvers/vers19.ver ld/testsuite/ld-elfvers/vers2.c ld/testsuite/ld-elfvers/vers2.dsym ld/testsuite/ld-elfvers/vers2.map ld/testsuite/ld-elfvers/vers2.ver ld/testsuite/ld-elfvers/vers20.c ld/testsuite/ld-elfvers/vers20.dsym ld/testsuite/ld-elfvers/vers20.map ld/testsuite/ld-elfvers/vers20.ver ld/testsuite/ld-elfvers/vers20a.ver ld/testsuite/ld-elfvers/vers21.c ld/testsuite/ld-elfvers/vers21.dsym ld/testsuite/ld-elfvers/vers21.map ld/testsuite/ld-elfvers/vers21.sym ld/testsuite/ld-elfvers/vers21.ver ld/testsuite/ld-elfvers/vers22.c ld/testsuite/ld-elfvers/vers22.dsym ld/testsuite/ld-elfvers/vers22.map ld/testsuite/ld-elfvers/vers22.ver ld/testsuite/ld-elfvers/vers22a.c ld/testsuite/ld-elfvers/vers22a.dsym ld/testsuite/ld-elfvers/vers22a.sym ld/testsuite/ld-elfvers/vers22a.ver ld/testsuite/ld-elfvers/vers22b.c ld/testsuite/ld-elfvers/vers22b.dsym ld/testsuite/ld-elfvers/vers22b.ver ld/testsuite/ld-elfvers/vers23.c ld/testsuite/ld-elfvers/vers23.dsym ld/testsuite/ld-elfvers/vers23.ver ld/testsuite/ld-elfvers/vers23a.c ld/testsuite/ld-elfvers/vers23a.dsym ld/testsuite/ld-elfvers/vers23a.map ld/testsuite/ld-elfvers/vers23a.sym ld/testsuite/ld-elfvers/vers23a.ver ld/testsuite/ld-elfvers/vers23b.c ld/testsuite/ld-elfvers/vers23b.dsym ld/testsuite/ld-elfvers/vers23b.map ld/testsuite/ld-elfvers/vers23b.ver ld/testsuite/ld-elfvers/vers23c.ver ld/testsuite/ld-elfvers/vers23d.dsym ld/testsuite/ld-elfvers/vers24.map ld/testsuite/ld-elfvers/vers24.rd ld/testsuite/ld-elfvers/vers24a.c ld/testsuite/ld-elfvers/vers24b.c ld/testsuite/ld-elfvers/vers24c.c ld/testsuite/ld-elfvers/vers25a.c ld/testsuite/ld-elfvers/vers25a.dsym ld/testsuite/ld-elfvers/vers25a.map ld/testsuite/ld-elfvers/vers25a.ver ld/testsuite/ld-elfvers/vers25b.c ld/testsuite/ld-elfvers/vers25b.dsym ld/testsuite/ld-elfvers/vers25b.ver ld/testsuite/ld-elfvers/vers26a.c ld/testsuite/ld-elfvers/vers26a.dsym ld/testsuite/ld-elfvers/vers26a.map ld/testsuite/ld-elfvers/vers26a.ver ld/testsuite/ld-elfvers/vers26b.c ld/testsuite/ld-elfvers/vers26b.dsym ld/testsuite/ld-elfvers/vers26b.ver ld/testsuite/ld-elfvers/vers27a.c ld/testsuite/ld-elfvers/vers27a.dsym ld/testsuite/ld-elfvers/vers27a.map ld/testsuite/ld-elfvers/vers27a.ver ld/testsuite/ld-elfvers/vers27b.c ld/testsuite/ld-elfvers/vers27b.dsym ld/testsuite/ld-elfvers/vers27b.ver ld/testsuite/ld-elfvers/vers27c.c ld/testsuite/ld-elfvers/vers27c.dsym ld/testsuite/ld-elfvers/vers27c.ver ld/testsuite/ld-elfvers/vers27d.dsym ld/testsuite/ld-elfvers/vers27d.sym ld/testsuite/ld-elfvers/vers27d.ver ld/testsuite/ld-elfvers/vers27d1.c ld/testsuite/ld-elfvers/vers27d2.c ld/testsuite/ld-elfvers/vers27d3.c ld/testsuite/ld-elfvers/vers27d4.dsym ld/testsuite/ld-elfvers/vers27d4.ver ld/testsuite/ld-elfvers/vers28a.c ld/testsuite/ld-elfvers/vers28a.dsym ld/testsuite/ld-elfvers/vers28a.ver ld/testsuite/ld-elfvers/vers28b.c ld/testsuite/ld-elfvers/vers28b.dsym ld/testsuite/ld-elfvers/vers28b.map ld/testsuite/ld-elfvers/vers28b.ver ld/testsuite/ld-elfvers/vers28c.c ld/testsuite/ld-elfvers/vers28c.dsym ld/testsuite/ld-elfvers/vers28c.ver ld/testsuite/ld-elfvers/vers29.c ld/testsuite/ld-elfvers/vers29.dsym ld/testsuite/ld-elfvers/vers29.ver ld/testsuite/ld-elfvers/vers3.c ld/testsuite/ld-elfvers/vers3.dsym ld/testsuite/ld-elfvers/vers3.ver ld/testsuite/ld-elfvers/vers30.c ld/testsuite/ld-elfvers/vers30.dsym ld/testsuite/ld-elfvers/vers30.map ld/testsuite/ld-elfvers/vers30.ver ld/testsuite/ld-elfvers/vers31.c ld/testsuite/ld-elfvers/vers31.dsym ld/testsuite/ld-elfvers/vers31.map ld/testsuite/ld-elfvers/vers31.ver ld/testsuite/ld-elfvers/vers4.c ld/testsuite/ld-elfvers/vers4.sym ld/testsuite/ld-elfvers/vers4a.dsym ld/testsuite/ld-elfvers/vers4a.sym ld/testsuite/ld-elfvers/vers4a.ver ld/testsuite/ld-elfvers/vers5.c ld/testsuite/ld-elfvers/vers6.c ld/testsuite/ld-elfvers/vers6.dsym ld/testsuite/ld-elfvers/vers6.sym ld/testsuite/ld-elfvers/vers6.ver ld/testsuite/ld-elfvers/vers7.c ld/testsuite/ld-elfvers/vers7.map ld/testsuite/ld-elfvers/vers7a.c ld/testsuite/ld-elfvers/vers7a.dsym ld/testsuite/ld-elfvers/vers7a.sym ld/testsuite/ld-elfvers/vers7a.ver ld/testsuite/ld-elfvers/vers8.c ld/testsuite/ld-elfvers/vers8.map ld/testsuite/ld-elfvers/vers8.ver ld/testsuite/ld-elfvers/vers9.c ld/testsuite/ld-elfvers/vers9.dsym ld/testsuite/ld-elfvers/vers9.sym ld/testsuite/ld-elfvers/vers9.ver ld/testsuite/ld-elfvsb/common.c ld/testsuite/ld-elfvsb/define.s ld/testsuite/ld-elfvsb/elf-offset.ld ld/testsuite/ld-elfvsb/elfvsb.dat ld/testsuite/ld-elfvsb/elfvsb.exp ld/testsuite/ld-elfvsb/hidden0.d ld/testsuite/ld-elfvsb/hidden1.d ld/testsuite/ld-elfvsb/hidden2.d ld/testsuite/ld-elfvsb/hidden2.ld ld/testsuite/ld-elfvsb/hidden2.s ld/testsuite/ld-elfvsb/internal0.d ld/testsuite/ld-elfvsb/internal1.d ld/testsuite/ld-elfvsb/main.c ld/testsuite/ld-elfvsb/protected0.d ld/testsuite/ld-elfvsb/protected1.d ld/testsuite/ld-elfvsb/sh1.c ld/testsuite/ld-elfvsb/sh2.c ld/testsuite/ld-elfvsb/sh3.c ld/testsuite/ld-elfvsb/test.c ld/testsuite/ld-elfvsb/undef.s ld/testsuite/ld-elfweak/bar.c ld/testsuite/ld-elfweak/bar1a.c ld/testsuite/ld-elfweak/bar1b.c ld/testsuite/ld-elfweak/bar1c.c ld/testsuite/ld-elfweak/dso.dsym ld/testsuite/ld-elfweak/dsodata.dsym ld/testsuite/ld-elfweak/dsow.dsym ld/testsuite/ld-elfweak/dsowdata.dsym ld/testsuite/ld-elfweak/elfweak.exp ld/testsuite/ld-elfweak/foo.c ld/testsuite/ld-elfweak/foo1a.c ld/testsuite/ld-elfweak/foo1b.c ld/testsuite/ld-elfweak/main.c ld/testsuite/ld-elfweak/main1.c ld/testsuite/ld-elfweak/size.dat ld/testsuite/ld-elfweak/size2.d ld/testsuite/ld-elfweak/size2a.s ld/testsuite/ld-elfweak/size2b.s ld/testsuite/ld-elfweak/size_bar.c ld/testsuite/ld-elfweak/size_foo.c ld/testsuite/ld-elfweak/size_main.c ld/testsuite/ld-elfweak/strong.dat ld/testsuite/ld-elfweak/strong.sym ld/testsuite/ld-elfweak/strongcomm.sym ld/testsuite/ld-elfweak/strongdata.dat ld/testsuite/ld-elfweak/strongdata.sym ld/testsuite/ld-elfweak/weak.dat ld/testsuite/ld-elfweak/weak.dsym ld/testsuite/ld-elfweak/weakdata.dat ld/testsuite/ld-elfweak/weakdata.dsym ld/testsuite/ld-fastcall/export.s ld/testsuite/ld-fastcall/fastcall.exp ld/testsuite/ld-fastcall/import.s ld/testsuite/ld-frv/fdpic-pie-1.d ld/testsuite/ld-frv/fdpic-pie-2.d ld/testsuite/ld-frv/fdpic-pie-5.d ld/testsuite/ld-frv/fdpic-pie-6-fail.d ld/testsuite/ld-frv/fdpic-pie-6.d ld/testsuite/ld-frv/fdpic-pie-7.d ld/testsuite/ld-frv/fdpic-pie-8.d ld/testsuite/ld-frv/fdpic-shared-1.d ld/testsuite/ld-frv/fdpic-shared-2-fail.d ld/testsuite/ld-frv/fdpic-shared-2.d ld/testsuite/ld-frv/fdpic-shared-3.d ld/testsuite/ld-frv/fdpic-shared-4.d ld/testsuite/ld-frv/fdpic-shared-5.d ld/testsuite/ld-frv/fdpic-shared-6-fail.d ld/testsuite/ld-frv/fdpic-shared-6.d ld/testsuite/ld-frv/fdpic-shared-7.d ld/testsuite/ld-frv/fdpic-shared-8-fail.d ld/testsuite/ld-frv/fdpic-shared-8.d ld/testsuite/ld-frv/fdpic-shared-local-2.d ld/testsuite/ld-frv/fdpic-shared-local-8.d ld/testsuite/ld-frv/fdpic-static-1.d ld/testsuite/ld-frv/fdpic-static-2.d ld/testsuite/ld-frv/fdpic-static-5.d ld/testsuite/ld-frv/fdpic-static-6.d ld/testsuite/ld-frv/fdpic-static-7.d ld/testsuite/ld-frv/fdpic-static-8.d ld/testsuite/ld-frv/fdpic.exp ld/testsuite/ld-frv/fdpic1.s ld/testsuite/ld-frv/fdpic2.ldv ld/testsuite/ld-frv/fdpic2.s ld/testsuite/ld-frv/fdpic2min.ldv ld/testsuite/ld-frv/fdpic3.s ld/testsuite/ld-frv/fdpic4.s ld/testsuite/ld-frv/fdpic5.s ld/testsuite/ld-frv/fdpic6.ldv ld/testsuite/ld-frv/fdpic6.s ld/testsuite/ld-frv/fdpic7.s ld/testsuite/ld-frv/fdpic8.ldv ld/testsuite/ld-frv/fdpic8.s ld/testsuite/ld-frv/fdpic8min.ldv ld/testsuite/ld-frv/fr450-link.d ld/testsuite/ld-frv/fr450-linka.s ld/testsuite/ld-frv/fr450-linkb.s ld/testsuite/ld-frv/fr450-linkc.s ld/testsuite/ld-frv/frv-elf.exp ld/testsuite/ld-frv/tls-1-dep.s ld/testsuite/ld-frv/tls-1-shared.lds ld/testsuite/ld-frv/tls-1.s ld/testsuite/ld-frv/tls-2.s ld/testsuite/ld-frv/tls-3.s ld/testsuite/ld-frv/tls-dynamic-1.d ld/testsuite/ld-frv/tls-dynamic-2.d ld/testsuite/ld-frv/tls-dynamic-3.d ld/testsuite/ld-frv/tls-initial-shared-2.d ld/testsuite/ld-frv/tls-pie-1.d ld/testsuite/ld-frv/tls-pie-3.d ld/testsuite/ld-frv/tls-relax-dynamic-1.d ld/testsuite/ld-frv/tls-relax-dynamic-2.d ld/testsuite/ld-frv/tls-relax-dynamic-3.d ld/testsuite/ld-frv/tls-relax-initial-shared-2.d ld/testsuite/ld-frv/tls-relax-pie-1.d ld/testsuite/ld-frv/tls-relax-pie-3.d ld/testsuite/ld-frv/tls-relax-shared-1.d ld/testsuite/ld-frv/tls-relax-shared-2.d ld/testsuite/ld-frv/tls-relax-shared-3.d ld/testsuite/ld-frv/tls-relax-static-1.d ld/testsuite/ld-frv/tls-relax-static-3.d ld/testsuite/ld-frv/tls-shared-1-fail.d ld/testsuite/ld-frv/tls-shared-1.d ld/testsuite/ld-frv/tls-shared-2.d ld/testsuite/ld-frv/tls-shared-3.d ld/testsuite/ld-frv/tls-static-1.d ld/testsuite/ld-frv/tls-static-3.d ld/testsuite/ld-frv/tls.exp ld/testsuite/ld-h8300/gcsection.d ld/testsuite/ld-h8300/gcsection.s ld/testsuite/ld-h8300/h8300.exp ld/testsuite/ld-h8300/relax-2.d ld/testsuite/ld-h8300/relax-2.s ld/testsuite/ld-h8300/relax-3-coff.d ld/testsuite/ld-h8300/relax-3.d ld/testsuite/ld-h8300/relax-3.s ld/testsuite/ld-h8300/relax-4-coff.d ld/testsuite/ld-h8300/relax-4.d ld/testsuite/ld-h8300/relax-4.s ld/testsuite/ld-h8300/relax-5-coff.d ld/testsuite/ld-h8300/relax-5.d ld/testsuite/ld-h8300/relax-5.s ld/testsuite/ld-h8300/relax-6-coff.d ld/testsuite/ld-h8300/relax-6.d ld/testsuite/ld-h8300/relax-6.s ld/testsuite/ld-h8300/relax.d ld/testsuite/ld-h8300/relax.s ld/testsuite/ld-i386/abs.d ld/testsuite/ld-i386/abs.s ld/testsuite/ld-i386/combreloc.d ld/testsuite/ld-i386/combreloc.s ld/testsuite/ld-i386/emit-relocs.d ld/testsuite/ld-i386/emit-relocs.s ld/testsuite/ld-i386/i386.exp ld/testsuite/ld-i386/pcrel16.d ld/testsuite/ld-i386/pcrel16.s ld/testsuite/ld-i386/pcrel8.d ld/testsuite/ld-i386/pcrel8.s ld/testsuite/ld-i386/reloc.d ld/testsuite/ld-i386/reloc.s ld/testsuite/ld-i386/tlsbin.dd ld/testsuite/ld-i386/tlsbin.rd ld/testsuite/ld-i386/tlsbin.s ld/testsuite/ld-i386/tlsbin.sd ld/testsuite/ld-i386/tlsbin.td ld/testsuite/ld-i386/tlsbindesc.dd ld/testsuite/ld-i386/tlsbindesc.rd ld/testsuite/ld-i386/tlsbindesc.s ld/testsuite/ld-i386/tlsbindesc.sd ld/testsuite/ld-i386/tlsbindesc.td ld/testsuite/ld-i386/tlsbinpic.s ld/testsuite/ld-i386/tlsdesc.dd ld/testsuite/ld-i386/tlsdesc.rd ld/testsuite/ld-i386/tlsdesc.s ld/testsuite/ld-i386/tlsdesc.sd ld/testsuite/ld-i386/tlsdesc.td ld/testsuite/ld-i386/tlsg.s ld/testsuite/ld-i386/tlsg.sd ld/testsuite/ld-i386/tlsgdesc.dd ld/testsuite/ld-i386/tlsgdesc.rd ld/testsuite/ld-i386/tlsgdesc.s ld/testsuite/ld-i386/tlsindntpoff.dd ld/testsuite/ld-i386/tlsindntpoff.s ld/testsuite/ld-i386/tlslib.s ld/testsuite/ld-i386/tlsnopic.dd ld/testsuite/ld-i386/tlsnopic.rd ld/testsuite/ld-i386/tlsnopic.sd ld/testsuite/ld-i386/tlsnopic1.s ld/testsuite/ld-i386/tlsnopic2.s ld/testsuite/ld-i386/tlspic.dd ld/testsuite/ld-i386/tlspic.rd ld/testsuite/ld-i386/tlspic.sd ld/testsuite/ld-i386/tlspic.td ld/testsuite/ld-i386/tlspic1.s ld/testsuite/ld-i386/tlspic2.s ld/testsuite/ld-i386/vxworks1-lib.dd ld/testsuite/ld-i386/vxworks1-lib.nd ld/testsuite/ld-i386/vxworks1-lib.rd ld/testsuite/ld-i386/vxworks1-lib.s ld/testsuite/ld-i386/vxworks1-static.d ld/testsuite/ld-i386/vxworks1.dd ld/testsuite/ld-i386/vxworks1.ld ld/testsuite/ld-i386/vxworks1.rd ld/testsuite/ld-i386/vxworks1.s ld/testsuite/ld-i386/vxworks2-static.sd ld/testsuite/ld-i386/vxworks2.s ld/testsuite/ld-i386/vxworks2.sd ld/testsuite/ld-i386/zero.s ld/testsuite/ld-ia64/ia64.exp ld/testsuite/ld-ia64/link-order.d ld/testsuite/ld-ia64/tlsbin.dd ld/testsuite/ld-ia64/tlsbin.rd ld/testsuite/ld-ia64/tlsbin.s ld/testsuite/ld-ia64/tlsbin.sd ld/testsuite/ld-ia64/tlsbin.td ld/testsuite/ld-ia64/tlsbinpic.s ld/testsuite/ld-ia64/tlsg.s ld/testsuite/ld-ia64/tlsg.sd ld/testsuite/ld-ia64/tlslib.s ld/testsuite/ld-ia64/tlspic.dd ld/testsuite/ld-ia64/tlspic.rd ld/testsuite/ld-ia64/tlspic.sd ld/testsuite/ld-ia64/tlspic.td ld/testsuite/ld-ia64/tlspic1.s ld/testsuite/ld-ia64/tlspic2.s ld/testsuite/ld-linkonce/linkonce.exp ld/testsuite/ld-linkonce/x.s ld/testsuite/ld-linkonce/y.s ld/testsuite/ld-linkonce/zeroeh.ld ld/testsuite/ld-linkonce/zeroehl32.d ld/testsuite/ld-m68hc11/adj-brset.d ld/testsuite/ld-m68hc11/adj-brset.s ld/testsuite/ld-m68hc11/adj-jump.d ld/testsuite/ld-m68hc11/adj-jump.s ld/testsuite/ld-m68hc11/bug-1403.d ld/testsuite/ld-m68hc11/bug-1403.s ld/testsuite/ld-m68hc11/bug-1417.d ld/testsuite/ld-m68hc11/bug-1417.s ld/testsuite/ld-m68hc11/bug-3331.d ld/testsuite/ld-m68hc11/bug-3331.s ld/testsuite/ld-m68hc11/far-hc11.d ld/testsuite/ld-m68hc11/far-hc11.s ld/testsuite/ld-m68hc11/far-hc12.d ld/testsuite/ld-m68hc11/far-hc12.ld ld/testsuite/ld-m68hc11/far-hc12.s ld/testsuite/ld-m68hc11/link-hc12.s ld/testsuite/ld-m68hc11/link-hcs12.d ld/testsuite/ld-m68hc11/link-hcs12.s ld/testsuite/ld-m68hc11/m68hc11.exp ld/testsuite/ld-m68hc11/relax-direct.d ld/testsuite/ld-m68hc11/relax-direct.s ld/testsuite/ld-m68hc11/relax-group.d ld/testsuite/ld-m68hc11/relax-group.s ld/testsuite/ld-m68k/isaa-mac.d ld/testsuite/ld-m68k/isaa-mac.s ld/testsuite/ld-m68k/isaa-nodiv.s ld/testsuite/ld-m68k/isaa.d ld/testsuite/ld-m68k/isaa.s ld/testsuite/ld-m68k/isaaplus.d ld/testsuite/ld-m68k/isaaplus.s ld/testsuite/ld-m68k/isab-float.d ld/testsuite/ld-m68k/isab-float.s ld/testsuite/ld-m68k/isab-nousp.s ld/testsuite/ld-m68k/isab.d ld/testsuite/ld-m68k/isab.s ld/testsuite/ld-m68k/m68k.exp ld/testsuite/ld-m68k/merge-error-1a.d ld/testsuite/ld-m68k/merge-error-1a.s ld/testsuite/ld-m68k/merge-error-1b.d ld/testsuite/ld-m68k/merge-error-1b.s ld/testsuite/ld-m68k/merge-error-1c.d ld/testsuite/ld-m68k/merge-error-1d.d ld/testsuite/ld-m68k/merge-error-1e.d ld/testsuite/ld-m68k/merge-ok-1a.d ld/testsuite/ld-m68k/merge-ok-1b.d ld/testsuite/ld-m68k/merge-ok-1c.d ld/testsuite/ld-m68k/merge.ld ld/testsuite/ld-m68k/plt1-68020.d ld/testsuite/ld-m68k/plt1-cpu32.d ld/testsuite/ld-m68k/plt1-empty.s ld/testsuite/ld-m68k/plt1-isab.d ld/testsuite/ld-m68k/plt1.ld ld/testsuite/ld-m68k/plt1.s ld/testsuite/ld-maxq/addend.dd ld/testsuite/ld-maxq/addend.s ld/testsuite/ld-maxq/maxq.exp ld/testsuite/ld-maxq/paddr.dd ld/testsuite/ld-maxq/paddr.s ld/testsuite/ld-maxq/paddr1.dd ld/testsuite/ld-maxq/paddr1.s ld/testsuite/ld-maxq/r32-1.s ld/testsuite/ld-maxq/r32-2.s ld/testsuite/ld-maxq/r32.dd ld/testsuite/ld-mips-elf/branch-misc-1.d ld/testsuite/ld-mips-elf/eh-frame1-n32.d ld/testsuite/ld-mips-elf/eh-frame1-n64.d ld/testsuite/ld-mips-elf/eh-frame1.ld ld/testsuite/ld-mips-elf/eh-frame1.s ld/testsuite/ld-mips-elf/eh-frame2-n32.d ld/testsuite/ld-mips-elf/eh-frame2-n64.d ld/testsuite/ld-mips-elf/eh-frame3.d ld/testsuite/ld-mips-elf/eh-frame4.d ld/testsuite/ld-mips-elf/elf-rel-got-n32.d ld/testsuite/ld-mips-elf/elf-rel-got-n64-linux.d ld/testsuite/ld-mips-elf/elf-rel-got-n64.d ld/testsuite/ld-mips-elf/elf-rel-xgot-n32.d ld/testsuite/ld-mips-elf/elf-rel-xgot-n64-linux.d ld/testsuite/ld-mips-elf/elf-rel-xgot-n64.d ld/testsuite/ld-mips-elf/emit-relocs-1.d ld/testsuite/ld-mips-elf/emit-relocs-1.ld ld/testsuite/ld-mips-elf/emit-relocs-1a.s ld/testsuite/ld-mips-elf/emit-relocs-1b.s ld/testsuite/ld-mips-elf/jalbal.d ld/testsuite/ld-mips-elf/jalbal.s ld/testsuite/ld-mips-elf/jaloverflow-2.d ld/testsuite/ld-mips-elf/jaloverflow-2.s ld/testsuite/ld-mips-elf/jaloverflow.d ld/testsuite/ld-mips-elf/jaloverflow.s ld/testsuite/ld-mips-elf/jr.s ld/testsuite/ld-mips-elf/mips-dyn.ld ld/testsuite/ld-mips-elf/mips-elf-flags.exp ld/testsuite/ld-mips-elf/mips-elf.exp ld/testsuite/ld-mips-elf/mips-lib.ld ld/testsuite/ld-mips-elf/mips16-1.d ld/testsuite/ld-mips-elf/mips16-1a.s ld/testsuite/ld-mips-elf/mips16-1b.s ld/testsuite/ld-mips-elf/mips16-call-global-1.s ld/testsuite/ld-mips-elf/mips16-call-global-2.s ld/testsuite/ld-mips-elf/mips16-call-global-3.s ld/testsuite/ld-mips-elf/mips16-call-global.d ld/testsuite/ld-mips-elf/mips16-hilo-n32.d ld/testsuite/ld-mips-elf/mips16-hilo.d ld/testsuite/ld-mips-elf/mips16-hilo.ld ld/testsuite/ld-mips-elf/mips16-hilo.s ld/testsuite/ld-mips-elf/multi-got-1-1.s ld/testsuite/ld-mips-elf/multi-got-1-2.s ld/testsuite/ld-mips-elf/multi-got-1.d ld/testsuite/ld-mips-elf/multi-got-no-shared-1.s ld/testsuite/ld-mips-elf/multi-got-no-shared-2.s ld/testsuite/ld-mips-elf/multi-got-no-shared.d ld/testsuite/ld-mips-elf/region1.d ld/testsuite/ld-mips-elf/region1.t ld/testsuite/ld-mips-elf/region1a.s ld/testsuite/ld-mips-elf/region1b.s ld/testsuite/ld-mips-elf/rel32-n32.d ld/testsuite/ld-mips-elf/rel32-o32.d ld/testsuite/ld-mips-elf/rel32.s ld/testsuite/ld-mips-elf/rel64.d ld/testsuite/ld-mips-elf/rel64.s ld/testsuite/ld-mips-elf/relax-jalr-n32-shared.d ld/testsuite/ld-mips-elf/relax-jalr-n32.d ld/testsuite/ld-mips-elf/relax-jalr-n64-shared.d ld/testsuite/ld-mips-elf/relax-jalr-n64.d ld/testsuite/ld-mips-elf/relax-jalr.s ld/testsuite/ld-mips-elf/reloc-1-n32.d ld/testsuite/ld-mips-elf/reloc-1-n64.d ld/testsuite/ld-mips-elf/reloc-1-rel.d ld/testsuite/ld-mips-elf/reloc-1a.s ld/testsuite/ld-mips-elf/reloc-1b.s ld/testsuite/ld-mips-elf/reloc-2.d ld/testsuite/ld-mips-elf/reloc-2.ld ld/testsuite/ld-mips-elf/reloc-2a.s ld/testsuite/ld-mips-elf/reloc-2b.s ld/testsuite/ld-mips-elf/reloc-merge-lo16.d ld/testsuite/ld-mips-elf/reloc-merge-lo16.ld ld/testsuite/ld-mips-elf/reloc-merge-lo16.s ld/testsuite/ld-mips-elf/stub-dynsym-1-10000.d ld/testsuite/ld-mips-elf/stub-dynsym-1-2fe80.d ld/testsuite/ld-mips-elf/stub-dynsym-1-7fff.d ld/testsuite/ld-mips-elf/stub-dynsym-1-8000.d ld/testsuite/ld-mips-elf/stub-dynsym-1-fff0.d ld/testsuite/ld-mips-elf/stub-dynsym-1.ld ld/testsuite/ld-mips-elf/stub-dynsym-1.s ld/testsuite/ld-mips-elf/textrel-1.d ld/testsuite/ld-mips-elf/textrel-1.s ld/testsuite/ld-mips-elf/tls-hidden2-got.d ld/testsuite/ld-mips-elf/tls-hidden2.d ld/testsuite/ld-mips-elf/tls-hidden2a.s ld/testsuite/ld-mips-elf/tls-hidden2b.s ld/testsuite/ld-mips-elf/tls-hidden3.d ld/testsuite/ld-mips-elf/tls-hidden3.got ld/testsuite/ld-mips-elf/tls-hidden3.ld ld/testsuite/ld-mips-elf/tls-hidden3.r ld/testsuite/ld-mips-elf/tls-hidden3a.s ld/testsuite/ld-mips-elf/tls-hidden3b.s ld/testsuite/ld-mips-elf/tls-hidden4.got ld/testsuite/ld-mips-elf/tls-hidden4.r ld/testsuite/ld-mips-elf/tls-hidden4a.s ld/testsuite/ld-mips-elf/tls-hidden4b.s ld/testsuite/ld-mips-elf/tls-multi-got-1-1.s ld/testsuite/ld-mips-elf/tls-multi-got-1-2.s ld/testsuite/ld-mips-elf/tls-multi-got-1.d ld/testsuite/ld-mips-elf/tls-multi-got-1.got ld/testsuite/ld-mips-elf/tls-multi-got-1.r ld/testsuite/ld-mips-elf/tlsbin-o32.d ld/testsuite/ld-mips-elf/tlsbin-o32.got ld/testsuite/ld-mips-elf/tlsbin-o32.s ld/testsuite/ld-mips-elf/tlsdyn-o32-1.d ld/testsuite/ld-mips-elf/tlsdyn-o32-1.got ld/testsuite/ld-mips-elf/tlsdyn-o32-2.d ld/testsuite/ld-mips-elf/tlsdyn-o32-2.got ld/testsuite/ld-mips-elf/tlsdyn-o32-2.s ld/testsuite/ld-mips-elf/tlsdyn-o32-3.d ld/testsuite/ld-mips-elf/tlsdyn-o32-3.got ld/testsuite/ld-mips-elf/tlsdyn-o32.d ld/testsuite/ld-mips-elf/tlsdyn-o32.got ld/testsuite/ld-mips-elf/tlsdyn-o32.s ld/testsuite/ld-mips-elf/tlslib-hidden.ver ld/testsuite/ld-mips-elf/tlslib-o32-hidden.got ld/testsuite/ld-mips-elf/tlslib-o32-ver.got ld/testsuite/ld-mips-elf/tlslib-o32.d ld/testsuite/ld-mips-elf/tlslib-o32.got ld/testsuite/ld-mips-elf/tlslib-o32.s ld/testsuite/ld-mips-elf/tlslib.ver ld/testsuite/ld-mips-elf/vxworks1-lib.dd ld/testsuite/ld-mips-elf/vxworks1-lib.nd ld/testsuite/ld-mips-elf/vxworks1-lib.rd ld/testsuite/ld-mips-elf/vxworks1-lib.s ld/testsuite/ld-mips-elf/vxworks1-static.d ld/testsuite/ld-mips-elf/vxworks1.dd ld/testsuite/ld-mips-elf/vxworks1.ld ld/testsuite/ld-mips-elf/vxworks1.rd ld/testsuite/ld-mips-elf/vxworks1.s ld/testsuite/ld-mips-elf/vxworks2-static.sd ld/testsuite/ld-mips-elf/vxworks2.s ld/testsuite/ld-mips-elf/vxworks2.sd ld/testsuite/ld-mmix/a.s ld/testsuite/ld-mmix/areg-256.s ld/testsuite/ld-mmix/areg-t.s ld/testsuite/ld-mmix/aregm.s ld/testsuite/ld-mmix/b-badfil1.d ld/testsuite/ld-mmix/b-badfil1.s ld/testsuite/ld-mmix/b-badfil2.d ld/testsuite/ld-mmix/b-badfil2.s ld/testsuite/ld-mmix/b-badfixo.d ld/testsuite/ld-mmix/b-badfixo.s ld/testsuite/ld-mmix/b-badloc.d ld/testsuite/ld-mmix/b-badloc.s ld/testsuite/ld-mmix/b-badlop.d ld/testsuite/ld-mmix/b-badlop.s ld/testsuite/ld-mmix/b-badm.d ld/testsuite/ld-mmix/b-badm2.s ld/testsuite/ld-mmix/b-badmain.s ld/testsuite/ld-mmix/b-badquot.d ld/testsuite/ld-mmix/b-badquot.s ld/testsuite/ld-mmix/b-badrx1.d ld/testsuite/ld-mmix/b-badrx1.s ld/testsuite/ld-mmix/b-badrx2.d ld/testsuite/ld-mmix/b-badrx2.s ld/testsuite/ld-mmix/b-badrx3.d ld/testsuite/ld-mmix/b-badrx3.s ld/testsuite/ld-mmix/b-bend.s ld/testsuite/ld-mmix/b-bend1.d ld/testsuite/ld-mmix/b-bend2.d ld/testsuite/ld-mmix/b-bend3.d ld/testsuite/ld-mmix/b-bstab1.d ld/testsuite/ld-mmix/b-bstab1.s ld/testsuite/ld-mmix/b-fixo2.d ld/testsuite/ld-mmix/b-fixo2.s ld/testsuite/ld-mmix/b-goodmain.s ld/testsuite/ld-mmix/b-loc64k.d ld/testsuite/ld-mmix/b-loc64k.s ld/testsuite/ld-mmix/b-nosym.d ld/testsuite/ld-mmix/b-nosym.s ld/testsuite/ld-mmix/b-offloc.s ld/testsuite/ld-mmix/b-post1.s ld/testsuite/ld-mmix/b-twoinsn.s ld/testsuite/ld-mmix/b-widec.s ld/testsuite/ld-mmix/b-widec1.d ld/testsuite/ld-mmix/b-widec2.d ld/testsuite/ld-mmix/b-widec2.s ld/testsuite/ld-mmix/b-widec3.d ld/testsuite/ld-mmix/b-widec3.s ld/testsuite/ld-mmix/bpo-1.d ld/testsuite/ld-mmix/bpo-1.s ld/testsuite/ld-mmix/bpo-10.d ld/testsuite/ld-mmix/bpo-10.s ld/testsuite/ld-mmix/bpo-11.d ld/testsuite/ld-mmix/bpo-11.s ld/testsuite/ld-mmix/bpo-12.d ld/testsuite/ld-mmix/bpo-12m.d ld/testsuite/ld-mmix/bpo-13.d ld/testsuite/ld-mmix/bpo-13m.d ld/testsuite/ld-mmix/bpo-14.d ld/testsuite/ld-mmix/bpo-14m.d ld/testsuite/ld-mmix/bpo-15.d ld/testsuite/ld-mmix/bpo-15m.d ld/testsuite/ld-mmix/bpo-16.d ld/testsuite/ld-mmix/bpo-16m.d ld/testsuite/ld-mmix/bpo-17.d ld/testsuite/ld-mmix/bpo-17m.d ld/testsuite/ld-mmix/bpo-18.d ld/testsuite/ld-mmix/bpo-18m.d ld/testsuite/ld-mmix/bpo-19.d ld/testsuite/ld-mmix/bpo-19m.d ld/testsuite/ld-mmix/bpo-1m.d ld/testsuite/ld-mmix/bpo-2.d ld/testsuite/ld-mmix/bpo-2.s ld/testsuite/ld-mmix/bpo-20.d ld/testsuite/ld-mmix/bpo-20m.d ld/testsuite/ld-mmix/bpo-21.d ld/testsuite/ld-mmix/bpo-21m.d ld/testsuite/ld-mmix/bpo-22.d ld/testsuite/ld-mmix/bpo-2m.d ld/testsuite/ld-mmix/bpo-3.d ld/testsuite/ld-mmix/bpo-3.s ld/testsuite/ld-mmix/bpo-3m.d ld/testsuite/ld-mmix/bpo-4.d ld/testsuite/ld-mmix/bpo-4.s ld/testsuite/ld-mmix/bpo-4m.d ld/testsuite/ld-mmix/bpo-5.d ld/testsuite/ld-mmix/bpo-5.s ld/testsuite/ld-mmix/bpo-5m.d ld/testsuite/ld-mmix/bpo-6.d ld/testsuite/ld-mmix/bpo-6.s ld/testsuite/ld-mmix/bpo-6m.d ld/testsuite/ld-mmix/bpo-7.d ld/testsuite/ld-mmix/bpo-7.s ld/testsuite/ld-mmix/bpo-7m.d ld/testsuite/ld-mmix/bpo-8.d ld/testsuite/ld-mmix/bpo-8.s ld/testsuite/ld-mmix/bpo-8m.d ld/testsuite/ld-mmix/bpo-9.d ld/testsuite/ld-mmix/bpo-9.s ld/testsuite/ld-mmix/bpo-9m.d ld/testsuite/ld-mmix/bpo64addr.ld ld/testsuite/ld-mmix/bspec1.d ld/testsuite/ld-mmix/bspec1.s ld/testsuite/ld-mmix/bspec1m.d ld/testsuite/ld-mmix/bspec2.d ld/testsuite/ld-mmix/bspec2.s ld/testsuite/ld-mmix/bspec2m.d ld/testsuite/ld-mmix/bspec801.s ld/testsuite/ld-mmix/bspec802.s ld/testsuite/ld-mmix/bspec803.s ld/testsuite/ld-mmix/bspec804.s ld/testsuite/ld-mmix/bspec805.s ld/testsuite/ld-mmix/bspec806.s ld/testsuite/ld-mmix/bspec807.s ld/testsuite/ld-mmix/bspec808.s ld/testsuite/ld-mmix/bza-1b.d ld/testsuite/ld-mmix/bza-1f.d ld/testsuite/ld-mmix/bza-2b.d ld/testsuite/ld-mmix/bza-2f.d ld/testsuite/ld-mmix/bza-7b.d ld/testsuite/ld-mmix/bza-7f.d ld/testsuite/ld-mmix/bza-8b.d ld/testsuite/ld-mmix/bza-8f.d ld/testsuite/ld-mmix/bza.s ld/testsuite/ld-mmix/data1.s ld/testsuite/ld-mmix/dloc1.s ld/testsuite/ld-mmix/dloc2.s ld/testsuite/ld-mmix/ext1-254.s ld/testsuite/ld-mmix/ext1.s ld/testsuite/ld-mmix/ext1g.s ld/testsuite/ld-mmix/ext1l.s ld/testsuite/ld-mmix/getaa-1b.d ld/testsuite/ld-mmix/getaa-1f.d ld/testsuite/ld-mmix/getaa-2b.d ld/testsuite/ld-mmix/getaa-2f.d ld/testsuite/ld-mmix/getaa-4b.d ld/testsuite/ld-mmix/getaa-4f.d ld/testsuite/ld-mmix/getaa-6b.d ld/testsuite/ld-mmix/getaa-6f.d ld/testsuite/ld-mmix/getaa-7b.d ld/testsuite/ld-mmix/getaa-7f.d ld/testsuite/ld-mmix/getaa-8b.d ld/testsuite/ld-mmix/getaa-8f.d ld/testsuite/ld-mmix/getaa.s ld/testsuite/ld-mmix/getaa12b.d ld/testsuite/ld-mmix/getaa12f.d ld/testsuite/ld-mmix/getaa14b.d ld/testsuite/ld-mmix/getaa14f.d ld/testsuite/ld-mmix/greg-1.d ld/testsuite/ld-mmix/greg-1.s ld/testsuite/ld-mmix/greg-10.d ld/testsuite/ld-mmix/greg-11.d ld/testsuite/ld-mmix/greg-11b.d ld/testsuite/ld-mmix/greg-12.d ld/testsuite/ld-mmix/greg-13.d ld/testsuite/ld-mmix/greg-14.d ld/testsuite/ld-mmix/greg-14s.d ld/testsuite/ld-mmix/greg-15.d ld/testsuite/ld-mmix/greg-16.d ld/testsuite/ld-mmix/greg-17.d ld/testsuite/ld-mmix/greg-18.d ld/testsuite/ld-mmix/greg-19.d ld/testsuite/ld-mmix/greg-2.d ld/testsuite/ld-mmix/greg-2.s ld/testsuite/ld-mmix/greg-20.d ld/testsuite/ld-mmix/greg-3.d ld/testsuite/ld-mmix/greg-3.s ld/testsuite/ld-mmix/greg-4.d ld/testsuite/ld-mmix/greg-4.s ld/testsuite/ld-mmix/greg-5.d ld/testsuite/ld-mmix/greg-5.s ld/testsuite/ld-mmix/greg-5s.d ld/testsuite/ld-mmix/greg-6.d ld/testsuite/ld-mmix/greg-7.d ld/testsuite/ld-mmix/greg-8.d ld/testsuite/ld-mmix/greg-9.d ld/testsuite/ld-mmix/gregbza1.s ld/testsuite/ld-mmix/gregget1.s ld/testsuite/ld-mmix/gregget2.s ld/testsuite/ld-mmix/gregldo1.s ld/testsuite/ld-mmix/gregpsj1.s ld/testsuite/ld-mmix/hdr-1.d ld/testsuite/ld-mmix/jumpa-1b.d ld/testsuite/ld-mmix/jumpa-1f.d ld/testsuite/ld-mmix/jumpa-2b.d ld/testsuite/ld-mmix/jumpa-2f.d ld/testsuite/ld-mmix/jumpa-3b.d ld/testsuite/ld-mmix/jumpa-3f.d ld/testsuite/ld-mmix/jumpa-4b.d ld/testsuite/ld-mmix/jumpa-4f.d ld/testsuite/ld-mmix/jumpa-5b.d ld/testsuite/ld-mmix/jumpa-5f.d ld/testsuite/ld-mmix/jumpa-6b.d ld/testsuite/ld-mmix/jumpa-6f.d ld/testsuite/ld-mmix/jumpa-7b.d ld/testsuite/ld-mmix/jumpa-7f.d ld/testsuite/ld-mmix/jumpa-8b.d ld/testsuite/ld-mmix/jumpa-8f.d ld/testsuite/ld-mmix/jumpa-9b.d ld/testsuite/ld-mmix/jumpa-9f.d ld/testsuite/ld-mmix/jumpa.s ld/testsuite/ld-mmix/jumpa12b.d ld/testsuite/ld-mmix/jumpa12f.d ld/testsuite/ld-mmix/jumpa13b.d ld/testsuite/ld-mmix/jumpa13f.d ld/testsuite/ld-mmix/jumpa14b.d ld/testsuite/ld-mmix/jumpa14f.d ld/testsuite/ld-mmix/loc1.d ld/testsuite/ld-mmix/loc1.s ld/testsuite/ld-mmix/loc1m.d ld/testsuite/ld-mmix/loc2.d ld/testsuite/ld-mmix/loc2.s ld/testsuite/ld-mmix/loc2m.d ld/testsuite/ld-mmix/loc3.d ld/testsuite/ld-mmix/loc3m.d ld/testsuite/ld-mmix/loc4.d ld/testsuite/ld-mmix/loc4m.d ld/testsuite/ld-mmix/loc5.d ld/testsuite/ld-mmix/loc5m.d ld/testsuite/ld-mmix/loc6.d ld/testsuite/ld-mmix/loc6m.d ld/testsuite/ld-mmix/loc7.d ld/testsuite/ld-mmix/loc7m.d ld/testsuite/ld-mmix/local1.d ld/testsuite/ld-mmix/local1.s ld/testsuite/ld-mmix/local10.d ld/testsuite/ld-mmix/local10m.d ld/testsuite/ld-mmix/local11.d ld/testsuite/ld-mmix/local11m.d ld/testsuite/ld-mmix/local12.d ld/testsuite/ld-mmix/local12m.d ld/testsuite/ld-mmix/local1m.d ld/testsuite/ld-mmix/local2.d ld/testsuite/ld-mmix/local2.s ld/testsuite/ld-mmix/local2m.d ld/testsuite/ld-mmix/local3.d ld/testsuite/ld-mmix/local3m.d ld/testsuite/ld-mmix/local4.d ld/testsuite/ld-mmix/local4m.d ld/testsuite/ld-mmix/local5.d ld/testsuite/ld-mmix/local5m.d ld/testsuite/ld-mmix/local6.d ld/testsuite/ld-mmix/local6m.d ld/testsuite/ld-mmix/local7.d ld/testsuite/ld-mmix/local7m.d ld/testsuite/ld-mmix/local8.d ld/testsuite/ld-mmix/local8m.d ld/testsuite/ld-mmix/local9.d ld/testsuite/ld-mmix/local9m.d ld/testsuite/ld-mmix/locdo-1.d ld/testsuite/ld-mmix/locdo.s ld/testsuite/ld-mmix/loct-1.d ld/testsuite/ld-mmix/loct.s ld/testsuite/ld-mmix/locto-1.d ld/testsuite/ld-mmix/locto.s ld/testsuite/ld-mmix/main1.s ld/testsuite/ld-mmix/mmix.exp ld/testsuite/ld-mmix/mmohdr1.ld ld/testsuite/ld-mmix/mmosec1.ld ld/testsuite/ld-mmix/mmosec2.ld ld/testsuite/ld-mmix/nop123.s ld/testsuite/ld-mmix/pad16.s ld/testsuite/ld-mmix/pad2p18m32.s ld/testsuite/ld-mmix/pad2p26m32.s ld/testsuite/ld-mmix/pad4.s ld/testsuite/ld-mmix/pushja.s ld/testsuite/ld-mmix/pushja1b-s.d ld/testsuite/ld-mmix/pushja1b.d ld/testsuite/ld-mmix/pushja1f-s.d ld/testsuite/ld-mmix/pushja1f.d ld/testsuite/ld-mmix/pushja2b.d ld/testsuite/ld-mmix/pushja2f.d ld/testsuite/ld-mmix/pushja7b-s.d ld/testsuite/ld-mmix/pushja7b.d ld/testsuite/ld-mmix/pushja7f-s.d ld/testsuite/ld-mmix/pushja7f.d ld/testsuite/ld-mmix/pushja8b.d ld/testsuite/ld-mmix/pushja8f.d ld/testsuite/ld-mmix/pushjs1.d ld/testsuite/ld-mmix/pushjs1b.d ld/testsuite/ld-mmix/pushjs1bm.d ld/testsuite/ld-mmix/pushjs1m.d ld/testsuite/ld-mmix/pushjs1r.d ld/testsuite/ld-mmix/pushjs2.d ld/testsuite/ld-mmix/pushjs2b.d ld/testsuite/ld-mmix/pushjs2bm.d ld/testsuite/ld-mmix/pushjs2m.d ld/testsuite/ld-mmix/pushjs2r.d ld/testsuite/ld-mmix/pushjs3.d ld/testsuite/ld-mmix/pushjs3b.d ld/testsuite/ld-mmix/pushjs3bm.d ld/testsuite/ld-mmix/pushjs3m.d ld/testsuite/ld-mmix/pushjs3r.d ld/testsuite/ld-mmix/pushjs4.d ld/testsuite/ld-mmix/pushjs4b.d ld/testsuite/ld-mmix/pushjs4bm.d ld/testsuite/ld-mmix/pushjs4m.d ld/testsuite/ld-mmix/pushjs4r.d ld/testsuite/ld-mmix/reg-1.d ld/testsuite/ld-mmix/reg-1m.d ld/testsuite/ld-mmix/reg-2.d ld/testsuite/ld-mmix/reg-2m.d ld/testsuite/ld-mmix/regext1.s ld/testsuite/ld-mmix/sec-1.d ld/testsuite/ld-mmix/sec-1.s ld/testsuite/ld-mmix/sec-2.d ld/testsuite/ld-mmix/sec-2.s ld/testsuite/ld-mmix/sec-3.d ld/testsuite/ld-mmix/sec-4.d ld/testsuite/ld-mmix/sec-5.d ld/testsuite/ld-mmix/sec-6.d ld/testsuite/ld-mmix/sec-6.s ld/testsuite/ld-mmix/sec-6m.d ld/testsuite/ld-mmix/sec-7a.s ld/testsuite/ld-mmix/sec-7b.s ld/testsuite/ld-mmix/sec-7c.s ld/testsuite/ld-mmix/sec-7d.s ld/testsuite/ld-mmix/sec-7e.s ld/testsuite/ld-mmix/sec-7m.d ld/testsuite/ld-mmix/sec-8a.s ld/testsuite/ld-mmix/sec-8b.s ld/testsuite/ld-mmix/sec-8d.s ld/testsuite/ld-mmix/sec-8m.d ld/testsuite/ld-mmix/sec-8m.s ld/testsuite/ld-mmix/sec-9.d ld/testsuite/ld-mmix/spec801.d ld/testsuite/ld-mmix/spec802.d ld/testsuite/ld-mmix/spec803.d ld/testsuite/ld-mmix/spec804.d ld/testsuite/ld-mmix/spec805.d ld/testsuite/ld-mmix/spec806.d ld/testsuite/ld-mmix/spec807.d ld/testsuite/ld-mmix/spec808.d ld/testsuite/ld-mmix/start-1.d ld/testsuite/ld-mmix/start-2.d ld/testsuite/ld-mmix/start.s ld/testsuite/ld-mmix/start2.s ld/testsuite/ld-mmix/start3.s ld/testsuite/ld-mmix/start4.s ld/testsuite/ld-mmix/sym-1.d ld/testsuite/ld-mmix/sym-2.d ld/testsuite/ld-mmix/sym-2.s ld/testsuite/ld-mmix/undef-1.d ld/testsuite/ld-mmix/undef-1.s ld/testsuite/ld-mmix/undef-1m.d ld/testsuite/ld-mmix/undef-2.d ld/testsuite/ld-mmix/undef-2.s ld/testsuite/ld-mmix/undef-2m.d ld/testsuite/ld-mmix/undef-3.d ld/testsuite/ld-mmix/undef-3m.d ld/testsuite/ld-mmix/x.s ld/testsuite/ld-mmix/y.s ld/testsuite/ld-mmix/zeroeh.ld ld/testsuite/ld-mmix/zeroehelf.d ld/testsuite/ld-mmix/zeroehmmo.d ld/testsuite/ld-pe/pe.exp ld/testsuite/ld-pe/secrel.d ld/testsuite/ld-pe/secrel1.s ld/testsuite/ld-pe/secrel2.s ld/testsuite/ld-pie/pie.c ld/testsuite/ld-pie/pie.exp ld/testsuite/ld-pie/weakundef-data.c ld/testsuite/ld-pie/weakundef.c ld/testsuite/ld-pie/weakundef.out ld/testsuite/ld-powerpc/apuinfo.rd ld/testsuite/ld-powerpc/apuinfo1.s ld/testsuite/ld-powerpc/apuinfo2.s ld/testsuite/ld-powerpc/powerpc.exp ld/testsuite/ld-powerpc/reloc.d ld/testsuite/ld-powerpc/reloc.s ld/testsuite/ld-powerpc/sdadyn.d ld/testsuite/ld-powerpc/sdadyn.s ld/testsuite/ld-powerpc/sdalib.s ld/testsuite/ld-powerpc/symtocbase-1.s ld/testsuite/ld-powerpc/symtocbase-2.s ld/testsuite/ld-powerpc/symtocbase.d ld/testsuite/ld-powerpc/tls.d ld/testsuite/ld-powerpc/tls.g ld/testsuite/ld-powerpc/tls.s ld/testsuite/ld-powerpc/tls.t ld/testsuite/ld-powerpc/tls32.d ld/testsuite/ld-powerpc/tls32.g ld/testsuite/ld-powerpc/tls32.s ld/testsuite/ld-powerpc/tls32.t ld/testsuite/ld-powerpc/tlsexe.d ld/testsuite/ld-powerpc/tlsexe.g ld/testsuite/ld-powerpc/tlsexe.r ld/testsuite/ld-powerpc/tlsexe.t ld/testsuite/ld-powerpc/tlsexe32.d ld/testsuite/ld-powerpc/tlsexe32.g ld/testsuite/ld-powerpc/tlsexe32.r ld/testsuite/ld-powerpc/tlsexe32.t ld/testsuite/ld-powerpc/tlsexetoc.d ld/testsuite/ld-powerpc/tlsexetoc.g ld/testsuite/ld-powerpc/tlsexetoc.r ld/testsuite/ld-powerpc/tlsexetoc.t ld/testsuite/ld-powerpc/tlslib.s ld/testsuite/ld-powerpc/tlslib32.s ld/testsuite/ld-powerpc/tlsso.d ld/testsuite/ld-powerpc/tlsso.g ld/testsuite/ld-powerpc/tlsso.r ld/testsuite/ld-powerpc/tlsso.t ld/testsuite/ld-powerpc/tlsso32.d ld/testsuite/ld-powerpc/tlsso32.g ld/testsuite/ld-powerpc/tlsso32.r ld/testsuite/ld-powerpc/tlsso32.t ld/testsuite/ld-powerpc/tlstoc.d ld/testsuite/ld-powerpc/tlstoc.g ld/testsuite/ld-powerpc/tlstoc.s ld/testsuite/ld-powerpc/tlstoc.t ld/testsuite/ld-powerpc/tlstocso.d ld/testsuite/ld-powerpc/tlstocso.g ld/testsuite/ld-powerpc/tlstocso.r ld/testsuite/ld-powerpc/tlstocso.t ld/testsuite/ld-powerpc/vxworks1-lib.dd ld/testsuite/ld-powerpc/vxworks1-lib.nd ld/testsuite/ld-powerpc/vxworks1-lib.rd ld/testsuite/ld-powerpc/vxworks1-lib.s ld/testsuite/ld-powerpc/vxworks1-lib.sd ld/testsuite/ld-powerpc/vxworks1-static.d ld/testsuite/ld-powerpc/vxworks1.dd ld/testsuite/ld-powerpc/vxworks1.ld ld/testsuite/ld-powerpc/vxworks1.rd ld/testsuite/ld-powerpc/vxworks1.s ld/testsuite/ld-powerpc/vxworks2-static.sd ld/testsuite/ld-powerpc/vxworks2.s ld/testsuite/ld-powerpc/vxworks2.sd ld/testsuite/ld-s390/s390.exp ld/testsuite/ld-s390/tlsbin.dd ld/testsuite/ld-s390/tlsbin.rd ld/testsuite/ld-s390/tlsbin.s ld/testsuite/ld-s390/tlsbin.sd ld/testsuite/ld-s390/tlsbin.td ld/testsuite/ld-s390/tlsbin_64.dd ld/testsuite/ld-s390/tlsbin_64.rd ld/testsuite/ld-s390/tlsbin_64.s ld/testsuite/ld-s390/tlsbin_64.sd ld/testsuite/ld-s390/tlsbin_64.td ld/testsuite/ld-s390/tlsbinpic.s ld/testsuite/ld-s390/tlsbinpic_64.s ld/testsuite/ld-s390/tlslib.s ld/testsuite/ld-s390/tlslib_64.s ld/testsuite/ld-s390/tlspic.dd ld/testsuite/ld-s390/tlspic.rd ld/testsuite/ld-s390/tlspic.sd ld/testsuite/ld-s390/tlspic.td ld/testsuite/ld-s390/tlspic1.s ld/testsuite/ld-s390/tlspic1_64.s ld/testsuite/ld-s390/tlspic2.s ld/testsuite/ld-s390/tlspic2_64.s ld/testsuite/ld-s390/tlspic_64.dd ld/testsuite/ld-s390/tlspic_64.rd ld/testsuite/ld-s390/tlspic_64.sd ld/testsuite/ld-s390/tlspic_64.td ld/testsuite/ld-scripts/align.exp ld/testsuite/ld-scripts/align.s ld/testsuite/ld-scripts/align.t ld/testsuite/ld-scripts/align2.t ld/testsuite/ld-scripts/align2a.d ld/testsuite/ld-scripts/align2a.s ld/testsuite/ld-scripts/align2b.d ld/testsuite/ld-scripts/align2b.s ld/testsuite/ld-scripts/align2c.d ld/testsuite/ld-scripts/align2c.s ld/testsuite/ld-scripts/assert.exp ld/testsuite/ld-scripts/assert.s ld/testsuite/ld-scripts/assert.t ld/testsuite/ld-scripts/cross1.c ld/testsuite/ld-scripts/cross1.t ld/testsuite/ld-scripts/cross2.c ld/testsuite/ld-scripts/cross2.t ld/testsuite/ld-scripts/cross3.c ld/testsuite/ld-scripts/cross3.t ld/testsuite/ld-scripts/cross4.c ld/testsuite/ld-scripts/crossref.exp ld/testsuite/ld-scripts/data.d ld/testsuite/ld-scripts/data.exp ld/testsuite/ld-scripts/data.s ld/testsuite/ld-scripts/data.t ld/testsuite/ld-scripts/defined.exp ld/testsuite/ld-scripts/defined.s ld/testsuite/ld-scripts/defined.t ld/testsuite/ld-scripts/defined2.d ld/testsuite/ld-scripts/defined2.t ld/testsuite/ld-scripts/defined3.d ld/testsuite/ld-scripts/defined3.t ld/testsuite/ld-scripts/dynamic-sections-1.s ld/testsuite/ld-scripts/dynamic-sections-2.s ld/testsuite/ld-scripts/dynamic-sections.d ld/testsuite/ld-scripts/dynamic-sections.exp ld/testsuite/ld-scripts/dynamic-sections.t ld/testsuite/ld-scripts/empty-aligned.d ld/testsuite/ld-scripts/empty-aligned.exp ld/testsuite/ld-scripts/empty-aligned.s ld/testsuite/ld-scripts/empty-aligned.t ld/testsuite/ld-scripts/empty-orphan.d ld/testsuite/ld-scripts/empty-orphan.exp ld/testsuite/ld-scripts/empty-orphan.s ld/testsuite/ld-scripts/empty-orphan.t ld/testsuite/ld-scripts/map-address.d ld/testsuite/ld-scripts/map-address.exp ld/testsuite/ld-scripts/map-address.t ld/testsuite/ld-scripts/memory.t ld/testsuite/ld-scripts/overlay-size-map.d ld/testsuite/ld-scripts/overlay-size.d ld/testsuite/ld-scripts/overlay-size.exp ld/testsuite/ld-scripts/overlay-size.s ld/testsuite/ld-scripts/overlay-size.t ld/testsuite/ld-scripts/phdrs.exp ld/testsuite/ld-scripts/phdrs.s ld/testsuite/ld-scripts/phdrs.t ld/testsuite/ld-scripts/phdrs2.exp ld/testsuite/ld-scripts/phdrs2.s ld/testsuite/ld-scripts/phdrs2.t ld/testsuite/ld-scripts/provide-1.d ld/testsuite/ld-scripts/provide-1.s ld/testsuite/ld-scripts/provide-1.t ld/testsuite/ld-scripts/provide-2.d ld/testsuite/ld-scripts/provide-2.s ld/testsuite/ld-scripts/provide-2.t ld/testsuite/ld-scripts/provide-3.d ld/testsuite/ld-scripts/provide-3.s ld/testsuite/ld-scripts/provide-3.t ld/testsuite/ld-scripts/provide.exp ld/testsuite/ld-scripts/script.exp ld/testsuite/ld-scripts/script.s ld/testsuite/ld-scripts/script.t ld/testsuite/ld-scripts/scriptm.t ld/testsuite/ld-scripts/size-1.d ld/testsuite/ld-scripts/size-1.s ld/testsuite/ld-scripts/size-1.t ld/testsuite/ld-scripts/size-2.d ld/testsuite/ld-scripts/size-2.s ld/testsuite/ld-scripts/size-2.t ld/testsuite/ld-scripts/size.exp ld/testsuite/ld-scripts/sizeof.exp ld/testsuite/ld-scripts/sizeof.s ld/testsuite/ld-scripts/sizeof.t ld/testsuite/ld-scripts/sort.exp ld/testsuite/ld-scripts/sort_b_a.d ld/testsuite/ld-scripts/sort_b_a.s ld/testsuite/ld-scripts/sort_b_a.t ld/testsuite/ld-scripts/sort_b_a_a-1.d ld/testsuite/ld-scripts/sort_b_a_a-2.d ld/testsuite/ld-scripts/sort_b_a_a-3.d ld/testsuite/ld-scripts/sort_b_a_a.t ld/testsuite/ld-scripts/sort_b_a_n-1.d ld/testsuite/ld-scripts/sort_b_a_n-2.d ld/testsuite/ld-scripts/sort_b_a_n-3.d ld/testsuite/ld-scripts/sort_b_a_n.t ld/testsuite/ld-scripts/sort_b_n.d ld/testsuite/ld-scripts/sort_b_n.s ld/testsuite/ld-scripts/sort_b_n.t ld/testsuite/ld-scripts/sort_b_n_a-1.d ld/testsuite/ld-scripts/sort_b_n_a-2.d ld/testsuite/ld-scripts/sort_b_n_a-3.d ld/testsuite/ld-scripts/sort_b_n_a.t ld/testsuite/ld-scripts/sort_b_n_n-1.d ld/testsuite/ld-scripts/sort_b_n_n-2.d ld/testsuite/ld-scripts/sort_b_n_n-3.d ld/testsuite/ld-scripts/sort_b_n_n.t ld/testsuite/ld-scripts/sort_n_a-a.s ld/testsuite/ld-scripts/sort_n_a-b.s ld/testsuite/ld-scripts/sort_no-1.d ld/testsuite/ld-scripts/sort_no-2.d ld/testsuite/ld-scripts/sort_no.t ld/testsuite/ld-scripts/weak.exp ld/testsuite/ld-scripts/weak.t ld/testsuite/ld-scripts/weak1.s ld/testsuite/ld-scripts/weak2.s ld/testsuite/ld-selective/1.c ld/testsuite/ld-selective/2.c ld/testsuite/ld-selective/3.cc ld/testsuite/ld-selective/4.cc ld/testsuite/ld-selective/5.cc ld/testsuite/ld-selective/keepdot.d ld/testsuite/ld-selective/keepdot.ld ld/testsuite/ld-selective/keepdot.s ld/testsuite/ld-selective/keepdot0.d ld/testsuite/ld-selective/keepdot0.ld ld/testsuite/ld-selective/sel-dump.exp ld/testsuite/ld-selective/selective.exp ld/testsuite/ld-sh/arch/arch.exp ld/testsuite/ld-sh/arch/arch_expected.txt ld/testsuite/ld-sh/arch/sh-dsp.s ld/testsuite/ld-sh/arch/sh.s ld/testsuite/ld-sh/arch/sh2.s ld/testsuite/ld-sh/arch/sh2a-nofpu-or-sh3-nommu.s ld/testsuite/ld-sh/arch/sh2a-nofpu-or-sh4-nommu-nofpu.s ld/testsuite/ld-sh/arch/sh2a-nofpu.s ld/testsuite/ld-sh/arch/sh2a-or-sh3e.s ld/testsuite/ld-sh/arch/sh2a-or-sh4.s ld/testsuite/ld-sh/arch/sh2a.s ld/testsuite/ld-sh/arch/sh2e.s ld/testsuite/ld-sh/arch/sh3-dsp.s ld/testsuite/ld-sh/arch/sh3-nommu.s ld/testsuite/ld-sh/arch/sh3.s ld/testsuite/ld-sh/arch/sh3e.s ld/testsuite/ld-sh/arch/sh4-nofpu.s ld/testsuite/ld-sh/arch/sh4-nommu-nofpu.s ld/testsuite/ld-sh/arch/sh4.s ld/testsuite/ld-sh/arch/sh4a-nofpu.s ld/testsuite/ld-sh/arch/sh4a.s ld/testsuite/ld-sh/arch/sh4al-dsp.s ld/testsuite/ld-sh/ld-r-1.d ld/testsuite/ld-sh/ldr1.s ld/testsuite/ld-sh/ldr2.s ld/testsuite/ld-sh/rd-sh.exp ld/testsuite/ld-sh/refdbg-0-dso.d ld/testsuite/ld-sh/refdbg-1.d ld/testsuite/ld-sh/refdbg.s ld/testsuite/ld-sh/refdbglib.s ld/testsuite/ld-sh/sh.exp ld/testsuite/ld-sh/sh1.s ld/testsuite/ld-sh/sh2.c ld/testsuite/ld-sh/sh64/abi32.sd ld/testsuite/ld-sh/sh64/abi32.xd ld/testsuite/ld-sh/sh64/abi64.sd ld/testsuite/ld-sh/sh64/abi64.xd ld/testsuite/ld-sh/sh64/abixx-noexp.sd ld/testsuite/ld-sh/sh64/cmpct1.sd ld/testsuite/ld-sh/sh64/cmpct1.xd ld/testsuite/ld-sh/sh64/crange-1.s ld/testsuite/ld-sh/sh64/crange-2a.s ld/testsuite/ld-sh/sh64/crange-2b.s ld/testsuite/ld-sh/sh64/crange-2c.s ld/testsuite/ld-sh/sh64/crange-2d.s ld/testsuite/ld-sh/sh64/crange-2e.s ld/testsuite/ld-sh/sh64/crange-2f.s ld/testsuite/ld-sh/sh64/crange-2g.s ld/testsuite/ld-sh/sh64/crange-2h.s ld/testsuite/ld-sh/sh64/crange-2i.s ld/testsuite/ld-sh/sh64/crange1.rd ld/testsuite/ld-sh/sh64/crange2.rd ld/testsuite/ld-sh/sh64/crange3-cmpct.rd ld/testsuite/ld-sh/sh64/crange3-media.rd ld/testsuite/ld-sh/sh64/crange3.dd ld/testsuite/ld-sh/sh64/crange3.rd ld/testsuite/ld-sh/sh64/crangerel1.rd ld/testsuite/ld-sh/sh64/crangerel2.rd ld/testsuite/ld-sh/sh64/dlsection-1.s ld/testsuite/ld-sh/sh64/dlsection.sd ld/testsuite/ld-sh/sh64/endian.dbd ld/testsuite/ld-sh/sh64/endian.dld ld/testsuite/ld-sh/sh64/endian.ld ld/testsuite/ld-sh/sh64/endian.s ld/testsuite/ld-sh/sh64/endian.sbd ld/testsuite/ld-sh/sh64/endian.sld ld/testsuite/ld-sh/sh64/gotplt.d ld/testsuite/ld-sh/sh64/gotplt.map ld/testsuite/ld-sh/sh64/gotplt.s ld/testsuite/ld-sh/sh64/init-cmpct.d ld/testsuite/ld-sh/sh64/init-media.d ld/testsuite/ld-sh/sh64/init.s ld/testsuite/ld-sh/sh64/init64.d ld/testsuite/ld-sh/sh64/mix1-noexp.sd ld/testsuite/ld-sh/sh64/mix1.sd ld/testsuite/ld-sh/sh64/mix1.xd ld/testsuite/ld-sh/sh64/mix2-noexp.sd ld/testsuite/ld-sh/sh64/mix2.sd ld/testsuite/ld-sh/sh64/mix2.xd ld/testsuite/ld-sh/sh64/rd-sh64.exp ld/testsuite/ld-sh/sh64/rel-1.s ld/testsuite/ld-sh/sh64/rel-2.s ld/testsuite/ld-sh/sh64/rel32.xd ld/testsuite/ld-sh/sh64/rel64.xd ld/testsuite/ld-sh/sh64/relax.exp ld/testsuite/ld-sh/sh64/relax1.s ld/testsuite/ld-sh/sh64/relax2.s ld/testsuite/ld-sh/sh64/relax3.s ld/testsuite/ld-sh/sh64/relax4.s ld/testsuite/ld-sh/sh64/reldl-1.s ld/testsuite/ld-sh/sh64/reldl-2.s ld/testsuite/ld-sh/sh64/reldl32.rd ld/testsuite/ld-sh/sh64/reldl64.rd ld/testsuite/ld-sh/sh64/relfail.exp ld/testsuite/ld-sh/sh64/relfail.s ld/testsuite/ld-sh/sh64/sh64-1.s ld/testsuite/ld-sh/sh64/sh64-2.s ld/testsuite/ld-sh/sh64/sh64.exp ld/testsuite/ld-sh/sh64/shcmp-1.s ld/testsuite/ld-sh/sh64/shdl-1.s ld/testsuite/ld-sh/sh64/shdl-2.s ld/testsuite/ld-sh/sh64/shdl32.xd ld/testsuite/ld-sh/sh64/shdl64.sd ld/testsuite/ld-sh/sh64/shdl64.xd ld/testsuite/ld-sh/sh64/shmix-1.s ld/testsuite/ld-sh/sh64/shmix-2.s ld/testsuite/ld-sh/sh64/shmix-3.s ld/testsuite/ld-sh/sh64/stobin-0-dso.d ld/testsuite/ld-sh/sh64/stobin-1.d ld/testsuite/ld-sh/sh64/stobin.s ld/testsuite/ld-sh/sh64/stolib.s ld/testsuite/ld-sh/shared-1.d ld/testsuite/ld-sh/shared-2.d ld/testsuite/ld-sh/start.s ld/testsuite/ld-sh/sub2l-1.d ld/testsuite/ld-sh/sub2l.s ld/testsuite/ld-sh/textrel1.s ld/testsuite/ld-sh/textrel2.s ld/testsuite/ld-sh/tlsbin-0-dso.d ld/testsuite/ld-sh/tlsbin-1.d ld/testsuite/ld-sh/tlsbin-2.d ld/testsuite/ld-sh/tlsbin-3.d ld/testsuite/ld-sh/tlsbin-4.d ld/testsuite/ld-sh/tlsbin.s ld/testsuite/ld-sh/tlsbinpic.s ld/testsuite/ld-sh/tlslib.s ld/testsuite/ld-sh/tlspic-1.d ld/testsuite/ld-sh/tlspic-2.d ld/testsuite/ld-sh/tlspic-3.d ld/testsuite/ld-sh/tlspic-4.d ld/testsuite/ld-sh/tlspic1.s ld/testsuite/ld-sh/tlspic2.s ld/testsuite/ld-sh/tlstpoff-1.d ld/testsuite/ld-sh/tlstpoff-2.d ld/testsuite/ld-sh/tlstpoff1.s ld/testsuite/ld-sh/tlstpoff2.s ld/testsuite/ld-sh/weak1.d ld/testsuite/ld-sh/weak1.s ld/testsuite/ld-shared/elf-offset.ld ld/testsuite/ld-shared/main.c ld/testsuite/ld-shared/sh1.c ld/testsuite/ld-shared/sh2.c ld/testsuite/ld-shared/shared.dat ld/testsuite/ld-shared/shared.exp ld/testsuite/ld-shared/sun4.dat ld/testsuite/ld-shared/symbolic.dat ld/testsuite/ld-shared/xcoff.dat ld/testsuite/ld-sparc/sparc.exp ld/testsuite/ld-sparc/tlsg32.s ld/testsuite/ld-sparc/tlsg32.sd ld/testsuite/ld-sparc/tlsg64.s ld/testsuite/ld-sparc/tlsg64.sd ld/testsuite/ld-sparc/tlslib.s ld/testsuite/ld-sparc/tlsnopic.s ld/testsuite/ld-sparc/tlspic.s ld/testsuite/ld-sparc/tlssunbin32.dd ld/testsuite/ld-sparc/tlssunbin32.rd ld/testsuite/ld-sparc/tlssunbin32.s ld/testsuite/ld-sparc/tlssunbin32.sd ld/testsuite/ld-sparc/tlssunbin32.td ld/testsuite/ld-sparc/tlssunbin64.dd ld/testsuite/ld-sparc/tlssunbin64.rd ld/testsuite/ld-sparc/tlssunbin64.s ld/testsuite/ld-sparc/tlssunbin64.sd ld/testsuite/ld-sparc/tlssunbin64.td ld/testsuite/ld-sparc/tlssunbinpic32.s ld/testsuite/ld-sparc/tlssunbinpic64.s ld/testsuite/ld-sparc/tlssunnopic32.dd ld/testsuite/ld-sparc/tlssunnopic32.rd ld/testsuite/ld-sparc/tlssunnopic32.s ld/testsuite/ld-sparc/tlssunnopic32.sd ld/testsuite/ld-sparc/tlssunnopic64.dd ld/testsuite/ld-sparc/tlssunnopic64.rd ld/testsuite/ld-sparc/tlssunnopic64.s ld/testsuite/ld-sparc/tlssunnopic64.sd ld/testsuite/ld-sparc/tlssunpic32.dd ld/testsuite/ld-sparc/tlssunpic32.rd ld/testsuite/ld-sparc/tlssunpic32.s ld/testsuite/ld-sparc/tlssunpic32.sd ld/testsuite/ld-sparc/tlssunpic32.td ld/testsuite/ld-sparc/tlssunpic64.dd ld/testsuite/ld-sparc/tlssunpic64.rd ld/testsuite/ld-sparc/tlssunpic64.s ld/testsuite/ld-sparc/tlssunpic64.sd ld/testsuite/ld-sparc/tlssunpic64.td ld/testsuite/ld-sparc/vxworks1-lib.dd ld/testsuite/ld-sparc/vxworks1-lib.nd ld/testsuite/ld-sparc/vxworks1-lib.rd ld/testsuite/ld-sparc/vxworks1-lib.s ld/testsuite/ld-sparc/vxworks1-static.d ld/testsuite/ld-sparc/vxworks1.dd ld/testsuite/ld-sparc/vxworks1.ld ld/testsuite/ld-sparc/vxworks1.rd ld/testsuite/ld-sparc/vxworks1.s ld/testsuite/ld-sparc/vxworks2-static.sd ld/testsuite/ld-sparc/vxworks2.s ld/testsuite/ld-sparc/vxworks2.sd ld/testsuite/ld-srec/sr1.c ld/testsuite/ld-srec/sr2.c ld/testsuite/ld-srec/sr3.cc ld/testsuite/ld-srec/srec.exp ld/testsuite/ld-undefined/undefined.c ld/testsuite/ld-undefined/undefined.exp ld/testsuite/ld-undefined/weak-undef.exp ld/testsuite/ld-undefined/weak-undef.s ld/testsuite/ld-undefined/weak-undef.t ld/testsuite/ld-v850/split-lo16.d ld/testsuite/ld-v850/split-lo16.ld ld/testsuite/ld-v850/split-lo16.s ld/testsuite/ld-v850/v850.exp ld/testsuite/ld-versados/t1-1.ro ld/testsuite/ld-versados/t1-2.ro ld/testsuite/ld-versados/t1.ld ld/testsuite/ld-versados/t1.ook ld/testsuite/ld-versados/t2-1.ro ld/testsuite/ld-versados/t2-2.ro ld/testsuite/ld-versados/t2-3.ro ld/testsuite/ld-versados/t2.ld ld/testsuite/ld-versados/t2.ook ld/testsuite/ld-versados/versados.exp ld/testsuite/ld-x86-64/abs.d ld/testsuite/ld-x86-64/pcrel16.d ld/testsuite/ld-x86-64/pcrel8.d ld/testsuite/ld-x86-64/tlsbin.dd ld/testsuite/ld-x86-64/tlsbin.rd ld/testsuite/ld-x86-64/tlsbin.s ld/testsuite/ld-x86-64/tlsbin.sd ld/testsuite/ld-x86-64/tlsbin.td ld/testsuite/ld-x86-64/tlsbindesc.dd ld/testsuite/ld-x86-64/tlsbindesc.rd ld/testsuite/ld-x86-64/tlsbindesc.s ld/testsuite/ld-x86-64/tlsbindesc.sd ld/testsuite/ld-x86-64/tlsbindesc.td ld/testsuite/ld-x86-64/tlsbinpic.s ld/testsuite/ld-x86-64/tlsdesc.dd ld/testsuite/ld-x86-64/tlsdesc.pd ld/testsuite/ld-x86-64/tlsdesc.rd ld/testsuite/ld-x86-64/tlsdesc.s ld/testsuite/ld-x86-64/tlsdesc.sd ld/testsuite/ld-x86-64/tlsdesc.td ld/testsuite/ld-x86-64/tlsg.s ld/testsuite/ld-x86-64/tlsg.sd ld/testsuite/ld-x86-64/tlsgdesc.dd ld/testsuite/ld-x86-64/tlsgdesc.rd ld/testsuite/ld-x86-64/tlsgdesc.s ld/testsuite/ld-x86-64/tlslib.s ld/testsuite/ld-x86-64/tlspic.dd ld/testsuite/ld-x86-64/tlspic.rd ld/testsuite/ld-x86-64/tlspic.sd ld/testsuite/ld-x86-64/tlspic.td ld/testsuite/ld-x86-64/tlspic1.s ld/testsuite/ld-x86-64/tlspic2.s ld/testsuite/ld-x86-64/x86-64.exp ld/testsuite/ld-xc16x/absrel.d ld/testsuite/ld-xc16x/absrel.s ld/testsuite/ld-xc16x/offset.d ld/testsuite/ld-xc16x/offset.s ld/testsuite/ld-xc16x/pcreloc.d ld/testsuite/ld-xc16x/pcreloc.s ld/testsuite/ld-xc16x/pcrelocl.d ld/testsuite/ld-xc16x/xc16x.exp ld/testsuite/ld-xstormy16/external.s ld/testsuite/ld-xstormy16/pcrel.d ld/testsuite/ld-xstormy16/pcrel.s ld/testsuite/ld-xstormy16/xstormy16.exp ld/testsuite/ld-xtensa/coalesce.exp ld/testsuite/ld-xtensa/coalesce.t ld/testsuite/ld-xtensa/coalesce1.s ld/testsuite/ld-xtensa/coalesce2.s ld/testsuite/ld-xtensa/lcall.exp ld/testsuite/ld-xtensa/lcall.t ld/testsuite/ld-xtensa/lcall1.s ld/testsuite/ld-xtensa/lcall2.s ld/testsuite/lib/ld-lib.exp opcodes/ChangeLog opcodes/ChangeLog-0001 opcodes/ChangeLog-0203 opcodes/ChangeLog-2004 opcodes/ChangeLog-2005 opcodes/ChangeLog-9297 opcodes/ChangeLog-9899 opcodes/MAINTAINERS opcodes/Makefile.am opcodes/Makefile.in opcodes/acinclude.m4 opcodes/aclocal.m4 opcodes/alpha-dis.c opcodes/alpha-opc.c opcodes/arc-dis.c opcodes/arc-dis.h opcodes/arc-ext.c opcodes/arc-ext.h opcodes/arc-opc.c opcodes/arm-dis.c opcodes/avr-dis.c opcodes/bfin-dis.c opcodes/cgen-asm.c opcodes/cgen-asm.in opcodes/cgen-bitset.c opcodes/cgen-dis.c opcodes/cgen-dis.in opcodes/cgen-ibld.in opcodes/cgen-opc.c opcodes/cgen-ops.h opcodes/cgen-types.h opcodes/cgen.sh opcodes/config.in opcodes/configure opcodes/configure.in opcodes/cris-dis.c opcodes/cris-opc.c opcodes/crx-dis.c opcodes/crx-opc.c opcodes/d10v-dis.c opcodes/d10v-opc.c opcodes/d30v-dis.c opcodes/d30v-opc.c opcodes/dep-in.sed opcodes/dis-buf.c opcodes/dis-init.c opcodes/disassemble.c opcodes/dlx-dis.c opcodes/fr30-asm.c opcodes/fr30-desc.c opcodes/fr30-desc.h opcodes/fr30-dis.c opcodes/fr30-ibld.c opcodes/fr30-opc.c opcodes/fr30-opc.h opcodes/frv-asm.c opcodes/frv-desc.c opcodes/frv-desc.h opcodes/frv-dis.c opcodes/frv-ibld.c opcodes/frv-opc.c opcodes/frv-opc.h opcodes/h8300-dis.c opcodes/h8500-dis.c opcodes/h8500-opc.h opcodes/hppa-dis.c opcodes/i370-dis.c opcodes/i370-opc.c opcodes/i386-dis.c opcodes/i860-dis.c opcodes/i960-dis.c opcodes/ia64-asmtab.c opcodes/ia64-asmtab.h opcodes/ia64-dis.c opcodes/ia64-gen.c opcodes/ia64-ic.tbl opcodes/ia64-opc-a.c opcodes/ia64-opc-b.c opcodes/ia64-opc-d.c opcodes/ia64-opc-f.c opcodes/ia64-opc-i.c opcodes/ia64-opc-m.c opcodes/ia64-opc-x.c opcodes/ia64-opc.c opcodes/ia64-opc.h opcodes/ia64-raw.tbl opcodes/ia64-war.tbl opcodes/ia64-waw.tbl opcodes/ip2k-asm.c opcodes/ip2k-desc.c opcodes/ip2k-desc.h opcodes/ip2k-dis.c opcodes/ip2k-ibld.c opcodes/ip2k-opc.c opcodes/ip2k-opc.h opcodes/iq2000-asm.c opcodes/iq2000-desc.c opcodes/iq2000-desc.h opcodes/iq2000-dis.c opcodes/iq2000-ibld.c opcodes/iq2000-opc.c opcodes/iq2000-opc.h opcodes/m10200-dis.c opcodes/m10200-opc.c opcodes/m10300-dis.c opcodes/m10300-opc.c opcodes/m32c-asm.c opcodes/m32c-desc.c opcodes/m32c-desc.h opcodes/m32c-dis.c opcodes/m32c-ibld.c opcodes/m32c-opc.c opcodes/m32c-opc.h opcodes/m32r-asm.c opcodes/m32r-desc.c opcodes/m32r-desc.h opcodes/m32r-dis.c opcodes/m32r-ibld.c opcodes/m32r-opc.c opcodes/m32r-opc.h opcodes/m32r-opinst.c opcodes/m68hc11-dis.c opcodes/m68hc11-opc.c opcodes/m68k-dis.c opcodes/m68k-opc.c opcodes/m88k-dis.c opcodes/makefile.vms opcodes/maxq-dis.c opcodes/mcore-dis.c opcodes/mcore-opc.h opcodes/mips-dis.c opcodes/mips-opc.c opcodes/mips16-opc.c opcodes/mmix-dis.c opcodes/mmix-opc.c opcodes/msp430-dis.c opcodes/mt-asm.c opcodes/mt-desc.c opcodes/mt-desc.h opcodes/mt-dis.c opcodes/mt-ibld.c opcodes/mt-opc.c opcodes/mt-opc.h opcodes/ns32k-dis.c opcodes/openrisc-asm.c opcodes/openrisc-desc.c opcodes/openrisc-desc.h opcodes/openrisc-dis.c opcodes/openrisc-ibld.c opcodes/openrisc-opc.c opcodes/openrisc-opc.h opcodes/opintl.h opcodes/or32-dis.c opcodes/or32-opc.c opcodes/pdp11-dis.c opcodes/pdp11-opc.c opcodes/pj-dis.c opcodes/pj-opc.c opcodes/po/.cvsignore opcodes/po/Make-in opcodes/po/POTFILES.in opcodes/po/da.po opcodes/po/de.po opcodes/po/es.po opcodes/po/fi.po opcodes/po/fr.po opcodes/po/ga.po opcodes/po/id.po opcodes/po/nl.po opcodes/po/opcodes.pot opcodes/po/pt_BR.po opcodes/po/ro.po opcodes/po/sv.po opcodes/po/tr.po opcodes/po/vi.po opcodes/po/zh_CN.po opcodes/ppc-dis.c opcodes/ppc-opc.c opcodes/s390-dis.c opcodes/s390-mkopc.c opcodes/s390-opc.c opcodes/s390-opc.txt opcodes/sh-dis.c opcodes/sh-opc.h opcodes/sh64-dis.c opcodes/sh64-opc.c opcodes/sh64-opc.h opcodes/sparc-dis.c opcodes/sparc-opc.c opcodes/stamp-h.in opcodes/sysdep.h opcodes/tic30-dis.c opcodes/tic4x-dis.c opcodes/tic54x-dis.c opcodes/tic54x-opc.c opcodes/tic80-dis.c opcodes/tic80-opc.c opcodes/v850-dis.c opcodes/v850-opc.c opcodes/vax-dis.c opcodes/w65-dis.c opcodes/w65-opc.h opcodes/xc16x-asm.c opcodes/xc16x-desc.c opcodes/xc16x-desc.h opcodes/xc16x-dis.c opcodes/xc16x-ibld.c opcodes/xc16x-opc.c opcodes/xc16x-opc.h opcodes/xstormy16-asm.c opcodes/xstormy16-desc.c opcodes/xstormy16-desc.h opcodes/xstormy16-dis.c opcodes/xstormy16-ibld.c opcodes/xstormy16-opc.c opcodes/xstormy16-opc.h opcodes/xtensa-dis.c opcodes/z80-dis.c opcodes/z8k-dis.c opcodes/z8k-opc.h opcodes/z8kgen.c readline/CHANGELOG readline/CHANGES readline/COPYING readline/ChangeLog.gdb readline/INSTALL readline/MANIFEST readline/Makefile.in readline/NEWS readline/README readline/USAGE readline/aclocal.m4 readline/ansi_stdlib.h readline/bind.c readline/callback.c readline/chardefs.h readline/compat.c readline/complete.c readline/config.h.in readline/configure readline/configure.in readline/cross-build/cygwin.cache readline/display.c readline/doc/ChangeLog.gdb readline/doc/Makefile.in readline/doc/fdl.texi readline/doc/history.3 readline/doc/history.texi readline/doc/hstech.texi readline/doc/hsuser.texi readline/doc/inc-hist.texinfo readline/doc/readline.3 readline/doc/rlman.texi readline/doc/rltech.texi readline/doc/rluser.texi readline/doc/rluserman.texi readline/doc/texi2dvi readline/doc/texi2html readline/doc/version.texi readline/emacs_keymap.c readline/examples/ChangeLog.gdb readline/examples/Inputrc readline/examples/Makefile.in readline/examples/excallback.c readline/examples/fileman.c readline/examples/histexamp.c readline/examples/manexamp.c readline/examples/readlinebuf.h readline/examples/rl-fgets.c readline/examples/rl.c readline/examples/rlcat.c readline/examples/rlfe/ChangeLog readline/examples/rlfe/Makefile.in readline/examples/rlfe/README readline/examples/rlfe/config.h.in readline/examples/rlfe/configure readline/examples/rlfe/configure.in readline/examples/rlfe/extern.h readline/examples/rlfe/os.h readline/examples/rlfe/pty.c readline/examples/rlfe/rlfe.c readline/examples/rlfe/screen.h readline/examples/rlptytest.c readline/examples/rltest.c readline/examples/rlversion.c readline/funmap.c readline/histexpand.c readline/histfile.c readline/histlib.h readline/history.c readline/history.h readline/histsearch.c readline/input.c readline/isearch.c readline/keymaps.c readline/keymaps.h readline/kill.c readline/macro.c readline/mbutil.c readline/misc.c readline/nls.c readline/parens.c readline/posixdir.h readline/posixjmp.h readline/posixstat.h readline/readline.c readline/readline.h readline/rlconf.h readline/rldefs.h readline/rlmbutil.h readline/rlprivate.h readline/rlshell.h readline/rlstdc.h readline/rltty.c readline/rltty.h readline/rltypedefs.h readline/rlwinsize.h readline/savestring.c readline/search.c readline/shell.c readline/shlib/Makefile.in readline/signals.c readline/support/config.guess readline/support/config.rpath readline/support/config.sub readline/support/install.sh readline/support/mkdirs readline/support/mkdist readline/support/mkinstalldirs readline/support/shlib-install readline/support/shobj-conf readline/support/wcwidth.c readline/tcap.h readline/terminal.c readline/text.c readline/tilde.c readline/tilde.h readline/undo.c readline/util.c readline/vi_keymap.c readline/vi_mode.c readline/xmalloc.c readline/xmalloc.h sim/ChangeLog sim/MAINTAINERS sim/Makefile.in sim/README-HACKING sim/arm/COPYING sim/arm/ChangeLog sim/arm/Makefile.in sim/arm/README sim/arm/acconfig.h sim/arm/armcopro.c sim/arm/armdefs.h sim/arm/armemu.c sim/arm/armemu.h sim/arm/armfpe.h sim/arm/arminit.c sim/arm/armopts.h sim/arm/armos.c sim/arm/armos.h sim/arm/armrdi.c sim/arm/armsupp.c sim/arm/armvirt.c sim/arm/bag.c sim/arm/bag.h sim/arm/communicate.c sim/arm/communicate.h sim/arm/config.in sim/arm/configure sim/arm/configure.ac sim/arm/dbg_conf.h sim/arm/dbg_cp.h sim/arm/dbg_hif.h sim/arm/dbg_rdi.h sim/arm/gdbhost.c sim/arm/gdbhost.h sim/arm/iwmmxt.c sim/arm/iwmmxt.h sim/arm/kid.c sim/arm/main.c sim/arm/maverick.c sim/arm/parent.c sim/arm/tconfig.in sim/arm/thumbemu.c sim/arm/wrapper.c sim/common/ChangeLog sim/common/Make-common.in sim/common/Makefile.in sim/common/acconfig.h sim/common/aclocal.m4 sim/common/callback.c sim/common/cgen-accfp.c sim/common/cgen-cpu.h sim/common/cgen-defs.h sim/common/cgen-engine.h sim/common/cgen-fpu.c sim/common/cgen-fpu.h sim/common/cgen-mem.h sim/common/cgen-ops.h sim/common/cgen-par.c sim/common/cgen-par.h sim/common/cgen-run.c sim/common/cgen-scache.c sim/common/cgen-scache.h sim/common/cgen-sim.h sim/common/cgen-trace.c sim/common/cgen-trace.h sim/common/cgen-types.h sim/common/cgen-utils.c sim/common/cgen.sh sim/common/common.m4 sim/common/config.in sim/common/configure sim/common/configure.ac sim/common/dv-core.c sim/common/dv-glue.c sim/common/dv-pal.c sim/common/dv-sockser.c sim/common/dv-sockser.h sim/common/gdbinit.in sim/common/genmloop.sh sim/common/gennltvals.sh sim/common/gentmap.c sim/common/gentvals.sh sim/common/hw-alloc.c sim/common/hw-alloc.h sim/common/hw-base.c sim/common/hw-base.h sim/common/hw-device.c sim/common/hw-device.h sim/common/hw-events.c sim/common/hw-events.h sim/common/hw-handles.c sim/common/hw-handles.h sim/common/hw-instances.c sim/common/hw-instances.h sim/common/hw-main.h sim/common/hw-ports.c sim/common/hw-ports.h sim/common/hw-properties.c sim/common/hw-properties.h sim/common/hw-tree.c sim/common/hw-tree.h sim/common/nltvals.def sim/common/nrun.c sim/common/run-sim.h sim/common/run.1 sim/common/run.c sim/common/sim-abort.c sim/common/sim-alu.h sim/common/sim-arange.c sim/common/sim-arange.h sim/common/sim-assert.h sim/common/sim-base.h sim/common/sim-basics.h sim/common/sim-bits.c sim/common/sim-bits.h sim/common/sim-config.c sim/common/sim-config.h sim/common/sim-core.c sim/common/sim-core.h sim/common/sim-cpu.c sim/common/sim-cpu.h sim/common/sim-endian.c sim/common/sim-endian.h sim/common/sim-engine.c sim/common/sim-engine.h sim/common/sim-events.c sim/common/sim-events.h sim/common/sim-fpu.c sim/common/sim-fpu.h sim/common/sim-hload.c sim/common/sim-hrw.c sim/common/sim-hw.c sim/common/sim-hw.h sim/common/sim-info.c sim/common/sim-inline.c sim/common/sim-inline.h sim/common/sim-io.c sim/common/sim-io.h sim/common/sim-load.c sim/common/sim-memopt.c sim/common/sim-memopt.h sim/common/sim-model.c sim/common/sim-model.h sim/common/sim-module.c sim/common/sim-module.h sim/common/sim-n-bits.h sim/common/sim-n-core.h sim/common/sim-n-endian.h sim/common/sim-options.c sim/common/sim-options.h sim/common/sim-profile.c sim/common/sim-profile.h sim/common/sim-reason.c sim/common/sim-reg.c sim/common/sim-resume.c sim/common/sim-run.c sim/common/sim-signal.c sim/common/sim-signal.h sim/common/sim-stop.c sim/common/sim-trace.c sim/common/sim-trace.h sim/common/sim-types.h sim/common/sim-utils.c sim/common/sim-utils.h sim/common/sim-watch.c sim/common/sim-watch.h sim/common/syscall.c sim/common/tconfig.in sim/configure sim/configure.ac sim/cris/Makefile.in sim/cris/arch.c sim/cris/arch.h sim/cris/config.in sim/cris/configure sim/cris/configure.ac sim/cris/cpuall.h sim/cris/cpuv10.c sim/cris/cpuv10.h sim/cris/cpuv32.c sim/cris/cpuv32.h sim/cris/cris-desc.c sim/cris/cris-desc.h sim/cris/cris-opc.h sim/cris/cris-sim.h sim/cris/cris-tmpl.c sim/cris/crisv10f.c sim/cris/crisv32f.c sim/cris/decodev10.c sim/cris/decodev10.h sim/cris/decodev32.c sim/cris/decodev32.h sim/cris/devices.c sim/cris/dv-cris.c sim/cris/dv-rv.c sim/cris/mloop.in sim/cris/modelv10.c sim/cris/modelv32.c sim/cris/rvdummy.c sim/cris/semcrisv10f-switch.c sim/cris/semcrisv32f-switch.c sim/cris/sim-if.c sim/cris/sim-main.h sim/cris/tconfig.in sim/cris/traps.c sim/d10v/ChangeLog sim/d10v/Makefile.in sim/d10v/acconfig.h sim/d10v/config.in sim/d10v/configure sim/d10v/configure.ac sim/d10v/d10v_sim.h sim/d10v/endian.c sim/d10v/gencode.c sim/d10v/interp.c sim/d10v/simops.c sim/erc32/ChangeLog sim/erc32/Makefile.in sim/erc32/NEWS sim/erc32/README.erc32 sim/erc32/README.gdb sim/erc32/README.sis sim/erc32/acconfig.h sim/erc32/config.in sim/erc32/configure sim/erc32/configure.ac sim/erc32/end.c sim/erc32/erc32.c sim/erc32/exec.c sim/erc32/float.c sim/erc32/func.c sim/erc32/help.c sim/erc32/interf.c sim/erc32/sis.c sim/erc32/sis.h sim/erc32/startsim sim/frv/ChangeLog sim/frv/Makefile.in sim/frv/README sim/frv/TODO sim/frv/arch.c sim/frv/arch.h sim/frv/cache.c sim/frv/cache.h sim/frv/config.in sim/frv/configure sim/frv/configure.ac sim/frv/cpu.c sim/frv/cpu.h sim/frv/cpuall.h sim/frv/decode.c sim/frv/decode.h sim/frv/devices.c sim/frv/frv-sim.h sim/frv/frv.c sim/frv/interrupts.c sim/frv/memory.c sim/frv/mloop.in sim/frv/model.c sim/frv/options.c sim/frv/pipeline.c sim/frv/profile-fr400.c sim/frv/profile-fr400.h sim/frv/profile-fr450.c sim/frv/profile-fr500.c sim/frv/profile-fr500.h sim/frv/profile-fr550.c sim/frv/profile-fr550.h sim/frv/profile.c sim/frv/profile.h sim/frv/registers.c sim/frv/registers.h sim/frv/reset.c sim/frv/sem.c sim/frv/sim-if.c sim/frv/sim-main.h sim/frv/tconfig.in sim/frv/traps.c sim/h8300/ChangeLog sim/h8300/Makefile.in sim/h8300/acconfig.h sim/h8300/compile.c sim/h8300/config.in sim/h8300/configure sim/h8300/configure.ac sim/h8300/inst.h sim/h8300/sim-main.h sim/h8300/tconfig.in sim/h8300/writecode.c sim/igen/ChangeLog sim/igen/Makefile.in sim/igen/acconfig.h sim/igen/compare_igen_models sim/igen/config.in sim/igen/configure sim/igen/configure.ac sim/igen/filter.c sim/igen/filter.h sim/igen/filter_host.c sim/igen/filter_host.h sim/igen/gen-engine.c sim/igen/gen-engine.h sim/igen/gen-icache.c sim/igen/gen-icache.h sim/igen/gen-idecode.c sim/igen/gen-idecode.h sim/igen/gen-itable.c sim/igen/gen-itable.h sim/igen/gen-model.c sim/igen/gen-model.h sim/igen/gen-semantics.c sim/igen/gen-semantics.h sim/igen/gen-support.c sim/igen/gen-support.h sim/igen/gen.c sim/igen/gen.h sim/igen/igen.c sim/igen/igen.h sim/igen/ld-cache.c sim/igen/ld-cache.h sim/igen/ld-decode.c sim/igen/ld-decode.h sim/igen/ld-insn.c sim/igen/ld-insn.h sim/igen/lf.c sim/igen/lf.h sim/igen/misc.c sim/igen/misc.h sim/igen/table.c sim/igen/table.h sim/iq2000/ChangeLog sim/iq2000/Makefile.in sim/iq2000/acconfig.h sim/iq2000/arch.c sim/iq2000/arch.h sim/iq2000/config.in sim/iq2000/configure sim/iq2000/configure.ac sim/iq2000/cpu.c sim/iq2000/cpu.h sim/iq2000/cpuall.h sim/iq2000/decode.c sim/iq2000/decode.h sim/iq2000/iq2000-sim.h sim/iq2000/iq2000.c sim/iq2000/mloop.in sim/iq2000/model.c sim/iq2000/sem-switch.c sim/iq2000/sem.c sim/iq2000/sim-if.c sim/iq2000/sim-main.h sim/iq2000/tconfig.in sim/m32c/ChangeLog sim/m32c/Makefile.in sim/m32c/blinky.S sim/m32c/config.in sim/m32c/configure sim/m32c/configure.in sim/m32c/cpu.h sim/m32c/gdb-if.c sim/m32c/gloss.S sim/m32c/int.c sim/m32c/int.h sim/m32c/load.c sim/m32c/load.h sim/m32c/m32c.opc sim/m32c/main.c sim/m32c/mem.c sim/m32c/mem.h sim/m32c/misc.c sim/m32c/misc.h sim/m32c/opc2c.c sim/m32c/r8c.opc sim/m32c/reg.c sim/m32c/safe-fgets.c sim/m32c/safe-fgets.h sim/m32c/sample.S sim/m32c/sample.ld sim/m32c/sample2.c sim/m32c/srcdest.c sim/m32c/syscall.h sim/m32c/syscalls.c sim/m32c/syscalls.h sim/m32c/trace.c sim/m32c/trace.h sim/m32r/ChangeLog sim/m32r/Makefile.in sim/m32r/README sim/m32r/TODO sim/m32r/acconfig.h sim/m32r/arch.c sim/m32r/arch.h sim/m32r/config.in sim/m32r/configure sim/m32r/configure.ac sim/m32r/cpu.c sim/m32r/cpu.h sim/m32r/cpu2.c sim/m32r/cpu2.h sim/m32r/cpuall.h sim/m32r/cpux.c sim/m32r/cpux.h sim/m32r/decode.c sim/m32r/decode.h sim/m32r/decode2.c sim/m32r/decode2.h sim/m32r/decodex.c sim/m32r/decodex.h sim/m32r/devices.c sim/m32r/m32r-sim.h sim/m32r/m32r.c sim/m32r/m32r2.c sim/m32r/m32rx.c sim/m32r/mloop.in sim/m32r/mloop2.in sim/m32r/mloopx.in sim/m32r/model.c sim/m32r/model2.c sim/m32r/modelx.c sim/m32r/sem-switch.c sim/m32r/sem.c sim/m32r/sem2-switch.c sim/m32r/semx-switch.c sim/m32r/sim-if.c sim/m32r/sim-main.h sim/m32r/syscall.h sim/m32r/tconfig.in sim/m32r/traps-linux.c sim/m32r/traps.c sim/m68hc11/ChangeLog sim/m68hc11/Makefile.in sim/m68hc11/config.in sim/m68hc11/configure sim/m68hc11/configure.ac sim/m68hc11/dv-m68hc11.c sim/m68hc11/dv-m68hc11eepr.c sim/m68hc11/dv-m68hc11sio.c sim/m68hc11/dv-m68hc11spi.c sim/m68hc11/dv-m68hc11tim.c sim/m68hc11/dv-nvram.c sim/m68hc11/emulos.c sim/m68hc11/gencode.c sim/m68hc11/interp.c sim/m68hc11/interrupts.c sim/m68hc11/interrupts.h sim/m68hc11/m68hc11_sim.c sim/m68hc11/sim-main.h sim/mcore/ChangeLog sim/mcore/Makefile.in sim/mcore/config.in sim/mcore/configure sim/mcore/configure.ac sim/mcore/interp.c sim/mcore/sysdep.h sim/mips/ChangeLog sim/mips/Makefile.in sim/mips/acconfig.h sim/mips/config.in sim/mips/configure sim/mips/configure.ac sim/mips/cp1.c sim/mips/cp1.h sim/mips/dsp.c sim/mips/dsp.igen sim/mips/dv-tx3904cpu.c sim/mips/dv-tx3904irc.c sim/mips/dv-tx3904sio.c sim/mips/dv-tx3904tmr.c sim/mips/interp.c sim/mips/m16.dc sim/mips/m16.igen sim/mips/m16e.igen sim/mips/m16run.c sim/mips/mdmx.c sim/mips/mdmx.igen sim/mips/mips.dc sim/mips/mips.igen sim/mips/mips3264r2.igen sim/mips/mips3d.igen sim/mips/sb1.igen sim/mips/sim-main.c sim/mips/sim-main.h sim/mips/tconfig.in sim/mips/tx.igen sim/mips/vr.igen sim/mn10300/ChangeLog sim/mn10300/Makefile.in sim/mn10300/acconfig.h sim/mn10300/am33-2.igen sim/mn10300/am33.igen sim/mn10300/config.in sim/mn10300/configure sim/mn10300/configure.ac sim/mn10300/dv-mn103cpu.c sim/mn10300/dv-mn103int.c sim/mn10300/dv-mn103iop.c sim/mn10300/dv-mn103ser.c sim/mn10300/dv-mn103tim.c sim/mn10300/interp.c sim/mn10300/mn10300.dc sim/mn10300/mn10300.igen sim/mn10300/mn10300_sim.h sim/mn10300/op_utils.c sim/mn10300/sim-main.c sim/mn10300/sim-main.h sim/mn10300/tconfig.in sim/ppc/.gdbinit sim/ppc/BUGS sim/ppc/COPYING sim/ppc/COPYING.LIB sim/ppc/ChangeLog sim/ppc/ChangeLog.00 sim/ppc/INSTALL sim/ppc/Makefile.in sim/ppc/README sim/ppc/RUN sim/ppc/acconfig.h sim/ppc/aclocal.m4 sim/ppc/altivec.igen sim/ppc/altivec_expression.h sim/ppc/altivec_registers.h sim/ppc/basics.h sim/ppc/bits.c sim/ppc/bits.h sim/ppc/cap.c sim/ppc/cap.h sim/ppc/config.in sim/ppc/configure sim/ppc/configure.ac sim/ppc/corefile-n.h sim/ppc/corefile.c sim/ppc/corefile.h sim/ppc/cpu.c sim/ppc/cpu.h sim/ppc/dc-complex sim/ppc/dc-simple sim/ppc/dc-stupid sim/ppc/dc-test.01 sim/ppc/dc-test.02 sim/ppc/debug.c sim/ppc/debug.h sim/ppc/device.c sim/ppc/device.h sim/ppc/device_table.c sim/ppc/device_table.h sim/ppc/dgen.c sim/ppc/double.c sim/ppc/dp-bit.c sim/ppc/e500.igen sim/ppc/e500_expression.h sim/ppc/e500_registers.h sim/ppc/emul_bugapi.c sim/ppc/emul_bugapi.h sim/ppc/emul_chirp.c sim/ppc/emul_chirp.h sim/ppc/emul_generic.c sim/ppc/emul_generic.h sim/ppc/emul_netbsd.c sim/ppc/emul_netbsd.h sim/ppc/emul_unix.c sim/ppc/emul_unix.h sim/ppc/events.c sim/ppc/events.h sim/ppc/filter.c sim/ppc/filter.h sim/ppc/filter_filename.c sim/ppc/filter_filename.h sim/ppc/gdb-sim.c sim/ppc/gen-icache.c sim/ppc/gen-icache.h sim/ppc/gen-idecode.c sim/ppc/gen-idecode.h sim/ppc/gen-itable.c sim/ppc/gen-itable.h sim/ppc/gen-model.c sim/ppc/gen-model.h sim/ppc/gen-semantics.c sim/ppc/gen-semantics.h sim/ppc/gen-support.c sim/ppc/gen-support.h sim/ppc/hw_com.c sim/ppc/hw_core.c sim/ppc/hw_cpu.c sim/ppc/hw_cpu.h sim/ppc/hw_disk.c sim/ppc/hw_eeprom.c sim/ppc/hw_glue.c sim/ppc/hw_htab.c sim/ppc/hw_ide.c sim/ppc/hw_init.c sim/ppc/hw_iobus.c sim/ppc/hw_memory.c sim/ppc/hw_nvram.c sim/ppc/hw_opic.c sim/ppc/hw_pal.c sim/ppc/hw_phb.c sim/ppc/hw_phb.h sim/ppc/hw_register.c sim/ppc/hw_trace.c sim/ppc/hw_vm.c sim/ppc/idecode_branch.h sim/ppc/idecode_expression.h sim/ppc/idecode_fields.h sim/ppc/igen.c sim/ppc/igen.h sim/ppc/inline.c sim/ppc/inline.h sim/ppc/interrupts.c sim/ppc/interrupts.h sim/ppc/ld-cache.c sim/ppc/ld-cache.h sim/ppc/ld-decode.c sim/ppc/ld-decode.h sim/ppc/ld-insn.c sim/ppc/ld-insn.h sim/ppc/lf.c sim/ppc/lf.h sim/ppc/main.c sim/ppc/misc.c sim/ppc/misc.h sim/ppc/mon.c sim/ppc/mon.h sim/ppc/options.c sim/ppc/options.h sim/ppc/os_emul.c sim/ppc/os_emul.h sim/ppc/pk_disklabel.c sim/ppc/ppc-instructions sim/ppc/ppc-spr-table sim/ppc/ppc.mt sim/ppc/psim.c sim/ppc/psim.h sim/ppc/psim.texinfo sim/ppc/registers.c sim/ppc/registers.h sim/ppc/sim-endian-n.h sim/ppc/sim-endian.c sim/ppc/sim-endian.h sim/ppc/sim-main.h sim/ppc/sim_callbacks.h sim/ppc/sim_calls.c sim/ppc/std-config.h sim/ppc/table.c sim/ppc/table.h sim/ppc/tree.c sim/ppc/tree.h sim/ppc/vm.c sim/ppc/vm.h sim/ppc/vm_n.h sim/ppc/words.h sim/sh/ChangeLog sim/sh/Makefile.in sim/sh/acconfig.h sim/sh/config.in sim/sh/configure sim/sh/configure.ac sim/sh/gencode.c sim/sh/interp.c sim/sh/syscall.h sim/sh/tconfig.in sim/sh64/ChangeLog sim/sh64/Makefile.in sim/sh64/arch.c sim/sh64/arch.h sim/sh64/config.in sim/sh64/configure sim/sh64/configure.ac sim/sh64/cpu.c sim/sh64/cpu.h sim/sh64/cpuall.h sim/sh64/decode-compact.c sim/sh64/decode-compact.h sim/sh64/decode-media.c sim/sh64/decode-media.h sim/sh64/decode.h sim/sh64/defs-compact.h sim/sh64/defs-media.h sim/sh64/eng-compact.h sim/sh64/eng-media.h sim/sh64/eng.h sim/sh64/mloop-compact.c sim/sh64/mloop-media.c sim/sh64/sem-compact-switch.c sim/sh64/sem-compact.c sim/sh64/sem-media-switch.c sim/sh64/sem-media.c sim/sh64/sh-desc.c sim/sh64/sh-desc.h sim/sh64/sh-opc.h sim/sh64/sh64-sim.h sim/sh64/sh64.c sim/sh64/sim-if.c sim/sh64/sim-main.h sim/sh64/tconfig.in sim/testsuite/ChangeLog sim/testsuite/Makefile.in sim/testsuite/common/Make-common.in sim/testsuite/common/Makefile.in sim/testsuite/common/alu-n-tst.h sim/testsuite/common/alu-tst.c sim/testsuite/common/bits-gen.c sim/testsuite/common/bits-tst.c sim/testsuite/common/fpu-tst.c sim/testsuite/config/default.exp sim/testsuite/configure sim/testsuite/configure.ac sim/testsuite/d10v-elf/ChangeLog sim/testsuite/d10v-elf/Makefile.in sim/testsuite/d10v-elf/configure sim/testsuite/d10v-elf/configure.ac sim/testsuite/d10v-elf/exit47.s sim/testsuite/d10v-elf/hello.s sim/testsuite/d10v-elf/loop.s sim/testsuite/d10v-elf/t-ae-ld-d.s sim/testsuite/d10v-elf/t-ae-ld-i.s sim/testsuite/d10v-elf/t-ae-ld-id.s sim/testsuite/d10v-elf/t-ae-ld-im.s sim/testsuite/d10v-elf/t-ae-ld-ip.s sim/testsuite/d10v-elf/t-ae-ld2w-d.s sim/testsuite/d10v-elf/t-ae-ld2w-i.s sim/testsuite/d10v-elf/t-ae-ld2w-id.s sim/testsuite/d10v-elf/t-ae-ld2w-im.s sim/testsuite/d10v-elf/t-ae-ld2w-ip.s sim/testsuite/d10v-elf/t-ae-st-d.s sim/testsuite/d10v-elf/t-ae-st-i.s sim/testsuite/d10v-elf/t-ae-st-id.s sim/testsuite/d10v-elf/t-ae-st-im.s sim/testsuite/d10v-elf/t-ae-st-ip.s sim/testsuite/d10v-elf/t-ae-st-is.s sim/testsuite/d10v-elf/t-ae-st2w-d.s sim/testsuite/d10v-elf/t-ae-st2w-i.s sim/testsuite/d10v-elf/t-ae-st2w-id.s sim/testsuite/d10v-elf/t-ae-st2w-im.s sim/testsuite/d10v-elf/t-ae-st2w-ip.s sim/testsuite/d10v-elf/t-ae-st2w-is.s sim/testsuite/d10v-elf/t-dbt.s sim/testsuite/d10v-elf/t-ld-st.s sim/testsuite/d10v-elf/t-mac.s sim/testsuite/d10v-elf/t-macros.i sim/testsuite/d10v-elf/t-mod-ld-pre.s sim/testsuite/d10v-elf/t-msbu.s sim/testsuite/d10v-elf/t-mulxu.s sim/testsuite/d10v-elf/t-mvtac.s sim/testsuite/d10v-elf/t-mvtc.s sim/testsuite/d10v-elf/t-rac.s sim/testsuite/d10v-elf/t-rachi.s sim/testsuite/d10v-elf/t-rdt.s sim/testsuite/d10v-elf/t-rep.s sim/testsuite/d10v-elf/t-rie-xx.s sim/testsuite/d10v-elf/t-rte.s sim/testsuite/d10v-elf/t-sac.s sim/testsuite/d10v-elf/t-sachi.s sim/testsuite/d10v-elf/t-sadd.s sim/testsuite/d10v-elf/t-slae.s sim/testsuite/d10v-elf/t-sp.s sim/testsuite/d10v-elf/t-sub.s sim/testsuite/d10v-elf/t-sub2w.s sim/testsuite/d10v-elf/t-subi.s sim/testsuite/d10v-elf/t-trap.s sim/testsuite/frv-elf/ChangeLog sim/testsuite/frv-elf/Makefile.in sim/testsuite/frv-elf/cache.s sim/testsuite/frv-elf/configure sim/testsuite/frv-elf/configure.ac sim/testsuite/frv-elf/exit47.s sim/testsuite/frv-elf/grloop.s sim/testsuite/frv-elf/hello.s sim/testsuite/frv-elf/loop.s sim/testsuite/lib/sim-defs.exp sim/testsuite/m32r-elf/ChangeLog sim/testsuite/m32r-elf/Makefile.in sim/testsuite/m32r-elf/configure sim/testsuite/m32r-elf/configure.ac sim/testsuite/m32r-elf/exit47.s sim/testsuite/m32r-elf/hello.s sim/testsuite/m32r-elf/loop.s sim/testsuite/mips64el-elf/ChangeLog sim/testsuite/mips64el-elf/Makefile.in sim/testsuite/mips64el-elf/configure sim/testsuite/mips64el-elf/configure.ac sim/testsuite/sim/arm/adc.cgs sim/testsuite/sim/arm/add.cgs sim/testsuite/sim/arm/allinsn.exp sim/testsuite/sim/arm/and.cgs sim/testsuite/sim/arm/b.cgs sim/testsuite/sim/arm/bic.cgs sim/testsuite/sim/arm/bl.cgs sim/testsuite/sim/arm/bx.cgs sim/testsuite/sim/arm/cmn.cgs sim/testsuite/sim/arm/cmp.cgs sim/testsuite/sim/arm/eor.cgs sim/testsuite/sim/arm/hello.ms sim/testsuite/sim/arm/iwmmxt/iwmmxt.exp sim/testsuite/sim/arm/iwmmxt/tbcst.cgs sim/testsuite/sim/arm/iwmmxt/testutils.inc sim/testsuite/sim/arm/iwmmxt/textrm.cgs sim/testsuite/sim/arm/iwmmxt/tinsr.cgs sim/testsuite/sim/arm/iwmmxt/tmia.cgs sim/testsuite/sim/arm/iwmmxt/tmiaph.cgs sim/testsuite/sim/arm/iwmmxt/tmiaxy.cgs sim/testsuite/sim/arm/iwmmxt/tmovmsk.cgs sim/testsuite/sim/arm/iwmmxt/wacc.cgs sim/testsuite/sim/arm/iwmmxt/wadd.cgs sim/testsuite/sim/arm/iwmmxt/waligni.cgs sim/testsuite/sim/arm/iwmmxt/walignr.cgs sim/testsuite/sim/arm/iwmmxt/wand.cgs sim/testsuite/sim/arm/iwmmxt/wandn.cgs sim/testsuite/sim/arm/iwmmxt/wavg2.cgs sim/testsuite/sim/arm/iwmmxt/wcmpeq.cgs sim/testsuite/sim/arm/iwmmxt/wcmpgt.cgs sim/testsuite/sim/arm/iwmmxt/wmac.cgs sim/testsuite/sim/arm/iwmmxt/wmadd.cgs sim/testsuite/sim/arm/iwmmxt/wmax.cgs sim/testsuite/sim/arm/iwmmxt/wmin.cgs sim/testsuite/sim/arm/iwmmxt/wmov.cgs sim/testsuite/sim/arm/iwmmxt/wmul.cgs sim/testsuite/sim/arm/iwmmxt/wor.cgs sim/testsuite/sim/arm/iwmmxt/wpack.cgs sim/testsuite/sim/arm/iwmmxt/wror.cgs sim/testsuite/sim/arm/iwmmxt/wsad.cgs sim/testsuite/sim/arm/iwmmxt/wshufh.cgs sim/testsuite/sim/arm/iwmmxt/wsll.cgs sim/testsuite/sim/arm/iwmmxt/wsra.cgs sim/testsuite/sim/arm/iwmmxt/wsrl.cgs sim/testsuite/sim/arm/iwmmxt/wsub.cgs sim/testsuite/sim/arm/iwmmxt/wunpckeh.cgs sim/testsuite/sim/arm/iwmmxt/wunpckel.cgs sim/testsuite/sim/arm/iwmmxt/wunpckih.cgs sim/testsuite/sim/arm/iwmmxt/wunpckil.cgs sim/testsuite/sim/arm/iwmmxt/wxor.cgs sim/testsuite/sim/arm/iwmmxt/wzero.cgs sim/testsuite/sim/arm/ldm.cgs sim/testsuite/sim/arm/ldr.cgs sim/testsuite/sim/arm/ldrb.cgs sim/testsuite/sim/arm/ldrh.cgs sim/testsuite/sim/arm/ldrsb.cgs sim/testsuite/sim/arm/ldrsh.cgs sim/testsuite/sim/arm/misaligned1.ms sim/testsuite/sim/arm/misaligned2.ms sim/testsuite/sim/arm/misaligned3.ms sim/testsuite/sim/arm/misc.exp sim/testsuite/sim/arm/mla.cgs sim/testsuite/sim/arm/mov.cgs sim/testsuite/sim/arm/mrs.cgs sim/testsuite/sim/arm/msr.cgs sim/testsuite/sim/arm/mul.cgs sim/testsuite/sim/arm/mvn.cgs sim/testsuite/sim/arm/orr.cgs sim/testsuite/sim/arm/rsb.cgs sim/testsuite/sim/arm/rsc.cgs sim/testsuite/sim/arm/sbc.cgs sim/testsuite/sim/arm/smlal.cgs sim/testsuite/sim/arm/smull.cgs sim/testsuite/sim/arm/stm.cgs sim/testsuite/sim/arm/str.cgs sim/testsuite/sim/arm/strb.cgs sim/testsuite/sim/arm/strh.cgs sim/testsuite/sim/arm/sub.cgs sim/testsuite/sim/arm/swi.cgs sim/testsuite/sim/arm/swp.cgs sim/testsuite/sim/arm/swpb.cgs sim/testsuite/sim/arm/teq.cgs sim/testsuite/sim/arm/testutils.inc sim/testsuite/sim/arm/thumb/adc.cgs sim/testsuite/sim/arm/thumb/add-hd-hs.cgs sim/testsuite/sim/arm/thumb/add-hd-rs.cgs sim/testsuite/sim/arm/thumb/add-rd-hs.cgs sim/testsuite/sim/arm/thumb/add-sp.cgs sim/testsuite/sim/arm/thumb/add.cgs sim/testsuite/sim/arm/thumb/addi.cgs sim/testsuite/sim/arm/thumb/addi8.cgs sim/testsuite/sim/arm/thumb/allthumb.exp sim/testsuite/sim/arm/thumb/and.cgs sim/testsuite/sim/arm/thumb/asr.cgs sim/testsuite/sim/arm/thumb/b.cgs sim/testsuite/sim/arm/thumb/bcc.cgs sim/testsuite/sim/arm/thumb/bcs.cgs sim/testsuite/sim/arm/thumb/beq.cgs sim/testsuite/sim/arm/thumb/bge.cgs sim/testsuite/sim/arm/thumb/bgt.cgs sim/testsuite/sim/arm/thumb/bhi.cgs sim/testsuite/sim/arm/thumb/bic.cgs sim/testsuite/sim/arm/thumb/bl-hi.cgs sim/testsuite/sim/arm/thumb/bl-lo.cgs sim/testsuite/sim/arm/thumb/ble.cgs sim/testsuite/sim/arm/thumb/bls.cgs sim/testsuite/sim/arm/thumb/blt.cgs sim/testsuite/sim/arm/thumb/bmi.cgs sim/testsuite/sim/arm/thumb/bne.cgs sim/testsuite/sim/arm/thumb/bpl.cgs sim/testsuite/sim/arm/thumb/bvc.cgs sim/testsuite/sim/arm/thumb/bvs.cgs sim/testsuite/sim/arm/thumb/bx-hs.cgs sim/testsuite/sim/arm/thumb/bx-rs.cgs sim/testsuite/sim/arm/thumb/cmn.cgs sim/testsuite/sim/arm/thumb/cmp-hd-hs.cgs sim/testsuite/sim/arm/thumb/cmp-hd-rs.cgs sim/testsuite/sim/arm/thumb/cmp-rd-hs.cgs sim/testsuite/sim/arm/thumb/cmp.cgs sim/testsuite/sim/arm/thumb/eor.cgs sim/testsuite/sim/arm/thumb/lda-pc.cgs sim/testsuite/sim/arm/thumb/lda-sp.cgs sim/testsuite/sim/arm/thumb/ldmia.cgs sim/testsuite/sim/arm/thumb/ldr-imm.cgs sim/testsuite/sim/arm/thumb/ldr-pc.cgs sim/testsuite/sim/arm/thumb/ldr-sprel.cgs sim/testsuite/sim/arm/thumb/ldr.cgs sim/testsuite/sim/arm/thumb/ldrb-imm.cgs sim/testsuite/sim/arm/thumb/ldrb.cgs sim/testsuite/sim/arm/thumb/ldrh-imm.cgs sim/testsuite/sim/arm/thumb/ldrh.cgs sim/testsuite/sim/arm/thumb/ldsb.cgs sim/testsuite/sim/arm/thumb/ldsh.cgs sim/testsuite/sim/arm/thumb/lsl.cgs sim/testsuite/sim/arm/thumb/lsr.cgs sim/testsuite/sim/arm/thumb/mov-hd-hs.cgs sim/testsuite/sim/arm/thumb/mov-hd-rs.cgs sim/testsuite/sim/arm/thumb/mov-rd-hs.cgs sim/testsuite/sim/arm/thumb/mov.cgs sim/testsuite/sim/arm/thumb/mul.cgs sim/testsuite/sim/arm/thumb/mvn.cgs sim/testsuite/sim/arm/thumb/neg.cgs sim/testsuite/sim/arm/thumb/orr.cgs sim/testsuite/sim/arm/thumb/pop-pc.cgs sim/testsuite/sim/arm/thumb/pop.cgs sim/testsuite/sim/arm/thumb/push-lr.cgs sim/testsuite/sim/arm/thumb/push.cgs sim/testsuite/sim/arm/thumb/ror.cgs sim/testsuite/sim/arm/thumb/sbc.cgs sim/testsuite/sim/arm/thumb/stmia.cgs sim/testsuite/sim/arm/thumb/str-imm.cgs sim/testsuite/sim/arm/thumb/str-sprel.cgs sim/testsuite/sim/arm/thumb/str.cgs sim/testsuite/sim/arm/thumb/strb-imm.cgs sim/testsuite/sim/arm/thumb/strb.cgs sim/testsuite/sim/arm/thumb/strh-imm.cgs sim/testsuite/sim/arm/thumb/strh.cgs sim/testsuite/sim/arm/thumb/sub-sp.cgs sim/testsuite/sim/arm/thumb/sub.cgs sim/testsuite/sim/arm/thumb/subi.cgs sim/testsuite/sim/arm/thumb/subi8.cgs sim/testsuite/sim/arm/thumb/swi.cgs sim/testsuite/sim/arm/thumb/testutils.inc sim/testsuite/sim/arm/thumb/tst.cgs sim/testsuite/sim/arm/tst.cgs sim/testsuite/sim/arm/umlal.cgs sim/testsuite/sim/arm/umull.cgs sim/testsuite/sim/arm/xscale/blx.cgs sim/testsuite/sim/arm/xscale/mia.cgs sim/testsuite/sim/arm/xscale/miaph.cgs sim/testsuite/sim/arm/xscale/miaxy.cgs sim/testsuite/sim/arm/xscale/mra.cgs sim/testsuite/sim/arm/xscale/testutils.inc sim/testsuite/sim/arm/xscale/xscale.exp sim/testsuite/sim/cris/asm/abs.ms sim/testsuite/sim/cris/asm/addc.ms sim/testsuite/sim/cris/asm/addcpc.ms sim/testsuite/sim/cris/asm/addcv32c.ms sim/testsuite/sim/cris/asm/addcv32m.ms sim/testsuite/sim/cris/asm/addcv32r.ms sim/testsuite/sim/cris/asm/addi.ms sim/testsuite/sim/cris/asm/addiv32.ms sim/testsuite/sim/cris/asm/addm.ms sim/testsuite/sim/cris/asm/addoc.ms sim/testsuite/sim/cris/asm/addom.ms sim/testsuite/sim/cris/asm/addoq.ms sim/testsuite/sim/cris/asm/addq.ms sim/testsuite/sim/cris/asm/addqpc.ms sim/testsuite/sim/cris/asm/addr.ms sim/testsuite/sim/cris/asm/addswpc.ms sim/testsuite/sim/cris/asm/addxc.ms sim/testsuite/sim/cris/asm/addxm.ms sim/testsuite/sim/cris/asm/addxr.ms sim/testsuite/sim/cris/asm/andc.ms sim/testsuite/sim/cris/asm/andm.ms sim/testsuite/sim/cris/asm/andq.ms sim/testsuite/sim/cris/asm/andr.ms sim/testsuite/sim/cris/asm/asm.exp sim/testsuite/sim/cris/asm/asr.ms sim/testsuite/sim/cris/asm/ba.ms sim/testsuite/sim/cris/asm/bare1.ms sim/testsuite/sim/cris/asm/bare2.ms sim/testsuite/sim/cris/asm/bas.ms sim/testsuite/sim/cris/asm/bccb.ms sim/testsuite/sim/cris/asm/bdapc.ms sim/testsuite/sim/cris/asm/bdapm.ms sim/testsuite/sim/cris/asm/bdapq.ms sim/testsuite/sim/cris/asm/bdapqpc.ms sim/testsuite/sim/cris/asm/biap.ms sim/testsuite/sim/cris/asm/boundc.ms sim/testsuite/sim/cris/asm/boundm.ms sim/testsuite/sim/cris/asm/boundmv32.ms sim/testsuite/sim/cris/asm/boundr.ms sim/testsuite/sim/cris/asm/break.ms sim/testsuite/sim/cris/asm/btst.ms sim/testsuite/sim/cris/asm/ccr-v10.ms sim/testsuite/sim/cris/asm/ccs-v32.ms sim/testsuite/sim/cris/asm/clearfv10.ms sim/testsuite/sim/cris/asm/clearfv32.ms sim/testsuite/sim/cris/asm/clrjmp1.ms sim/testsuite/sim/cris/asm/cmpc.ms sim/testsuite/sim/cris/asm/cmpm.ms sim/testsuite/sim/cris/asm/cmpq.ms sim/testsuite/sim/cris/asm/cmpr.ms sim/testsuite/sim/cris/asm/cmpxc.ms sim/testsuite/sim/cris/asm/cmpxm.ms sim/testsuite/sim/cris/asm/dflags.ms sim/testsuite/sim/cris/asm/dip.ms sim/testsuite/sim/cris/asm/dstep.ms sim/testsuite/sim/cris/asm/fidxd.ms sim/testsuite/sim/cris/asm/fidxi.ms sim/testsuite/sim/cris/asm/ftagd.ms sim/testsuite/sim/cris/asm/ftagi.ms sim/testsuite/sim/cris/asm/halt.ms sim/testsuite/sim/cris/asm/io1.ms sim/testsuite/sim/cris/asm/io2.ms sim/testsuite/sim/cris/asm/io3.ms sim/testsuite/sim/cris/asm/io4.ms sim/testsuite/sim/cris/asm/io5.ms sim/testsuite/sim/cris/asm/io6.ms sim/testsuite/sim/cris/asm/io7.ms sim/testsuite/sim/cris/asm/io8.ms sim/testsuite/sim/cris/asm/io9.ms sim/testsuite/sim/cris/asm/jsr.ms sim/testsuite/sim/cris/asm/jsrmv10.ms sim/testsuite/sim/cris/asm/jumpmp.ms sim/testsuite/sim/cris/asm/jumppv32.ms sim/testsuite/sim/cris/asm/lapc.ms sim/testsuite/sim/cris/asm/lsl.ms sim/testsuite/sim/cris/asm/lsr.ms sim/testsuite/sim/cris/asm/lz.ms sim/testsuite/sim/cris/asm/mcp.ms sim/testsuite/sim/cris/asm/movdelsr1.ms sim/testsuite/sim/cris/asm/movecpc.ms sim/testsuite/sim/cris/asm/movecr.ms sim/testsuite/sim/cris/asm/movecrt10.ms sim/testsuite/sim/cris/asm/movecrt32.ms sim/testsuite/sim/cris/asm/movect10.ms sim/testsuite/sim/cris/asm/movei.ms sim/testsuite/sim/cris/asm/movempc.ms sim/testsuite/sim/cris/asm/movemr.ms sim/testsuite/sim/cris/asm/movemrv10.ms sim/testsuite/sim/cris/asm/movemrv32.ms sim/testsuite/sim/cris/asm/movepcb.ms sim/testsuite/sim/cris/asm/movepcd.ms sim/testsuite/sim/cris/asm/movepcw.ms sim/testsuite/sim/cris/asm/moveq.ms sim/testsuite/sim/cris/asm/moveqpc.ms sim/testsuite/sim/cris/asm/mover.ms sim/testsuite/sim/cris/asm/moverbpc.ms sim/testsuite/sim/cris/asm/moverdpc.ms sim/testsuite/sim/cris/asm/moverm.ms sim/testsuite/sim/cris/asm/moverpcb.ms sim/testsuite/sim/cris/asm/moverpcd.ms sim/testsuite/sim/cris/asm/moverpcw.ms sim/testsuite/sim/cris/asm/moverwpc.ms sim/testsuite/sim/cris/asm/movesmp.ms sim/testsuite/sim/cris/asm/movmp.ms sim/testsuite/sim/cris/asm/movmp8.ms sim/testsuite/sim/cris/asm/movpmv10.ms sim/testsuite/sim/cris/asm/movpmv32.ms sim/testsuite/sim/cris/asm/movppc.ms sim/testsuite/sim/cris/asm/movpr.ms sim/testsuite/sim/cris/asm/movprv10.ms sim/testsuite/sim/cris/asm/movprv32.ms sim/testsuite/sim/cris/asm/movrss.ms sim/testsuite/sim/cris/asm/movscpc.ms sim/testsuite/sim/cris/asm/movscr.ms sim/testsuite/sim/cris/asm/movsm.ms sim/testsuite/sim/cris/asm/movsmpc.ms sim/testsuite/sim/cris/asm/movsr.ms sim/testsuite/sim/cris/asm/movsrpc.ms sim/testsuite/sim/cris/asm/movssr.ms sim/testsuite/sim/cris/asm/movucpc.ms sim/testsuite/sim/cris/asm/movucr.ms sim/testsuite/sim/cris/asm/movum.ms sim/testsuite/sim/cris/asm/movumpc.ms sim/testsuite/sim/cris/asm/movur.ms sim/testsuite/sim/cris/asm/movurpc.ms sim/testsuite/sim/cris/asm/mstep.ms sim/testsuite/sim/cris/asm/msteppc1.ms sim/testsuite/sim/cris/asm/msteppc2.ms sim/testsuite/sim/cris/asm/msteppc3.ms sim/testsuite/sim/cris/asm/mulv10.ms sim/testsuite/sim/cris/asm/mulv32.ms sim/testsuite/sim/cris/asm/mulx.ms sim/testsuite/sim/cris/asm/neg.ms sim/testsuite/sim/cris/asm/nopv10t.ms sim/testsuite/sim/cris/asm/nopv32t.ms sim/testsuite/sim/cris/asm/nopv32t2.ms sim/testsuite/sim/cris/asm/nopv32t3.ms sim/testsuite/sim/cris/asm/nopv32t4.ms sim/testsuite/sim/cris/asm/not.ms sim/testsuite/sim/cris/asm/op3.ms sim/testsuite/sim/cris/asm/opterr1.ms sim/testsuite/sim/cris/asm/opterr2.ms sim/testsuite/sim/cris/asm/option1.ms sim/testsuite/sim/cris/asm/option2.ms sim/testsuite/sim/cris/asm/orc.ms sim/testsuite/sim/cris/asm/orm.ms sim/testsuite/sim/cris/asm/orq.ms sim/testsuite/sim/cris/asm/orr.ms sim/testsuite/sim/cris/asm/pcplus.ms sim/testsuite/sim/cris/asm/raw1.ms sim/testsuite/sim/cris/asm/raw10.ms sim/testsuite/sim/cris/asm/raw11.ms sim/testsuite/sim/cris/asm/raw12.ms sim/testsuite/sim/cris/asm/raw13.ms sim/testsuite/sim/cris/asm/raw14.ms sim/testsuite/sim/cris/asm/raw15.ms sim/testsuite/sim/cris/asm/raw16.ms sim/testsuite/sim/cris/asm/raw17.ms sim/testsuite/sim/cris/asm/raw2.ms sim/testsuite/sim/cris/asm/raw3.ms sim/testsuite/sim/cris/asm/raw4.ms sim/testsuite/sim/cris/asm/raw5.ms sim/testsuite/sim/cris/asm/raw6.ms sim/testsuite/sim/cris/asm/raw7.ms sim/testsuite/sim/cris/asm/raw8.ms sim/testsuite/sim/cris/asm/raw9.ms sim/testsuite/sim/cris/asm/ret.ms sim/testsuite/sim/cris/asm/rfe.ms sim/testsuite/sim/cris/asm/rfg.ms sim/testsuite/sim/cris/asm/rfn.ms sim/testsuite/sim/cris/asm/sbfs.ms sim/testsuite/sim/cris/asm/scc.ms sim/testsuite/sim/cris/asm/sfe.ms sim/testsuite/sim/cris/asm/subc.ms sim/testsuite/sim/cris/asm/subm.ms sim/testsuite/sim/cris/asm/subq.ms sim/testsuite/sim/cris/asm/subqpc.ms sim/testsuite/sim/cris/asm/subr.ms sim/testsuite/sim/cris/asm/subxc.ms sim/testsuite/sim/cris/asm/subxm.ms sim/testsuite/sim/cris/asm/subxr.ms sim/testsuite/sim/cris/asm/swap.ms sim/testsuite/sim/cris/asm/tb.ms sim/testsuite/sim/cris/asm/test.ms sim/testsuite/sim/cris/asm/testutils.inc sim/testsuite/sim/cris/asm/tjmpsrv32-2.ms sim/testsuite/sim/cris/asm/tjmpsrv32.ms sim/testsuite/sim/cris/asm/tjsrcv10.ms sim/testsuite/sim/cris/asm/tjsrcv32.ms sim/testsuite/sim/cris/asm/tmemv10.ms sim/testsuite/sim/cris/asm/tmemv32.ms sim/testsuite/sim/cris/asm/tmulv10.ms sim/testsuite/sim/cris/asm/tmulv32.ms sim/testsuite/sim/cris/asm/tmvm1.ms sim/testsuite/sim/cris/asm/tmvm2.ms sim/testsuite/sim/cris/asm/tmvmrv10.ms sim/testsuite/sim/cris/asm/tmvmrv32.ms sim/testsuite/sim/cris/asm/tmvrmv10.ms sim/testsuite/sim/cris/asm/tmvrmv32.ms sim/testsuite/sim/cris/asm/user.ms sim/testsuite/sim/cris/asm/x0-v10.ms sim/testsuite/sim/cris/asm/x0-v32.ms sim/testsuite/sim/cris/asm/x1-v10.ms sim/testsuite/sim/cris/asm/x1-v32.ms sim/testsuite/sim/cris/asm/x10-v10.ms sim/testsuite/sim/cris/asm/x2-v10.ms sim/testsuite/sim/cris/asm/x2-v32.ms sim/testsuite/sim/cris/asm/x3-v10.ms sim/testsuite/sim/cris/asm/x3-v32.ms sim/testsuite/sim/cris/asm/x4-v32.ms sim/testsuite/sim/cris/asm/x5-v10.ms sim/testsuite/sim/cris/asm/x5-v32.ms sim/testsuite/sim/cris/asm/x6-v10.ms sim/testsuite/sim/cris/asm/x6-v32.ms sim/testsuite/sim/cris/asm/x7-v10.ms sim/testsuite/sim/cris/asm/x7-v32.ms sim/testsuite/sim/cris/asm/x8-v10.ms sim/testsuite/sim/cris/asm/x9-v10.ms sim/testsuite/sim/cris/asm/xor.ms sim/testsuite/sim/cris/c/append1.c sim/testsuite/sim/cris/c/c.exp sim/testsuite/sim/cris/c/clone1.c sim/testsuite/sim/cris/c/clone2.c sim/testsuite/sim/cris/c/clone3.c sim/testsuite/sim/cris/c/clone4.c sim/testsuite/sim/cris/c/clone5.c sim/testsuite/sim/cris/c/ex1.c sim/testsuite/sim/cris/c/fcntl1.c sim/testsuite/sim/cris/c/fdopen1.c sim/testsuite/sim/cris/c/fdopen2.c sim/testsuite/sim/cris/c/freopen1.c sim/testsuite/sim/cris/c/ftruncate1.c sim/testsuite/sim/cris/c/ftruncate2.c sim/testsuite/sim/cris/c/getcwd1.c sim/testsuite/sim/cris/c/gettod.c sim/testsuite/sim/cris/c/hello.c sim/testsuite/sim/cris/c/kill1.c sim/testsuite/sim/cris/c/kill2.c sim/testsuite/sim/cris/c/kill3.c sim/testsuite/sim/cris/c/mapbrk.c sim/testsuite/sim/cris/c/mmap1.c sim/testsuite/sim/cris/c/mmap2.c sim/testsuite/sim/cris/c/mmap3.c sim/testsuite/sim/cris/c/mprotect1.c sim/testsuite/sim/cris/c/mremap.c sim/testsuite/sim/cris/c/openpf1.c sim/testsuite/sim/cris/c/openpf2.c sim/testsuite/sim/cris/c/openpf3.c sim/testsuite/sim/cris/c/openpf4.c sim/testsuite/sim/cris/c/openpf5.c sim/testsuite/sim/cris/c/pipe1.c sim/testsuite/sim/cris/c/pipe2.c sim/testsuite/sim/cris/c/pipe3.c sim/testsuite/sim/cris/c/pipe4.c sim/testsuite/sim/cris/c/pipe5.c sim/testsuite/sim/cris/c/pipe6.c sim/testsuite/sim/cris/c/pipe7.c sim/testsuite/sim/cris/c/readlink1.c sim/testsuite/sim/cris/c/readlink10.c sim/testsuite/sim/cris/c/readlink2.c sim/testsuite/sim/cris/c/readlink3.c sim/testsuite/sim/cris/c/readlink4.c sim/testsuite/sim/cris/c/readlink5.c sim/testsuite/sim/cris/c/readlink6.c sim/testsuite/sim/cris/c/readlink7.c sim/testsuite/sim/cris/c/readlink8.c sim/testsuite/sim/cris/c/readlink9.c sim/testsuite/sim/cris/c/rename2.c sim/testsuite/sim/cris/c/rtsigprocmask1.c sim/testsuite/sim/cris/c/rtsigsuspend1.c sim/testsuite/sim/cris/c/sched1.c sim/testsuite/sim/cris/c/sched2.c sim/testsuite/sim/cris/c/sched3.c sim/testsuite/sim/cris/c/sched4.c sim/testsuite/sim/cris/c/sched5.c sim/testsuite/sim/cris/c/sched6.c sim/testsuite/sim/cris/c/sched7.c sim/testsuite/sim/cris/c/sched8.c sim/testsuite/sim/cris/c/sched9.c sim/testsuite/sim/cris/c/seek1.c sim/testsuite/sim/cris/c/seek2.c sim/testsuite/sim/cris/c/setrlimit1.c sim/testsuite/sim/cris/c/sig1.c sim/testsuite/sim/cris/c/sig10.c sim/testsuite/sim/cris/c/sig11.c sim/testsuite/sim/cris/c/sig12.c sim/testsuite/sim/cris/c/sig2.c sim/testsuite/sim/cris/c/sig3.c sim/testsuite/sim/cris/c/sig4.c sim/testsuite/sim/cris/c/sig5.c sim/testsuite/sim/cris/c/sig6.c sim/testsuite/sim/cris/c/sig7.c sim/testsuite/sim/cris/c/sig8.c sim/testsuite/sim/cris/c/sig9.c sim/testsuite/sim/cris/c/sigreturn1.c sim/testsuite/sim/cris/c/sigreturn2.c sim/testsuite/sim/cris/c/sjlj.c sim/testsuite/sim/cris/c/sock1.c sim/testsuite/sim/cris/c/stat1.c sim/testsuite/sim/cris/c/stat2.c sim/testsuite/sim/cris/c/stat3.c sim/testsuite/sim/cris/c/stat4.c sim/testsuite/sim/cris/c/stat5.c sim/testsuite/sim/cris/c/stat7.c sim/testsuite/sim/cris/c/stat8.c sim/testsuite/sim/cris/c/syscall1.c sim/testsuite/sim/cris/c/syscall2.c sim/testsuite/sim/cris/c/sysctl1.c sim/testsuite/sim/cris/c/sysctl2.c sim/testsuite/sim/cris/c/thread2.c sim/testsuite/sim/cris/c/thread3.c sim/testsuite/sim/cris/c/thread4.c sim/testsuite/sim/cris/c/thread5.c sim/testsuite/sim/cris/c/time1.c sim/testsuite/sim/cris/c/time2.c sim/testsuite/sim/cris/c/truncate1.c sim/testsuite/sim/cris/c/truncate2.c sim/testsuite/sim/cris/c/ugetrlimit1.c sim/testsuite/sim/cris/hw/rv-n-cris/host1.ms sim/testsuite/sim/cris/hw/rv-n-cris/irq1.ms sim/testsuite/sim/cris/hw/rv-n-cris/irq2.ms sim/testsuite/sim/cris/hw/rv-n-cris/irq3.ms sim/testsuite/sim/cris/hw/rv-n-cris/irq4.ms sim/testsuite/sim/cris/hw/rv-n-cris/irq5.ms sim/testsuite/sim/cris/hw/rv-n-cris/irq6.ms sim/testsuite/sim/cris/hw/rv-n-cris/mbox1.ms sim/testsuite/sim/cris/hw/rv-n-cris/mem1.ms sim/testsuite/sim/cris/hw/rv-n-cris/mem2.ms sim/testsuite/sim/cris/hw/rv-n-cris/poll1.ms sim/testsuite/sim/cris/hw/rv-n-cris/quit.s sim/testsuite/sim/cris/hw/rv-n-cris/rvc.exp sim/testsuite/sim/cris/hw/rv-n-cris/std.dev sim/testsuite/sim/cris/hw/rv-n-cris/testutils.inc sim/testsuite/sim/cris/hw/rv-n-cris/trivial1.ms sim/testsuite/sim/cris/hw/rv-n-cris/trivial2.ms sim/testsuite/sim/cris/hw/rv-n-cris/trivial3.ms sim/testsuite/sim/cris/hw/rv-n-cris/trivial4.ms sim/testsuite/sim/cris/hw/rv-n-cris/trivial4.r sim/testsuite/sim/cris/hw/rv-n-cris/trivial5.ms sim/testsuite/sim/cris/hw/rv-n-cris/wd1.ms sim/testsuite/sim/fr30/add.cgs sim/testsuite/sim/fr30/add.ms sim/testsuite/sim/fr30/add2.cgs sim/testsuite/sim/fr30/addc.cgs sim/testsuite/sim/fr30/addn.cgs sim/testsuite/sim/fr30/addn2.cgs sim/testsuite/sim/fr30/addsp.cgs sim/testsuite/sim/fr30/allinsn.exp sim/testsuite/sim/fr30/and.cgs sim/testsuite/sim/fr30/andb.cgs sim/testsuite/sim/fr30/andccr.cgs sim/testsuite/sim/fr30/andh.cgs sim/testsuite/sim/fr30/asr.cgs sim/testsuite/sim/fr30/asr2.cgs sim/testsuite/sim/fr30/bandh.cgs sim/testsuite/sim/fr30/bandl.cgs sim/testsuite/sim/fr30/bc.cgs sim/testsuite/sim/fr30/beorh.cgs sim/testsuite/sim/fr30/beorl.cgs sim/testsuite/sim/fr30/beq.cgs sim/testsuite/sim/fr30/bge.cgs sim/testsuite/sim/fr30/bgt.cgs sim/testsuite/sim/fr30/bhi.cgs sim/testsuite/sim/fr30/ble.cgs sim/testsuite/sim/fr30/bls.cgs sim/testsuite/sim/fr30/blt.cgs sim/testsuite/sim/fr30/bn.cgs sim/testsuite/sim/fr30/bnc.cgs sim/testsuite/sim/fr30/bne.cgs sim/testsuite/sim/fr30/bno.cgs sim/testsuite/sim/fr30/bnv.cgs sim/testsuite/sim/fr30/borh.cgs sim/testsuite/sim/fr30/borl.cgs sim/testsuite/sim/fr30/bp.cgs sim/testsuite/sim/fr30/bra.cgs sim/testsuite/sim/fr30/btsth.cgs sim/testsuite/sim/fr30/btstl.cgs sim/testsuite/sim/fr30/bv.cgs sim/testsuite/sim/fr30/call.cgs sim/testsuite/sim/fr30/cmp.cgs sim/testsuite/sim/fr30/cmp2.cgs sim/testsuite/sim/fr30/copld.cgs sim/testsuite/sim/fr30/copop.cgs sim/testsuite/sim/fr30/copst.cgs sim/testsuite/sim/fr30/copsv.cgs sim/testsuite/sim/fr30/div.ms sim/testsuite/sim/fr30/div0s.cgs sim/testsuite/sim/fr30/div0u.cgs sim/testsuite/sim/fr30/div1.cgs sim/testsuite/sim/fr30/div2.cgs sim/testsuite/sim/fr30/div3.cgs sim/testsuite/sim/fr30/div4s.cgs sim/testsuite/sim/fr30/dmov.cgs sim/testsuite/sim/fr30/dmovb.cgs sim/testsuite/sim/fr30/dmovh.cgs sim/testsuite/sim/fr30/enter.cgs sim/testsuite/sim/fr30/eor.cgs sim/testsuite/sim/fr30/eorb.cgs sim/testsuite/sim/fr30/eorh.cgs sim/testsuite/sim/fr30/extsb.cgs sim/testsuite/sim/fr30/extsh.cgs sim/testsuite/sim/fr30/extub.cgs sim/testsuite/sim/fr30/extuh.cgs sim/testsuite/sim/fr30/hello.ms sim/testsuite/sim/fr30/int.cgs sim/testsuite/sim/fr30/inte.cgs sim/testsuite/sim/fr30/jmp.cgs sim/testsuite/sim/fr30/ld.cgs sim/testsuite/sim/fr30/ldi20.cgs sim/testsuite/sim/fr30/ldi32.cgs sim/testsuite/sim/fr30/ldi8.cgs sim/testsuite/sim/fr30/ldm0.cgs sim/testsuite/sim/fr30/ldm1.cgs sim/testsuite/sim/fr30/ldres.cgs sim/testsuite/sim/fr30/ldub.cgs sim/testsuite/sim/fr30/lduh.cgs sim/testsuite/sim/fr30/leave.cgs sim/testsuite/sim/fr30/lsl.cgs sim/testsuite/sim/fr30/lsl2.cgs sim/testsuite/sim/fr30/lsr.cgs sim/testsuite/sim/fr30/lsr2.cgs sim/testsuite/sim/fr30/misc.exp sim/testsuite/sim/fr30/mov.cgs sim/testsuite/sim/fr30/mul.cgs sim/testsuite/sim/fr30/mulh.cgs sim/testsuite/sim/fr30/mulu.cgs sim/testsuite/sim/fr30/muluh.cgs sim/testsuite/sim/fr30/nop.cgs sim/testsuite/sim/fr30/or.cgs sim/testsuite/sim/fr30/orb.cgs sim/testsuite/sim/fr30/orccr.cgs sim/testsuite/sim/fr30/orh.cgs sim/testsuite/sim/fr30/ret.cgs sim/testsuite/sim/fr30/reti.cgs sim/testsuite/sim/fr30/st.cgs sim/testsuite/sim/fr30/stb.cgs sim/testsuite/sim/fr30/sth.cgs sim/testsuite/sim/fr30/stilm.cgs sim/testsuite/sim/fr30/stm0.cgs sim/testsuite/sim/fr30/stm1.cgs sim/testsuite/sim/fr30/stres.cgs sim/testsuite/sim/fr30/sub.cgs sim/testsuite/sim/fr30/subc.cgs sim/testsuite/sim/fr30/subn.cgs sim/testsuite/sim/fr30/testutils.inc sim/testsuite/sim/fr30/xchb.cgs sim/testsuite/sim/frv/add.cgs sim/testsuite/sim/frv/add.pcgs sim/testsuite/sim/frv/addcc.cgs sim/testsuite/sim/frv/addi.cgs sim/testsuite/sim/frv/addicc.cgs sim/testsuite/sim/frv/addx.cgs sim/testsuite/sim/frv/addxcc.cgs sim/testsuite/sim/frv/addxi.cgs sim/testsuite/sim/frv/addxicc.cgs sim/testsuite/sim/frv/allinsn.exp sim/testsuite/sim/frv/and.cgs sim/testsuite/sim/frv/andcc.cgs sim/testsuite/sim/frv/andcr.cgs sim/testsuite/sim/frv/andi.cgs sim/testsuite/sim/frv/andicc.cgs sim/testsuite/sim/frv/andncr.cgs sim/testsuite/sim/frv/bar.cgs sim/testsuite/sim/frv/bc.cgs sim/testsuite/sim/frv/bcclr.cgs sim/testsuite/sim/frv/bceqlr.cgs sim/testsuite/sim/frv/bcgelr.cgs sim/testsuite/sim/frv/bcgtlr.cgs sim/testsuite/sim/frv/bchilr.cgs sim/testsuite/sim/frv/bclelr.cgs sim/testsuite/sim/frv/bclr.cgs sim/testsuite/sim/frv/bclslr.cgs sim/testsuite/sim/frv/bcltlr.cgs sim/testsuite/sim/frv/bcnclr.cgs sim/testsuite/sim/frv/bcnelr.cgs sim/testsuite/sim/frv/bcnlr.cgs sim/testsuite/sim/frv/bcnolr.cgs sim/testsuite/sim/frv/bcnvlr.cgs sim/testsuite/sim/frv/bcplr.cgs sim/testsuite/sim/frv/bcralr.cgs sim/testsuite/sim/frv/bctrlr.cgs sim/testsuite/sim/frv/bcvlr.cgs sim/testsuite/sim/frv/beq.cgs sim/testsuite/sim/frv/beqlr.cgs sim/testsuite/sim/frv/bge.cgs sim/testsuite/sim/frv/bgelr.cgs sim/testsuite/sim/frv/bgt.cgs sim/testsuite/sim/frv/bgtlr.cgs sim/testsuite/sim/frv/bhi.cgs sim/testsuite/sim/frv/bhilr.cgs sim/testsuite/sim/frv/ble.cgs sim/testsuite/sim/frv/blelr.cgs sim/testsuite/sim/frv/bls.cgs sim/testsuite/sim/frv/blslr.cgs sim/testsuite/sim/frv/blt.cgs sim/testsuite/sim/frv/bltlr.cgs sim/testsuite/sim/frv/bn.cgs sim/testsuite/sim/frv/bnc.cgs sim/testsuite/sim/frv/bnclr.cgs sim/testsuite/sim/frv/bne.cgs sim/testsuite/sim/frv/bnelr.cgs sim/testsuite/sim/frv/bnlr.cgs sim/testsuite/sim/frv/bno.cgs sim/testsuite/sim/frv/bnolr.cgs sim/testsuite/sim/frv/bnv.cgs sim/testsuite/sim/frv/bnvlr.cgs sim/testsuite/sim/frv/bp.cgs sim/testsuite/sim/frv/bplr.cgs sim/testsuite/sim/frv/bra.cgs sim/testsuite/sim/frv/bralr.cgs sim/testsuite/sim/frv/branch.pcgs sim/testsuite/sim/frv/break.cgs sim/testsuite/sim/frv/bv.cgs sim/testsuite/sim/frv/bvlr.cgs sim/testsuite/sim/frv/cadd.cgs sim/testsuite/sim/frv/caddcc.cgs sim/testsuite/sim/frv/call.cgs sim/testsuite/sim/frv/call.pcgs sim/testsuite/sim/frv/callil.cgs sim/testsuite/sim/frv/calll.cgs sim/testsuite/sim/frv/cand.cgs sim/testsuite/sim/frv/candcc.cgs sim/testsuite/sim/frv/ccalll.cgs sim/testsuite/sim/frv/cckc.cgs sim/testsuite/sim/frv/cckeq.cgs sim/testsuite/sim/frv/cckge.cgs sim/testsuite/sim/frv/cckgt.cgs sim/testsuite/sim/frv/cckhi.cgs sim/testsuite/sim/frv/cckle.cgs sim/testsuite/sim/frv/cckls.cgs sim/testsuite/sim/frv/ccklt.cgs sim/testsuite/sim/frv/cckn.cgs sim/testsuite/sim/frv/ccknc.cgs sim/testsuite/sim/frv/cckne.cgs sim/testsuite/sim/frv/cckno.cgs sim/testsuite/sim/frv/ccknv.cgs sim/testsuite/sim/frv/cckp.cgs sim/testsuite/sim/frv/cckra.cgs sim/testsuite/sim/frv/cckv.cgs sim/testsuite/sim/frv/ccmp.cgs sim/testsuite/sim/frv/cfabss.cgs sim/testsuite/sim/frv/cfadds.cgs sim/testsuite/sim/frv/cfckeq.cgs sim/testsuite/sim/frv/cfckge.cgs sim/testsuite/sim/frv/cfckgt.cgs sim/testsuite/sim/frv/cfckle.cgs sim/testsuite/sim/frv/cfcklg.cgs sim/testsuite/sim/frv/cfcklt.cgs sim/testsuite/sim/frv/cfckne.cgs sim/testsuite/sim/frv/cfckno.cgs sim/testsuite/sim/frv/cfcko.cgs sim/testsuite/sim/frv/cfckra.cgs sim/testsuite/sim/frv/cfcku.cgs sim/testsuite/sim/frv/cfckue.cgs sim/testsuite/sim/frv/cfckug.cgs sim/testsuite/sim/frv/cfckuge.cgs sim/testsuite/sim/frv/cfckul.cgs sim/testsuite/sim/frv/cfckule.cgs sim/testsuite/sim/frv/cfcmps.cgs sim/testsuite/sim/frv/cfdivs.cgs sim/testsuite/sim/frv/cfitos.cgs sim/testsuite/sim/frv/cfmadds.cgs sim/testsuite/sim/frv/cfmas.cgs sim/testsuite/sim/frv/cfmovs.cgs sim/testsuite/sim/frv/cfmss.cgs sim/testsuite/sim/frv/cfmsubs.cgs sim/testsuite/sim/frv/cfmuls.cgs sim/testsuite/sim/frv/cfnegs.cgs sim/testsuite/sim/frv/cfsqrts.cgs sim/testsuite/sim/frv/cfstoi.cgs sim/testsuite/sim/frv/cfsubs.cgs sim/testsuite/sim/frv/cjmpl.cgs sim/testsuite/sim/frv/ckc.cgs sim/testsuite/sim/frv/ckeq.cgs sim/testsuite/sim/frv/ckge.cgs sim/testsuite/sim/frv/ckgt.cgs sim/testsuite/sim/frv/ckhi.cgs sim/testsuite/sim/frv/ckle.cgs sim/testsuite/sim/frv/ckls.cgs sim/testsuite/sim/frv/cklt.cgs sim/testsuite/sim/frv/ckn.cgs sim/testsuite/sim/frv/cknc.cgs sim/testsuite/sim/frv/ckne.cgs sim/testsuite/sim/frv/ckno.cgs sim/testsuite/sim/frv/cknv.cgs sim/testsuite/sim/frv/ckp.cgs sim/testsuite/sim/frv/ckra.cgs sim/testsuite/sim/frv/ckv.cgs sim/testsuite/sim/frv/cld.cgs sim/testsuite/sim/frv/cldbf.cgs sim/testsuite/sim/frv/cldbfu.cgs sim/testsuite/sim/frv/cldd.cgs sim/testsuite/sim/frv/clddf.cgs sim/testsuite/sim/frv/clddfu.cgs sim/testsuite/sim/frv/clddu.cgs sim/testsuite/sim/frv/cldf.cgs sim/testsuite/sim/frv/cldfu.cgs sim/testsuite/sim/frv/cldhf.cgs sim/testsuite/sim/frv/cldhfu.cgs sim/testsuite/sim/frv/cldq.cgs sim/testsuite/sim/frv/cldqu.cgs sim/testsuite/sim/frv/cldsb.cgs sim/testsuite/sim/frv/cldsbu.cgs sim/testsuite/sim/frv/cldsh.cgs sim/testsuite/sim/frv/cldshu.cgs sim/testsuite/sim/frv/cldu.cgs sim/testsuite/sim/frv/cldub.cgs sim/testsuite/sim/frv/cldubu.cgs sim/testsuite/sim/frv/clduh.cgs sim/testsuite/sim/frv/clduhu.cgs sim/testsuite/sim/frv/clrfa.cgs sim/testsuite/sim/frv/clrfr.cgs sim/testsuite/sim/frv/clrga.cgs sim/testsuite/sim/frv/clrgr.cgs sim/testsuite/sim/frv/cmaddhss.cgs sim/testsuite/sim/frv/cmaddhus.cgs sim/testsuite/sim/frv/cmand.cgs sim/testsuite/sim/frv/cmbtoh.cgs sim/testsuite/sim/frv/cmbtohe.cgs sim/testsuite/sim/frv/cmcpxis.cgs sim/testsuite/sim/frv/cmcpxiu.cgs sim/testsuite/sim/frv/cmcpxrs.cgs sim/testsuite/sim/frv/cmcpxru.cgs sim/testsuite/sim/frv/cmexpdhd.cgs sim/testsuite/sim/frv/cmexpdhw.cgs sim/testsuite/sim/frv/cmhtob.cgs sim/testsuite/sim/frv/cmmachs.cgs sim/testsuite/sim/frv/cmmachu.cgs sim/testsuite/sim/frv/cmmulhs.cgs sim/testsuite/sim/frv/cmmulhu.cgs sim/testsuite/sim/frv/cmnot.cgs sim/testsuite/sim/frv/cmor.cgs sim/testsuite/sim/frv/cmov.cgs sim/testsuite/sim/frv/cmovfg.cgs sim/testsuite/sim/frv/cmovfgd.cgs sim/testsuite/sim/frv/cmovgf.cgs sim/testsuite/sim/frv/cmovgfd.cgs sim/testsuite/sim/frv/cmp.cgs sim/testsuite/sim/frv/cmpb.cgs sim/testsuite/sim/frv/cmpba.cgs sim/testsuite/sim/frv/cmpi.cgs sim/testsuite/sim/frv/cmqmachs.cgs sim/testsuite/sim/frv/cmqmachu.cgs sim/testsuite/sim/frv/cmqmulhs.cgs sim/testsuite/sim/frv/cmqmulhu.cgs sim/testsuite/sim/frv/cmsubhss.cgs sim/testsuite/sim/frv/cmsubhus.cgs sim/testsuite/sim/frv/cmxor.cgs sim/testsuite/sim/frv/cnot.cgs sim/testsuite/sim/frv/commitfa.cgs sim/testsuite/sim/frv/commitfr.cgs sim/testsuite/sim/frv/commitga.cgs sim/testsuite/sim/frv/commitgr.cgs sim/testsuite/sim/frv/cop1.cgs sim/testsuite/sim/frv/cop2.cgs sim/testsuite/sim/frv/cor.cgs sim/testsuite/sim/frv/corcc.cgs sim/testsuite/sim/frv/cscan.cgs sim/testsuite/sim/frv/csdiv.cgs sim/testsuite/sim/frv/csll.cgs sim/testsuite/sim/frv/csllcc.cgs sim/testsuite/sim/frv/csmul.cgs sim/testsuite/sim/frv/csmulcc.cgs sim/testsuite/sim/frv/csra.cgs sim/testsuite/sim/frv/csracc.cgs sim/testsuite/sim/frv/csrl.cgs sim/testsuite/sim/frv/csrlcc.cgs sim/testsuite/sim/frv/cst.cgs sim/testsuite/sim/frv/cstb.cgs sim/testsuite/sim/frv/cstbf.cgs sim/testsuite/sim/frv/cstbfu.cgs sim/testsuite/sim/frv/cstbu.cgs sim/testsuite/sim/frv/cstd.cgs sim/testsuite/sim/frv/cstdf.cgs sim/testsuite/sim/frv/cstdfu.cgs sim/testsuite/sim/frv/cstdu.cgs sim/testsuite/sim/frv/cstf.cgs sim/testsuite/sim/frv/cstfu.cgs sim/testsuite/sim/frv/csth.cgs sim/testsuite/sim/frv/csthf.cgs sim/testsuite/sim/frv/csthfu.cgs sim/testsuite/sim/frv/csthu.cgs sim/testsuite/sim/frv/cstq.cgs sim/testsuite/sim/frv/cstu.cgs sim/testsuite/sim/frv/csub.cgs sim/testsuite/sim/frv/csubcc.cgs sim/testsuite/sim/frv/cswap.cgs sim/testsuite/sim/frv/cudiv.cgs sim/testsuite/sim/frv/cxor.cgs sim/testsuite/sim/frv/cxorcc.cgs sim/testsuite/sim/frv/dcef.cgs sim/testsuite/sim/frv/dcei.cgs sim/testsuite/sim/frv/dcf.cgs sim/testsuite/sim/frv/dci.cgs sim/testsuite/sim/frv/fabsd.cgs sim/testsuite/sim/frv/fabss.cgs sim/testsuite/sim/frv/faddd.cgs sim/testsuite/sim/frv/fadds.cgs sim/testsuite/sim/frv/fbeq.cgs sim/testsuite/sim/frv/fbeqlr.cgs sim/testsuite/sim/frv/fbge.cgs sim/testsuite/sim/frv/fbgelr.cgs sim/testsuite/sim/frv/fbgt.cgs sim/testsuite/sim/frv/fbgtlr.cgs sim/testsuite/sim/frv/fble.cgs sim/testsuite/sim/frv/fblelr.cgs sim/testsuite/sim/frv/fblg.cgs sim/testsuite/sim/frv/fblglr.cgs sim/testsuite/sim/frv/fblt.cgs sim/testsuite/sim/frv/fbltlr.cgs sim/testsuite/sim/frv/fbne.cgs sim/testsuite/sim/frv/fbnelr.cgs sim/testsuite/sim/frv/fbno.cgs sim/testsuite/sim/frv/fbnolr.cgs sim/testsuite/sim/frv/fbo.cgs sim/testsuite/sim/frv/fbolr.cgs sim/testsuite/sim/frv/fbra.cgs sim/testsuite/sim/frv/fbralr.cgs sim/testsuite/sim/frv/fbu.cgs sim/testsuite/sim/frv/fbue.cgs sim/testsuite/sim/frv/fbuelr.cgs sim/testsuite/sim/frv/fbug.cgs sim/testsuite/sim/frv/fbuge.cgs sim/testsuite/sim/frv/fbugelr.cgs sim/testsuite/sim/frv/fbuglr.cgs sim/testsuite/sim/frv/fbul.cgs sim/testsuite/sim/frv/fbule.cgs sim/testsuite/sim/frv/fbulelr.cgs sim/testsuite/sim/frv/fbullr.cgs sim/testsuite/sim/frv/fbulr.cgs sim/testsuite/sim/frv/fcbeqlr.cgs sim/testsuite/sim/frv/fcbgelr.cgs sim/testsuite/sim/frv/fcbgtlr.cgs sim/testsuite/sim/frv/fcblelr.cgs sim/testsuite/sim/frv/fcblglr.cgs sim/testsuite/sim/frv/fcbltlr.cgs sim/testsuite/sim/frv/fcbnelr.cgs sim/testsuite/sim/frv/fcbnolr.cgs sim/testsuite/sim/frv/fcbolr.cgs sim/testsuite/sim/frv/fcbralr.cgs sim/testsuite/sim/frv/fcbuelr.cgs sim/testsuite/sim/frv/fcbugelr.cgs sim/testsuite/sim/frv/fcbuglr.cgs sim/testsuite/sim/frv/fcbulelr.cgs sim/testsuite/sim/frv/fcbullr.cgs sim/testsuite/sim/frv/fcbulr.cgs sim/testsuite/sim/frv/fckeq.cgs sim/testsuite/sim/frv/fckge.cgs sim/testsuite/sim/frv/fckgt.cgs sim/testsuite/sim/frv/fckle.cgs sim/testsuite/sim/frv/fcklg.cgs sim/testsuite/sim/frv/fcklt.cgs sim/testsuite/sim/frv/fckne.cgs sim/testsuite/sim/frv/fckno.cgs sim/testsuite/sim/frv/fcko.cgs sim/testsuite/sim/frv/fckra.cgs sim/testsuite/sim/frv/fcku.cgs sim/testsuite/sim/frv/fckue.cgs sim/testsuite/sim/frv/fckug.cgs sim/testsuite/sim/frv/fckuge.cgs sim/testsuite/sim/frv/fckul.cgs sim/testsuite/sim/frv/fckule.cgs sim/testsuite/sim/frv/fcmpd.cgs sim/testsuite/sim/frv/fcmps.cgs sim/testsuite/sim/frv/fdabss.cgs sim/testsuite/sim/frv/fdadds.cgs sim/testsuite/sim/frv/fdcmps.cgs sim/testsuite/sim/frv/fddivs.cgs sim/testsuite/sim/frv/fditos.cgs sim/testsuite/sim/frv/fdivd.cgs sim/testsuite/sim/frv/fdivs.cgs sim/testsuite/sim/frv/fdmadds.cgs sim/testsuite/sim/frv/fdmas.cgs sim/testsuite/sim/frv/fdmovs.cgs sim/testsuite/sim/frv/fdmss.cgs sim/testsuite/sim/frv/fdmulcs.cgs sim/testsuite/sim/frv/fdmuls.cgs sim/testsuite/sim/frv/fdnegs.cgs sim/testsuite/sim/frv/fdsads.cgs sim/testsuite/sim/frv/fdsqrts.cgs sim/testsuite/sim/frv/fdstoi.cgs sim/testsuite/sim/frv/fdsubs.cgs sim/testsuite/sim/frv/fdtoi.cgs sim/testsuite/sim/frv/fitod.cgs sim/testsuite/sim/frv/fitos.cgs sim/testsuite/sim/frv/fmad.cgs sim/testsuite/sim/frv/fmaddd.cgs sim/testsuite/sim/frv/fmadds.cgs sim/testsuite/sim/frv/fmas.cgs sim/testsuite/sim/frv/fmovd.cgs sim/testsuite/sim/frv/fmovs.cgs sim/testsuite/sim/frv/fmsd.cgs sim/testsuite/sim/frv/fmss.cgs sim/testsuite/sim/frv/fmsubd.cgs sim/testsuite/sim/frv/fmsubs.cgs sim/testsuite/sim/frv/fmuld.cgs sim/testsuite/sim/frv/fmuls.cgs sim/testsuite/sim/frv/fnegd.cgs sim/testsuite/sim/frv/fnegs.cgs sim/testsuite/sim/frv/fnop.cgs sim/testsuite/sim/frv/fr400/addss.cgs sim/testsuite/sim/frv/fr400/allinsn.exp sim/testsuite/sim/frv/fr400/csdiv.cgs sim/testsuite/sim/frv/fr400/maddaccs.cgs sim/testsuite/sim/frv/fr400/masaccs.cgs sim/testsuite/sim/frv/fr400/maveh.cgs sim/testsuite/sim/frv/fr400/mclracc.cgs sim/testsuite/sim/frv/fr400/mhdseth.cgs sim/testsuite/sim/frv/fr400/mhdsets.cgs sim/testsuite/sim/frv/fr400/mhsethih.cgs sim/testsuite/sim/frv/fr400/mhsethis.cgs sim/testsuite/sim/frv/fr400/mhsetloh.cgs sim/testsuite/sim/frv/fr400/mhsetlos.cgs sim/testsuite/sim/frv/fr400/movgs.cgs sim/testsuite/sim/frv/fr400/movsg.cgs sim/testsuite/sim/frv/fr400/msubaccs.cgs sim/testsuite/sim/frv/fr400/scutss.cgs sim/testsuite/sim/frv/fr400/sdiv.cgs sim/testsuite/sim/frv/fr400/sdivi.cgs sim/testsuite/sim/frv/fr400/slass.cgs sim/testsuite/sim/frv/fr400/smass.cgs sim/testsuite/sim/frv/fr400/smsss.cgs sim/testsuite/sim/frv/fr400/smu.cgs sim/testsuite/sim/frv/fr400/subss.cgs sim/testsuite/sim/frv/fr400/udiv.cgs sim/testsuite/sim/frv/fr400/udivi.cgs sim/testsuite/sim/frv/fr500/allinsn.exp sim/testsuite/sim/frv/fr500/cmqaddhss.cgs sim/testsuite/sim/frv/fr500/cmqaddhus.cgs sim/testsuite/sim/frv/fr500/cmqsubhss.cgs sim/testsuite/sim/frv/fr500/cmqsubhus.cgs sim/testsuite/sim/frv/fr500/dcpl.cgs sim/testsuite/sim/frv/fr500/dcul.cgs sim/testsuite/sim/frv/fr500/mclracc.cgs sim/testsuite/sim/frv/fr500/mqaddhss.cgs sim/testsuite/sim/frv/fr500/mqaddhus.cgs sim/testsuite/sim/frv/fr500/mqsubhss.cgs sim/testsuite/sim/frv/fr500/mqsubhus.cgs sim/testsuite/sim/frv/fr550/allinsn.exp sim/testsuite/sim/frv/fr550/cmaddhss.cgs sim/testsuite/sim/frv/fr550/cmaddhus.cgs sim/testsuite/sim/frv/fr550/cmcpxiu.cgs sim/testsuite/sim/frv/fr550/cmcpxru.cgs sim/testsuite/sim/frv/fr550/cmmachs.cgs sim/testsuite/sim/frv/fr550/cmmachu.cgs sim/testsuite/sim/frv/fr550/cmqaddhss.cgs sim/testsuite/sim/frv/fr550/cmqaddhus.cgs sim/testsuite/sim/frv/fr550/cmqmachs.cgs sim/testsuite/sim/frv/fr550/cmqmachu.cgs sim/testsuite/sim/frv/fr550/cmqsubhss.cgs sim/testsuite/sim/frv/fr550/cmqsubhus.cgs sim/testsuite/sim/frv/fr550/cmsubhss.cgs sim/testsuite/sim/frv/fr550/cmsubhus.cgs sim/testsuite/sim/frv/fr550/dcpl.cgs sim/testsuite/sim/frv/fr550/dcul.cgs sim/testsuite/sim/frv/fr550/mabshs.cgs sim/testsuite/sim/frv/fr550/maddaccs.cgs sim/testsuite/sim/frv/fr550/maddhss.cgs sim/testsuite/sim/frv/fr550/maddhus.cgs sim/testsuite/sim/frv/fr550/masaccs.cgs sim/testsuite/sim/frv/fr550/mdaddaccs.cgs sim/testsuite/sim/frv/fr550/mdasaccs.cgs sim/testsuite/sim/frv/fr550/mdsubaccs.cgs sim/testsuite/sim/frv/fr550/mmachs.cgs sim/testsuite/sim/frv/fr550/mmachu.cgs sim/testsuite/sim/frv/fr550/mmrdhs.cgs sim/testsuite/sim/frv/fr550/mmrdhu.cgs sim/testsuite/sim/frv/fr550/mqaddhss.cgs sim/testsuite/sim/frv/fr550/mqaddhus.cgs sim/testsuite/sim/frv/fr550/mqmachs.cgs sim/testsuite/sim/frv/fr550/mqmachu.cgs sim/testsuite/sim/frv/fr550/mqmacxhs.cgs sim/testsuite/sim/frv/fr550/mqsubhss.cgs sim/testsuite/sim/frv/fr550/mqsubhus.cgs sim/testsuite/sim/frv/fr550/mqxmachs.cgs sim/testsuite/sim/frv/fr550/mqxmacxhs.cgs sim/testsuite/sim/frv/fr550/msubaccs.cgs sim/testsuite/sim/frv/fr550/msubhss.cgs sim/testsuite/sim/frv/fr550/msubhus.cgs sim/testsuite/sim/frv/fr550/mtrap.cgs sim/testsuite/sim/frv/fr550/udiv.cgs sim/testsuite/sim/frv/fr550/udivi.cgs sim/testsuite/sim/frv/fsqrtd.cgs sim/testsuite/sim/frv/fsqrts.cgs sim/testsuite/sim/frv/fstoi.cgs sim/testsuite/sim/frv/fsubd.cgs sim/testsuite/sim/frv/fsubs.cgs sim/testsuite/sim/frv/fteq.cgs sim/testsuite/sim/frv/ftge.cgs sim/testsuite/sim/frv/ftgt.cgs sim/testsuite/sim/frv/ftieq.cgs sim/testsuite/sim/frv/ftige.cgs sim/testsuite/sim/frv/ftigt.cgs sim/testsuite/sim/frv/ftile.cgs sim/testsuite/sim/frv/ftilg.cgs sim/testsuite/sim/frv/ftilt.cgs sim/testsuite/sim/frv/ftine.cgs sim/testsuite/sim/frv/ftino.cgs sim/testsuite/sim/frv/ftio.cgs sim/testsuite/sim/frv/ftira.cgs sim/testsuite/sim/frv/ftiu.cgs sim/testsuite/sim/frv/ftiue.cgs sim/testsuite/sim/frv/ftiug.cgs sim/testsuite/sim/frv/ftiuge.cgs sim/testsuite/sim/frv/ftiul.cgs sim/testsuite/sim/frv/ftle.cgs sim/testsuite/sim/frv/ftlg.cgs sim/testsuite/sim/frv/ftlt.cgs sim/testsuite/sim/frv/ftne.cgs sim/testsuite/sim/frv/ftno.cgs sim/testsuite/sim/frv/fto.cgs sim/testsuite/sim/frv/ftra.cgs sim/testsuite/sim/frv/ftu.cgs sim/testsuite/sim/frv/ftue.cgs sim/testsuite/sim/frv/ftug.cgs sim/testsuite/sim/frv/ftuge.cgs sim/testsuite/sim/frv/ftul.cgs sim/testsuite/sim/frv/ftule.cgs sim/testsuite/sim/frv/icei.cgs sim/testsuite/sim/frv/ici.cgs sim/testsuite/sim/frv/icpl.cgs sim/testsuite/sim/frv/icul.cgs sim/testsuite/sim/frv/interrupts.exp sim/testsuite/sim/frv/interrupts/Ipipe-fr400.cgs sim/testsuite/sim/frv/interrupts/Ipipe-fr500.cgs sim/testsuite/sim/frv/interrupts/badalign-fr550.cgs sim/testsuite/sim/frv/interrupts/badalign.cgs sim/testsuite/sim/frv/interrupts/compound-fr550.cgs sim/testsuite/sim/frv/interrupts/compound.cgs sim/testsuite/sim/frv/interrupts/data_store_error-fr550.cgs sim/testsuite/sim/frv/interrupts/data_store_error.cgs sim/testsuite/sim/frv/interrupts/fp_exception-fr550.cgs sim/testsuite/sim/frv/interrupts/fp_exception.cgs sim/testsuite/sim/frv/interrupts/illinsn.cgs sim/testsuite/sim/frv/interrupts/insn_access_error-fr550.cgs sim/testsuite/sim/frv/interrupts/insn_access_error.cgs sim/testsuite/sim/frv/interrupts/mp_exception.cgs sim/testsuite/sim/frv/interrupts/privileged_instruction.cgs sim/testsuite/sim/frv/interrupts/regalign.cgs sim/testsuite/sim/frv/interrupts/reset.cgs sim/testsuite/sim/frv/interrupts/shadow_regs.cgs sim/testsuite/sim/frv/interrupts/timer.cgs sim/testsuite/sim/frv/jmpil.cgs sim/testsuite/sim/frv/jmpl.cgs sim/testsuite/sim/frv/jmpl.pcgs sim/testsuite/sim/frv/ld.cgs sim/testsuite/sim/frv/ldbf.cgs sim/testsuite/sim/frv/ldbfi.cgs sim/testsuite/sim/frv/ldbfu.cgs sim/testsuite/sim/frv/ldc.cgs sim/testsuite/sim/frv/ldcu.cgs sim/testsuite/sim/frv/ldd.cgs sim/testsuite/sim/frv/lddc.cgs sim/testsuite/sim/frv/lddcu.cgs sim/testsuite/sim/frv/lddf.cgs sim/testsuite/sim/frv/lddfi.cgs sim/testsuite/sim/frv/lddfu.cgs sim/testsuite/sim/frv/lddi.cgs sim/testsuite/sim/frv/lddu.cgs sim/testsuite/sim/frv/ldf.cgs sim/testsuite/sim/frv/ldfi.cgs sim/testsuite/sim/frv/ldfu.cgs sim/testsuite/sim/frv/ldhf.cgs sim/testsuite/sim/frv/ldhfi.cgs sim/testsuite/sim/frv/ldhfu.cgs sim/testsuite/sim/frv/ldi.cgs sim/testsuite/sim/frv/ldq.cgs sim/testsuite/sim/frv/ldqc.cgs sim/testsuite/sim/frv/ldqcu.cgs sim/testsuite/sim/frv/ldqf.cgs sim/testsuite/sim/frv/ldqfi.cgs sim/testsuite/sim/frv/ldqfu.cgs sim/testsuite/sim/frv/ldqi.cgs sim/testsuite/sim/frv/ldqu.cgs sim/testsuite/sim/frv/ldsb.cgs sim/testsuite/sim/frv/ldsbi.cgs sim/testsuite/sim/frv/ldsbu.cgs sim/testsuite/sim/frv/ldsh.cgs sim/testsuite/sim/frv/ldshi.cgs sim/testsuite/sim/frv/ldshu.cgs sim/testsuite/sim/frv/ldu.cgs sim/testsuite/sim/frv/ldub.cgs sim/testsuite/sim/frv/ldubi.cgs sim/testsuite/sim/frv/ldubu.cgs sim/testsuite/sim/frv/lduh.cgs sim/testsuite/sim/frv/lduhi.cgs sim/testsuite/sim/frv/lduhu.cgs sim/testsuite/sim/frv/lrbranch.pcgs sim/testsuite/sim/frv/mabshs.cgs sim/testsuite/sim/frv/maddhss.cgs sim/testsuite/sim/frv/maddhus.cgs sim/testsuite/sim/frv/mand.cgs sim/testsuite/sim/frv/maveh.cgs sim/testsuite/sim/frv/mbtoh.cgs sim/testsuite/sim/frv/mbtohe.cgs sim/testsuite/sim/frv/mclracc.cgs sim/testsuite/sim/frv/mcmpsh.cgs sim/testsuite/sim/frv/mcmpuh.cgs sim/testsuite/sim/frv/mcop1.cgs sim/testsuite/sim/frv/mcop2.cgs sim/testsuite/sim/frv/mcplhi.cgs sim/testsuite/sim/frv/mcpli.cgs sim/testsuite/sim/frv/mcpxis.cgs sim/testsuite/sim/frv/mcpxiu.cgs sim/testsuite/sim/frv/mcpxrs.cgs sim/testsuite/sim/frv/mcpxru.cgs sim/testsuite/sim/frv/mcut.cgs sim/testsuite/sim/frv/mcuti.cgs sim/testsuite/sim/frv/mcutss.cgs sim/testsuite/sim/frv/mcutssi.cgs sim/testsuite/sim/frv/mdaddaccs.cgs sim/testsuite/sim/frv/mdasaccs.cgs sim/testsuite/sim/frv/mdcutssi.cgs sim/testsuite/sim/frv/mdpackh.cgs sim/testsuite/sim/frv/mdrotli.cgs sim/testsuite/sim/frv/mdsubaccs.cgs sim/testsuite/sim/frv/mdunpackh.cgs sim/testsuite/sim/frv/membar.cgs sim/testsuite/sim/frv/mexpdhd.cgs sim/testsuite/sim/frv/mexpdhw.cgs sim/testsuite/sim/frv/mhdseth.cgs sim/testsuite/sim/frv/mhdsets.cgs sim/testsuite/sim/frv/mhsethih.cgs sim/testsuite/sim/frv/mhsethis.cgs sim/testsuite/sim/frv/mhsetloh.cgs sim/testsuite/sim/frv/mhsetlos.cgs sim/testsuite/sim/frv/mhtob.cgs sim/testsuite/sim/frv/mmachs.cgs sim/testsuite/sim/frv/mmachu.cgs sim/testsuite/sim/frv/mmrdhs.cgs sim/testsuite/sim/frv/mmrdhu.cgs sim/testsuite/sim/frv/mmulhs.cgs sim/testsuite/sim/frv/mmulhu.cgs sim/testsuite/sim/frv/mmulxhs.cgs sim/testsuite/sim/frv/mmulxhu.cgs sim/testsuite/sim/frv/mnop.cgs sim/testsuite/sim/frv/mnot.cgs sim/testsuite/sim/frv/mor.cgs sim/testsuite/sim/frv/mov.cgs sim/testsuite/sim/frv/movfg.cgs sim/testsuite/sim/frv/movfgd.cgs sim/testsuite/sim/frv/movfgq.cgs sim/testsuite/sim/frv/movgf.cgs sim/testsuite/sim/frv/movgfd.cgs sim/testsuite/sim/frv/movgfq.cgs sim/testsuite/sim/frv/movgs.cgs sim/testsuite/sim/frv/movsg.cgs sim/testsuite/sim/frv/mpackh.cgs sim/testsuite/sim/frv/mqcpxis.cgs sim/testsuite/sim/frv/mqcpxiu.cgs sim/testsuite/sim/frv/mqcpxrs.cgs sim/testsuite/sim/frv/mqcpxru.cgs sim/testsuite/sim/frv/mqlclrhs.cgs sim/testsuite/sim/frv/mqlmths.cgs sim/testsuite/sim/frv/mqmachs.cgs sim/testsuite/sim/frv/mqmachu.cgs sim/testsuite/sim/frv/mqmacxhs.cgs sim/testsuite/sim/frv/mqmulhs.cgs sim/testsuite/sim/frv/mqmulhu.cgs sim/testsuite/sim/frv/mqmulxhs.cgs sim/testsuite/sim/frv/mqmulxhu.cgs sim/testsuite/sim/frv/mqsaths.cgs sim/testsuite/sim/frv/mqsllhi.cgs sim/testsuite/sim/frv/mqsrahi.cgs sim/testsuite/sim/frv/mqxmachs.cgs sim/testsuite/sim/frv/mqxmacxhs.cgs sim/testsuite/sim/frv/mrdacc.cgs sim/testsuite/sim/frv/mrdaccg.cgs sim/testsuite/sim/frv/mrotli.cgs sim/testsuite/sim/frv/mrotri.cgs sim/testsuite/sim/frv/msaths.cgs sim/testsuite/sim/frv/msathu.cgs sim/testsuite/sim/frv/msllhi.cgs sim/testsuite/sim/frv/msrahi.cgs sim/testsuite/sim/frv/msrlhi.cgs sim/testsuite/sim/frv/msubhss.cgs sim/testsuite/sim/frv/msubhus.cgs sim/testsuite/sim/frv/mtrap.cgs sim/testsuite/sim/frv/munpackh.cgs sim/testsuite/sim/frv/mwcut.cgs sim/testsuite/sim/frv/mwcuti.cgs sim/testsuite/sim/frv/mwtacc.cgs sim/testsuite/sim/frv/mwtaccg.cgs sim/testsuite/sim/frv/mxor.cgs sim/testsuite/sim/frv/nandcr.cgs sim/testsuite/sim/frv/nandncr.cgs sim/testsuite/sim/frv/nfadds.cgs sim/testsuite/sim/frv/nfdadds.cgs sim/testsuite/sim/frv/nfdcmps.cgs sim/testsuite/sim/frv/nfddivs.cgs sim/testsuite/sim/frv/nfditos.cgs sim/testsuite/sim/frv/nfdivs.cgs sim/testsuite/sim/frv/nfdmadds.cgs sim/testsuite/sim/frv/nfdmas.cgs sim/testsuite/sim/frv/nfdmss.cgs sim/testsuite/sim/frv/nfdmulcs.cgs sim/testsuite/sim/frv/nfdmuls.cgs sim/testsuite/sim/frv/nfdsads.cgs sim/testsuite/sim/frv/nfdsqrts.cgs sim/testsuite/sim/frv/nfdstoi.cgs sim/testsuite/sim/frv/nfdsubs.cgs sim/testsuite/sim/frv/nfitos.cgs sim/testsuite/sim/frv/nfmadds.cgs sim/testsuite/sim/frv/nfmas.cgs sim/testsuite/sim/frv/nfmss.cgs sim/testsuite/sim/frv/nfmsubs.cgs sim/testsuite/sim/frv/nfmuls.cgs sim/testsuite/sim/frv/nfsqrts.cgs sim/testsuite/sim/frv/nfstoi.cgs sim/testsuite/sim/frv/nfsubs.cgs sim/testsuite/sim/frv/nld.cgs sim/testsuite/sim/frv/nldbf.cgs sim/testsuite/sim/frv/nldbfi.cgs sim/testsuite/sim/frv/nldbfu.cgs sim/testsuite/sim/frv/nldd.cgs sim/testsuite/sim/frv/nlddf.cgs sim/testsuite/sim/frv/nlddfi.cgs sim/testsuite/sim/frv/nlddfu.cgs sim/testsuite/sim/frv/nlddi.cgs sim/testsuite/sim/frv/nlddu.cgs sim/testsuite/sim/frv/nldf.cgs sim/testsuite/sim/frv/nldfi.cgs sim/testsuite/sim/frv/nldfu.cgs sim/testsuite/sim/frv/nldhf.cgs sim/testsuite/sim/frv/nldhfi.cgs sim/testsuite/sim/frv/nldhfu.cgs sim/testsuite/sim/frv/nldi.cgs sim/testsuite/sim/frv/nldq.cgs sim/testsuite/sim/frv/nldqf.cgs sim/testsuite/sim/frv/nldqfi.cgs sim/testsuite/sim/frv/nldqfu.cgs sim/testsuite/sim/frv/nldqu.cgs sim/testsuite/sim/frv/nldsb.cgs sim/testsuite/sim/frv/nldsbi.cgs sim/testsuite/sim/frv/nldsbu.cgs sim/testsuite/sim/frv/nldsh.cgs sim/testsuite/sim/frv/nldshi.cgs sim/testsuite/sim/frv/nldshu.cgs sim/testsuite/sim/frv/nldu.cgs sim/testsuite/sim/frv/nldub.cgs sim/testsuite/sim/frv/nldubi.cgs sim/testsuite/sim/frv/nldubu.cgs sim/testsuite/sim/frv/nlduh.cgs sim/testsuite/sim/frv/nlduhi.cgs sim/testsuite/sim/frv/nlduhu.cgs sim/testsuite/sim/frv/nop.cgs sim/testsuite/sim/frv/norcr.cgs sim/testsuite/sim/frv/norncr.cgs sim/testsuite/sim/frv/not.cgs sim/testsuite/sim/frv/notcr.cgs sim/testsuite/sim/frv/nsdiv.cgs sim/testsuite/sim/frv/nsdivi.cgs sim/testsuite/sim/frv/nudiv.cgs sim/testsuite/sim/frv/nudivi.cgs sim/testsuite/sim/frv/or.cgs sim/testsuite/sim/frv/orcc.cgs sim/testsuite/sim/frv/orcr.cgs sim/testsuite/sim/frv/ori.cgs sim/testsuite/sim/frv/oricc.cgs sim/testsuite/sim/frv/orncr.cgs sim/testsuite/sim/frv/parallel.exp sim/testsuite/sim/frv/ret.cgs sim/testsuite/sim/frv/rett.cgs sim/testsuite/sim/frv/scan.cgs sim/testsuite/sim/frv/scani.cgs sim/testsuite/sim/frv/sdiv.cgs sim/testsuite/sim/frv/sdivi.cgs sim/testsuite/sim/frv/sethi.cgs sim/testsuite/sim/frv/sethilo.pcgs sim/testsuite/sim/frv/setlo.cgs sim/testsuite/sim/frv/setlos.cgs sim/testsuite/sim/frv/sll.cgs sim/testsuite/sim/frv/sllcc.cgs sim/testsuite/sim/frv/slli.cgs sim/testsuite/sim/frv/sllicc.cgs sim/testsuite/sim/frv/smul.cgs sim/testsuite/sim/frv/smulcc.cgs sim/testsuite/sim/frv/smuli.cgs sim/testsuite/sim/frv/smulicc.cgs sim/testsuite/sim/frv/sra.cgs sim/testsuite/sim/frv/sracc.cgs sim/testsuite/sim/frv/srai.cgs sim/testsuite/sim/frv/sraicc.cgs sim/testsuite/sim/frv/srl.cgs sim/testsuite/sim/frv/srlcc.cgs sim/testsuite/sim/frv/srli.cgs sim/testsuite/sim/frv/srlicc.cgs sim/testsuite/sim/frv/st.cgs sim/testsuite/sim/frv/stb.cgs sim/testsuite/sim/frv/stbf.cgs sim/testsuite/sim/frv/stbfi.cgs sim/testsuite/sim/frv/stbfu.cgs sim/testsuite/sim/frv/stbi.cgs sim/testsuite/sim/frv/stbu.cgs sim/testsuite/sim/frv/stc.cgs sim/testsuite/sim/frv/stcu.cgs sim/testsuite/sim/frv/std.cgs sim/testsuite/sim/frv/std.pcgs sim/testsuite/sim/frv/stdc.cgs sim/testsuite/sim/frv/stdc.pcgs sim/testsuite/sim/frv/stdcu.cgs sim/testsuite/sim/frv/stdf.cgs sim/testsuite/sim/frv/stdf.pcgs sim/testsuite/sim/frv/stdfi.cgs sim/testsuite/sim/frv/stdfu.cgs sim/testsuite/sim/frv/stdi.cgs sim/testsuite/sim/frv/stdu.cgs sim/testsuite/sim/frv/stf.cgs sim/testsuite/sim/frv/stfi.cgs sim/testsuite/sim/frv/stfu.cgs sim/testsuite/sim/frv/sth.cgs sim/testsuite/sim/frv/sthf.cgs sim/testsuite/sim/frv/sthfi.cgs sim/testsuite/sim/frv/sthfu.cgs sim/testsuite/sim/frv/sthi.cgs sim/testsuite/sim/frv/sthu.cgs sim/testsuite/sim/frv/sti.cgs sim/testsuite/sim/frv/stq.cgs sim/testsuite/sim/frv/stq.pcgs sim/testsuite/sim/frv/stqc.cgs sim/testsuite/sim/frv/stqc.pcgs sim/testsuite/sim/frv/stqcu.cgs sim/testsuite/sim/frv/stqf.cgs sim/testsuite/sim/frv/stqf.pcgs sim/testsuite/sim/frv/stqfi.cgs sim/testsuite/sim/frv/stqfu.cgs sim/testsuite/sim/frv/stqi.cgs sim/testsuite/sim/frv/stqu.cgs sim/testsuite/sim/frv/stu.cgs sim/testsuite/sim/frv/sub.cgs sim/testsuite/sim/frv/subcc.cgs sim/testsuite/sim/frv/subi.cgs sim/testsuite/sim/frv/subicc.cgs sim/testsuite/sim/frv/subx.cgs sim/testsuite/sim/frv/subxcc.cgs sim/testsuite/sim/frv/subxi.cgs sim/testsuite/sim/frv/subxicc.cgs sim/testsuite/sim/frv/swap.cgs sim/testsuite/sim/frv/swapi.cgs sim/testsuite/sim/frv/tc.cgs sim/testsuite/sim/frv/teq.cgs sim/testsuite/sim/frv/testutils.inc sim/testsuite/sim/frv/tge.cgs sim/testsuite/sim/frv/tgt.cgs sim/testsuite/sim/frv/thi.cgs sim/testsuite/sim/frv/tic.cgs sim/testsuite/sim/frv/tieq.cgs sim/testsuite/sim/frv/tige.cgs sim/testsuite/sim/frv/tigt.cgs sim/testsuite/sim/frv/tihi.cgs sim/testsuite/sim/frv/tile.cgs sim/testsuite/sim/frv/tils.cgs sim/testsuite/sim/frv/tilt.cgs sim/testsuite/sim/frv/tin.cgs sim/testsuite/sim/frv/tinc.cgs sim/testsuite/sim/frv/tine.cgs sim/testsuite/sim/frv/tino.cgs sim/testsuite/sim/frv/tinv.cgs sim/testsuite/sim/frv/tip.cgs sim/testsuite/sim/frv/tira.cgs sim/testsuite/sim/frv/tiv.cgs sim/testsuite/sim/frv/tle.cgs sim/testsuite/sim/frv/tls.cgs sim/testsuite/sim/frv/tlt.cgs sim/testsuite/sim/frv/tn.cgs sim/testsuite/sim/frv/tnc.cgs sim/testsuite/sim/frv/tne.cgs sim/testsuite/sim/frv/tno.cgs sim/testsuite/sim/frv/tnv.cgs sim/testsuite/sim/frv/tp.cgs sim/testsuite/sim/frv/tra.cgs sim/testsuite/sim/frv/tv.cgs sim/testsuite/sim/frv/udiv.cgs sim/testsuite/sim/frv/udivi.cgs sim/testsuite/sim/frv/umul.cgs sim/testsuite/sim/frv/umulcc.cgs sim/testsuite/sim/frv/umuli.cgs sim/testsuite/sim/frv/umulicc.cgs sim/testsuite/sim/frv/xor.cgs sim/testsuite/sim/frv/xorcc.cgs sim/testsuite/sim/frv/xorcr.cgs sim/testsuite/sim/frv/xori.cgs sim/testsuite/sim/frv/xoricc.cgs sim/testsuite/sim/h8300/ChangeLog sim/testsuite/sim/h8300/addb.s sim/testsuite/sim/h8300/addl.s sim/testsuite/sim/h8300/adds.s sim/testsuite/sim/h8300/addw.s sim/testsuite/sim/h8300/addx.s sim/testsuite/sim/h8300/allinsn.exp sim/testsuite/sim/h8300/andb.s sim/testsuite/sim/h8300/andl.s sim/testsuite/sim/h8300/andw.s sim/testsuite/sim/h8300/band.s sim/testsuite/sim/h8300/bfld.s sim/testsuite/sim/h8300/biand.s sim/testsuite/sim/h8300/bra.s sim/testsuite/sim/h8300/brabc.s sim/testsuite/sim/h8300/bset.s sim/testsuite/sim/h8300/cmpb.s sim/testsuite/sim/h8300/cmpl.s sim/testsuite/sim/h8300/cmpw.s sim/testsuite/sim/h8300/daa.s sim/testsuite/sim/h8300/das.s sim/testsuite/sim/h8300/dec.s sim/testsuite/sim/h8300/div.s sim/testsuite/sim/h8300/extl.s sim/testsuite/sim/h8300/extw.s sim/testsuite/sim/h8300/inc.s sim/testsuite/sim/h8300/jmp.s sim/testsuite/sim/h8300/ldc.s sim/testsuite/sim/h8300/ldm.s sim/testsuite/sim/h8300/mac.s sim/testsuite/sim/h8300/mova.s sim/testsuite/sim/h8300/movb.s sim/testsuite/sim/h8300/movl.s sim/testsuite/sim/h8300/movmd.s sim/testsuite/sim/h8300/movsd.s sim/testsuite/sim/h8300/movw.s sim/testsuite/sim/h8300/mul.s sim/testsuite/sim/h8300/neg.s sim/testsuite/sim/h8300/nop.s sim/testsuite/sim/h8300/not.s sim/testsuite/sim/h8300/orb.s sim/testsuite/sim/h8300/orl.s sim/testsuite/sim/h8300/orw.s sim/testsuite/sim/h8300/rotl.s sim/testsuite/sim/h8300/rotr.s sim/testsuite/sim/h8300/rotxl.s sim/testsuite/sim/h8300/rotxr.s sim/testsuite/sim/h8300/shal.s sim/testsuite/sim/h8300/shar.s sim/testsuite/sim/h8300/shll.s sim/testsuite/sim/h8300/shlr.s sim/testsuite/sim/h8300/stack.s sim/testsuite/sim/h8300/stc.s sim/testsuite/sim/h8300/subb.s sim/testsuite/sim/h8300/subl.s sim/testsuite/sim/h8300/subs.s sim/testsuite/sim/h8300/subw.s sim/testsuite/sim/h8300/subx.s sim/testsuite/sim/h8300/tas.s sim/testsuite/sim/h8300/testutils.inc sim/testsuite/sim/h8300/xorb.s sim/testsuite/sim/h8300/xorl.s sim/testsuite/sim/h8300/xorw.s sim/testsuite/sim/m32r/add.cgs sim/testsuite/sim/m32r/add3.cgs sim/testsuite/sim/m32r/addi.cgs sim/testsuite/sim/m32r/addv.cgs sim/testsuite/sim/m32r/addv3.cgs sim/testsuite/sim/m32r/addx.cgs sim/testsuite/sim/m32r/allinsn.exp sim/testsuite/sim/m32r/and.cgs sim/testsuite/sim/m32r/and3.cgs sim/testsuite/sim/m32r/bc24.cgs sim/testsuite/sim/m32r/bc8.cgs sim/testsuite/sim/m32r/beq.cgs sim/testsuite/sim/m32r/beqz.cgs sim/testsuite/sim/m32r/bgez.cgs sim/testsuite/sim/m32r/bgtz.cgs sim/testsuite/sim/m32r/bl24.cgs sim/testsuite/sim/m32r/bl8.cgs sim/testsuite/sim/m32r/blez.cgs sim/testsuite/sim/m32r/bltz.cgs sim/testsuite/sim/m32r/bnc24.cgs sim/testsuite/sim/m32r/bnc8.cgs sim/testsuite/sim/m32r/bne.cgs sim/testsuite/sim/m32r/bnez.cgs sim/testsuite/sim/m32r/bra24.cgs sim/testsuite/sim/m32r/bra8.cgs sim/testsuite/sim/m32r/cmp.cgs sim/testsuite/sim/m32r/cmpi.cgs sim/testsuite/sim/m32r/cmpu.cgs sim/testsuite/sim/m32r/cmpui.cgs sim/testsuite/sim/m32r/div.cgs sim/testsuite/sim/m32r/divu.cgs sim/testsuite/sim/m32r/hello.ms sim/testsuite/sim/m32r/hw-trap.ms sim/testsuite/sim/m32r/jl.cgs sim/testsuite/sim/m32r/jmp.cgs sim/testsuite/sim/m32r/ld-d.cgs sim/testsuite/sim/m32r/ld-plus.cgs sim/testsuite/sim/m32r/ld.cgs sim/testsuite/sim/m32r/ld24.cgs sim/testsuite/sim/m32r/ldb-d.cgs sim/testsuite/sim/m32r/ldb.cgs sim/testsuite/sim/m32r/ldh-d.cgs sim/testsuite/sim/m32r/ldh.cgs sim/testsuite/sim/m32r/ldi16.cgs sim/testsuite/sim/m32r/ldi8.cgs sim/testsuite/sim/m32r/ldub-d.cgs sim/testsuite/sim/m32r/ldub.cgs sim/testsuite/sim/m32r/lduh-d.cgs sim/testsuite/sim/m32r/lduh.cgs sim/testsuite/sim/m32r/lock.cgs sim/testsuite/sim/m32r/machi.cgs sim/testsuite/sim/m32r/maclo.cgs sim/testsuite/sim/m32r/macwhi.cgs sim/testsuite/sim/m32r/macwlo.cgs sim/testsuite/sim/m32r/misc.exp sim/testsuite/sim/m32r/mul.cgs sim/testsuite/sim/m32r/mulhi.cgs sim/testsuite/sim/m32r/mullo.cgs sim/testsuite/sim/m32r/mulwhi.cgs sim/testsuite/sim/m32r/mulwlo.cgs sim/testsuite/sim/m32r/mv.cgs sim/testsuite/sim/m32r/mvfachi.cgs sim/testsuite/sim/m32r/mvfaclo.cgs sim/testsuite/sim/m32r/mvfacmi.cgs sim/testsuite/sim/m32r/mvfc.cgs sim/testsuite/sim/m32r/mvtachi.cgs sim/testsuite/sim/m32r/mvtaclo.cgs sim/testsuite/sim/m32r/mvtc.cgs sim/testsuite/sim/m32r/neg.cgs sim/testsuite/sim/m32r/nop.cgs sim/testsuite/sim/m32r/not.cgs sim/testsuite/sim/m32r/or.cgs sim/testsuite/sim/m32r/or3.cgs sim/testsuite/sim/m32r/rac.cgs sim/testsuite/sim/m32r/rach.cgs sim/testsuite/sim/m32r/rem.cgs sim/testsuite/sim/m32r/remu.cgs sim/testsuite/sim/m32r/rte.cgs sim/testsuite/sim/m32r/seth.cgs sim/testsuite/sim/m32r/sll.cgs sim/testsuite/sim/m32r/sll3.cgs sim/testsuite/sim/m32r/slli.cgs sim/testsuite/sim/m32r/sra.cgs sim/testsuite/sim/m32r/sra3.cgs sim/testsuite/sim/m32r/srai.cgs sim/testsuite/sim/m32r/srl.cgs sim/testsuite/sim/m32r/srl3.cgs sim/testsuite/sim/m32r/srli.cgs sim/testsuite/sim/m32r/st-d.cgs sim/testsuite/sim/m32r/st-minus.cgs sim/testsuite/sim/m32r/st-plus.cgs sim/testsuite/sim/m32r/st.cgs sim/testsuite/sim/m32r/stb-d.cgs sim/testsuite/sim/m32r/stb.cgs sim/testsuite/sim/m32r/sth-d.cgs sim/testsuite/sim/m32r/sth.cgs sim/testsuite/sim/m32r/sub.cgs sim/testsuite/sim/m32r/subv.cgs sim/testsuite/sim/m32r/subx.cgs sim/testsuite/sim/m32r/testutils.inc sim/testsuite/sim/m32r/trap.cgs sim/testsuite/sim/m32r/unlock.cgs sim/testsuite/sim/m32r/uread16.ms sim/testsuite/sim/m32r/uread32.ms sim/testsuite/sim/m32r/uwrite16.ms sim/testsuite/sim/m32r/uwrite32.ms sim/testsuite/sim/m32r/xor.cgs sim/testsuite/sim/m32r/xor3.cgs sim/testsuite/sim/mips/ChangeLog sim/testsuite/sim/mips/basic.exp sim/testsuite/sim/mips/fpu64-ps-sb1.s sim/testsuite/sim/mips/fpu64-ps.s sim/testsuite/sim/mips/hilo-hazard-1.s sim/testsuite/sim/mips/hilo-hazard-2.s sim/testsuite/sim/mips/hilo-hazard-3.s sim/testsuite/sim/mips/mdmx-ob-sb1.s sim/testsuite/sim/mips/mdmx-ob.s sim/testsuite/sim/mips/mips32-dsp.s sim/testsuite/sim/mips/sanity.s sim/testsuite/sim/mips/testutils.inc sim/testsuite/sim/mips/utils-dsp.inc sim/testsuite/sim/mips/utils-fpu.inc sim/testsuite/sim/mips/utils-mdmx.inc sim/testsuite/sim/sh/ChangeLog sim/testsuite/sim/sh/add.s sim/testsuite/sim/sh/allinsn.exp sim/testsuite/sim/sh/and.s sim/testsuite/sim/sh/bandor.s sim/testsuite/sim/sh/bandornot.s sim/testsuite/sim/sh/bclr.s sim/testsuite/sim/sh/bld.s sim/testsuite/sim/sh/bldnot.s sim/testsuite/sim/sh/bset.s sim/testsuite/sim/sh/bst.s sim/testsuite/sim/sh/bxor.s sim/testsuite/sim/sh/clip.s sim/testsuite/sim/sh/div.s sim/testsuite/sim/sh/dmxy.s sim/testsuite/sim/sh/fabs.s sim/testsuite/sim/sh/fadd.s sim/testsuite/sim/sh/fail.s sim/testsuite/sim/sh/fcmpeq.s sim/testsuite/sim/sh/fcmpgt.s sim/testsuite/sim/sh/fcnvds.s sim/testsuite/sim/sh/fcnvsd.s sim/testsuite/sim/sh/fdiv.s sim/testsuite/sim/sh/fipr.s sim/testsuite/sim/sh/fldi0.s sim/testsuite/sim/sh/fldi1.s sim/testsuite/sim/sh/flds.s sim/testsuite/sim/sh/float.s sim/testsuite/sim/sh/fmac.s sim/testsuite/sim/sh/fmov.s sim/testsuite/sim/sh/fmul.s sim/testsuite/sim/sh/fneg.s sim/testsuite/sim/sh/fpchg.s sim/testsuite/sim/sh/frchg.s sim/testsuite/sim/sh/fsca.s sim/testsuite/sim/sh/fschg.s sim/testsuite/sim/sh/fsqrt.s sim/testsuite/sim/sh/fsrra.s sim/testsuite/sim/sh/fsub.s sim/testsuite/sim/sh/ftrc.s sim/testsuite/sim/sh/ldrc.s sim/testsuite/sim/sh/loop.s sim/testsuite/sim/sh/macl.s sim/testsuite/sim/sh/macw.s sim/testsuite/sim/sh/mov.s sim/testsuite/sim/sh/movi.s sim/testsuite/sim/sh/movli.s sim/testsuite/sim/sh/movua.s sim/testsuite/sim/sh/movxy.s sim/testsuite/sim/sh/mulr.s sim/testsuite/sim/sh/pabs.s sim/testsuite/sim/sh/padd.s sim/testsuite/sim/sh/paddc.s sim/testsuite/sim/sh/pand.s sim/testsuite/sim/sh/pass.s sim/testsuite/sim/sh/pclr.s sim/testsuite/sim/sh/pdec.s sim/testsuite/sim/sh/pdmsb.s sim/testsuite/sim/sh/pinc.s sim/testsuite/sim/sh/pmuls.s sim/testsuite/sim/sh/prnd.s sim/testsuite/sim/sh/pshai.s sim/testsuite/sim/sh/pshar.s sim/testsuite/sim/sh/pshli.s sim/testsuite/sim/sh/pshlr.s sim/testsuite/sim/sh/psub.s sim/testsuite/sim/sh/pswap.s sim/testsuite/sim/sh/pushpop.s sim/testsuite/sim/sh/resbank.s sim/testsuite/sim/sh/sett.s sim/testsuite/sim/sh/shll.s sim/testsuite/sim/sh/shll16.s sim/testsuite/sim/sh/shll2.s sim/testsuite/sim/sh/shll8.s sim/testsuite/sim/sh/shlr.s sim/testsuite/sim/sh/shlr16.s sim/testsuite/sim/sh/shlr2.s sim/testsuite/sim/sh/shlr8.s sim/testsuite/sim/sh/swap.s sim/testsuite/sim/sh/testutils.inc sim/testsuite/sim/sh64/ChangeLog sim/testsuite/sim/sh64/compact.exp sim/testsuite/sim/sh64/compact/ChangeLog sim/testsuite/sim/sh64/compact/add.cgs sim/testsuite/sim/sh64/compact/addc.cgs sim/testsuite/sim/sh64/compact/addi.cgs sim/testsuite/sim/sh64/compact/addv.cgs sim/testsuite/sim/sh64/compact/and.cgs sim/testsuite/sim/sh64/compact/andb.cgs sim/testsuite/sim/sh64/compact/andi.cgs sim/testsuite/sim/sh64/compact/bf.cgs sim/testsuite/sim/sh64/compact/bfs.cgs sim/testsuite/sim/sh64/compact/bra.cgs sim/testsuite/sim/sh64/compact/braf.cgs sim/testsuite/sim/sh64/compact/brk.cgs sim/testsuite/sim/sh64/compact/bsr.cgs sim/testsuite/sim/sh64/compact/bsrf.cgs sim/testsuite/sim/sh64/compact/bt.cgs sim/testsuite/sim/sh64/compact/bts.cgs sim/testsuite/sim/sh64/compact/clrmac.cgs sim/testsuite/sim/sh64/compact/clrs.cgs sim/testsuite/sim/sh64/compact/clrt.cgs sim/testsuite/sim/sh64/compact/cmpeq.cgs sim/testsuite/sim/sh64/compact/cmpeqi.cgs sim/testsuite/sim/sh64/compact/cmpge.cgs sim/testsuite/sim/sh64/compact/cmpgt.cgs sim/testsuite/sim/sh64/compact/cmphi.cgs sim/testsuite/sim/sh64/compact/cmphs.cgs sim/testsuite/sim/sh64/compact/cmppl.cgs sim/testsuite/sim/sh64/compact/cmppz.cgs sim/testsuite/sim/sh64/compact/cmpstr.cgs sim/testsuite/sim/sh64/compact/div0s.cgs sim/testsuite/sim/sh64/compact/div0u.cgs sim/testsuite/sim/sh64/compact/div1.cgs sim/testsuite/sim/sh64/compact/dmulsl.cgs sim/testsuite/sim/sh64/compact/dmulul.cgs sim/testsuite/sim/sh64/compact/dt.cgs sim/testsuite/sim/sh64/compact/extsb.cgs sim/testsuite/sim/sh64/compact/extsw.cgs sim/testsuite/sim/sh64/compact/extub.cgs sim/testsuite/sim/sh64/compact/extuw.cgs sim/testsuite/sim/sh64/compact/fabs.cgs sim/testsuite/sim/sh64/compact/fadd.cgs sim/testsuite/sim/sh64/compact/fcmpeq.cgs sim/testsuite/sim/sh64/compact/fcmpgt.cgs sim/testsuite/sim/sh64/compact/fcnvds.cgs sim/testsuite/sim/sh64/compact/fcnvsd.cgs sim/testsuite/sim/sh64/compact/fdiv.cgs sim/testsuite/sim/sh64/compact/fipr.cgs sim/testsuite/sim/sh64/compact/fldi0.cgs sim/testsuite/sim/sh64/compact/fldi1.cgs sim/testsuite/sim/sh64/compact/flds.cgs sim/testsuite/sim/sh64/compact/float.cgs sim/testsuite/sim/sh64/compact/fmac.cgs sim/testsuite/sim/sh64/compact/fmov.cgs sim/testsuite/sim/sh64/compact/fmul.cgs sim/testsuite/sim/sh64/compact/fneg.cgs sim/testsuite/sim/sh64/compact/frchg.cgs sim/testsuite/sim/sh64/compact/fschg.cgs sim/testsuite/sim/sh64/compact/fsqrt.cgs sim/testsuite/sim/sh64/compact/fsts.cgs sim/testsuite/sim/sh64/compact/fsub.cgs sim/testsuite/sim/sh64/compact/ftrc.cgs sim/testsuite/sim/sh64/compact/ftrv.cgs sim/testsuite/sim/sh64/compact/jmp.cgs sim/testsuite/sim/sh64/compact/jsr.cgs sim/testsuite/sim/sh64/compact/ldc-gbr.cgs sim/testsuite/sim/sh64/compact/ldcl-gbr.cgs sim/testsuite/sim/sh64/compact/lds-fpscr.cgs sim/testsuite/sim/sh64/compact/lds-fpul.cgs sim/testsuite/sim/sh64/compact/lds-mach.cgs sim/testsuite/sim/sh64/compact/lds-macl.cgs sim/testsuite/sim/sh64/compact/lds-pr.cgs sim/testsuite/sim/sh64/compact/ldsl-fpscr.cgs sim/testsuite/sim/sh64/compact/ldsl-fpul.cgs sim/testsuite/sim/sh64/compact/ldsl-mach.cgs sim/testsuite/sim/sh64/compact/ldsl-macl.cgs sim/testsuite/sim/sh64/compact/ldsl-pr.cgs sim/testsuite/sim/sh64/compact/macl.cgs sim/testsuite/sim/sh64/compact/macw.cgs sim/testsuite/sim/sh64/compact/mov.cgs sim/testsuite/sim/sh64/compact/mova.cgs sim/testsuite/sim/sh64/compact/movb1.cgs sim/testsuite/sim/sh64/compact/movb10.cgs sim/testsuite/sim/sh64/compact/movb2.cgs sim/testsuite/sim/sh64/compact/movb3.cgs sim/testsuite/sim/sh64/compact/movb4.cgs sim/testsuite/sim/sh64/compact/movb5.cgs sim/testsuite/sim/sh64/compact/movb6.cgs sim/testsuite/sim/sh64/compact/movb7.cgs sim/testsuite/sim/sh64/compact/movb8.cgs sim/testsuite/sim/sh64/compact/movb9.cgs sim/testsuite/sim/sh64/compact/movcal.cgs sim/testsuite/sim/sh64/compact/movi.cgs sim/testsuite/sim/sh64/compact/movl1.cgs sim/testsuite/sim/sh64/compact/movl10.cgs sim/testsuite/sim/sh64/compact/movl11.cgs sim/testsuite/sim/sh64/compact/movl2.cgs sim/testsuite/sim/sh64/compact/movl3.cgs sim/testsuite/sim/sh64/compact/movl4.cgs sim/testsuite/sim/sh64/compact/movl5.cgs sim/testsuite/sim/sh64/compact/movl6.cgs sim/testsuite/sim/sh64/compact/movl7.cgs sim/testsuite/sim/sh64/compact/movl8.cgs sim/testsuite/sim/sh64/compact/movl9.cgs sim/testsuite/sim/sh64/compact/movt.cgs sim/testsuite/sim/sh64/compact/movw1.cgs sim/testsuite/sim/sh64/compact/movw10.cgs sim/testsuite/sim/sh64/compact/movw11.cgs sim/testsuite/sim/sh64/compact/movw2.cgs sim/testsuite/sim/sh64/compact/movw3.cgs sim/testsuite/sim/sh64/compact/movw4.cgs sim/testsuite/sim/sh64/compact/movw5.cgs sim/testsuite/sim/sh64/compact/movw6.cgs sim/testsuite/sim/sh64/compact/movw7.cgs sim/testsuite/sim/sh64/compact/movw8.cgs sim/testsuite/sim/sh64/compact/movw9.cgs sim/testsuite/sim/sh64/compact/mull.cgs sim/testsuite/sim/sh64/compact/mulsw.cgs sim/testsuite/sim/sh64/compact/muluw.cgs sim/testsuite/sim/sh64/compact/neg.cgs sim/testsuite/sim/sh64/compact/negc.cgs sim/testsuite/sim/sh64/compact/nop.cgs sim/testsuite/sim/sh64/compact/not.cgs sim/testsuite/sim/sh64/compact/ocbi.cgs sim/testsuite/sim/sh64/compact/ocbp.cgs sim/testsuite/sim/sh64/compact/ocbwb.cgs sim/testsuite/sim/sh64/compact/or.cgs sim/testsuite/sim/sh64/compact/orb.cgs sim/testsuite/sim/sh64/compact/ori.cgs sim/testsuite/sim/sh64/compact/pref.cgs sim/testsuite/sim/sh64/compact/rotcl.cgs sim/testsuite/sim/sh64/compact/rotcr.cgs sim/testsuite/sim/sh64/compact/rotl.cgs sim/testsuite/sim/sh64/compact/rotr.cgs sim/testsuite/sim/sh64/compact/rts.cgs sim/testsuite/sim/sh64/compact/sets.cgs sim/testsuite/sim/sh64/compact/sett.cgs sim/testsuite/sim/sh64/compact/shad.cgs sim/testsuite/sim/sh64/compact/shal.cgs sim/testsuite/sim/sh64/compact/shar.cgs sim/testsuite/sim/sh64/compact/shld.cgs sim/testsuite/sim/sh64/compact/shll.cgs sim/testsuite/sim/sh64/compact/shll16.cgs sim/testsuite/sim/sh64/compact/shll2.cgs sim/testsuite/sim/sh64/compact/shll8.cgs sim/testsuite/sim/sh64/compact/shlr.cgs sim/testsuite/sim/sh64/compact/shlr16.cgs sim/testsuite/sim/sh64/compact/shlr2.cgs sim/testsuite/sim/sh64/compact/shlr8.cgs sim/testsuite/sim/sh64/compact/stc-gbr.cgs sim/testsuite/sim/sh64/compact/stcl-gbr.cgs sim/testsuite/sim/sh64/compact/sts-fpscr.cgs sim/testsuite/sim/sh64/compact/sts-fpul.cgs sim/testsuite/sim/sh64/compact/sts-mach.cgs sim/testsuite/sim/sh64/compact/sts-macl.cgs sim/testsuite/sim/sh64/compact/sts-pr.cgs sim/testsuite/sim/sh64/compact/stsl-fpscr.cgs sim/testsuite/sim/sh64/compact/stsl-fpul.cgs sim/testsuite/sim/sh64/compact/stsl-mach.cgs sim/testsuite/sim/sh64/compact/stsl-macl.cgs sim/testsuite/sim/sh64/compact/stsl-pr.cgs sim/testsuite/sim/sh64/compact/sub.cgs sim/testsuite/sim/sh64/compact/subc.cgs sim/testsuite/sim/sh64/compact/subv.cgs sim/testsuite/sim/sh64/compact/swapb.cgs sim/testsuite/sim/sh64/compact/swapw.cgs sim/testsuite/sim/sh64/compact/tasb.cgs sim/testsuite/sim/sh64/compact/testutils.inc sim/testsuite/sim/sh64/compact/trapa.cgs sim/testsuite/sim/sh64/compact/tst.cgs sim/testsuite/sim/sh64/compact/tstb.cgs sim/testsuite/sim/sh64/compact/tsti.cgs sim/testsuite/sim/sh64/compact/xor.cgs sim/testsuite/sim/sh64/compact/xorb.cgs sim/testsuite/sim/sh64/compact/xori.cgs sim/testsuite/sim/sh64/compact/xtrct.cgs sim/testsuite/sim/sh64/interwork.exp sim/testsuite/sim/sh64/media.exp sim/testsuite/sim/sh64/media/ChangeLog sim/testsuite/sim/sh64/media/add.cgs sim/testsuite/sim/sh64/media/addi.cgs sim/testsuite/sim/sh64/media/addil.cgs sim/testsuite/sim/sh64/media/addl.cgs sim/testsuite/sim/sh64/media/addzl.cgs sim/testsuite/sim/sh64/media/alloco.cgs sim/testsuite/sim/sh64/media/and.cgs sim/testsuite/sim/sh64/media/andc.cgs sim/testsuite/sim/sh64/media/andi.cgs sim/testsuite/sim/sh64/media/beq.cgs sim/testsuite/sim/sh64/media/beqi.cgs sim/testsuite/sim/sh64/media/bge.cgs sim/testsuite/sim/sh64/media/bgeu.cgs sim/testsuite/sim/sh64/media/bgt.cgs sim/testsuite/sim/sh64/media/bgtu.cgs sim/testsuite/sim/sh64/media/blink.cgs sim/testsuite/sim/sh64/media/bne.cgs sim/testsuite/sim/sh64/media/bnei.cgs sim/testsuite/sim/sh64/media/brk.cgs sim/testsuite/sim/sh64/media/byterev.cgs sim/testsuite/sim/sh64/media/cmpeq.cgs sim/testsuite/sim/sh64/media/cmpgt.cgs sim/testsuite/sim/sh64/media/cmpgtu.cgs sim/testsuite/sim/sh64/media/cmveq.cgs sim/testsuite/sim/sh64/media/cmvne.cgs sim/testsuite/sim/sh64/media/fabsd.cgs sim/testsuite/sim/sh64/media/fabss.cgs sim/testsuite/sim/sh64/media/faddd.cgs sim/testsuite/sim/sh64/media/fadds.cgs sim/testsuite/sim/sh64/media/fcmpeqd.cgs sim/testsuite/sim/sh64/media/fcmpeqs.cgs sim/testsuite/sim/sh64/media/fcmpged.cgs sim/testsuite/sim/sh64/media/fcmpges.cgs sim/testsuite/sim/sh64/media/fcmpgtd.cgs sim/testsuite/sim/sh64/media/fcmpgts.cgs sim/testsuite/sim/sh64/media/fcmpund.cgs sim/testsuite/sim/sh64/media/fcmpuns.cgs sim/testsuite/sim/sh64/media/fcnvds.cgs sim/testsuite/sim/sh64/media/fcnvsd.cgs sim/testsuite/sim/sh64/media/fdivd.cgs sim/testsuite/sim/sh64/media/fdivs.cgs sim/testsuite/sim/sh64/media/fgetscr.cgs sim/testsuite/sim/sh64/media/fiprs.cgs sim/testsuite/sim/sh64/media/fldd.cgs sim/testsuite/sim/sh64/media/fldp.cgs sim/testsuite/sim/sh64/media/flds.cgs sim/testsuite/sim/sh64/media/fldxd.cgs sim/testsuite/sim/sh64/media/fldxp.cgs sim/testsuite/sim/sh64/media/fldxs.cgs sim/testsuite/sim/sh64/media/floatld.cgs sim/testsuite/sim/sh64/media/floatls.cgs sim/testsuite/sim/sh64/media/floatqd.cgs sim/testsuite/sim/sh64/media/floatqs.cgs sim/testsuite/sim/sh64/media/fmacs.cgs sim/testsuite/sim/sh64/media/fmovd.cgs sim/testsuite/sim/sh64/media/fmovdq.cgs sim/testsuite/sim/sh64/media/fmovls.cgs sim/testsuite/sim/sh64/media/fmovqd.cgs sim/testsuite/sim/sh64/media/fmovs.cgs sim/testsuite/sim/sh64/media/fmovsl.cgs sim/testsuite/sim/sh64/media/fmuld.cgs sim/testsuite/sim/sh64/media/fmuls.cgs sim/testsuite/sim/sh64/media/fnegd.cgs sim/testsuite/sim/sh64/media/fnegs.cgs sim/testsuite/sim/sh64/media/fputscr.cgs sim/testsuite/sim/sh64/media/fsqrtd.cgs sim/testsuite/sim/sh64/media/fsqrts.cgs sim/testsuite/sim/sh64/media/fstd.cgs sim/testsuite/sim/sh64/media/fstp.cgs sim/testsuite/sim/sh64/media/fsts.cgs sim/testsuite/sim/sh64/media/fstxd.cgs sim/testsuite/sim/sh64/media/fstxp.cgs sim/testsuite/sim/sh64/media/fstxs.cgs sim/testsuite/sim/sh64/media/fsubd.cgs sim/testsuite/sim/sh64/media/fsubs.cgs sim/testsuite/sim/sh64/media/ftrcdl.cgs sim/testsuite/sim/sh64/media/ftrcdq.cgs sim/testsuite/sim/sh64/media/ftrcsl.cgs sim/testsuite/sim/sh64/media/ftrcsq.cgs sim/testsuite/sim/sh64/media/ftrvs.cgs sim/testsuite/sim/sh64/media/getcfg.cgs sim/testsuite/sim/sh64/media/getcon.cgs sim/testsuite/sim/sh64/media/gettr.cgs sim/testsuite/sim/sh64/media/icbi.cgs sim/testsuite/sim/sh64/media/ldb.cgs sim/testsuite/sim/sh64/media/ldhil.cgs sim/testsuite/sim/sh64/media/ldhiq.cgs sim/testsuite/sim/sh64/media/ldl.cgs sim/testsuite/sim/sh64/media/ldlol.cgs sim/testsuite/sim/sh64/media/ldloq.cgs sim/testsuite/sim/sh64/media/ldq.cgs sim/testsuite/sim/sh64/media/ldub.cgs sim/testsuite/sim/sh64/media/lduw.cgs sim/testsuite/sim/sh64/media/ldw.cgs sim/testsuite/sim/sh64/media/ldxb.cgs sim/testsuite/sim/sh64/media/ldxl.cgs sim/testsuite/sim/sh64/media/ldxq.cgs sim/testsuite/sim/sh64/media/ldxub.cgs sim/testsuite/sim/sh64/media/ldxuw.cgs sim/testsuite/sim/sh64/media/ldxw.cgs sim/testsuite/sim/sh64/media/mabsl.cgs sim/testsuite/sim/sh64/media/mabsw.cgs sim/testsuite/sim/sh64/media/maddl.cgs sim/testsuite/sim/sh64/media/maddsl.cgs sim/testsuite/sim/sh64/media/maddsub.cgs sim/testsuite/sim/sh64/media/maddsw.cgs sim/testsuite/sim/sh64/media/maddw.cgs sim/testsuite/sim/sh64/media/mcmpeqb.cgs sim/testsuite/sim/sh64/media/mcmpeql.cgs sim/testsuite/sim/sh64/media/mcmpeqw.cgs sim/testsuite/sim/sh64/media/mcmpgtl.cgs sim/testsuite/sim/sh64/media/mcmpgtub.cgs sim/testsuite/sim/sh64/media/mcmpgtw.cgs sim/testsuite/sim/sh64/media/mcmv.cgs sim/testsuite/sim/sh64/media/mcnvslw.cgs sim/testsuite/sim/sh64/media/mcnvswb.cgs sim/testsuite/sim/sh64/media/mcnvswub.cgs sim/testsuite/sim/sh64/media/mextr1.cgs sim/testsuite/sim/sh64/media/mextr2.cgs sim/testsuite/sim/sh64/media/mextr3.cgs sim/testsuite/sim/sh64/media/mextr4.cgs sim/testsuite/sim/sh64/media/mextr5.cgs sim/testsuite/sim/sh64/media/mextr6.cgs sim/testsuite/sim/sh64/media/mextr7.cgs sim/testsuite/sim/sh64/media/mmacfxwl.cgs sim/testsuite/sim/sh64/media/mmacnfx-wl.cgs sim/testsuite/sim/sh64/media/mmulfxl.cgs sim/testsuite/sim/sh64/media/mmulfxrpw.cgs sim/testsuite/sim/sh64/media/mmulfxw.cgs sim/testsuite/sim/sh64/media/mmulhiwl.cgs sim/testsuite/sim/sh64/media/mmull.cgs sim/testsuite/sim/sh64/media/mmullowl.cgs sim/testsuite/sim/sh64/media/mmulsumwq.cgs sim/testsuite/sim/sh64/media/mmulw.cgs sim/testsuite/sim/sh64/media/movi.cgs sim/testsuite/sim/sh64/media/mpermw.cgs sim/testsuite/sim/sh64/media/msadubq.cgs sim/testsuite/sim/sh64/media/mshaldsl.cgs sim/testsuite/sim/sh64/media/mshaldsw.cgs sim/testsuite/sim/sh64/media/mshardl.cgs sim/testsuite/sim/sh64/media/mshardsq.cgs sim/testsuite/sim/sh64/media/mshardw.cgs sim/testsuite/sim/sh64/media/mshfhib.cgs sim/testsuite/sim/sh64/media/mshfhil.cgs sim/testsuite/sim/sh64/media/mshfhiw.cgs sim/testsuite/sim/sh64/media/mshflob.cgs sim/testsuite/sim/sh64/media/mshflol.cgs sim/testsuite/sim/sh64/media/mshflow.cgs sim/testsuite/sim/sh64/media/mshlldl.cgs sim/testsuite/sim/sh64/media/mshlldw.cgs sim/testsuite/sim/sh64/media/mshlrdl.cgs sim/testsuite/sim/sh64/media/mshlrdw.cgs sim/testsuite/sim/sh64/media/msubl.cgs sim/testsuite/sim/sh64/media/msubsl.cgs sim/testsuite/sim/sh64/media/msubsub.cgs sim/testsuite/sim/sh64/media/msubsw.cgs sim/testsuite/sim/sh64/media/msubw.cgs sim/testsuite/sim/sh64/media/mulsl.cgs sim/testsuite/sim/sh64/media/mulul.cgs sim/testsuite/sim/sh64/media/nop.cgs sim/testsuite/sim/sh64/media/nsb.cgs sim/testsuite/sim/sh64/media/ocbi.cgs sim/testsuite/sim/sh64/media/ocbp.cgs sim/testsuite/sim/sh64/media/ocbwb.cgs sim/testsuite/sim/sh64/media/or.cgs sim/testsuite/sim/sh64/media/ori.cgs sim/testsuite/sim/sh64/media/prefi.cgs sim/testsuite/sim/sh64/media/pta.cgs sim/testsuite/sim/sh64/media/ptabs.cgs sim/testsuite/sim/sh64/media/ptb.cgs sim/testsuite/sim/sh64/media/ptrel.cgs sim/testsuite/sim/sh64/media/putcfg.cgs sim/testsuite/sim/sh64/media/putcon.cgs sim/testsuite/sim/sh64/media/rte.cgs sim/testsuite/sim/sh64/media/shard.cgs sim/testsuite/sim/sh64/media/shardl.cgs sim/testsuite/sim/sh64/media/shari.cgs sim/testsuite/sim/sh64/media/sharil.cgs sim/testsuite/sim/sh64/media/shlld.cgs sim/testsuite/sim/sh64/media/shlldl.cgs sim/testsuite/sim/sh64/media/shlli.cgs sim/testsuite/sim/sh64/media/shllil.cgs sim/testsuite/sim/sh64/media/shlrd.cgs sim/testsuite/sim/sh64/media/shlrdl.cgs sim/testsuite/sim/sh64/media/shlri.cgs sim/testsuite/sim/sh64/media/shlril.cgs sim/testsuite/sim/sh64/media/shori.cgs sim/testsuite/sim/sh64/media/sleep.cgs sim/testsuite/sim/sh64/media/stb.cgs sim/testsuite/sim/sh64/media/sthil.cgs sim/testsuite/sim/sh64/media/sthiq.cgs sim/testsuite/sim/sh64/media/stl.cgs sim/testsuite/sim/sh64/media/stlol.cgs sim/testsuite/sim/sh64/media/stloq.cgs sim/testsuite/sim/sh64/media/stq.cgs sim/testsuite/sim/sh64/media/stw.cgs sim/testsuite/sim/sh64/media/stxb.cgs sim/testsuite/sim/sh64/media/stxl.cgs sim/testsuite/sim/sh64/media/stxq.cgs sim/testsuite/sim/sh64/media/stxw.cgs sim/testsuite/sim/sh64/media/sub.cgs sim/testsuite/sim/sh64/media/subl.cgs sim/testsuite/sim/sh64/media/swapq.cgs sim/testsuite/sim/sh64/media/synci.cgs sim/testsuite/sim/sh64/media/synco.cgs sim/testsuite/sim/sh64/media/testutils.inc sim/testsuite/sim/sh64/media/trapa.cgs sim/testsuite/sim/sh64/media/xor.cgs sim/testsuite/sim/sh64/media/xori.cgs sim/testsuite/sim/sh64/misc/fr-dr.s sim/v850/ChangeLog sim/v850/Makefile.in sim/v850/acconfig.h sim/v850/config.in sim/v850/configure sim/v850/configure.ac sim/v850/interp.c sim/v850/sim-main.h sim/v850/simops.c sim/v850/simops.h sim/v850/v850-dc sim/v850/v850.igen sim/v850/v850_sim.h texinfo/texinfo.tex
Diffstat (limited to 'sim/mips')
-rw-r--r--sim/mips/ChangeLog3045
-rw-r--r--sim/mips/Makefile.in400
-rw-r--r--sim/mips/acconfig.h15
-rw-r--r--sim/mips/config.in174
-rwxr-xr-xsim/mips/configure7535
-rw-r--r--sim/mips/configure.ac437
-rw-r--r--sim/mips/cp1.c1584
-rw-r--r--sim/mips/cp1.h83
-rw-r--r--sim/mips/dsp.c37
-rw-r--r--sim/mips/dsp.igen1820
-rw-r--r--sim/mips/dv-tx3904cpu.c246
-rw-r--r--sim/mips/dv-tx3904irc.c413
-rw-r--r--sim/mips/dv-tx3904sio.c622
-rw-r--r--sim/mips/dv-tx3904tmr.c699
-rw-r--r--sim/mips/interp.c2404
-rw-r--r--sim/mips/m16.dc25
-rw-r--r--sim/mips/m16.igen1236
-rw-r--r--sim/mips/m16e.igen105
-rw-r--r--sim/mips/m16run.c74
-rw-r--r--sim/mips/mdmx.c1477
-rw-r--r--sim/mips/mdmx.igen593
-rw-r--r--sim/mips/mips.dc16
-rw-r--r--sim/mips/mips.igen5686
-rw-r--r--sim/mips/mips3264r2.igen260
-rw-r--r--sim/mips/mips3d.igen177
-rw-r--r--sim/mips/sb1.igen244
-rw-r--r--sim/mips/sim-main.c564
-rw-r--r--sim/mips/sim-main.h1020
-rw-r--r--sim/mips/tconfig.in36
-rw-r--r--sim/mips/tx.igen46
-rw-r--r--sim/mips/vr.igen257
31 files changed, 0 insertions, 31330 deletions
diff --git a/sim/mips/ChangeLog b/sim/mips/ChangeLog
deleted file mode 100644
index 6ea29d6..0000000
--- a/sim/mips/ChangeLog
+++ /dev/null
@@ -1,3045 +0,0 @@
-2006-06-13 Richard Earnshaw <rearnsha@arm.com>
-
- * configure: Regenerated.
-
-2006-06-05 Daniel Jacobowitz <dan@codesourcery.com>
-
- * configure: Regenerated.
-
-2006-05-31 Daniel Jacobowitz <dan@codesourcery.com>
-
- * configure: Regenerated.
-
-2006-05-15 Chao-ying Fu <fu@mips.com>
-
- * dsp.igen (do_ph_shift, do_w_shra): Fix bugs for rounding instructions.
-
-2006-04-18 Nick Clifton <nickc@redhat.com>
-
- * dv-tx3904tmr.c (deliver_tx3904tmr_tick): Add missing break
- statement.
-
-2006-03-29 Hans-Peter Nilsson <hp@axis.com>
-
- * configure: Regenerate.
-
-2005-12-14 Chao-ying Fu <fu@mips.com>
-
- * Makefile.in (SIM_OBJS): Add dsp.o.
- (dsp.o): New dependency.
- (IGEN_INCLUDE): Add dsp.igen.
- * configure.ac (mipsisa32r2*-*-*, mipsisa32*-*-*, mipsisa64r2*-*-*,
- mipsisa64*-*-*): Add dsp to sim_igen_machine.
- * configure: Regenerate.
- * mips.igen: Add dsp model and include dsp.igen.
- (MFHI, MFLO, MTHI, MTLO): Remove mips32, mips32r2, mips64, mips64r2,
- because these instructions are extended in DSP ASE.
- * sim-main.h (LAST_EMBED_REGNUM): Change from 89 to 96 because of
- adding 6 DSP accumulator registers and 1 DSP control register.
- (AC0LOIDX, AC0HIIDX, AC1LOIDX, AC1HIIDX, AC2LOIDX, AC2HIIDX, AC3LOIDX,
- AC3HIIDX, DSPLO, DSPHI, DSPCRIDX, DSPCR, DSPCR_POS_SHIFT,
- DSPCR_POS_MASK, DSPCR_POS_SMASK, DSPCR_SCOUNT_SHIFT, DSPCR_SCOUNT_MASK,
- DSPCR_SCOUNT_SMASK, DSPCR_CARRY_SHIFT, DSPCR_CARRY_MASK,
- DSPCR_CARRY_SMASK, DSPCR_CARRY, DSPCR_EFI_SHIFT, DSPCR_EFI_MASK,
- DSPCR_EFI_SMASK, DSPCR_EFI, DSPCR_OUFLAG_SHIFT, DSPCR_OUFLAG_MASK,
- DSPCR_OUFLAG_SMASK, DSPCR_OUFLAG4, DSPCR_OUFLAG5, DSPCR_OUFLAG6,
- DSPCR_OUFLAG7, DSPCR_CCOND_SHIFT, DSPCR_CCOND_MASK,
- DSPCR_CCOND_SMASK): New define.
- (DSPLO_REGNUM, DSPHI_REGNUM): New array for DSP accumulators.
- * dsp.c, dsp.igen: New files for MIPS DSP ASE.
-
-2005-07-08 Ian Lance Taylor <ian@airs.com>
-
- * tconfig.in (SIM_QUIET_NAN_NEGATED): Define.
-
-2005-06-16 David Ung <davidu@mips.com>
- Nigel Stephens <nigel@mips.com>
-
- * mips.igen: New mips16e model and include m16e.igen.
- (check_u64): Add mips16e tag.
- * m16e.igen: New file for MIPS16e instructions.
- * configure.ac (mipsisa32*-*-*, mipsisa32r2*-*-*, mipsisa64*-*-*,
- mipsisa64r2*-*-*): Change sim_gen to M16, add mips16 and mips16e
- models.
- * configure: Regenerate.
-
-2005-05-26 David Ung <davidu@mips.com>
-
- * mips.igen (mips32r2, mips64r2): New ISA models. Add new model
- tags to all instructions which are applicable to the new ISAs.
- (do_ror, do_dror, ROR, RORV, DROR, DROR32, DRORV): Add, moved from
- vr.igen.
- * mips3264r2.igen: New file for MIPS 32/64 revision 2 specific
- instructions.
- * vr.igen (do_ror, do_dror, ROR, RORV, DROR, DROR32, DRORV): Move
- to mips.igen.
- * configure.ac (mipsisa32r2*-*-*, mipsisa64r2*-*-*): Add new targets.
- * configure: Regenerate.
-
-2005-03-23 Mark Kettenis <kettenis@gnu.org>
-
- * configure: Regenerate.
-
-2005-01-14 Andrew Cagney <cagney@gnu.org>
-
- * configure.ac: Sinclude aclocal.m4 before common.m4. Add
- explicit call to AC_CONFIG_HEADER.
- * configure: Regenerate.
-
-2005-01-12 Andrew Cagney <cagney@gnu.org>
-
- * configure.ac: Update to use ../common/common.m4.
- * configure: Re-generate.
-
-2005-01-11 Andrew Cagney <cagney@localhost.localdomain>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-2005-01-07 Andrew Cagney <cagney@gnu.org>
-
- * configure.ac: Rename configure.in, require autoconf 2.59.
- * configure: Re-generate.
-
-2004-12-08 Hans-Peter Nilsson <hp@axis.com>
-
- * configure: Regenerate for ../common/aclocal.m4 update.
-
-2004-09-24 Monika Chaddha <monika@acmet.com>
-
- Committed by Andrew Cagney.
- * m16.igen (CMP, CMPI): Fix assembler.
-
-2004-08-18 Chris Demetriou <cgd@broadcom.com>
-
- * configure.in (mipsisa64sb1*-*-*): Add mips3d to sim_igen_machine.
- * configure: Regenerate.
-
-2004-06-25 Chris Demetriou <cgd@broadcom.com>
-
- * configure.in (sim_m16_machine): Include mipsIII.
- * configure: Regenerate.
-
-2004-05-11 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
-
- * mips/interp.c (decode_coproc): Sign-extend the address retrieved
- from COP0_BADVADDR.
- * mips/sim-main.h (COP0_BADVADDR): Remove a cast.
-
-2004-04-10 Chris Demetriou <cgd@broadcom.com>
-
- * sb1.igen (DIV.PS, RECIP.PS, RSQRT.PS, SQRT.PS): New.
-
-2004-04-09 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (check_fmt): Remove.
- (ABS.fmt, ADD.fmt, C.cond.fmta, C.cond.fmtb, CEIL.L.fmt, CEIL.W)
- (CVT.D.fmt, CVT.L.fmt, CVT.S.fmt, CVT.W.fmt, DIV.fmt, FLOOR.L.fmt)
- (FLOOR.W.fmt, MADD.fmt, MOV.fmt, MOVtf.fmt, MOVN.fmt, MOVZ.fmt)
- (MSUB.fmt, MUL.fmt, NEG.fmt, NMADD.fmt, NMSUB.fmt, RECIP.fmt)
- (ROUND.L.fmt, ROUND.W.fmt, RSQRT.fmt, SQRT.fmt, SUB.fmt)
- (TRUNC.L.fmt, TRUNC.W): Explicitly specify allowed FPU formats.
- (check_fmt_p, CEIL.L.fmt, CEIL.W, DIV.fmt, FLOOR.L.fmt)
- (FLOOR.W.fmt, RECIP.fmt, ROUND.L.fmt, ROUND.W.fmt, RSQRT.fmt)
- (SQRT.fmt, TRUNC.L.fmt, TRUNC.W): Remove all uses of check_fmt.
- (C.cnd.fmta): Remove incorrect call to check_fmt_p.
-
-2004-04-09 Chris Demetriou <cgd@broadcom.com>
-
- * sb1.igen (check_sbx): New function.
- (PABSDIFF.fmt, PABSDIFC.fmt, PAVG.fmt): Use check_sbx.
-
-2004-03-29 Chris Demetriou <cgd@broadcom.com>
- Richard Sandiford <rsandifo@redhat.com>
-
- * sim-main.h (MIPS_MACH_HAS_MT_HILO_HAZARD)
- (MIPS_MACH_HAS_MULT_HILO_HAZARD, MIPS_MACH_HAS_DIV_HILO_HAZARD): New.
- * mips.igen (check_mt_hilo, check_mult_hilo, check_div_hilo): Provide
- separate implementations for mipsIV and mipsV. Use new macros to
- determine whether the restrictions apply.
-
-2004-01-19 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (check_mf_cycles, check_mt_hilo, check_mf_hilo)
- (check_mult_hilo): Improve comments.
- (check_div_hilo): Likewise. Also, fork off a new version
- to handle mips32/mips64 (since there are no hazards to check
- in MIPS32/MIPS64).
-
-2003-06-17 Richard Sandiford <rsandifo@redhat.com>
-
- * mips.igen (do_dmultx): Fix check for negative operands.
-
-2003-05-16 Ian Lance Taylor <ian@airs.com>
-
- * Makefile.in (SHELL): Make sure this is defined.
- (various): Use $(SHELL) whenever we invoke move-if-change.
-
-2003-05-03 Chris Demetriou <cgd@broadcom.com>
-
- * cp1.c: Tweak attribution slightly.
- * cp1.h: Likewise.
- * mdmx.c: Likewise.
- * mdmx.igen: Likewise.
- * mips3d.igen: Likewise.
- * sb1.igen: Likewise.
-
-2003-04-15 Richard Sandiford <rsandifo@redhat.com>
-
- * vr.igen (do_vr_mul_op): Zero-extend the low 32 bits of
- unsigned operands.
-
-2003-02-27 Andrew Cagney <cagney@redhat.com>
-
- * interp.c (sim_open): Rename _bfd to bfd.
- (sim_create_inferior): Ditto.
-
-2003-01-14 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (LUXC1, SUXC1): New, for mipsV and mips64.
-
-2003-01-14 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (EI, DI): Remove.
-
-2003-01-05 Richard Sandiford <rsandifo@redhat.com>
-
- * Makefile.in (tmp-run-multi): Fix mips16 filter.
-
-2003-01-04 Richard Sandiford <rsandifo@redhat.com>
- Andrew Cagney <ac131313@redhat.com>
- Gavin Romig-Koch <gavin@redhat.com>
- Graydon Hoare <graydon@redhat.com>
- Aldy Hernandez <aldyh@redhat.com>
- Dave Brolley <brolley@redhat.com>
- Chris Demetriou <cgd@broadcom.com>
-
- * configure.in (mips64vr*): Define TARGET_ENABLE_FR to 1.
- (sim_mach_default): New variable.
- (mips64vr-*-*, mips64vrel-*-*): New configurations.
- Add a new simulator generator, MULTI.
- * configure: Regenerate.
- * Makefile.in (SIM_MULTI_OBJ, SIM_EXTRA_DISTCLEAN): New variables.
- (multi-run.o): New dependency.
- (SIM_MULTI_ALL, SIM_MULTI_IGEN_CONFIGS): New variables.
- (tmp-mach-multi, tmp-itable-multi, tmp-run-multi): New rules.
- (tmp-multi): Combine them.
- (BUILT_SRC_FROM_MULTI): New variable. Depend on tmp-multi.
- (clean-extra): Remove sources in BUILT_SRC_FROM_MULTI.
- (distclean-extra): New rule.
- * sim-main.h: Include bfd.h.
- (MIPS_MACH): New macro.
- * mips.igen (vr4120, vr5400, vr5500): New models.
- (clo, clz, dclo, dclz, madd, maddu, msub, msub, mul): Add *vr5500.
- * vr.igen: Replace with new version.
-
-2003-01-04 Chris Demetriou <cgd@broadcom.com>
-
- * configure.in: Use SIM_AC_OPTION_RESERVED_BITS(1).
- * configure: Regenerate.
-
-2002-12-31 Chris Demetriou <cgd@broadcom.com>
-
- * sim-main.h (check_branch_bug, mark_branch_bug): Remove.
- * mips.igen: Remove all invocations of check_branch_bug and
- mark_branch_bug.
-
-2002-12-16 Chris Demetriou <cgd@broadcom.com>
-
- * tconfig.in: Include "gdb/callback.h" and "gdb/remote-sim.h".
-
-2002-07-30 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (do_load_double, do_store_double): New functions.
- (LDC1, SDC1): Rename to...
- (LDC1b, SDC1b): respectively.
- (LDC1a, SDC1a): New instructions for MIPS II and MIPS32 support.
-
-2002-07-29 Michael Snyder <msnyder@redhat.com>
-
- * cp1.c (fp_recip2): Modify initialization expression so that
- GCC will recognize it as constant.
-
-2002-06-18 Chris Demetriou <cgd@broadcom.com>
-
- * mdmx.c (SD_): Delete.
- (Unpredictable): Re-define, for now, to directly invoke
- unpredictable_action().
- (mdmx_acc_op): Fix error in .ob immediate handling.
-
-2002-06-18 Andrew Cagney <cagney@redhat.com>
-
- * interp.c (sim_firmware_command): Initialize `address'.
-
-2002-06-16 Andrew Cagney <ac131313@redhat.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-2002-06-14 Chris Demetriou <cgd@broadcom.com>
- Ed Satterthwaite <ehs@broadcom.com>
-
- * mips3d.igen: New file which contains MIPS-3D ASE instructions.
- * Makefile.in (IGEN_INCLUDE): Add mips3d.igen.
- * mips.igen: Include mips3d.igen.
- (mips3d): New model name for MIPS-3D ASE instructions.
- (CVT.W.fmt): Don't use this instruction for word (source) format
- instructions.
- * cp1.c (fp_binary_r, fp_add_r, fp_mul_r, fpu_inv1, fpu_inv1_32)
- (fpu_inv1_64, fp_recip1, fp_recip2, fpu_inv_sqrt1, fpu_inv_sqrt1_32)
- (fpu_inv_sqrt1_64, fp_rsqrt1, fp_rsqrt2): New functions.
- (NR_FRAC_GUARD, IMPLICIT_1): New macros.
- * sim-main.h (fmt_pw, CompareAbs, AddR, MultiplyR, Recip1, Recip2)
- (RSquareRoot1, RSquareRoot2): New macros.
- (fp_add_r, fp_mul_r, fp_recip1, fp_recip2, fp_rsqrt1)
- (fp_rsqrt2): New functions.
- * configure.in: Add MIPS-3D support to mipsisa64 simulator.
- * configure: Regenerate.
-
-2002-06-13 Chris Demetriou <cgd@broadcom.com>
- Ed Satterthwaite <ehs@broadcom.com>
-
- * cp1.c (FP_PS_upper, FP_PS_lower, FP_PS_cat, FPQNaN_PS): New macros.
- (value_fpr, store_fpr, fp_cmp, fp_unary, fp_binary, fp_mac)
- (fp_inv_sqrt, fpu_format_name): Add paired-single support.
- (convert): Note that this function is not used for paired-single
- format conversions.
- (ps_lower, ps_upper, pack_ps, convert_ps): New functions.
- * mips.igen (FMT, MOVtf.fmt): Add paired-single support.
- (check_fmt_p): Enable paired-single support.
- (ALNV.PS, CVT.PS.S, CVT.S.PL, CVT.S.PU, PLL.PS, PLU.PS, PUL.PS)
- (PUU.PS): New instructions.
- (CVT.S.fmt): Don't use this instruction for paired-single format
- destinations.
- * sim-main.h (FP_formats): New value 'fmt_ps.'
- (ps_lower, ps_upper, pack_ps, convert_ps): New prototypes.
- (PSLower, PSUpper, PackPS, ConvertPS): New macros.
-
-2002-06-12 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen: Fix formatting of function calls in
- many FP operations.
-
-2002-06-12 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (MOVN, MOVZ): Trace result.
- (TNEI): Print "tnei" as the opcode name in traces.
- (CEIL.W): Add disassembly string for traces.
- (RSQRT.fmt): Make location of disassembly string consistent
- with other instructions.
-
-2002-06-12 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (X): Delete unused function.
-
-2002-06-08 Andrew Cagney <cagney@redhat.com>
-
- * interp.c: Include "gdb/callback.h" and "gdb/remote-sim.h".
-
-2002-06-07 Chris Demetriou <cgd@broadcom.com>
- Ed Satterthwaite <ehs@broadcom.com>
-
- * cp1.c (inner_mac, fp_mac, inner_rsqrt, fp_inv_sqrt)
- (fp_rsqrt, fp_madd, fp_msub, fp_nmadd, fp_nmsub): New functions.
- * sim-main.h (fp_rsqrt, fp_madd, fp_msub, fp_nmadd)
- (fp_nmsub): New prototypes.
- (RSquareRoot, MultiplyAdd, MultiplySub, NegMultiplyAdd)
- (NegMultiplySub): New defines.
- * mips.igen (RSQRT.fmt): Use RSquareRoot().
- (MADD.D, MADD.S): Replace with...
- (MADD.fmt): New instruction.
- (MSUB.D, MSUB.S): Replace with...
- (MSUB.fmt): New instruction.
- (NMADD.D, NMADD.S): Replace with...
- (NMADD.fmt): New instruction.
- (NMSUB.D, MSUB.S): Replace with...
- (NMSUB.fmt): New instruction.
-
-2002-06-07 Chris Demetriou <cgd@broadcom.com>
- Ed Satterthwaite <ehs@broadcom.com>
-
- * cp1.c: Fix more comment spelling and formatting.
- (value_fcr, store_fcr): Use fenr_FS rather than hard-coding value.
- (denorm_mode): New function.
- (fpu_unary, fpu_binary): Round results after operation, collect
- status from rounding operations, and update the FCSR.
- (convert): Collect status from integer conversions and rounding
- operations, and update the FCSR. Adjust NaN values that result
- from conversions. Convert to use sim_io_eprintf rather than
- fprintf, and remove some debugging code.
- * cp1.h (fenr_FS): New define.
-
-2002-06-07 Chris Demetriou <cgd@broadcom.com>
-
- * cp1.c (convert): Remove unusable debugging code, and move MIPS
- rounding mode to sim FP rounding mode flag conversion code into...
- (rounding_mode): New function.
-
-2002-06-07 Chris Demetriou <cgd@broadcom.com>
-
- * cp1.c: Clean up formatting of a few comments.
- (value_fpr): Reformat switch statement.
-
-2002-06-06 Chris Demetriou <cgd@broadcom.com>
- Ed Satterthwaite <ehs@broadcom.com>
-
- * cp1.h: New file.
- * sim-main.h: Include cp1.h.
- (SETFCC, GETFCC, IR, UF, OF, DX, IO, UO, FP_FLAGS, FP_ENABLE)
- (FP_CAUSE, GETFS, FP_RM_NEAREST, FP_RM_TOZERO, FP_RM_TOPINF)
- (FP_RM_TOMINF, GETRM): Remove. Moved to cp1.h.
- (FP_FS, FP_MASK_RM, FP_SH_RM, Nan, Less, Equal): Remove.
- (value_fcr, store_fcr, test_fcsr, fp_cmp): New prototypes.
- (ValueFCR, StoreFCR, TestFCSR, Compare): New macros.
- * cp1.c: Don't include sim-fpu.h; already included by
- sim-main.h. Clean up formatting of some comments.
- (NaN, Equal, Less): Remove.
- (test_fcsr, value_fcr, store_fcr, update_fcsr, fp_test)
- (fp_cmp): New functions.
- * mips.igen (do_c_cond_fmt): Remove.
- (C.cond.fmta, C.cond.fmtb): Replace uses of do_c_cond_fmt_a with
- Compare. Add result tracing.
- (CxC1): Remove, replace with...
- (CFC1a, CFC1b, CFC1c, CTC1a, CTC1b, CTC1c): New instructions.
- (DMxC1): Remove, replace with...
- (DMFC1a, DMFC1b, DMTC1a, DMTC1b): New instructions.
- (MxC1): Remove, replace with...
- (MFC1a, MFC1b, MTC1a, MTC1b): New instructions.
-
-2002-06-04 Chris Demetriou <cgd@broadcom.com>
-
- * sim-main.h (FGRIDX): Remove, replace all uses with...
- (FGR_BASE): New macro.
- (FP0_REGNUM, FCRCS_REGNUM, FCRIR_REGNUM): New macros.
- (_sim_cpu): Move 'fgr' member to be right before 'fpr_state' member.
- (NR_FGR, FGR): Likewise.
- * interp.c: Replace all uses of FGRIDX with FGR_BASE.
- * mips.igen: Likewise.
-
-2002-06-04 Chris Demetriou <cgd@broadcom.com>
-
- * cp1.c: Add an FSF Copyright notice to this file.
-
-2002-06-04 Chris Demetriou <cgd@broadcom.com>
- Ed Satterthwaite <ehs@broadcom.com>
-
- * cp1.c (Infinity): Remove.
- * sim-main.h (Infinity): Likewise.
-
- * cp1.c (fp_unary, fp_binary): New functions.
- (fp_abs, fp_neg, fp_add, fp_sub, fp_mul, fp_div, fp_recip)
- (fp_sqrt): New functions, implemented in terms of the above.
- (AbsoluteValue, Negate, Add, Sub, Multiply, Divide)
- (Recip, SquareRoot): Remove (replaced by functions above).
- * sim-main.h (fp_abs, fp_neg, fp_add, fp_sub, fp_mul, fp_div)
- (fp_recip, fp_sqrt): New prototypes.
- (AbsoluteValue, Negate, Add, Sub, Multiply, Divide)
- (Recip, SquareRoot): Replace prototypes with #defines which
- invoke the functions above.
-
-2002-06-03 Chris Demetriou <cgd@broadcom.com>
-
- * sim-main.h (Nan, Infinity, Less, Equal, AbsoluteValue, Negate)
- (Add, Sub, Multiply, Divide, Recip, SquareRoot): Move lower in
- file, remove PARAMS from prototypes.
- (value_fpr, store_fpr, convert): Likewise. Use SIM_STATE to provide
- simulator state arguments.
- (ValueFPR, StoreFPR, Convert): Move lower in file. Use SIM_ARGS to
- pass simulator state arguments.
- * cp1.c (SD): Redefine as CPU_STATE(cpu).
- (store_fpr, convert): Remove 'sd' argument.
- (value_fpr): Likewise. Convert to use 'SD' instead.
-
-2002-06-03 Chris Demetriou <cgd@broadcom.com>
-
- * cp1.c (Min, Max): Remove #if 0'd functions.
- * sim-main.h (Min, Max): Remove.
-
-2002-06-03 Chris Demetriou <cgd@broadcom.com>
-
- * cp1.c: fix formatting of switch case and default labels.
- * interp.c: Likewise.
- * sim-main.c: Likewise.
-
-2002-06-03 Chris Demetriou <cgd@broadcom.com>
-
- * cp1.c: Clean up comments which describe FP formats.
- (FPQNaN_DOUBLE, FPQNaN_LONG): Generate using UNSIGNED64.
-
-2002-06-03 Chris Demetriou <cgd@broadcom.com>
- Ed Satterthwaite <ehs@broadcom.com>
-
- * configure.in (mipsisa64sb1*-*-*): New target for supporting
- Broadcom SiByte SB-1 processor configurations.
- * configure: Regenerate.
- * sb1.igen: New file.
- * mips.igen: Include sb1.igen.
- (sb1): New model.
- * Makefile.in (IGEN_INCLUDE): Add sb1.igen.
- * mdmx.igen: Add "sb1" model to all appropriate functions and
- instructions.
- * mdmx.c (AbsDiffOB, AvgOB, AccAbsDiffOB): New functions.
- (ob_func, ob_acc): Reference the above.
- (qh_acc): Adjust to keep the same size as ob_acc.
- * sim-main.h (status_SBX, MX_VECT_ABSD, MX_VECT_AVG, MX_AbsDiff)
- (MX_Avg, MX_VECT_ABSDA, MX_AbsDiffC): New macros.
-
-2002-06-03 Chris Demetriou <cgd@broadcom.com>
-
- * Makefile.in (IGEN_INCLUDE): Add mdmx.igen.
-
-2002-06-02 Chris Demetriou <cgd@broadcom.com>
- Ed Satterthwaite <ehs@broadcom.com>
-
- * mips.igen (mdmx): New (pseudo-)model.
- * mdmx.c, mdmx.igen: New files.
- * Makefile.in (SIM_OBJS): Add mdmx.o.
- * sim-main.h (MDMX_accumulator, MX_fmtsel, signed24, signed48):
- New typedefs.
- (ACC, MX_Add, MX_AddA, MX_AddL, MX_And, MX_C_EQ, MX_C_LT, MX_Comp)
- (MX_FMT_OB, MX_FMT_QH, MX_Max, MX_Min, MX_Msgn, MX_Mul, MX_MulA)
- (MX_MulL, MX_MulS, MX_MulSL, MX_Nor, MX_Or, MX_Pick, MX_RAC)
- (MX_RAC_H, MX_RAC_L, MX_RAC_M, MX_RNAS, MX_RNAU, MX_RND_AS)
- (MX_RND_AU, MX_RND_ES, MX_RND_EU, MX_RND_ZS, MX_RND_ZU, MX_RNES)
- (MX_RNEU, MX_RZS, MX_RZU, MX_SHFL, MX_ShiftLeftLogical)
- (MX_ShiftRightArith, MX_ShiftRightLogical, MX_Sub, MX_SubA, MX_SubL)
- (MX_VECT_ADD, MX_VECT_ADDA, MX_VECT_ADDL, MX_VECT_AND)
- (MX_VECT_MAX, MX_VECT_MIN, MX_VECT_MSGN, MX_VECT_MUL, MX_VECT_MULA)
- (MX_VECT_MULL, MX_VECT_MULS, MX_VECT_MULSL, MX_VECT_NOR)
- (MX_VECT_OR, MX_VECT_SLL, MX_VECT_SRA, MX_VECT_SRL, MX_VECT_SUB)
- (MX_VECT_SUBA, MX_VECT_SUBL, MX_VECT_XOR, MX_WACH, MX_WACL, MX_Xor)
- (SIM_ARGS, SIM_STATE, UnpredictableResult, fmt_mdmx, ob_fmtsel)
- (qh_fmtsel): New macros.
- (_sim_cpu): New member "acc".
- (mdmx_acc_op, mdmx_cc_op, mdmx_cpr_op, mdmx_pick_op, mdmx_rac_op)
- (mdmx_round_op, mdmx_shuffle, mdmx_wach, mdmx_wacl): New functions.
-
-2002-05-01 Chris Demetriou <cgd@broadcom.com>
-
- * interp.c: Use 'deprecated' rather than 'depreciated.'
- * sim-main.h: Likewise.
-
-2002-05-01 Chris Demetriou <cgd@broadcom.com>
-
- * cp1.c (store_fpr): Remove #ifdef'd out call to UndefinedResult
- which wouldn't compile anyway.
- * sim-main.h (unpredictable_action): New function prototype.
- (Unpredictable): Define to call igen function unpredictable().
- (NotWordValue): New macro to call igen function not_word_value().
- (UndefinedResult): Remove.
- * interp.c (undefined_result): Remove.
- (unpredictable_action): New function.
- * mips.igen (not_word_value, unpredictable): New functions.
- (ADD, ADDI, do_addiu, do_addu, BGEZAL, BGEZALL, BLTZAL, BLTZALL)
- (CLO, CLZ, MADD, MADDU, MSUB, MSUBU, MUL, do_mult, do_multu)
- (do_sra, do_srav, do_srl, do_srlv, SUB, do_subu): Invoke
- NotWordValue() to check for unpredictable inputs, then
- Unpredictable() to handle them.
-
-2002-02-24 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen: Fix formatting of calls to Unpredictable().
-
-2002-04-20 Andrew Cagney <ac131313@redhat.com>
-
- * interp.c (sim_open): Revert previous change.
-
-2002-04-18 Alexandre Oliva <aoliva@redhat.com>
-
- * interp.c (sim_open): Disable chunk of code that wrote code in
- vector table entries.
-
-2002-03-19 Chris Demetriou <cgd@broadcom.com>
-
- * cp1.c (FP_S_s, FP_D_s, FP_S_be, FP_D_be, FP_S_e, FP_D_e, FP_S_f)
- (FP_D_f, FP_S_fb, FP_D_fb, FPINF_SINGLE, FPINF_DOUBLE): Remove
- unused definitions.
-
-2002-03-19 Chris Demetriou <cgd@broadcom.com>
-
- * cp1.c: Fix many formatting issues.
-
-2002-03-19 Chris G. Demetriou <cgd@broadcom.com>
-
- * cp1.c (fpu_format_name): New function to replace...
- (DOFMT): This. Delete, and update all callers.
- (fpu_rounding_mode_name): New function to replace...
- (RMMODE): This. Delete, and update all callers.
-
-2002-03-19 Chris G. Demetriou <cgd@broadcom.com>
-
- * interp.c: Move FPU support routines from here to...
- * cp1.c: Here. New file.
- * Makefile.in (SIM_OBJS): Add cp1.o to object list.
- (cp1.o): New target.
-
-2002-03-12 Chris Demetriou <cgd@broadcom.com>
-
- * configure.in (mipsisa32*-*-*, mipsisa64*-*-*): New targets.
- * mips.igen (mips32, mips64): New models, add to all instructions
- and functions as appropriate.
- (loadstore_ea, check_u64): New variant for model mips64.
- (check_fmt_p): New variant for models mipsV and mips64, remove
- mipsV model marking fro other variant.
- (SLL) Rename to...
- (SLLa) this.
- (CLO, CLZ, MADD, MADDU, MSUB, MSUBU, MUL, SLLb): New instructions
- for mips32 and mips64.
- (DCLO, DCLZ): New instructions for mips64.
-
-2002-03-07 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (BREAK, LUI, ORI, SYSCALL, XORI): Print
- immediate or code as a hex value with the "%#lx" format.
- (ANDI): Likewise, and fix printed instruction name.
-
-2002-03-05 Chris Demetriou <cgd@broadcom.com>
-
- * sim-main.h (UndefinedResult, Unpredictable): New macros
- which currently do nothing.
-
-2002-03-05 Chris Demetriou <cgd@broadcom.com>
-
- * sim-main.h (status_UX, status_SX, status_KX, status_TS)
- (status_PX, status_MX, status_CU0, status_CU1, status_CU2)
- (status_CU3): New definitions.
-
- * sim-main.h (ExceptionCause): Add new values for MIPS32
- and MIPS64: MDMX, MCheck, CacheErr. Update comments
- for DebugBreakPoint and NMIReset to note their status in
- MIPS32 and MIPS64.
- (SignalExceptionMDMX, SignalExceptionWatch, SignalExceptionMCheck)
- (SignalExceptionCacheErr): New exception macros.
-
-2002-03-05 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (check_fpu): Enable check for coprocessor 1 usability.
- * sim-main.h (COP_Usable): Define, but for now coprocessor 1
- is always enabled.
- (SignalExceptionCoProcessorUnusable): Take as argument the
- unusable coprocessor number.
-
-2002-03-05 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen: Fix formatting of all SignalException calls.
-
-2002-03-05 Chris Demetriou <cgd@broadcom.com>
-
- * sim-main.h (SIGNEXTEND): Remove.
-
-2002-03-04 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen: Remove gencode comment from top of file, fix
- spelling in another comment.
-
-2002-03-04 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (check_fmt, check_fmt_p): New functions to check
- whether specific floating point formats are usable.
- (ABS.fmt, ADD.fmt, CEIL.L.fmt, CEIL.W, DIV.fmt, FLOOR.L.fmt)
- (FLOOR.W.fmt, MOV.fmt, MUL.fmt, NEG.fmt, RECIP.fmt, ROUND.L.fmt)
- (ROUND.W.fmt, RSQRT.fmt, SQRT.fmt, SUB.fmt, TRUNC.L.fmt, TRUNC.W):
- Use the new functions.
- (do_c_cond_fmt): Remove format checks...
- (C.cond.fmta, C.cond.fmtb): And move them into all callers.
-
-2002-03-03 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen: Fix formatting of check_fpu calls.
-
-2002-03-03 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (FLOOR.L.fmt): Store correct destination register.
-
-2002-03-03 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen: Remove whitespace at end of lines.
-
-2002-03-02 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (loadstore_ea): New function to do effective
- address calculations.
- (do_load, do_load_left, do_load_right, LL, LDD, PREF, do_store,
- do_store_left, do_store_right, SC, SCD, PREFX, SWC1, SWXC1,
- CACHE): Use loadstore_ea to do effective address computations.
-
-2002-03-02 Chris Demetriou <cgd@broadcom.com>
-
- * interp.c (load_word): Use EXTEND32 rather than SIGNEXTEND.
- * mips.igen (LL, CxC1, MxC1): Likewise.
-
-2002-03-02 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (LL, LLD, PREF, SC, SCD, ABS.fmt, ADD.fmt, CEIL.L.fmt,
- CEIL.W, CVT.D.fmt, CVT.L.fmt, CVT.S.fmt, CVT.W.fmt, DIV.fmt,
- FLOOR.L.fmt, FLOOR.W.fmt, MADD.D, MADD.S, MOV.fmt, MOVtf.fmt,
- MSUB.D, MSUB.S, MUL.fmt, NEG.fmt, NMADD.D, NMADD.S, NMSUB.D,
- NMSUB.S, PREFX, RECIP.fmt, ROUND.L.fmt, ROUND.W.fmt, RSQRT.fmt,
- SQRT.fmt, SUB.fmt, SWC1, SWXC1, TRUNC.L.fmt, TRUNC.W, CACHE):
- Don't split opcode fields by hand, use the opcode field values
- provided by igen.
-
-2002-03-01 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (do_divu): Fix spacing.
-
- * mips.igen (do_dsllv): Move to be right before DSLLV,
- to match the rest of the do_<shift> functions.
-
-2002-03-01 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (do_dsll, do_dsllv, DSLL32, do_dsra, DSRA32, do_dsrl,
- DSRL32, do_dsrlv): Trace inputs and results.
-
-2002-03-01 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (CACHE): Provide instruction-printing string.
-
- * interp.c (signal_exception): Comment tokens after #endif.
-
-2002-02-28 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (LWXC1): Mark with filter "64,f", rather than just "32".
- (MOVtf, MxC1, MxC1, DMxC1, DMxC1, CxC1, CxC1, SQRT.fmt, MOV.fmt,
- NEG.fmt, ROUND.L.fmt, TRUNC.L.fmt, CEIL.L.fmt, FLOOR.L.fmt,
- ROUND.W.fmt, TRUNC.W, CEIL.W, FLOOR.W.fmt, RECIP.fmt, RSQRT.fmt,
- CVT.S.fmt, CVT.D.fmt, CVT.W.fmt, CVT.L.fmt, MOVtf.fmt, C.cond.fmta,
- C.cond.fmtb, SUB.fmt, MUL.fmt, DIV.fmt, MOVZ.fmt, MOVN.fmt, LDXC1,
- SWXC1, SDXC1, MSUB.D, MSUB.S, NMADD.S, NMADD.D, NMSUB.S, NMSUB.D,
- LWC1, SWC1): Add "f" to filter, since these are FP instructions.
-
-2002-02-28 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (DSRA32, DSRAV): Fix order of arguments in
- instruction-printing string.
- (LWU): Use '64' as the filter flag.
-
-2002-02-28 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (SDXC1): Fix instruction-printing string.
-
-2002-02-28 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (LDC1, SDC1): Remove mipsI model, and mark with
- filter flags "32,f".
-
-2002-02-27 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (PREFX): This is a 64-bit instruction, use '64'
- as the filter flag.
-
-2002-02-27 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (PREFX): Tweak instruction opcode fields (i.e.,
- add a comma) so that it more closely match the MIPS ISA
- documentation opcode partitioning.
- (PREF): Put useful names on opcode fields, and include
- instruction-printing string.
-
-2002-02-27 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (check_u64): New function which in the future will
- check whether 64-bit instructions are usable and signal an
- exception if not. Currently a no-op.
- (DADD, DADDI, DADDIU, DADDU, DDIV, DDIVU, DMULT, DMULTU, DSLL,
- DSLL32, DSLLV, DSRA, DSRA32, DSRAV, DSRL, DSRL32, DSRLV, DSUB,
- DSUBU, LD, LDL, LDR, LLD, LWU, SCD, SD, SDL, SDR, DMxC1, LDXC1,
- LWXC1, SDXC1, SWXC1, DMFC0, DMTC0): Use check_u64.
-
- * mips.igen (check_fpu): New function which in the future will
- check whether FPU instructions are usable and signal an exception
- if not. Currently a no-op.
- (ABS.fmt, ADD.fmt, BC1a, BC1b, C.cond.fmta, C.cond.fmtb,
- CEIL.L.fmt, CEIL.W, CxC1, CVT.D.fmt, CVT.L.fmt, CVT.S.fmt,
- CVT.W.fmt, DIV.fmt, DMxC1, DMxC1, FLOOR.L.fmt, FLOOR.W.fmt, LDC1,
- LDXC1, LWC1, LWXC1, MADD.D, MADD.S, MxC1, MOV.fmt, MOVtf,
- MOVtf.fmt, MOVN.fmt, MOVZ.fmt, MSUB.D, MSUB.S, MUL.fmt, NEG.fmt,
- NMADD.D, NMADD.S, NMSUB.D, NMSUB.S, RECIP.fmt, ROUND.L.fmt,
- ROUND.W.fmt, RSQRT.fmt, SDC1, SDXC1, SQRT.fmt, SUB.fmt, SWC1,
- SWXC1, TRUNC.L.fmt, TRUNC.W): Use check_fpu.
-
-2002-02-27 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (do_load_left, do_load_right): Move to be immediately
- following do_load.
- (do_store_left, do_store_right): Move to be immediately following
- do_store.
-
-2002-02-27 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (mipsV): New model name. Also, add it to
- all instructions and functions where it is appropriate.
-
-2002-02-18 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen: For all functions and instructions, list model
- names that support that instruction one per line.
-
-2002-02-11 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen: Add some additional comments about supported
- models, and about which instructions go where.
- (BC1b, MFC0, MTC0, RFE): Sort supported models in the same
- order as is used in the rest of the file.
-
-2002-02-11 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (ADD, ADDI, DADDI, DSUB, SUB): Add comment
- indicating that ALU32_END or ALU64_END are there to check
- for overflow.
- (DADD): Likewise, but also remove previous comment about
- overflow checking.
-
-2002-02-10 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (DDIV, DIV, DIVU, DMULT, DMULTU, DSLL, DSLL32,
- DSLLV, DSRA, DSRA32, DSRAV, DSRL, DSRL32, DSRLV, DSUB, DSUBU,
- JALR, JR, MOVN, MOVZ, MTLO, MULT, MULTU, SLL, SLLV, SLT, SLTU,
- SRAV, SRLV, SUB, SUBU, SYNC, XOR, MOVtf, DI, DMFC0, DMTC0, EI,
- ERET, RFE, TLBP, TLBR, TLBWI, TLBWR): Tweak instruction opcode
- fields (i.e., add and move commas) so that they more closely
- match the MIPS ISA documentation opcode partitioning.
-
-2002-02-10 Chris Demetriou <cgd@broadcom.com>
-
- * mips.igen (ADDI): Print immediate value.
- (BREAK): Print code.
- (DADDIU, DSRAV, DSRLV): Print correct instruction name.
- (SLL): Print "nop" specially, and don't run the code
- that does the shift for the "nop" case.
-
-2001-11-17 Fred Fish <fnf@redhat.com>
-
- * sim-main.h (float_operation): Move enum declaration outside
- of _sim_cpu struct declaration.
-
-2001-04-12 Jim Blandy <jimb@redhat.com>
-
- * mips.igen (CFC1, CTC1): Pass the correct register numbers to
- PENDING_FILL. Use PENDING_SCHED directly to handle the pending
- set of the FCSR.
- * sim-main.h (COCIDX): Remove definition; this isn't supported by
- PENDING_FILL, and you can get the intended effect gracefully by
- calling PENDING_SCHED directly.
-
-2001-02-23 Ben Elliston <bje@redhat.com>
-
- * sim-main.h (ENGINE_ISSUE_PREFIX_HOOK): Only define if not
- already defined elsewhere.
-
-2001-02-19 Ben Elliston <bje@redhat.com>
-
- * sim-main.h (sim_monitor): Return an int.
- * interp.c (sim_monitor): Add return values.
- (signal_exception): Handle error conditions from sim_monitor.
-
-2001-02-08 Ben Elliston <bje@redhat.com>
-
- * sim-main.c (load_memory): Pass cia to sim_core_read* functions.
- (store_memory): Likewise, pass cia to sim_core_write*.
-
-2000-10-19 Frank Ch. Eigler <fche@redhat.com>
-
- On advice from Chris G. Demetriou <cgd@sibyte.com>:
- * sim-main.h (GPR_CLEAR): Remove unused alternative macro.
-
-Thu Jul 27 22:02:05 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- From Maciej W. Rozycki <macro@ds2.pg.gda.pl>:
- * Makefile.in: Don't delete *.igen when cleaning directory.
-
-Wed Jul 19 18:50:51 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- * m16.igen (break): Call SignalException not sim_engine_halt.
-
-Mon Jul 3 11:13:20 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- From Jason Eckhardt:
- * mips.igen (MOVZ.fmt, MOVN.fmt): Move conditional on GPR[RT].
-
-Tue Jun 13 20:52:07 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- * mips.igen (MxC1, DMxC1): Fix printf formatting.
-
-2000-05-24 Michael Hayes <mhayes@cygnus.com>
-
- * mips.igen (do_dmultx): Fix typo.
-
-Tue May 23 21:39:23 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Fri Apr 28 20:48:36 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- * mips.igen (DMxC1): Fix format arguments for sim_io_eprintf call.
-
-2000-04-12 Frank Ch. Eigler <fche@redhat.com>
-
- * sim-main.h (GPR_CLEAR): Define macro.
-
-Mon Apr 10 00:07:09 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (decode_coproc): Output long using %lx and not %s.
-
-2000-03-21 Frank Ch. Eigler <fche@redhat.com>
-
- * interp.c (sim_open): Sort & extend dummy memory regions for
- --board=jmr3904 for eCos.
-
-2000-03-02 Frank Ch. Eigler <fche@redhat.com>
-
- * configure: Regenerated.
-
-Tue Feb 8 18:35:01 2000 Donald Lindsay <dlindsay@hound.cygnus.com>
-
- * interp.c, mips.igen: all 5 DEADC0DE situations now have sim_io_eprintf
- calls, conditional on the simulator being in verbose mode.
-
-Fri Feb 4 09:45:15 2000 Donald Lindsay <dlindsay@cygnus.com>
-
- * sim-main.c (cache_op): Added case arm so that CACHE ops to a secondary
- cache don't get ReservedInstruction traps.
-
-1999-11-29 Mark Salter <msalter@cygnus.com>
-
- * dv-tx3904sio.c (tx3904sio_io_write_buffer): Use write value as a mask
- to clear status bits in sdisr register. This is how the hardware works.
-
- * interp.c (sim_open): Added more memory aliases for jmr3904 hardware
- being used by cygmon.
-
-1999-11-11 Andrew Haley <aph@cygnus.com>
-
- * interp.c (decode_coproc): Correctly handle DMFC0 and DMTC0
- instructions.
-
-Thu Sep 9 15:12:08 1999 Geoffrey Keating <geoffk@cygnus.com>
-
- * mips.igen (MULT): Correct previous mis-applied patch.
-
-Tue Sep 7 13:34:54 1999 Geoffrey Keating <geoffk@cygnus.com>
-
- * mips.igen (delayslot32): Handle sequence like
- mtc1 $at,$f12 ; jal fp_add ; mov.s $f13,$f12
- correctly by calling ENGINE_ISSUE_PREFIX_HOOK() before issue.
- (MULT): Actually pass the third register...
-
-1999-09-03 Mark Salter <msalter@cygnus.com>
-
- * interp.c (sim_open): Added more memory aliases for additional
- hardware being touched by cygmon on jmr3904 board.
-
-Thu Sep 2 18:15:53 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Tue Jul 27 16:36:51 1999 Andrew Cagney <cagney@amy.cygnus.com>
-
- * interp.c (sim_store_register): Handle case where client - GDB -
- specifies that a 4 byte register is 8 bytes in size.
- (sim_fetch_register): Ditto.
-
-1999-07-14 Frank Ch. Eigler <fche@cygnus.com>
-
- Implement "sim firmware" option, inspired by jimb's version of 1998-01.
- * interp.c (firmware_option_p): New global flag: "sim firmware" given.
- (idt_monitor_base): Base address for IDT monitor traps.
- (pmon_monitor_base): Ditto for PMON.
- (lsipmon_monitor_base): Ditto for LSI PMON.
- (MONITOR_BASE, MONITOR_SIZE): Removed macros.
- (mips_option): Add "firmware" option with new OPTION_FIRMWARE key.
- (sim_firmware_command): New function.
- (mips_option_handler): Call it for OPTION_FIRMWARE.
- (sim_open): Allocate memory for idt_monitor region. If "--board"
- option was given, add no monitor by default. Add BREAK hooks only if
- monitors are also there.
-
-Mon Jul 12 00:02:27 1999 Andrew Cagney <cagney@amy.cygnus.com>
-
- * interp.c (sim_monitor): Flush output before reading input.
-
-Sun Jul 11 19:28:11 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * tconfig.in (SIM_HANDLES_LMA): Always define.
-
-Thu Jul 8 16:06:59 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- From Mark Salter <msalter@cygnus.com>:
- * interp.c (BOARD_BSP): Define. Add to list of possible boards.
- (sim_open): Add setup for BSP board.
-
-Wed Jul 7 12:45:58 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * mips.igen (MULT, MULTU): Add syntax for two operand version.
- (DMFC0, DMTC0): Recognize. Call DecodeCoproc which will report
- them as unimplemented.
-
-1999-05-08 Felix Lee <flee@cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-1999-04-21 Frank Ch. Eigler <fche@cygnus.com>
-
- * mips.igen (bc0f): For the TX39 only, decode this as a no-op stub.
-
-Thu Apr 15 14:15:17 1999 Andrew Cagney <cagney@amy.cygnus.com>
-
- * configure.in: Any mips64vr5*-*-* target should have
- -DTARGET_ENABLE_FR=1.
- (default_endian): Any mips64vr*el-*-* target should default to
- LITTLE_ENDIAN.
- * configure: Re-generate.
-
-1999-02-19 Gavin Romig-Koch <gavin@cygnus.com>
-
- * mips.igen (ldl): Extend from _16_, not 32.
-
-Wed Jan 27 18:51:38 1999 Andrew Cagney <cagney@chook.cygnus.com>
-
- * interp.c (sim_store_register): Force registers written to by GDB
- into an un-interpreted state.
-
-1999-02-05 Frank Ch. Eigler <fche@cygnus.com>
-
- * dv-tx3904sio.c (tx3904sio_tickle): After a polled I/O from the
- CPU, start periodic background I/O polls.
- (tx3904sio_poll): New function: periodic I/O poller.
-
-1998-12-30 Frank Ch. Eigler <fche@cygnus.com>
-
- * mips.igen (BREAK): Call signal_exception instead of sim_engine_halt.
-
-Tue Dec 29 16:03:53 1998 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
-
- * configure.in, configure (mips64vr5*-*-*): Added missing ;; in
- case statement.
-
-1998-12-29 Frank Ch. Eigler <fche@cygnus.com>
-
- * interp.c (sim_open): Allocate jm3904 memory in smaller chunks.
- (load_word): Call SIM_CORE_SIGNAL hook on error.
- (signal_exception): Call SIM_CPU_EXCEPTION_TRIGGER hook before
- starting. For exception dispatching, pass PC instead of NULL_CIA.
- (decode_coproc): Use COP0_BADVADDR to store faulting address.
- * sim-main.h (COP0_BADVADDR): Define.
- (SIM_CORE_SIGNAL): Define hook to call mips_core_signal.
- (SIM_CPU_EXCEPTION*): Define hooks to call mips_cpu_exception*().
- (_sim_cpu): Add exc_* fields to store register value snapshots.
- * mips.igen (*): Replace memory-related SignalException* calls
- with references to SIM_CORE_SIGNAL hook.
-
- * dv-tx3904irc.c (tx3904irc_port_event): printf format warning
- fix.
- * sim-main.c (*): Minor warning cleanups.
-
-1998-12-24 Gavin Romig-Koch <gavin@cygnus.com>
-
- * m16.igen (DADDIU5): Correct type-o.
-
-Mon Dec 21 10:34:48 1998 Andrew Cagney <cagney@chook>
-
- * mips.igen (do_ddiv, do_ddivu): Pacify GCC. Update hi/lo via tmp
- variables.
-
-Wed Dec 16 18:20:28 1998 Andrew Cagney <cagney@chook>
-
- * Makefile.in (SIM_EXTRA_CFLAGS): No longer need to add .../newlib
- to include path.
- (interp.o): Add dependency on itable.h
- (oengine.c, gencode): Delete remaining references.
- (BUILT_SRC_FROM_GEN): Clean up.
-
-1998-12-16 Gavin Romig-Koch <gavin@cygnus.com>
-
- * vr4run.c: New.
- * Makefile.in (SIM_HACK_OBJ,HACK_OBJS,HACK_GEN_SRCS,libhack.a,
- tmp-hack,tmp-m32-hack,tmp-m16-hack,tmp-itable-hack,
- tmp-run-hack) : New.
- * m16.igen (LD,DADDIU,DADDUI5,DADJSP,DADDIUSP,DADDI,DADDU,DSUBU,
- DSLL,DSRL,DSRA,DSLLV,DSRAV,DMULT,DMULTU,DDIV,DDIVU,JALX32,JALX):
- Drop the "64" qualifier to get the HACK generator working.
- Use IMMEDIATE rather than IMMED. Use SHAMT rather than SHIFT.
- * mips.igen (do_daddiu,do_ddiv,do_divu): Remove the 64-only
- qualifier to get the hack generator working.
- (do_dsll,do_dsllv,do_dsra,do_dsrl,do_dsrlv): New.
- (DSLL): Use do_dsll.
- (DSLLV): Use do_dsllv.
- (DSRA): Use do_dsra.
- (DSRL): Use do_dsrl.
- (DSRLV): Use do_dsrlv.
- (BC1): Move *vr4100 to get the HACK generator working.
- (CxC1, DMxC1, MxC1,MACCU,MACCHI,MACCHIU): Rename to
- get the HACK generator working.
- (MACC) Rename to get the HACK generator working.
- (DMACC,MACCS,DMACCS): Add the 64.
-
-1998-12-12 Gavin Romig-Koch <gavin@cygnus.com>
-
- * mips.igen (BC1): Renamed to BC1a and BC1b to avoid conflicts.
- * sim-main.h (SizeFGR): Handle TARGET_ENABLE_FR.
-
-1998-12-11 Gavin Romig-Koch <gavin@cygnus.com>
-
- * mips/interp.c (DEBUG): Cleanups.
-
-1998-12-10 Frank Ch. Eigler <fche@cygnus.com>
-
- * dv-tx3904sio.c (tx3904sio_io_read_buffer): Endianness fixes.
- (tx3904sio_tickle): fflush after a stdout character output.
-
-1998-12-03 Frank Ch. Eigler <fche@cygnus.com>
-
- * interp.c (sim_close): Uninstall modules.
-
-Wed Nov 25 13:41:03 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * sim-main.h, interp.c (sim_monitor): Change to global
- function.
-
-Wed Nov 25 17:33:24 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure.in (vr4100): Only include vr4100 instructions in
- simulator.
- * configure: Re-generate.
- * m16.igen (*): Tag all mips16 instructions as also being vr4100.
-
-Mon Nov 23 18:20:36 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (SIM_CFLAGS): Do not define WITH_IGEN.
- * sim-main.h, sim-main.c, interp.c: Delete #if WITH_IGEN keeping
- true alternative.
-
- * configure.in (sim_default_gen, sim_use_gen): Replace with
- sim_gen.
- (--enable-sim-igen): Delete config option. Always using IGEN.
- * configure: Re-generate.
-
- * Makefile.in (gencode): Kill, kill, kill.
- * gencode.c: Ditto.
-
-Mon Nov 23 18:07:36 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure.in: Configure mips64vr4100-elf nee mips64vr41* as a 64
- bit mips16 igen simulator.
- * configure: Re-generate.
-
- * mips.igen (check_div_hilo, check_mult_hilo, check_mf_hilo): Mark
- as part of vr4100 ISA.
- * vr.igen: Mark all instructions as 64 bit only.
-
-Mon Nov 23 17:07:37 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (get_cell, sim_monitor, fetch_str, CoProcPresent):
- Pacify GCC.
-
-Mon Nov 23 13:23:40 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure.in: Configure mips-lsi-elf nee mips*lsi* as a
- mipsIII/mips16 igen simulator. Fix sim_gen VS sim_igen typos.
- * configure: Re-generate.
-
- * m16.igen (BREAK): Define breakpoint instruction.
- (JALX32): Mark instruction as mips16 and not r3900.
- * mips.igen (C.cond.fmt): Fix typo in instruction format.
-
- * sim-main.h (PENDING_FILL): Wrap C statements in do/while.
-
-Sat Nov 7 09:54:38 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gencode.c (build_instruction - BREAK): For MIPS16, handle BREAK
- insn as a debug breakpoint.
-
- * sim-main.h (PENDING_SLOT_BIT): Fix, was incorrectly defined as
- pending.slot_size.
- (PENDING_SCHED): Clean up trace statement.
- (PENDING_SCHED): Increment PENDING_IN and PENDING_TOTAL.
- (PENDING_FILL): Delay write by only one cycle.
- (PENDING_FILL): For FSRs, write fmt_uninterpreted to FPR_STATE.
-
- * sim-main.c (pending_tick): Clean up trace statements. Add trace
- of pending writes.
- (pending_tick): Fix sizes in switch statements, 4 & 8 instead of
- 32 & 64.
- (pending_tick): Move incrementing of index to FOR statement.
- (pending_tick): Only update PENDING_OUT after a write has occured.
-
- * configure.in: Add explicit mips-lsi-* target. Use gencode to
- build simulator.
- * configure: Re-generate.
-
- * interp.c (sim_engine_run OLD): Delete explicit call to
- PENDING_TICK. Now called via ENGINE_ISSUE_PREFIX_HOOK.
-
-Sat Oct 30 09:49:10 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * dv-tx3904cpu.c (deliver_tx3904cpu_interrupt): Add dummy
- interrupt level number to match changed SignalExceptionInterrupt
- macro.
-
-Fri Oct 9 18:02:25 1998 Doug Evans <devans@canuck.cygnus.com>
-
- * interp.c: #include "itable.h" if WITH_IGEN.
- (get_insn_name): New function.
- (sim_open): Initialize CPU_INSN_NAME,CPU_MAX_INSNS.
- * sim-main.h (MAX_INSNS,INSN_NAME): Delete.
-
-Mon Sep 14 12:36:44 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * configure: Rebuilt to inhale new common/aclocal.m4.
-
-Tue Sep 1 15:39:18 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * dv-tx3904sio.c: Include sim-assert.h.
-
-Tue Aug 25 12:49:46 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * dv-tx3904sio.c: New file: tx3904 serial I/O module.
- * configure.in: Add dv-tx3904sio, dv-sockser for tx39 target.
- Reorganize target-specific sim-hardware checks.
- * configure: rebuilt.
- * interp.c (sim_open): For tx39 target boards, set
- OPERATING_ENVIRONMENT, add tx3904sio devices.
- * tconfig.in: For tx39 target, set SIM_HANDLES_LMA for loading
- ROM executables. Install dv-sockser into sim-modules list.
-
- * dv-tx3904irc.c: Compiler warning clean-up.
- * dv-tx3904tmr.c: Compiler warning clean-up. Remove particularly
- frequent hw-trace messages.
-
-Fri Jul 31 18:14:16 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * vr.igen (MulAcc): Identify as a vr4100 specific function.
-
-Sat Jul 25 16:03:14 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (IGEN_INCLUDE): Add vr.igen.
-
- * vr.igen: New file.
- (MAC/MADD16, DMAC/DMADD16): Implement using code from gencode.c.
- * mips.igen: Define vr4100 model. Include vr.igen.
-Mon Jun 29 09:21:07 1998 Gavin Koch <gavin@cygnus.com>
-
- * mips.igen (check_mf_hilo): Correct check.
-
-Wed Jun 17 12:20:49 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * sim-main.h (interrupt_event): Add prototype.
-
- * dv-tx3904tmr.c (tx3904tmr_io_write_buffer): Delete unused
- register_ptr, register_value.
- (deliver_tx3904tmr_tick): Fix types passed to printf fmt.
-
- * sim-main.h (tracefh): Make extern.
-
-Tue Jun 16 14:39:00 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * dv-tx3904tmr.c: Deschedule timer event after dispatching.
- Reduce unnecessarily high timer event frequency.
- * dv-tx3904cpu.c: Ditto for interrupt event.
-
-Wed Jun 10 13:22:32 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * interp.c (decode_coproc): For TX39, add stub COP0 register #7,
- to allay warnings.
- (interrupt_event): Made non-static.
-
- * dv-tx3904tmr.c (deliver_tx3904tmr_tick): Correct accidental
- interchange of configuration values for external vs. internal
- clock dividers.
-
-Tue Jun 9 12:46:24 1998 Ian Carmichael <iancarm@cygnus.com>
-
- * mips.igen (BREAK): Moved code to here for
- simulator-reserved break instructions.
- * gencode.c (build_instruction): Ditto.
- * interp.c (signal_exception): Code moved from here. Non-
- reserved instructions now use exception vector, rather
- than halting sim.
- * sim-main.h: Moved magic constants to here.
-
-Tue Jun 9 12:29:50 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * dv-tx3904cpu.c (deliver_*_interrupt,*_port_event): Set the CAUSE
- register upon non-zero interrupt event level, clear upon zero
- event value.
- * dv-tx3904irc.c (*_port_event): Handle deactivated interrupt signal
- by passing zero event value.
- (*_io_{read,write}_buffer): Endianness fixes.
- * dv-tx3904tmr.c (*_io_{read,write}_buffer): Endianness fixes.
- (deliver_*_tick): Reduce sim event interval to 75% of count interval.
-
- * interp.c (sim_open): Added jmr3904pal board type that adds PAL-based
- serial I/O and timer module at base address 0xFFFF0000.
-
-Tue Jun 9 11:52:29 1998 Gavin Koch <gavin@cygnus.com>
-
- * mips.igen (SWC1) : Correct the handling of ReverseEndian
- and BigEndianCPU.
-
-Tue Jun 9 11:40:57 1998 Gavin Koch <gavin@cygnus.com>
-
- * configure.in (mips_fpu_bitsize) : Set this correctly for 32-bit mips
- parts.
- * configure: Update.
-
-Thu Jun 4 15:37:33 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * dv-tx3904tmr.c: New file - implements tx3904 timer.
- * dv-tx3904{irc,cpu}.c: Mild reformatting.
- * configure.in: Include tx3904tmr in hw_device list.
- * configure: Rebuilt.
- * interp.c (sim_open): Instantiate three timer instances.
- Fix address typo of tx3904irc instance.
-
-Tue Jun 2 15:48:02 1998 Ian Carmichael <iancarm@cygnus.com>
-
- * interp.c (signal_exception): SystemCall exception now uses
- the exception vector.
-
-Mon Jun 1 18:18:26 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * interp.c (decode_coproc): For TX39, add stub COP0 register #3,
- to allay warnings.
-
-Fri May 29 11:40:39 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure.in (sim_igen_filter): Match mips*tx39 not mipst*tx39.
-
-Mon May 25 20:47:45 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * dv-tx3904cpu.c, dv-tx3904irc.c: Rename *_callback to *_method.
-
- * dv-tx3904cpu.c, dv-tx3904irc.c: Include hw-main.h and
- sim-main.h. Declare a struct hw_descriptor instead of struct
- hw_device_descriptor.
-
-Mon May 25 12:41:38 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * mips.igen (do_store_left, do_load_left): Compute nr of left and
- right bits and then re-align left hand bytes to correct byte
- lanes. Fix incorrect computation in do_store_left when loading
- bytes from second word.
-
-Fri May 22 13:34:20 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure.in (SIM_AC_OPTION_HARDWARE): Only enable when tx3904.
- * interp.c (sim_open): Only create a device tree when HW is
- enabled.
-
- * dv-tx3904irc.c (tx3904irc_finish): Pacify GCC.
- * interp.c (signal_exception): Ditto.
-
-Thu May 21 14:24:11 1998 Gavin Koch <gavin@cygnus.com>
-
- * gencode.c: Mark BEGEZALL as LIKELY.
-
-Thu May 21 18:57:19 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * sim-main.h (ALU32_END): Sign extend 32 bit results.
- * mips.igen (ADD, SUB, ADDI, DADD, DSUB): Trace.
-
-Mon May 18 18:22:42 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * configure.in (SIM_AC_OPTION_HARDWARE): Added common hardware
- modules. Recognize TX39 target with "mips*tx39" pattern.
- * configure: Rebuilt.
- * sim-main.h (*): Added many macros defining bits in
- TX39 control registers.
- (SignalInterrupt): Send actual PC instead of NULL.
- (SignalNMIReset): New exception type.
- * interp.c (board): New variable for future use to identify
- a particular board being simulated.
- (mips_option_handler,mips_options): Added "--board" option.
- (interrupt_event): Send actual PC.
- (sim_open): Make memory layout conditional on board setting.
- (signal_exception): Initial implementation of hardware interrupt
- handling. Accept another break instruction variant for simulator
- exit.
- (decode_coproc): Implement RFE instruction for TX39.
- (mips.igen): Decode RFE instruction as such.
- * configure.in (tx3904cpu,tx3904irc): Added devices for tx3904.
- * interp.c: Define "jmr3904" and "jmr3904debug" board types and
- bbegin to implement memory map.
- * dv-tx3904cpu.c: New file.
- * dv-tx3904irc.c: New file.
-
-Wed May 13 14:40:11 1998 Gavin Koch <gavin@cygnus.com>
-
- * mips.igen (check_mt_hilo): Create a separate r3900 version.
-
-Wed May 13 14:11:46 1998 Gavin Koch <gavin@cygnus.com>
-
- * tx.igen (madd,maddu): Replace calls to check_op_hilo
- with calls to check_div_hilo.
-
-Wed May 13 09:59:27 1998 Gavin Koch <gavin@cygnus.com>
-
- * mips/mips.igen (check_op_hilo,check_mult_hilo,check_div_hilo):
- Replace check_op_hilo with check_mult_hilo and check_div_hilo.
- Add special r3900 version of do_mult_hilo.
- (do_dmultx,do_mult,do_multu): Replace calls to check_op_hilo
- with calls to check_mult_hilo.
- (do_ddiv,do_ddivu,do_div,do_divu): Replace calls to check_op_hilo
- with calls to check_div_hilo.
-
-Tue May 12 15:22:11 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure.in (SUBTARGET_R3900): Define for mipstx39 target.
- Document a replacement.
-
-Fri May 8 17:48:19 1998 Ian Carmichael <iancarm@cygnus.com>
-
- * interp.c (sim_monitor): Make mon_printf work.
-
-Wed May 6 19:42:19 1998 Doug Evans <devans@canuck.cygnus.com>
-
- * sim-main.h (INSN_NAME): New arg `cpu'.
-
-Tue Apr 28 18:33:31 1998 Geoffrey Noer <noer@cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Sun Apr 26 15:31:55 1998 Tom Tromey <tromey@creche>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
- * config.in: Ditto.
-
-Sun Apr 26 15:20:01 1998 Tom Tromey <tromey@cygnus.com>
-
- * acconfig.h: New file.
- * configure.in: Reverted change of Apr 24; use sinclude again.
-
-Fri Apr 24 14:16:40 1998 Tom Tromey <tromey@creche>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
- * config.in: Ditto.
-
-Fri Apr 24 11:19:20 1998 Tom Tromey <tromey@cygnus.com>
-
- * configure.in: Don't call sinclude.
-
-Fri Apr 24 11:35:01 1998 Andrew Cagney <cagney@chook.cygnus.com>
-
- * mips.igen (do_store_left): Pass 0 not NULL to store_memory.
-
-Tue Apr 21 11:59:50 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * mips.igen (ERET): Implement.
-
- * interp.c (decode_coproc): Return sign-extended EPC.
-
- * mips.igen (ANDI, LUI, MFC0): Add tracing code.
-
- * interp.c (signal_exception): Do not ignore Trap.
- (signal_exception): On TRAP, restart at exception address.
- (HALT_INSTRUCTION, HALT_INSTRUCTION_MASK): Define.
- (signal_exception): Update.
- (sim_open): Patch V_COMMON interrupt vector with an abort sequence
- so that TRAP instructions are caught.
-
-Mon Apr 20 11:26:55 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * sim-main.h (struct hilo_access, struct hilo_history): Define,
- contains HI/LO access history.
- (struct _sim_cpu): Make hiaccess and loaccess of type hilo_access.
- (HIACCESS, LOACCESS): Delete, replace with
- (HIHISTORY, LOHISTORY): New macros.
- (CHECKHILO): Delete all, moved to mips.igen
-
- * gencode.c (build_instruction): Do not generate checks for
- correct HI/LO register usage.
-
- * interp.c (old_engine_run): Delete checks for correct HI/LO
- register usage.
-
- * mips.igen (check_mt_hilo, check_mf_hilo, check_op_hilo,
- check_mf_cycles): New functions.
- (do_mfhi, do_mflo, "mthi", "mtlo", do_ddiv, do_ddivu, do_div,
- do_divu, domultx, do_mult, do_multu): Use.
-
- * tx.igen ("madd", "maddu"): Use.
-
-Wed Apr 15 18:31:54 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * mips.igen (DSRAV): Use function do_dsrav.
- (SRAV): Use new function do_srav.
-
- * m16.igen (BEQZ, BNEZ): Compare GPR[TRX] not GPR[RX].
- (B): Sign extend 11 bit immediate.
- (EXT-B*): Shift 16 bit immediate left by 1.
- (ADDIU*): Don't sign extend immediate value.
-
-Wed Apr 15 10:32:15 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * m16run.c (sim_engine_run): Restore CIA after handling an event.
-
- * sim-main.h (DELAY_SLOT, NULLIFY_NEXT_INSTRUCTION): For IGEN, use
- functions.
-
- * mips.igen (delayslot32, nullify_next_insn): New functions.
- (m16.igen): Always include.
- (do_*): Add more tracing.
-
- * m16.igen (delayslot16): Add NIA argument, could be called by a
- 32 bit MIPS16 instruction.
-
- * interp.c (ifetch16): Move function from here.
- * sim-main.c (ifetch16): To here.
-
- * sim-main.c (ifetch16, ifetch32): Update to match current
- implementations of LH, LW.
- (signal_exception): Don't print out incorrect hex value of illegal
- instruction.
-
-Wed Apr 15 00:17:25 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * m16run.c (sim_engine_run): Use IMEM16 and IMEM32 to fetch an
- instruction.
-
- * m16.igen: Implement MIPS16 instructions.
-
- * mips.igen (do_addiu, do_addu, do_and, do_daddiu, do_daddu,
- do_ddiv, do_ddivu, do_div, do_divu, do_dmultx, do_dmultu, do_srav,
- do_dsubu, do_mfhi, do_mflo, do_mult, do_multu, do_nor, do_or,
- do_sll, do_sllv, do_slt, do_slti, do_sltiu, do_sltu, do_sra,
- do_srl, do_srlv, do_subu, do_xor, do_xori): New functions. Move
- bodies of corresponding code from 32 bit insn to these. Also used
- by MIPS16 versions of functions.
-
- * sim-main.h (RAIDX, T8IDX, T8, SPIDX): Define.
- (IMEM16): Drop NR argument from macro.
-
-Sat Apr 4 22:39:50 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (SIM_OBJS): Add sim-main.o.
-
- * sim-main.h (address_translation, load_memory, store_memory,
- cache_op, sync_operation, prefetch, ifetch32, pending_tick): Mark
- as INLINE_SIM_MAIN.
- (pr_addr, pr_uword64): Declare.
- (sim-main.c): Include when H_REVEALS_MODULE_P.
-
- * interp.c (address_translation, load_memory, store_memory,
- cache_op, sync_operation, prefetch, ifetch32, pending_tick): Move
- from here.
- * sim-main.c: To here. Fix compilation problems.
-
- * configure.in: Enable inlining.
- * configure: Re-config.
-
-Sat Apr 4 20:36:25 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Fri Apr 3 04:32:35 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * mips.igen: Include tx.igen.
- * Makefile.in (IGEN_INCLUDE): Add tx.igen.
- * tx.igen: New file, contains MADD and MADDU.
-
- * interp.c (load_memory): When shifting bytes, use LOADDRMASK not
- the hardwired constant `7'.
- (store_memory): Ditto.
- (LOADDRMASK): Move definition to sim-main.h.
-
- mips.igen (MTC0): Enable for r3900.
- (ADDU): Add trace.
-
- mips.igen (do_load_byte): Delete.
- (do_load, do_store, do_load_left, do_load_write, do_store_left,
- do_store_right): New functions.
- (SW*, LW*, SD*, LD*, SH, LH, SB, LB): Use.
-
- configure.in: Let the tx39 use igen again.
- configure: Update.
-
-Thu Apr 2 10:59:39 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (sim_monitor): get_mem_info returns a 4 byte quantity,
- not an address sized quantity. Return zero for cache sizes.
-
-Wed Apr 1 23:47:53 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * mips.igen (r3900): r3900 does not support 64 bit integer
- operations.
-
-Mon Mar 30 14:46:05 1998 Gavin Koch <gavin@cygnus.com>
-
- * configure.in (mipstx39*-*-*): Use gencode simulator rather
- than igen one.
- * configure : Rebuild.
-
-Fri Mar 27 16:15:52 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Fri Mar 27 15:01:50 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (mips_option_handler): Iterate over MAX_NR_PROCESSORS.
-
-Wed Mar 25 16:44:27 1998 Ian Carmichael <iancarm@cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
- * config.in: Regenerated to track ../common/aclocal.m4 changes.
-
-Wed Mar 25 12:35:29 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Wed Mar 25 10:05:46 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (Max, Min): Comment out functions. Not yet used.
-
-Wed Mar 18 12:38:12 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Tue Mar 17 19:05:20 1998 Frank Ch. Eigler <fche@cygnus.com>
-
- * Makefile.in (MIPS_EXTRA_LIBS, SIM_EXTRA_LIBS): Added
- configurable settings for stand-alone simulator.
-
- * configure.in: Added X11 search, just in case.
-
- * configure: Regenerated.
-
-Wed Mar 11 14:09:10 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (sim_write, sim_read, load_memory, store_memory):
- Replace sim_core_*_map with read_map, write_map, exec_map resp.
-
-Tue Mar 3 13:58:43 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * sim-main.h (GETFCC): Return an unsigned value.
-
-Tue Mar 3 13:21:37 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * mips.igen (DIV): Fix check for -1 / MIN_INT.
- (DADD): Result destination is RD not RT.
-
-Fri Feb 27 13:49:49 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * sim-main.h (HIACCESS, LOACCESS): Always define.
-
- * mdmx.igen (Maxi, Mini): Rename Max, Min.
-
- * interp.c (sim_info): Delete.
-
-Fri Feb 27 18:41:01 1998 Doug Evans <devans@canuck.cygnus.com>
-
- * interp.c (DECLARE_OPTION_HANDLER): Use it.
- (mips_option_handler): New argument `cpu'.
- (sim_open): Update call to sim_add_option_table.
-
-Wed Feb 25 18:56:22 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * mips.igen (CxC1): Add tracing.
-
-Fri Feb 20 17:43:21 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * sim-main.h (Max, Min): Declare.
-
- * interp.c (Max, Min): New functions.
-
- * mips.igen (BC1): Add tracing.
-
-Thu Feb 19 14:50:00 1998 John Metzler <jmetzler@cygnus.com>
-
- * interp.c Added memory map for stack in vr4100
-
-Thu Feb 19 10:21:21 1998 Gavin Koch <gavin@cygnus.com>
-
- * interp.c (load_memory): Add missing "break"'s.
-
-Tue Feb 17 12:45:35 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (sim_store_register, sim_fetch_register): Pass in
- length parameter. Return -1.
-
-Tue Feb 10 11:57:40 1998 Ian Carmichael <iancarm@cygnus.com>
-
- * interp.c: Added hardware init hook, fixed warnings.
-
-Sat Feb 7 17:16:20 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (itable.h itable.c): Depend on SIM_@sim_gen@_ALL.
-
-Tue Feb 3 11:36:02 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (ifetch16): New function.
-
- * sim-main.h (IMEM32): Rename IMEM.
- (IMEM16_IMMED): Define.
- (IMEM16): Define.
- (DELAY_SLOT): Update.
-
- * m16run.c (sim_engine_run): New file.
-
- * m16.igen: All instructions except LB.
- (LB): Call do_load_byte.
- * mips.igen (do_load_byte): New function.
- (LB): Call do_load_byte.
-
- * mips.igen: Move spec for insn bit size and high bit from here.
- * Makefile.in (tmp-igen, tmp-m16): To here.
-
- * m16.dc: New file, decode mips16 instructions.
-
- * Makefile.in (SIM_NO_ALL): Define.
- (tmp-m16): Generate both 16 bit and 32 bit simulator engines.
-
-Tue Feb 3 11:28:00 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure.in (mips_fpu_bitsize): For tx39, restrict floating
- point unit to 32 bit registers.
- * configure: Re-generate.
-
-Sun Feb 1 15:47:14 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure.in (sim_use_gen): Make IGEN the default simulator
- generator for generic 32 and 64 bit mips targets.
- * configure: Re-generate.
-
-Sun Feb 1 16:52:37 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * sim-main.h (SizeFGR): Determine from floating-point and not gpr
- bitsize.
-
- * interp.c (sim_fetch_register, sim_store_register): Read/write
- FGR from correct location.
- (sim_open): Set size of FGR's according to
- WITH_TARGET_FLOATING_POINT_BITSIZE.
-
- * sim-main.h (FGR): Store floating point registers in a separate
- array.
-
-Sun Feb 1 16:47:51 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Tue Feb 3 00:10:50 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (ColdReset): Call PENDING_INVALIDATE.
-
- * sim-main.h (ENGINE_ISSUE_PREFIX_HOOK): Call PENDING_TICK.
-
- * interp.c (pending_tick): New function. Deliver pending writes.
-
- * sim-main.h (PENDING_FILL, PENDING_TICK, PENDING_SCHED,
- PENDING_BIT, PENDING_INVALIDATE): Re-write pipeline code so that
- it can handle mixed sized quantites and single bits.
-
-Mon Feb 2 17:43:15 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (oengine.h): Do not include when building with IGEN.
- (sim_open): Replace GPRLEN by WITH_TARGET_WORD_BITSIZE.
- (sim_info): Ditto for PROCESSOR_64BIT.
- (sim_monitor): Replace ut_reg with unsigned_word.
- (*): Ditto for t_reg.
- (LOADDRMASK): Define.
- (sim_open): Remove defunct check that host FP is IEEE compliant,
- using software to emulate floating point.
- (value_fpr, ...): Always compile, was conditional on HASFPU.
-
-Sun Feb 1 11:15:29 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * sim-main.h (sim_state): Make the cpu array MAX_NR_PROCESSORS in
- size.
-
- * interp.c (SD, CPU): Define.
- (mips_option_handler): Set flags in each CPU.
- (interrupt_event): Assume CPU 0 is the one being iterrupted.
- (sim_close): Do not clear STATE, deleted anyway.
- (sim_write, sim_read): Assume CPU zero's vm should be used for
- data transfers.
- (sim_create_inferior): Set the PC for all processors.
- (sim_monitor, store_word, load_word, mips16_entry): Add cpu
- argument.
- (mips16_entry): Pass correct nr of args to store_word, load_word.
- (ColdReset): Cold reset all cpu's.
- (signal_exception): Pass cpu to sim_monitor & mips16_entry.
- (sim_monitor, load_memory, store_memory, signal_exception): Use
- `CPU' instead of STATE_CPU.
-
-
- * sim-main.h: Replace uses of STATE_CPU with CPU. Replace sd with
- SD or CPU_.
-
- * sim-main.h (signal_exception): Add sim_cpu arg.
- (SignalException*): Pass both SD and CPU to signal_exception.
- * interp.c (signal_exception): Update.
-
- * sim-main.h (value_fpr, store_fpr, dotrace, ifetch32), interp.c:
- Ditto
- (sync_operation, prefetch, cache_op, store_memory, load_memory,
- address_translation): Ditto
- (decode_coproc, cop_lw, cop_ld, cop_sw, cop_sd): Ditto.
-
-Sat Jan 31 18:15:41 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Sat Jan 31 14:49:24 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (sim_engine_run): Add `nr_cpus' argument.
-
- * mips.igen (model): Map processor names onto BFD name.
-
- * sim-main.h (CPU_CIA): Delete.
- (SET_CIA, GET_CIA): Define
-
-Wed Jan 21 16:16:27 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * sim-main.h (GPR_SET): Define, used by igen when zeroing a
- regiser.
-
- * configure.in (default_endian): Configure a big-endian simulator
- by default.
- * configure: Re-generate.
-
-Mon Jan 19 22:26:29 1998 Doug Evans <devans@seba>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Mon Jan 5 20:38:54 1998 Mark Alexander <marka@cygnus.com>
-
- * interp.c (sim_monitor): Handle Densan monitor outbyte
- and inbyte functions.
-
-1997-12-29 Felix Lee <flee@cygnus.com>
-
- * interp.c (sim_engine_run): msvc cpp barfs on #if (a==b!=c).
-
-Wed Dec 17 14:48:20 1997 Jeffrey A Law (law@cygnus.com)
-
- * Makefile.in (tmp-igen): Arrange for $zero to always be
- reset to zero after every instruction.
-
-Mon Dec 15 23:17:11 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
- * config.in: Ditto.
-
-Wed Dec 10 17:10:45 1997 Jeffrey A Law (law@cygnus.com)
-
- * mips.igen (MSUB): Fix to work like MADD.
- * gencode.c (MSUB): Similarly.
-
-Thu Dec 4 09:21:05 1997 Doug Evans <devans@canuck.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Wed Nov 26 11:00:23 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * mips.igen (LWC1): Correct assembler - lwc1 not swc1.
-
-Sun Nov 23 01:45:20 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * sim-main.h (sim-fpu.h): Include.
-
- * interp.c (convert, SquareRoot, Recip, Divide, Multiply, Sub,
- Add, Negate, AbsoluteValue, Equal, Less, Infinity, NaN): Rewrite
- using host independant sim_fpu module.
-
-Thu Nov 20 19:56:22 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (signal_exception): Report internal errors with SIGABRT
- not SIGQUIT.
-
- * sim-main.h (C0_CONFIG): New register.
- (signal.h): No longer include.
-
- * interp.c (decode_coproc): Allow access C0_CONFIG to register.
-
-Tue Nov 18 15:33:48 1997 Doug Evans <devans@canuck.cygnus.com>
-
- * Makefile.in (SIM_OBJS): Use $(SIM_NEW_COMMON_OBJS).
-
-Fri Nov 14 11:56:48 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * mips.igen: Tag vr5000 instructions.
- (ANDI): Was missing mipsIV model, fix assembler syntax.
- (do_c_cond_fmt): New function.
- (C.cond.fmt): Handle mips I-III which do not support CC field
- separatly.
- (bc1): Handle mips IV which do not have a delaed FCC separatly.
- (SDR): Mask paddr when BigEndianMem, not the converse as specified
- in IV3.2 spec.
- (DMULT, DMULTU): Force use of hosts 64bit multiplication. Handle
- vr5000 which saves LO in a GPR separatly.
-
- * configure.in (enable-sim-igen): For vr5000, select vr5000
- specific instructions.
- * configure: Re-generate.
-
-Wed Nov 12 14:42:52 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (SIM_OBJS): Add sim-fpu module.
-
- * interp.c (store_fpr), sim-main.h: Add separate fmt_uninterpreted_32 and
- fmt_uninterpreted_64 bit cases to switch. Convert to
- fmt_formatted,
-
- * sim-main.h (ENGINE_ISSUE_PREFIX_HOOK): Define,
-
- * mips.igen (SWR): Mask paddr when BigEndianMem, not the converse
- as specified in IV3.2 spec.
- (MTC1, DMTC1): Call StoreFPR to store the GPR in the FPR.
-
-Tue Nov 11 12:38:23 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * mips.igen: Delay slot branches add OFFSET to NIA not CIA.
- (MFC0, MTC0, SWC1, LWC1, SDC1, LDC1): Implement.
- (MTC1, MFC1, DMTC1, DMFC1, CFC1, CTC1): Implement separate non
- PENDING_FILL versions of instructions. Simplify.
- (X): New function.
- (MULT, MULTU): Implement separate RD==0 and RD!=0 versions of
- instructions.
- (BEQZ, ..., SLT, SLTI, TLT, TLE, TLI, ...): Explicitly cast GPR to
- a signed value.
- (MTHI, MFHI): Disable code checking HI-LO.
-
- * sim-main.h (dotrace,tracefh), interp.c: Make dotrace & tracefh
- global.
- (NULLIFY_NEXT_INSTRUCTION): Call dotrace.
-
-Thu Nov 6 16:36:35 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gencode.c (build_mips16_operands): Replace IPC with cia.
-
- * interp.c (sim_monitor, signal_exception, cache_op, store_fpr,
- value_fpr, cop_ld, cop_lw, cop_sw, cop_sd, decode_coproc): Replace
- IPC to `cia'.
- (UndefinedResult): Replace function with macro/function
- combination.
- (sim_engine_run): Don't save PC in IPC.
-
- * sim-main.h (IPC): Delete.
-
-
- * interp.c (signal_exception, store_word, load_word,
- address_translation, load_memory, store_memory, cache_op,
- prefetch, sync_operation, ifetch, value_fpr, store_fpr, convert,
- cop_lw, cop_ld, cop_sw, cop_sd, decode_coproc, sim_monitor): Add
- current instruction address - cia - argument.
- (sim_read, sim_write): Call address_translation directly.
- (sim_engine_run): Rename variable vaddr to cia.
- (signal_exception): Pass cia to sim_monitor
-
- * sim-main.h (SignalException, LoadWord, StoreWord, CacheOp,
- Prefetch, SyncOperation, ValueFPR, StoreFPR, Convert, COP_LW,
- COP_LD, COP_SW, COP_SD, DecodeCoproc): Update.
-
- * sim-main.h (SignalExceptionSimulatorFault): Delete definition.
- * interp.c (sim_open): Replace SignalExceptionSimulatorFault with
- SIM_ASSERT.
-
- * interp.c (signal_exception): Pass restart address to
- sim_engine_restart.
-
- * Makefile.in (semantics.o, engine.o, support.o, itable.o,
- idecode.o): Add dependency.
-
- * sim-main.h (SIM_ENGINE_HALT_HOOK, SIM_ENGINE_RESUME_HOOK):
- Delete definitions
- (DELAY_SLOT): Update NIA not PC with branch address.
- (NULLIFY_NEXT_INSTRUCTION): Set NIA to instruction after next.
-
- * mips.igen: Use CIA not PC in branch calculations.
- (illegal): Call SignalException.
- (BEQ, ADDIU): Fix assembler.
-
-Wed Nov 5 12:19:56 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * m16.igen (JALX): Was missing.
-
- * configure.in (enable-sim-igen): New configuration option.
- * configure: Re-generate.
-
- * sim-main.h (MAX_INSNS, INSN_NAME): Define.
-
- * interp.c (load_memory, store_memory): Delete parameter RAW.
- (sim_read, sim_write): Use sim_core_{read,write}_buffer directly
- bypassing {load,store}_memory.
-
- * sim-main.h (ByteSwapMem): Delete definition.
-
- * Makefile.in (SIM_OBJS): Add sim-memopt module.
-
- * interp.c (sim_do_command, sim_commands): Delete mips specific
- commands. Handled by module sim-options.
-
- * sim-main.h (SIM_HAVE_FLATMEM): Undefine, use sim-core.o module.
- (WITH_MODULO_MEMORY): Define.
-
- * interp.c (sim_info): Delete code printing memory size.
-
- * interp.c (mips_size): Nee sim_size, delete function.
- (power2): Delete.
- (monitor, monitor_base, monitor_size): Delete global variables.
- (sim_open, sim_close): Delete code creating monitor and other
- memory regions. Use sim-memopts module, via sim_do_commandf, to
- manage memory regions.
- (load_memory, store_memory): Use sim-core for memory model.
-
- * interp.c (address_translation): Delete all memory map code
- except line forcing 32 bit addresses.
-
-Wed Nov 5 11:21:11 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * sim-main.h (WITH_TRACE): Delete definition. Enables common
- trace options.
-
- * interp.c (logfh, logfile): Delete globals.
- (sim_open, sim_close): Delete code opening & closing log file.
- (mips_option_handler): Delete -l and -n options.
- (OPTION mips_options): Ditto.
-
- * interp.c (OPTION mips_options): Rename option trace to dinero.
- (mips_option_handler): Update.
-
-Wed Nov 5 09:35:59 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (fetch_str): New function.
- (sim_monitor): Rewrite using sim_read & sim_write.
- (sim_open): Check magic number.
- (sim_open): Write monitor vectors into memory using sim_write.
- (MONITOR_BASE, MONITOR_SIZE, MEM_SIZE): Define.
- (sim_read, sim_write): Simplify - transfer data one byte at a
- time.
- (load_memory, store_memory): Clarify meaning of parameter RAW.
-
- * sim-main.h (isHOST): Defete definition.
- (isTARGET): Mark as depreciated.
- (address_translation): Delete parameter HOST.
-
- * interp.c (address_translation): Delete parameter HOST.
-
-Wed Oct 29 11:13:56 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * mips.igen:
-
- * Makefile.in (IGEN_INCLUDE): Files included by mips.igen.
- (tmp-igen, tmp-m16): Depend on IGEN_INCLUDE.
-
-Tue Oct 28 11:06:47 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * mips.igen: Add model filter field to records.
-
-Mon Oct 27 17:53:59 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (SIM_NO_CFLAGS): Define. Define WITH_IGEN=0.
-
- interp.c (sim_engine_run): Do not compile function sim_engine_run
- when WITH_IGEN == 1.
-
- * configure.in (sim_igen_flags, sim_m16_flags): Set according to
- target architecture.
-
- Makefile.in (tmp-igen, tmp-m16): Drop -F and -M options to
- igen. Replace with configuration variables sim_igen_flags /
- sim_m16_flags.
-
- * m16.igen: New file. Copy mips16 insns here.
- * mips.igen: From here.
-
-Mon Oct 27 13:53:59 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (SIM_NO_OBJ): Define, move SIM_M16_OBJ, SIM_IGEN_OBJ
- to top.
- (tmp-igen, tmp-m16): Pass -I srcdir to igen.
-
-Sat Oct 25 16:51:40 1997 Gavin Koch <gavin@cygnus.com>
-
- * gencode.c (build_instruction): Follow sim_write's lead in using
- BigEndianMem instead of !ByteSwapMem.
-
-Fri Oct 24 17:41:49 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure.in (sim_gen): Dependent on target, select type of
- generator. Always select old style generator.
-
- configure: Re-generate.
-
- Makefile.in (tmp-igen, tmp-m16, clean-m16, clean-igen): New
- targets.
- (SIM_M16_CFLAGS, SIM_M16_ALL, SIM_M16_OBJ, BUILT_SRC_FROM_M16,
- SIM_IGEN_CFLAGS, SIM_IGEN_ALL, SIM_IGEN_OBJ, BUILT_SRC_FROM_IGEN,
- IGEN_TRACE, IGEN_INSN, IGEN_DC): Define
- (SIM_EXTRA_CFLAGS, SIM_EXTRA_ALL, SIM_OBJS): Add member
- SIM_@sim_gen@_*, set by autoconf.
-
-Wed Oct 22 12:52:06 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * sim-main.h (NULLIFY_NEXT_INSTRUCTION, DELAY_SLOT): Define.
-
- * interp.c (ColdReset): Remove #ifdef HASFPU, check
- CURRENT_FLOATING_POINT instead.
-
- * interp.c (ifetch32): New function. Fetch 32 bit instruction.
- (address_translation): Raise exception InstructionFetch when
- translation fails and isINSTRUCTION.
-
- * interp.c (sim_open, sim_write, sim_monitor, store_word,
- sim_engine_run): Change type of of vaddr and paddr to
- address_word.
- (address_translation, prefetch, load_memory, store_memory,
- cache_op): Change type of vAddr and pAddr to address_word.
-
- * gencode.c (build_instruction): Change type of vaddr and paddr to
- address_word.
-
-Mon Oct 20 15:29:04 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * sim-main.h (ALU64_END, ALU32_END): Use ALU*_OVERFLOW_RESULT
- macro to obtain result of ALU op.
-
-Tue Oct 21 17:39:14 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (sim_info): Call profile_print.
-
-Mon Oct 20 13:31:20 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (SIM_OBJS): Add sim-profile.o module.
-
- * sim-main.h (WITH_PROFILE): Do not define, defined in
- common/sim-config.h. Use sim-profile module.
- (simPROFILE): Delete defintion.
-
- * interp.c (PROFILE): Delete definition.
- (mips_option_handler): Delete 'p', 'y' and 'x' profile options.
- (sim_close): Delete code writing profile histogram.
- (mips_set_profile, mips_set_profile_size, writeout16, writeout32):
- Delete.
- (sim_engine_run): Delete code profiling the PC.
-
-Mon Oct 20 13:31:20 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * sim-main.h (SIGNEXTEND): Force type of result to unsigned_word.
-
- * interp.c (sim_monitor): Make register pointers of type
- unsigned_word*.
-
- * sim-main.h: Make registers of type unsigned_word not
- signed_word.
-
-Thu Oct 16 10:31:39 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (sync_operation): Rename from SyncOperation, make
- global, add SD argument.
- (prefetch): Rename from Prefetch, make global, add SD argument.
- (decode_coproc): Make global.
-
- * sim-main.h (SyncOperation, DecodeCoproc, Pefetch): Define.
-
- * gencode.c (build_instruction): Generate DecodeCoproc not
- decode_coproc calls.
-
- * interp.c (SETFCC, GETFCC, PREVCOC1): Move to sim-main.h
- (SizeFGR): Move to sim-main.h
- (simHALTEX, simHALTIN, simTRACE, simPROFILE, simDELAYSLOT,
- simSIGINT, simJALDELAYSLOT): Move to sim-main.h
- (FP_FLAGS, FP_ENABLE, FP_CAUSE, IR, UF, OF, DZ, IO, UO): Move to
- sim-main.h.
- (FP_FS, FP_MASK_RM, FP_SH_RM, FP_RM_NEAREST, FP_RM_TOPINF,
- FP_RM_TOMINF, GETRM): Move to sim-main.h.
- (Uncached, CachedNoncoherent, CachedCoherent, Cached,
- isINSTRUCTION, ..., AccessLength_BYTE, ...): Move to sim-main.h.
- (UserMode, BigEndianMem, ByteSwapMem, ReverseEndian,
- BigEndianCPU, status_KSU_mask, ...). Moved to sim-main.h
-
- * sim-main.h (ALU32_END, ALU64_END): Define. When overflow raise
- exception.
- (sim-alu.h): Include.
- (NULLIFY_NIA, NULL_CIA, CPU_CIA): Define.
- (sim_cia): Typedef to instruction_address.
-
-Thu Oct 16 10:31:41 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (interp.o): Rename generated file engine.c to
- oengine.c.
-
- * interp.c: Update.
-
-Thu Oct 16 10:31:40 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gencode.c (build_instruction): Use FPR_STATE not fpr_state.
-
-Thu Oct 16 10:31:39 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gencode.c (build_instruction): For "FPSQRT", output correct
- number of arguments to Recip.
-
-Tue Oct 14 17:38:18 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (interp.o): Depends on sim-main.h
-
- * interp.c (mips16_entry, ColdReset,dotrace): Add SD argument. Use GPR not registers.
-
- * sim-main.h (sim_cpu): Add registers, register_widths, fpr_state,
- ipc, dspc, pending_*, hiaccess, loaccess, state, dsstate fields.
- (REGISTERS, REGISTER_WIDTHS, FPR_STATE, IPC, DSPC, PENDING_*,
- STATE, DSSTATE): Define
- (GPR, FGRIDX, ..): Define.
-
- * interp.c (registers, register_widths, fpr_state, ipc, dspc,
- pending_*, hiaccess, loaccess, state, dsstate): Delete globals.
- (GPR, FGRIDX, ...): Delete macros.
-
- * interp.c: Update names to match defines from sim-main.h
-
-Tue Oct 14 15:11:45 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (sim_monitor): Add SD argument.
- (sim_warning): Delete. Replace calls with calls to
- sim_io_eprintf.
- (sim_error): Delete. Replace calls with sim_io_error.
- (open_trace, writeout32, writeout16, getnum): Add SD argument.
- (mips_set_profile): Rename from sim_set_profile. Add SD argument.
- (mips_set_profile_size): Rename from sim_set_profile_size. Add SD
- argument.
- (mips_size): Rename from sim_size. Add SD argument.
-
- * interp.c (simulator): Delete global variable.
- (callback): Delete global variable.
- (mips_option_handler, sim_open, sim_write, sim_read,
- sim_store_register, sim_fetch_register, sim_info, sim_do_command,
- sim_size,sim_monitor): Use sim_io_* not callback->*.
- (sim_open): ZALLOC simulator struct.
- (PROFILE): Do not define.
-
-Tue Oct 14 13:35:48 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (sim_open), support.h: Replace CHECKSIM macro found in
- support.h with corresponding code.
-
- * sim-main.h (word64, uword64), support.h: Move definition to
- sim-main.h.
- (WORD64LO, WORD64HI, SET64LO, SET64HI, WORD64, UWORD64): Ditto.
-
- * support.h: Delete
- * Makefile.in: Update dependencies
- * interp.c: Do not include.
-
-Tue Oct 14 13:35:48 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (address_translation, load_memory, store_memory,
- cache_op): Rename to from AddressTranslation et.al., make global,
- add SD argument
-
- * sim-main.h (AddressTranslation, LoadMemory, StoreMemory,
- CacheOp): Define.
-
- * interp.c (SignalException): Rename to signal_exception, make
- global.
-
- * interp.c (Interrupt, ...): Move definitions to sim-main.h.
-
- * sim-main.h (SignalException, SignalExceptionInterrupt,
- SignalExceptionInstructionFetch, SignalExceptionAddressStore,
- SignalExceptionAddressLoad, SignalExceptionSimulatorFault,
- SignalExceptionIntegerOverflow, SignalExceptionCoProcessorUnusable):
- Define.
-
- * interp.c, support.h: Use.
-
-Tue Oct 14 13:19:20 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (ValueFPR, StoreFPR), sim-main.h: Make global, rename
- to value_fpr / store_fpr. Add SD argument.
- (NaN, Infinity, Less, Equal, AbsoluteValue, Negate, Add, Sub,
- Multiply, Divide, Recip, SquareRoot, Convert): Make global.
-
- * sim-main.h (ValueFPR, StoreFPR): Define.
-
-Tue Oct 14 13:06:55 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (sim_engine_run): Check consistency between configure
- WITH_TARGET_WORD_BITSIZE and WITH_FLOATING_POINT and gensim GPRLEN
- and HASFPU.
-
- * configure.in (mips_bitsize): Configure WITH_TARGET_WORD_BITSIZE.
- (mips_fpu): Configure WITH_FLOATING_POINT.
- (mips_endian): Configure WITH_TARGET_ENDIAN.
- * configure: Update.
-
-Fri Oct 3 09:28:00 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Mon Sep 29 14:45:00 1997 Bob Manson <manson@charmed.cygnus.com>
-
- * configure: Regenerated.
-
-Fri Sep 26 12:48:18 1997 Mark Alexander <marka@cygnus.com>
-
- * interp.c: Allow Debug, DEPC, and EPC registers to be examined in GDB.
-
-Thu Sep 25 11:15:22 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gencode.c (print_igen_insn_models): Assume certain architectures
- include all mips* instructions.
- (print_igen_insn_format): Use data_size==-1 as marker for MIPS16
- instruction.
-
- * Makefile.in (tmp.igen): Add target. Generate igen input from
- gencode file.
-
- * gencode.c (FEATURE_IGEN): Define.
- (main): Add --igen option. Generate output in igen format.
- (process_instructions): Format output according to igen option.
- (print_igen_insn_format): New function.
- (print_igen_insn_models): New function.
- (process_instructions): Only issue warnings and ignore
- instructions when no FEATURE_IGEN.
-
-Wed Sep 24 17:38:57 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (COP_SD, COP_LD): Add UNUSED to pacify GCC for some
- MIPS targets.
-
-Tue Sep 23 11:04:38 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Tue Sep 23 10:19:51 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (SIM_ALIGNMENT, SIM_ENDIAN, SIM_HOSTENDIAN,
- SIM_RESERVED_BITS): Delete, moved to common.
- (SIM_EXTRA_CFLAGS): Update.
-
-Mon Sep 22 11:46:20 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure.in: Configure non-strict memory alignment.
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Fri Sep 19 17:45:25 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Sat Sep 20 14:07:28 1997 Gavin Koch <gavin@cygnus.com>
-
- * gencode.c (SDBBP,DERET): Added (3900) insns.
- (RFE): Turn on for 3900.
- * interp.c (DebugBreakPoint,DEPC,Debug,Debug_*): Added.
- (dsstate): Made global.
- (SUBTARGET_R3900): Added.
- (CANCELDELAYSLOT): New.
- (SignalException): Ignore SystemCall rather than ignore and
- terminate. Add DebugBreakPoint handling.
- (decode_coproc): New insns RFE, DERET; and new registers Debug
- and DEPC protected by SUBTARGET_R3900.
- (sim_engine_run): Use CANCELDELAYSLOT rather than clearing
- bits explicitly.
- * Makefile.in,configure.in: Add mips subtarget option.
- * configure: Update.
-
-Fri Sep 19 09:33:27 1997 Gavin Koch <gavin@cygnus.com>
-
- * gencode.c: Add r3900 (tx39).
-
-
-Tue Sep 16 15:52:04 1997 Gavin Koch <gavin@cygnus.com>
-
- * gencode.c (build_instruction): Don't need to subtract 4 for
- JALR, just 2.
-
-Tue Sep 16 11:32:28 1997 Gavin Koch <gavin@cygnus.com>
-
- * interp.c: Correct some HASFPU problems.
-
-Mon Sep 15 17:36:15 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Fri Sep 12 12:01:39 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (mips_options): Fix samples option short form, should
- be `x'.
-
-Thu Sep 11 09:35:29 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (sim_info): Enable info code. Was just returning.
-
-Tue Sep 9 17:30:57 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (decode_coproc): Clarify warning about unsuported MTC0,
- MFC0.
-
-Tue Sep 9 16:28:28 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * gencode.c (build_instruction): Use SIGNED64 for 64 bit
- constants.
- (build_instruction): Ditto for LL.
-
-Thu Sep 4 17:21:23 1997 Doug Evans <dje@seba>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Wed Aug 27 18:13:22 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
- * config.in: Ditto.
-
-Wed Aug 27 14:12:27 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (sim_open): Add call to sim_analyze_program, update
- call to sim_config.
-
-Tue Aug 26 10:40:07 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (sim_kill): Delete.
- (sim_create_inferior): Add ABFD argument. Set PC from same.
- (sim_load): Move code initializing trap handlers from here.
- (sim_open): To here.
- (sim_load): Delete, use sim-hload.c.
-
- * Makefile.in (SIM_OBJS): Add sim-hload.o module.
-
-Mon Aug 25 17:50:22 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
- * config.in: Ditto.
-
-Mon Aug 25 15:59:48 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (sim_open): Add ABFD argument.
- (sim_load): Move call to sim_config from here.
- (sim_open): To here. Check return status.
-
-Fri Jul 25 15:00:45 1997 Gavin Koch <gavin@cygnus.com>
-
- * gencode.c (build_instruction): Two arg MADD should
- not assign result to $0.
-
-Thu Jun 26 12:13:17 1997 Angela Marie Thomas (angela@cygnus.com)
-
- * sim/mips/configure: Change default_sim_endian to 0 (bi-endian)
- * sim/mips/configure.in: Regenerate.
-
-Wed Jul 9 10:29:21 1997 Andrew Cagney <cagney@critters.cygnus.com>
-
- * interp.c (SUB_REG_UW, SUB_REG_SW, SUB_REG_*): Use more explicit
- signed8, unsigned8 et.al. types.
-
- * interp.c (SUB_REG_FETCH): Handle both little and big endian
- hosts when selecting subreg.
-
-Wed Jul 2 11:54:10 1997 Jeffrey A Law (law@cygnus.com)
-
- * interp.c (sim_engine_run): Reset the ZERO register to zero
- regardless of FEATURE_WARN_ZERO.
- * gencode.c (FEATURE_WARNINGS): Remove FEATURE_WARN_ZERO.
-
-Wed Jun 4 10:43:14 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (decode_coproc): Implement MTC0 N, CAUSE.
- (SignalException): For BreakPoints ignore any mode bits and just
- save the PC.
- (SignalException): Always set the CAUSE register.
-
-Tue Jun 3 05:00:33 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (SignalException): Clear the simDELAYSLOT flag when an
- exception has been taken.
-
- * interp.c: Implement the ERET and mt/f sr instructions.
-
-Sat May 31 00:44:16 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (SignalException): Don't bother restarting an
- interrupt.
-
-Fri May 30 23:41:48 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (SignalException): Really take an interrupt.
- (interrupt_event): Only deliver interrupts when enabled.
-
-Tue May 27 20:08:06 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (sim_info): Only print info when verbose.
- (sim_info) Use sim_io_printf for output.
-
-Tue May 27 14:22:23 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (CoProcPresent): Add UNUSED attribute - not used by all
- mips architectures.
-
-Tue May 27 14:22:23 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (sim_do_command): Check for common commands if a
- simulator specific command fails.
-
-Thu May 22 09:32:03 1997 Gavin Koch <gavin@cygnus.com>
-
- * interp.c (sim_engine_run): ifdef out uses of simSTOP, simSTEP
- and simBE when DEBUG is defined.
-
-Wed May 21 09:08:10 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (interrupt_event): New function. Pass exception event
- onto exception handler.
-
- * configure.in: Check for stdlib.h.
- * configure: Regenerate.
-
- * gencode.c (build_instruction): Add UNUSED attribute to tempS
- variable declaration.
- (build_instruction): Initialize memval1.
- (build_instruction): Add UNUSED attribute to byte, bigend,
- reverse.
- (build_operands): Ditto.
-
- * interp.c: Fix GCC warnings.
- (sim_get_quit_code): Delete.
-
- * configure.in: Add INLINE, ENDIAN, HOSTENDIAN and WARNINGS.
- * Makefile.in: Ditto.
- * configure: Re-generate.
-
- * Makefile.in (SIM_OBJS): Add sim-watch.o module.
-
-Tue May 20 15:08:56 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (mips_option_handler): New function parse argumes using
- sim-options.
- (myname): Replace with STATE_MY_NAME.
- (sim_open): Delete check for host endianness - performed by
- sim_config.
- (simHOSTBE, simBE): Delete, replaced by sim-endian flags.
- (sim_open): Move much of the initialization from here.
- (sim_load): To here. After the image has been loaded and
- endianness set.
- (sim_open): Move ColdReset from here.
- (sim_create_inferior): To here.
- (sim_open): Make FP check less dependant on host endianness.
-
- * Makefile.in (SIM_RUN_OBJS): Set to nrun.o - use new version or
- run.
- * interp.c (sim_set_callbacks): Delete.
-
- * interp.c (membank, membank_base, membank_size): Replace with
- STATE_MEMORY, STATE_MEM_SIZE, STATE_MEM_BASE.
- (sim_open): Remove call to callback->init. gdb/run do this.
-
- * interp.c: Update
-
- * sim-main.h (SIM_HAVE_FLATMEM): Define.
-
- * interp.c (big_endian_p): Delete, replaced by
- current_target_byte_order.
-
-Tue May 20 13:55:00 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (host_read_long, host_read_word, host_swap_word,
- host_swap_long): Delete. Using common sim-endian.
- (sim_fetch_register, sim_store_register): Use H2T.
- (pipeline_ticks): Delete. Handled by sim-events.
- (sim_info): Update.
- (sim_engine_run): Update.
-
-Tue May 20 13:42:03 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (sim_stop_reason): Move code determining simEXCEPTION
- reason from here.
- (SignalException): To here. Signal using sim_engine_halt.
- (sim_stop_reason): Delete, moved to common.
-
-Tue May 20 10:19:48 1997 Andrew Cagney <cagney@b2.cygnus.com>
-
- * interp.c (sim_open): Add callback argument.
- (sim_set_callbacks): Delete SIM_DESC argument.
- (sim_size): Ditto.
-
-Mon May 19 18:20:38 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * Makefile.in (SIM_OBJS): Add common modules.
-
- * interp.c (sim_set_callbacks): Also set SD callback.
- (set_endianness, xfer_*, swap_*): Delete.
- (host_read_word, host_read_long, host_swap_word, host_swap_long):
- Change to functions using sim-endian macros.
- (control_c, sim_stop): Delete, use common version.
- (simulate): Convert into.
- (sim_engine_run): This function.
- (sim_resume): Delete.
-
- * interp.c (simulation): New variable - the simulator object.
- (sim_kind): Delete global - merged into simulation.
- (sim_load): Cleanup. Move PC assignment from here.
- (sim_create_inferior): To here.
-
- * sim-main.h: New file.
- * interp.c (sim-main.h): Include.
-
-Thu Apr 24 00:39:51 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Wed Apr 23 17:32:19 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * tconfig.in (SIM_HAVE_BIENDIAN): Define.
-
-Mon Apr 21 17:16:13 1997 Gavin Koch <gavin@cygnus.com>
-
- * gencode.c (build_instruction): DIV instructions: check
- for division by zero and integer overflow before using
- host's division operation.
-
-Thu Apr 17 03:18:14 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * Makefile.in (SIM_OBJS): Add sim-load.o.
- * interp.c: #include bfd.h.
- (target_byte_order): Delete.
- (sim_kind, myname, big_endian_p): New static locals.
- (sim_open): Set sim_kind, myname. Move call to set_endianness to
- after argument parsing. Recognize -E arg, set endianness accordingly.
- (sim_load): Return SIM_RC. New arg abfd. Call sim_load_file to
- load file into simulator. Set PC from bfd.
- (sim_create_inferior): Return SIM_RC. Delete arg start_address.
- (set_endianness): Use big_endian_p instead of target_byte_order.
-
-Wed Apr 16 17:55:37 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * interp.c (sim_size): Delete prototype - conflicts with
- definition in remote-sim.h. Correct definition.
-
-Mon Apr 7 15:45:02 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
- * config.in: Ditto.
-
-Wed Apr 2 15:06:28 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * interp.c (sim_open): New arg `kind'.
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Wed Apr 2 14:34:19 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Tue Mar 25 11:38:22 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * interp.c (sim_open): Set optind to 0 before calling getopt.
-
-Wed Mar 19 01:14:00 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Mon Mar 17 10:52:59 1997 Gavin Koch <gavin@cetus.cygnus.com>
-
- * interp.c : Replace uses of pr_addr with pr_uword64
- where the bit length is always 64 independent of SIM_ADDR.
- (pr_uword64) : added.
-
-Mon Mar 17 15:10:07 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
-
- * configure: Re-generate.
-
-Fri Mar 14 10:34:11 1997 Michael Meissner <meissner@cygnus.com>
-
- * configure: Regenerate to track ../common/aclocal.m4 changes.
-
-Thu Mar 13 12:51:36 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * interp.c (sim_open): New SIM_DESC result. Argument is now
- in argv form.
- (other sim_*): New SIM_DESC argument.
-
-Mon Feb 24 22:47:14 1997 Dawn Perchik <dawn@cygnus.com>
-
- * interp.c: Fix printing of addresses for non-64-bit targets.
- (pr_addr): Add function to print address based on size.
-
-Wed Feb 19 14:42:09 1997 Mark Alexander <marka@cygnus.com>
-
- * interp.c (simopen): Add support for LSI MiniRISC PMON vectors.
-
-Thu Feb 13 14:08:30 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gencode.c (build_mips16_operands): Correct computation of base
- address for extended PC relative instruction.
-
-Thu Feb 6 17:16:15 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * interp.c (mips16_entry): Add support for floating point cases.
- (SignalException): Pass floating point cases to mips16_entry.
- (ValueFPR): Don't restrict fmt_single and fmt_word to even
- registers.
- (StoreFPR): Likewise. Also, don't clobber fpr + 1 for fmt_single
- or fmt_word.
- (COP_LW): Pass fmt_word rather than fmt_uninterpreted to StoreFPR,
- and then set the state to fmt_uninterpreted.
- (COP_SW): Temporarily set the state to fmt_word while calling
- ValueFPR.
-
-Tue Feb 4 16:48:25 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * gencode.c (build_instruction): The high order may be set in the
- comparison flags at any ISA level, not just ISA 4.
-
-Tue Feb 4 13:33:30 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * Makefile.in (@COMMON_MAKEFILE_FRAG): Use
- COMMON_{PRE,POST}_CONFIG_FRAG instead.
- * configure.in: sinclude ../common/aclocal.m4.
- * configure: Regenerated.
-
-Fri Jan 31 11:11:45 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Rebuild after change to aclocal.m4.
-
-Thu Jan 23 11:46:23 1997 Stu Grossman (grossman@critters.cygnus.com)
-
- * configure configure.in Makefile.in: Update to new configure
- scheme which is more compatible with WinGDB builds.
- * configure.in: Improve comment on how to run autoconf.
- * configure: Re-run autoconf to get new ../common/aclocal.m4.
- * Makefile.in: Use autoconf substitution to install common
- makefile fragment.
-
-Wed Jan 8 12:39:03 1997 Jim Wilson <wilson@cygnus.com>
-
- * gencode.c (build_instruction): Use BigEndianCPU instead of
- ByteSwapMem.
-
-Thu Jan 02 22:23:04 1997 Mark Alexander <marka@cygnus.com>
-
- * interp.c (sim_monitor): Make output to stdout visible in
- wingdb's I/O log window.
-
-Tue Dec 31 07:04:00 1996 Mark Alexander <marka@cygnus.com>
-
- * support.h: Undo previous change to SIGTRAP
- and SIGQUIT values.
-
-Mon Dec 30 17:36:06 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * interp.c (store_word, load_word): New static functions.
- (mips16_entry): New static function.
- (SignalException): Look for mips16 entry and exit instructions.
- (simulate): Use the correct index when setting fpr_state after
- doing a pending move.
-
-Sun Dec 29 09:37:18 1996 Mark Alexander <marka@cygnus.com>
-
- * interp.c: Fix byte-swapping code throughout to work on
- both little- and big-endian hosts.
-
-Sun Dec 29 09:18:32 1996 Mark Alexander <marka@cygnus.com>
-
- * support.h: Make definitions of SIGTRAP and SIGQUIT consistent
- with gdb/config/i386/xm-windows.h.
-
-Fri Dec 27 22:48:51 1996 Mark Alexander <marka@cygnus.com>
-
- * gencode.c (build_instruction): Work around MSVC++ code gen bug
- that messes up arithmetic shifts.
-
-Fri Dec 20 11:04:05 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * support.h: Use _WIN32 instead of __WIN32__. Also add defs for
- SIGTRAP and SIGQUIT for _WIN32.
-
-Thu Dec 19 14:07:27 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * gencode.c (build_instruction) [MUL]: Cast operands to word64, to
- force a 64 bit multiplication.
- (build_instruction) [OR]: In mips16 mode, don't do anything if the
- destination register is 0, since that is the default mips16 nop
- instruction.
-
-Mon Dec 16 14:59:38 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * gencode.c (MIPS16_DECODE): SWRASP is I8, not RI.
- (build_endian_shift): Don't check proc64.
- (build_instruction): Always set memval to uword64. Cast op2 to
- uword64 when shifting it left in memory instructions. Always use
- the same code for stores--don't special case proc64.
-
- * gencode.c (build_mips16_operands): Fix base PC value for PC
- relative operands.
- (build_instruction): Call JALDELAYSLOT rather than DELAYSLOT for a
- jal instruction.
- * interp.c (simJALDELAYSLOT): Define.
- (JALDELAYSLOT): Define.
- (INDELAYSLOT, INJALDELAYSLOT): Define.
- (simulate): Clear simJALDELAYSLOT when simDELAYSLOT is cleared.
-
-Tue Dec 24 22:11:20 1996 Angela Marie Thomas (angela@cygnus.com)
-
- * interp.c (sim_open): add flush_cache as a PMON routine
- (sim_monitor): handle flush_cache by ignoring it
-
-Wed Dec 11 13:53:51 1996 Jim Wilson <wilson@cygnus.com>
-
- * gencode.c (build_instruction): Use !ByteSwapMem instead of
- BigEndianMem.
- * interp.c (CONFIG, config_EP_{mask,shift,D,DxxDxx, config_BE): Delete.
- (BigEndianMem): Rename to ByteSwapMem and change sense.
- (BigEndianCPU, sim_write, LoadMemory, StoreMemory): Change
- BigEndianMem references to !ByteSwapMem.
- (set_endianness): New function, with prototype.
- (sim_open): Call set_endianness.
- (sim_info): Use simBE instead of BigEndianMem.
- (xfer_direct_word, xfer_direct_long, swap_direct_word,
- swap_direct_long, xfer_big_word, xfer_big_long, xfer_little_word,
- xfer_little_long, swap_word, swap_long): Delete unnecessary MSC_VER
- ifdefs, keeping the prototype declaration.
- (swap_word): Rewrite correctly.
- (ColdReset): Delete references to CONFIG. Delete endianness related
- code; moved to set_endianness.
-
-Tue Dec 10 11:32:04 1996 Jim Wilson <wilson@cygnus.com>
-
- * gencode.c (build_instruction, case JUMP): Truncate PC to 32 bits.
- * interp.c (CHECKHILO): Define away.
- (simSIGINT): New macro.
- (membank_size): Increase from 1MB to 2MB.
- (control_c): New function.
- (sim_resume): Rename parameter signal to signal_number. Add local
- variable prev. Call signal before and after simulate.
- (sim_stop_reason): Add simSIGINT support.
- (sim_warning, sim_error, dotrace, SignalException): Define as stdarg
- functions always.
- (sim_warning): Delete call to SignalException. Do call printf_filtered
- if logfh is NULL.
- (AddressTranslation): Add #ifdef DEBUG around debugging message and
- a call to sim_warning.
-
-Wed Nov 27 11:53:50 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * gencode.c (process_instructions): If ! proc64, skip DOUBLEWORD
- 16 bit instructions.
-
-Tue Nov 26 11:53:12 1996 Ian Lance Taylor <ian@cygnus.com>
-
- Add support for mips16 (16 bit MIPS implementation):
- * gencode.c (inst_type): Add mips16 instruction encoding types.
- (GETDATASIZEINSN): Define.
- (MIPS_DECODE): Add REG flag to dsllv, dsrav, and dsrlv. Add
- jalx. Add LEFT flag to mfhi and mflo. Add RIGHT flag to mthi and
- mtlo.
- (MIPS16_DECODE): New table, for mips16 instructions.
- (bitmap_val): New static function.
- (struct mips16_op): Define.
- (mips16_op_table): New table, for mips16 operands.
- (build_mips16_operands): New static function.
- (process_instructions): If PC is odd, decode a mips16
- instruction. Break out instruction handling into new
- build_instruction function.
- (build_instruction): New static function, broken out of
- process_instructions. Check modifiers rather than flags for SHIFT
- bit count and m[ft]{hi,lo} direction.
- (usage): Pass program name to fprintf.
- (main): Remove unused variable this_option_optind. Change
- ``*loptarg++'' to ``loptarg++''.
- (my_strtoul): Parenthesize && within ||.
- * interp.c (LoadMemory): Accept a halfword pAddr if vAddr is odd.
- (simulate): If PC is odd, fetch a 16 bit instruction, and
- increment PC by 2 rather than 4.
- * configure.in: Add case for mips16*-*-*.
- * configure: Rebuild.
-
-Fri Nov 22 08:49:36 1996 Mark Alexander <marka@cygnus.com>
-
- * interp.c: Allow -t to enable tracing in standalone simulator.
- Fix garbage output in trace file and error messages.
-
-Wed Nov 20 01:54:37 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * Makefile.in: Delete stuff moved to ../common/Make-common.in.
- (SIM_{OBJS,EXTRA_CFLAGS,EXTRA_CLEAN}): Define.
- * configure.in: Simplify using macros in ../common/aclocal.m4.
- * configure: Regenerated.
- * tconfig.in: New file.
-
-Tue Nov 12 13:34:00 1996 Dawn Perchik <dawn@cygnus.com>
-
- * interp.c: Fix bugs in 64-bit port.
- Use ansi function declarations for msvc compiler.
- Initialize and test file pointer in trace code.
- Prevent duplicate definition of LAST_EMED_REGNUM.
-
-Tue Oct 15 11:07:06 1996 Mark Alexander <marka@cygnus.com>
-
- * interp.c (xfer_big_long): Prevent unwanted sign extension.
-
-Thu Sep 26 17:35:00 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * interp.c (SignalException): Check for explicit terminating
- breakpoint value.
- * gencode.c: Pass instruction value through SignalException()
- calls for Trap, Breakpoint and Syscall.
-
-Thu Sep 26 11:35:17 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * interp.c (SquareRoot): Add HAVE_SQRT check to ensure sqrt() is
- only used on those hosts that provide it.
- * configure.in: Add sqrt() to list of functions to be checked for.
- * config.in: Re-generated.
- * configure: Re-generated.
-
-Fri Sep 20 15:47:12 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * gencode.c (process_instructions): Call build_endian_shift when
- expanding STORE RIGHT, to fix swr.
- * support.h (SIGNEXTEND): If the sign bit is not set, explicitly
- clear the high bits.
- * interp.c (Convert): Fix fmt_single to fmt_long to not truncate.
- Fix float to int conversions to produce signed values.
-
-Thu Sep 19 15:34:17 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * gencode.c (MIPS_DECODE): Set UNSIGNED for multu instruction.
- (process_instructions): Correct handling of nor instruction.
- Correct shift count for 32 bit shift instructions. Correct sign
- extension for arithmetic shifts to not shift the number of bits in
- the type. Fix 64 bit multiply high word calculation. Fix 32 bit
- unsigned multiply. Fix ldxc1 and friends to use coprocessor 1.
- Fix madd.
- * interp.c (CHECKHILO): Don't set HIACCESS, LOACCESS, or HLPC.
- It's OK to have a mult follow a mult. What's not OK is to have a
- mult follow an mfhi.
- (Convert): Comment out incorrect rounding code.
-
-Mon Sep 16 11:38:16 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * interp.c (sim_monitor): Improved monitor printf
- simulation. Tidied up simulator warnings, and added "--log" option
- for directing warning message output.
- * gencode.c: Use sim_warning() rather than WARNING macro.
-
-Thu Aug 22 15:03:12 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (gencode): Depend upon gencode.o, getopt.o, and
- getopt1.o, rather than on gencode.c. Link objects together.
- Don't link against -liberty.
- (gencode.o, getopt.o, getopt1.o): New targets.
- * gencode.c: Include <ctype.h> and "ansidecl.h".
- (AND): Undefine after including "ansidecl.h".
- (ULONG_MAX): Define if not defined.
- (OP_*): Don't define macros; now defined in opcode/mips.h.
- (main): Call my_strtoul rather than strtoul.
- (my_strtoul): New static function.
-
-Wed Jul 17 18:12:38 1996 Stu Grossman (grossman@critters.cygnus.com)
-
- * gencode.c (process_instructions): Generate word64 and uword64
- instead of `long long' and `unsigned long long' data types.
- * interp.c: #include sysdep.h to get signals, and define default
- for SIGBUS.
- * (Convert): Work around for Visual-C++ compiler bug with type
- conversion.
- * support.h: Make things compile under Visual-C++ by using
- __int64 instead of `long long'. Change many refs to long long
- into word64/uword64 typedefs.
-
-Wed Jun 26 12:24:55 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
-
- * Makefile.in (bindir, libdir, datadir, mandir, infodir, includedir,
- INSTALL_PROGRAM, INSTALL_DATA): Use autoconf-set values.
- (docdir): Removed.
- * configure.in (AC_PREREQ): autoconf 2.5 or higher.
- (AC_PROG_INSTALL): Added.
- (AC_PROG_CC): Moved to before configure.host call.
- * configure: Rebuilt.
-
-Wed Jun 5 08:28:13 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * configure.in: Define @SIMCONF@ depending on mips target.
- * configure: Rebuild.
- * Makefile.in (run): Add @SIMCONF@ to control simulator
- construction.
- * gencode.c: Change LOADDRMASK to 64bit memory model only.
- * interp.c: Remove some debugging, provide more detailed error
- messages, update memory accesses to use LOADDRMASK.
-
-Mon Jun 3 11:55:03 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Add calls to AC_CONFIG_HEADER, AC_CHECK_HEADERS,
- AC_CHECK_LIB, and AC_CHECK_FUNCS. Change AC_OUTPUT to set
- stamp-h.
- * configure: Rebuild.
- * config.in: New file, generated by autoheader.
- * interp.c: Include "config.h". Include <stdlib.h>, <string.h>,
- and <strings.h> if they exist. Replace #ifdef sun with #ifdef
- HAVE_ANINT and HAVE_AINT, as appropriate.
- * Makefile.in (run): Use @LIBS@ rather than -lm.
- (interp.o): Depend upon config.h.
- (Makefile): Just rebuild Makefile.
- (clean): Remove stamp-h.
- (mostlyclean): Make the same as clean, not as distclean.
- (config.h, stamp-h): New targets.
-
-Fri May 10 00:41:17 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * interp.c (ColdReset): Fix boolean test. Make all simulator
- globals static.
-
-Wed May 8 15:12:58 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * interp.c (xfer_direct_word, xfer_direct_long,
- swap_direct_word, swap_direct_long, xfer_big_word,
- xfer_big_long, xfer_little_word, xfer_little_long,
- swap_word,swap_long): Added.
- * interp.c (ColdReset): Provide function indirection to
- host<->simulated_target transfer routines.
- * interp.c (sim_store_register, sim_fetch_register): Updated to
- make use of indirected transfer routines.
-
-Fri Apr 19 15:48:24 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * gencode.c (process_instructions): Ensure FP ABS instruction
- recognised.
- * interp.c (AbsoluteValue): Add routine. Also provide simple PMON
- system call support.
-
-Wed Apr 10 09:51:38 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * interp.c (sim_do_command): Complain if callback structure not
- initialised.
-
-Thu Mar 28 13:50:51 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * interp.c (Convert): Provide round-to-nearest and round-to-zero
- support for Sun hosts.
- * Makefile.in (gencode): Ensure the host compiler and libraries
- used for cross-hosted build.
-
-Wed Mar 27 14:42:12 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * interp.c, gencode.c: Some more (TODO) tidying.
-
-Thu Mar 7 11:19:33 1996 James G. Smith <jsmith@cygnus.co.uk>
-
- * gencode.c, interp.c: Replaced explicit long long references with
- WORD64HI, WORD64LO, SET64HI and SET64LO macro calls.
- * support.h (SET64LO, SET64HI): Macros added.
-
-Wed Feb 21 12:16:21 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Regenerate with autoconf 2.7.
-
-Tue Jan 30 08:48:18 1996 Fred Fish <fnf@cygnus.com>
-
- * interp.c (LoadMemory): Enclose text following #endif in /* */.
- * support.h: Remove superfluous "1" from #if.
- * support.h (CHECKSIM): Remove stray 'a' at end of line.
-
-Mon Dec 4 11:44:40 1995 Jamie Smith <jsmith@cygnus.com>
-
- * interp.c (StoreFPR): Control UndefinedResult() call on
- WARN_RESULT manifest.
-
-Fri Dec 1 16:37:19 1995 James G. Smith <jsmith@cygnus.co.uk>
-
- * gencode.c: Tidied instruction decoding, and added FP instruction
- support.
-
- * interp.c: Added dineroIII, and BSD profiling support. Also
- run-time FP handling.
-
-Sun Oct 22 00:57:18 1995 James G. Smith <jsmith@pasanda.cygnus.co.uk>
-
- * Changelog, Makefile.in, README.Cygnus, configure, configure.in,
- gencode.c, interp.c, support.h: created.
diff --git a/sim/mips/Makefile.in b/sim/mips/Makefile.in
deleted file mode 100644
index 9c3e838..0000000
--- a/sim/mips/Makefile.in
+++ /dev/null
@@ -1,400 +0,0 @@
-# Makefile template for Configure for the MIPS simulator.
-# Written by Cygnus Support.
-
-SHELL = @SHELL@
-
-## COMMON_PRE_CONFIG_FRAG
-
-srcdir=@srcdir@
-srcroot=$(srcdir)/../../
-
-# Object files created by various simulator generators.
-
-
-SIM_IGEN_OBJ = \
- support.o \
- itable.o \
- semantics.o \
- idecode.o \
- icache.o \
- @mips_igen_engine@ \
- irun.o \
-
-
-SIM_M16_OBJ = \
- m16_support.o \
- m16_semantics.o \
- m16_idecode.o \
- m16_icache.o \
- \
- m32_support.o \
- m32_semantics.o \
- m32_idecode.o \
- m32_icache.o \
- \
- itable.o \
- m16run.o \
-
-SIM_MULTI_OBJ = itable.o @sim_multi_obj@
-
-MIPS_EXTRA_OBJS = @mips_extra_objs@
-MIPS_EXTRA_LIBS = @mips_extra_libs@
-
-SIM_OBJS = \
- $(SIM_@sim_gen@_OBJ) \
- $(SIM_NEW_COMMON_OBJS) \
- $(MIPS_EXTRA_OBJS) \
- cp1.o \
- interp.o \
- mdmx.o \
- dsp.o \
- sim-main.o \
- sim-hload.o \
- sim-engine.o \
- sim-stop.o \
- sim-resume.o \
- sim-reason.o \
-
-
-# List of flags to always pass to $(CC).
-SIM_SUBTARGET=@SIM_SUBTARGET@
-SIM_EXTRA_CFLAGS = $(SIM_SUBTARGET)
-
-SIM_EXTRA_CLEAN = clean-extra
-SIM_EXTRA_DISTCLEAN = distclean-extra
-
-SIM_EXTRA_ALL = $(SIM_@sim_gen@_ALL)
-
-SIM_EXTRA_LIBS = $(MIPS_EXTRA_LIBS)
-
-# List of main object files for `run'.
-SIM_RUN_OBJS = nrun.o
-
-
-
-## COMMON_POST_CONFIG_FRAG
-
-interp.o: $(srcdir)/interp.c config.h sim-main.h itable.h
-cp1.o: $(srcdir)/cp1.c config.h sim-main.h
-
-mdmx.o: $(srcdir)/mdmx.c $(srcdir)/sim-main.h
-
-dsp.o: $(srcdir)/dsp.c $(srcdir)/sim-main.h
-
-multi-run.o: multi-include.h tmp-mach-multi
-
-../igen/igen:
- cd ../igen && $(MAKE)
-
-IGEN_TRACE= # -G omit-line-numbers # -G trace-rule-selection -G trace-rule-rejection -G trace-entries # -G trace-all
-IGEN_INSN=$(srcdir)/mips.igen
-IGEN_DC=$(srcdir)/mips.dc
-M16_DC=$(srcdir)/m16.dc
-IGEN_INCLUDE=\
- $(srcdir)/m16.igen \
- $(srcdir)/mdmx.igen \
- $(srcdir)/mips3d.igen \
- $(srcdir)/sb1.igen \
- $(srcdir)/tx.igen \
- $(srcdir)/vr.igen \
- $(srcdir)/dsp.igen \
-
-# NB: Since these can be built by a number of generators, care
-# must be taken to ensure that they are only dependant on
-# one of those generators.
-BUILT_SRC_FROM_GEN = \
- itable.h \
- itable.c \
-
-SIM_IGEN_ALL = tmp-igen
-SIM_M16_ALL = tmp-m16
-SIM_MULTI_ALL = tmp-multi
-
-$(BUILT_SRC_FROM_GEN): $(SIM_@sim_gen@_ALL)
-
-
-
-BUILT_SRC_FROM_IGEN = \
- icache.h \
- icache.c \
- idecode.h \
- idecode.c \
- semantics.h \
- semantics.c \
- model.h \
- model.c \
- support.h \
- support.c \
- engine.h \
- engine.c \
- irun.c \
-
-$(BUILT_SRC_FROM_IGEN): tmp-igen
-
-tmp-igen: $(IGEN_INSN) $(IGEN_DC) ../igen/igen $(IGEN_INCLUDE)
- cd ../igen && $(MAKE)
- ../igen/igen \
- $(IGEN_TRACE) \
- -I $(srcdir) \
- -Werror \
- -Wnodiscard \
- @sim_igen_flags@ \
- -G gen-direct-access \
- -G gen-zero-r0 \
- -B 32 \
- -H 31 \
- -i $(IGEN_INSN) \
- -o $(IGEN_DC) \
- -x \
- -n icache.h -hc tmp-icache.h \
- -n icache.c -c tmp-icache.c \
- -n semantics.h -hs tmp-semantics.h \
- -n semantics.c -s tmp-semantics.c \
- -n idecode.h -hd tmp-idecode.h \
- -n idecode.c -d tmp-idecode.c \
- -n model.h -hm tmp-model.h \
- -n model.c -m tmp-model.c \
- -n support.h -hf tmp-support.h \
- -n support.c -f tmp-support.c \
- -n itable.h -ht tmp-itable.h \
- -n itable.c -t tmp-itable.c \
- -n engine.h -he tmp-engine.h \
- -n engine.c -e tmp-engine.c \
- -n irun.c -r tmp-irun.c
- $(SHELL) $(srcdir)/../../move-if-change tmp-icache.h icache.h
- $(SHELL) $(srcdir)/../../move-if-change tmp-icache.c icache.c
- $(SHELL) $(srcdir)/../../move-if-change tmp-idecode.h idecode.h
- $(SHELL) $(srcdir)/../../move-if-change tmp-idecode.c idecode.c
- $(SHELL) $(srcdir)/../../move-if-change tmp-semantics.h semantics.h
- $(SHELL) $(srcdir)/../../move-if-change tmp-semantics.c semantics.c
- $(SHELL) $(srcdir)/../../move-if-change tmp-model.h model.h
- $(SHELL) $(srcdir)/../../move-if-change tmp-model.c model.c
- $(SHELL) $(srcdir)/../../move-if-change tmp-support.h support.h
- $(SHELL) $(srcdir)/../../move-if-change tmp-support.c support.c
- $(SHELL) $(srcdir)/../../move-if-change tmp-itable.h itable.h
- $(SHELL) $(srcdir)/../../move-if-change tmp-itable.c itable.c
- $(SHELL) $(srcdir)/../../move-if-change tmp-engine.h engine.h
- $(SHELL) $(srcdir)/../../move-if-change tmp-engine.c engine.c
- $(SHELL) $(srcdir)/../../move-if-change tmp-irun.c irun.c
- touch tmp-igen
-
-semantics.o: sim-main.h semantics.c $(SIM_EXTRA_DEPS)
-engine.o: sim-main.h engine.c $(SIM_EXTRA_DEPS)
-support.o: sim-main.h support.c $(SIM_EXTRA_DEPS)
-idecode.o: sim-main.h idecode.c $(SIM_EXTRA_DEPS)
-itable.o: sim-main.h itable.c $(SIM_EXTRA_DEPS)
-
-
-
-
-BUILT_SRC_FROM_M16 = \
- m16_icache.h \
- m16_icache.c \
- m16_idecode.h \
- m16_idecode.c \
- m16_semantics.h \
- m16_semantics.c \
- m16_model.h \
- m16_model.c \
- m16_support.h \
- m16_support.c \
- \
- m32_icache.h \
- m32_icache.c \
- m32_idecode.h \
- m32_idecode.c \
- m32_semantics.h \
- m32_semantics.c \
- m32_model.h \
- m32_model.c \
- m32_support.h \
- m32_support.c \
-
-$(BUILT_SRC_FROM_M16): tmp-m16
-
-tmp-m16: $(IGEN_INSN) $(IGEN_DC) ../igen/igen $(IGEN_INCLUDE)
- cd ../igen && $(MAKE)
- ../igen/igen \
- $(IGEN_TRACE) \
- -I $(srcdir) \
- -Werror \
- -Wnodiscard \
- @sim_m16_flags@ \
- -G gen-direct-access \
- -G gen-zero-r0 \
- -B 16 \
- -H 15 \
- -i $(IGEN_INSN) \
- -o $(M16_DC) \
- -P m16_ \
- -x \
- -n m16_icache.h -hc tmp-icache.h \
- -n m16_icache.c -c tmp-icache.c \
- -n m16_semantics.h -hs tmp-semantics.h \
- -n m16_semantics.c -s tmp-semantics.c \
- -n m16_idecode.h -hd tmp-idecode.h \
- -n m16_idecode.c -d tmp-idecode.c \
- -n m16_model.h -hm tmp-model.h \
- -n m16_model.c -m tmp-model.c \
- -n m16_support.h -hf tmp-support.h \
- -n m16_support.c -f tmp-support.c \
- #
- $(SHELL) $(srcdir)/../../move-if-change tmp-icache.h m16_icache.h
- $(SHELL) $(srcdir)/../../move-if-change tmp-icache.c m16_icache.c
- $(SHELL) $(srcdir)/../../move-if-change tmp-idecode.h m16_idecode.h
- $(SHELL) $(srcdir)/../../move-if-change tmp-idecode.c m16_idecode.c
- $(SHELL) $(srcdir)/../../move-if-change tmp-semantics.h m16_semantics.h
- $(SHELL) $(srcdir)/../../move-if-change tmp-semantics.c m16_semantics.c
- $(SHELL) $(srcdir)/../../move-if-change tmp-model.h m16_model.h
- $(SHELL) $(srcdir)/../../move-if-change tmp-model.c m16_model.c
- $(SHELL) $(srcdir)/../../move-if-change tmp-support.h m16_support.h
- $(SHELL) $(srcdir)/../../move-if-change tmp-support.c m16_support.c
- ../igen/igen \
- $(IGEN_TRACE) \
- -I $(srcdir) \
- -Werror \
- -Wnodiscard \
- @sim_igen_flags@ \
- -G gen-direct-access \
- -G gen-zero-r0 \
- -B 32 \
- -H 31 \
- -i $(IGEN_INSN) \
- -o $(IGEN_DC) \
- -P m32_ \
- -x \
- -n m32_icache.h -hc tmp-icache.h \
- -n m32_icache.c -c tmp-icache.c \
- -n m32_semantics.h -hs tmp-semantics.h \
- -n m32_semantics.c -s tmp-semantics.c \
- -n m32_idecode.h -hd tmp-idecode.h \
- -n m32_idecode.c -d tmp-idecode.c \
- -n m32_model.h -hm tmp-model.h \
- -n m32_model.c -m tmp-model.c \
- -n m32_support.h -hf tmp-support.h \
- -n m32_support.c -f tmp-support.c \
- #
- $(SHELL) $(srcdir)/../../move-if-change tmp-icache.h m32_icache.h
- $(SHELL) $(srcdir)/../../move-if-change tmp-icache.c m32_icache.c
- $(SHELL) $(srcdir)/../../move-if-change tmp-idecode.h m32_idecode.h
- $(SHELL) $(srcdir)/../../move-if-change tmp-idecode.c m32_idecode.c
- $(SHELL) $(srcdir)/../../move-if-change tmp-semantics.h m32_semantics.h
- $(SHELL) $(srcdir)/../../move-if-change tmp-semantics.c m32_semantics.c
- $(SHELL) $(srcdir)/../../move-if-change tmp-model.h m32_model.h
- $(SHELL) $(srcdir)/../../move-if-change tmp-model.c m32_model.c
- $(SHELL) $(srcdir)/../../move-if-change tmp-support.h m32_support.h
- $(SHELL) $(srcdir)/../../move-if-change tmp-support.c m32_support.c
- ../igen/igen \
- $(IGEN_TRACE) \
- -I $(srcdir) \
- -Werror \
- -Wnodiscard \
- -Wnowidth \
- @sim_igen_flags@ @sim_m16_flags@ \
- -G gen-direct-access \
- -G gen-zero-r0 \
- -i $(IGEN_INSN) \
- -n itable.h -ht tmp-itable.h \
- -n itable.c -t tmp-itable.c \
- #
- $(SHELL) $(srcdir)/../../move-if-change tmp-itable.h itable.h
- $(SHELL) $(srcdir)/../../move-if-change tmp-itable.c itable.c
- touch tmp-m16
-
-
-BUILT_SRC_FROM_MULTI = @sim_multi_src@
-SIM_MULTI_IGEN_CONFIGS = @sim_multi_igen_configs@
-
-$(BUILT_SRC_FROM_MULTI): tmp-multi
-tmp-multi: tmp-mach-multi tmp-itable-multi tmp-run-multi targ-vals.h
-tmp-mach-multi: $(IGEN_INSN) $(IGEN_DC) ../igen/igen $(IGEN_INCLUDE)
- for t in $(SIM_MULTI_IGEN_CONFIGS); do \
- p=`echo $${t} | sed -e 's/:.*//'` ; \
- m=`echo $${t} | sed -e 's/.*:\(.*\):.*/\1/'` ; \
- f=`echo $${t} | sed -e 's/.*://'` ; \
- case $${p} in \
- m16*) e="-B 16 -H 15 -o $(M16_DC) -F 16" ;; \
- *) e="-B 32 -H 31 -o $(IGEN_DC) -F $${f}" ;; \
- esac; \
- ../igen/igen \
- $(IGEN_TRACE) \
- $${e} \
- -I $(srcdir) \
- -Werror \
- -Wnodiscard \
- -N 0 \
- -M $${m} \
- -G gen-direct-access \
- -G gen-zero-r0 \
- -i $(IGEN_INSN) \
- -P $${p}_ \
- -x \
- -n $${p}_icache.h -hc tmp-icache.h \
- -n $${p}_icache.c -c tmp-icache.c \
- -n $${p}_semantics.h -hs tmp-semantics.h \
- -n $${p}_semantics.c -s tmp-semantics.c \
- -n $${p}_idecode.h -hd tmp-idecode.h \
- -n $${p}_idecode.c -d tmp-idecode.c \
- -n $${p}_model.h -hm tmp-model.h \
- -n $${p}_model.c -m tmp-model.c \
- -n $${p}_support.h -hf tmp-support.h \
- -n $${p}_support.c -f tmp-support.c \
- -n $${p}_engine.h -he tmp-engine.h \
- -n $${p}_engine.c -e tmp-engine.c \
- ; \
- $(SHELL) $(srcdir)/../../move-if-change tmp-icache.h $${p}_icache.h ; \
- $(SHELL) $(srcdir)/../../move-if-change tmp-icache.c $${p}_icache.c ; \
- $(SHELL) $(srcdir)/../../move-if-change tmp-idecode.h $${p}_idecode.h ; \
- $(SHELL) $(srcdir)/../../move-if-change tmp-idecode.c $${p}_idecode.c ; \
- $(SHELL) $(srcdir)/../../move-if-change tmp-semantics.h $${p}_semantics.h ; \
- $(SHELL) $(srcdir)/../../move-if-change tmp-semantics.c $${p}_semantics.c ; \
- $(SHELL) $(srcdir)/../../move-if-change tmp-model.h $${p}_model.h ; \
- $(SHELL) $(srcdir)/../../move-if-change tmp-model.c $${p}_model.c ; \
- $(SHELL) $(srcdir)/../../move-if-change tmp-support.h $${p}_support.h ; \
- $(SHELL) $(srcdir)/../../move-if-change tmp-support.c $${p}_support.c ; \
- $(SHELL) $(srcdir)/../../move-if-change tmp-engine.h $${p}_engine.h ; \
- $(SHELL) $(srcdir)/../../move-if-change tmp-engine.c $${p}_engine.c ; \
- done
- touch tmp-mach-multi
-tmp-itable-multi: $(IGEN_INSN) $(IGEN_DC) ../igen/igen $(IGEN_INCLUDE)
- ../igen/igen \
- $(IGEN_TRACE) \
- -I $(srcdir) \
- -Werror \
- -Wnodiscard \
- -Wnowidth \
- -N 0 \
- @sim_multi_flags@ \
- -G gen-direct-access \
- -G gen-zero-r0 \
- -i $(IGEN_INSN) \
- -n itable.h -ht tmp-itable.h \
- -n itable.c -t tmp-itable.c \
- #
- $(SHELL) $(srcdir)/../../move-if-change tmp-itable.h itable.h
- $(SHELL) $(srcdir)/../../move-if-change tmp-itable.c itable.c
- touch tmp-itable-multi
-tmp-run-multi: $(srcdir)/m16run.c
- for t in $(SIM_MULTI_IGEN_CONFIGS); do \
- case $${t} in \
- m16*) \
- m=`echo $${t} | sed -e 's/^m16//' -e 's/:.*//'`; \
- sed < $(srcdir)/m16run.c > tmp-run \
- -e "s/^sim_/m16$${m}_/" \
- -e "s/m16_/m16$${m}_/" \
- -e "s/m32_/m32$${m}_/" ; \
- $(SHELL) $(srcdir)/../../move-if-change tmp-run m16$${m}_run.c ; \
- esac \
- done
- touch tmp-run-multi
-
-clean-extra:
- rm -f $(BUILT_SRC_FROM_GEN)
- rm -f $(BUILT_SRC_FROM_IGEN)
- rm -f $(BUILT_SRC_FROM_M16)
- rm -f $(BUILT_SRC_FROM_MULTI)
- rm -f tmp-*
- rm -f m16*.o m32*.o itable*.o
-
-distclean-extra:
- rm -f multi-include.h multi-run.c
diff --git a/sim/mips/acconfig.h b/sim/mips/acconfig.h
deleted file mode 100644
index f9b87a1..0000000
--- a/sim/mips/acconfig.h
+++ /dev/null
@@ -1,15 +0,0 @@
-
-/* Define to 1 if NLS is requested. */
-#undef ENABLE_NLS
-
-/* Define as 1 if you have catgets and don't want to use GNU gettext. */
-#undef HAVE_CATGETS
-
-/* Define as 1 if you have gettext and don't want to use GNU gettext. */
-#undef HAVE_GETTEXT
-
-/* Define as 1 if you have the stpcpy function. */
-#undef HAVE_STPCPY
-
-/* Define if your locale.h file contains LC_MESSAGES. */
-#undef HAVE_LC_MESSAGES
diff --git a/sim/mips/config.in b/sim/mips/config.in
deleted file mode 100644
index dbd6508..0000000
--- a/sim/mips/config.in
+++ /dev/null
@@ -1,174 +0,0 @@
-/* config.in. Generated automatically from configure.in by autoheader. */
-
-/* Define if using alloca.c. */
-#undef C_ALLOCA
-
-/* Define to empty if the keyword does not work. */
-#undef const
-
-/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
- This function is required for alloca.c support on those systems. */
-#undef CRAY_STACKSEG_END
-
-/* Define if you have alloca, as a function or macro. */
-#undef HAVE_ALLOCA
-
-/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
-#undef HAVE_ALLOCA_H
-
-/* Define if you have a working `mmap' system call. */
-#undef HAVE_MMAP
-
-/* Define as __inline if that's what the C compiler calls it. */
-#undef inline
-
-/* Define to `long' if <sys/types.h> doesn't define. */
-#undef off_t
-
-/* Define if you need to in order for stat and other things to work. */
-#undef _POSIX_SOURCE
-
-/* Define as the return type of signal handlers (int or void). */
-#undef RETSIGTYPE
-
-/* Define to `unsigned' if <sys/types.h> doesn't define. */
-#undef size_t
-
-/* If using the C implementation of alloca, define if you know the
- direction of stack growth for your system; otherwise it will be
- automatically deduced at run-time.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown
- */
-#undef STACK_DIRECTION
-
-/* Define if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Define if your processor stores words with the most significant
- byte first (like Motorola and SPARC, unlike Intel and VAX). */
-#undef WORDS_BIGENDIAN
-
-/* Define to 1 if NLS is requested. */
-#undef ENABLE_NLS
-
-/* Define as 1 if you have gettext and don't want to use GNU gettext. */
-#undef HAVE_GETTEXT
-
-/* Define as 1 if you have the stpcpy function. */
-#undef HAVE_STPCPY
-
-/* Define if your locale.h file contains LC_MESSAGES. */
-#undef HAVE_LC_MESSAGES
-
-/* Define if you have the __argz_count function. */
-#undef HAVE___ARGZ_COUNT
-
-/* Define if you have the __argz_next function. */
-#undef HAVE___ARGZ_NEXT
-
-/* Define if you have the __argz_stringify function. */
-#undef HAVE___ARGZ_STRINGIFY
-
-/* Define if you have the __setfpucw function. */
-#undef HAVE___SETFPUCW
-
-/* Define if you have the aint function. */
-#undef HAVE_AINT
-
-/* Define if you have the anint function. */
-#undef HAVE_ANINT
-
-/* Define if you have the dcgettext function. */
-#undef HAVE_DCGETTEXT
-
-/* Define if you have the getcwd function. */
-#undef HAVE_GETCWD
-
-/* Define if you have the getpagesize function. */
-#undef HAVE_GETPAGESIZE
-
-/* Define if you have the getrusage function. */
-#undef HAVE_GETRUSAGE
-
-/* Define if you have the munmap function. */
-#undef HAVE_MUNMAP
-
-/* Define if you have the putenv function. */
-#undef HAVE_PUTENV
-
-/* Define if you have the setenv function. */
-#undef HAVE_SETENV
-
-/* Define if you have the setlocale function. */
-#undef HAVE_SETLOCALE
-
-/* Define if you have the sigaction function. */
-#undef HAVE_SIGACTION
-
-/* Define if you have the sqrt function. */
-#undef HAVE_SQRT
-
-/* Define if you have the stpcpy function. */
-#undef HAVE_STPCPY
-
-/* Define if you have the strcasecmp function. */
-#undef HAVE_STRCASECMP
-
-/* Define if you have the strchr function. */
-#undef HAVE_STRCHR
-
-/* Define if you have the time function. */
-#undef HAVE_TIME
-
-/* Define if you have the <argz.h> header file. */
-#undef HAVE_ARGZ_H
-
-/* Define if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Define if you have the <fpu_control.h> header file. */
-#undef HAVE_FPU_CONTROL_H
-
-/* Define if you have the <limits.h> header file. */
-#undef HAVE_LIMITS_H
-
-/* Define if you have the <locale.h> header file. */
-#undef HAVE_LOCALE_H
-
-/* Define if you have the <malloc.h> header file. */
-#undef HAVE_MALLOC_H
-
-/* Define if you have the <nl_types.h> header file. */
-#undef HAVE_NL_TYPES_H
-
-/* Define if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define if you have the <sys/param.h> header file. */
-#undef HAVE_SYS_PARAM_H
-
-/* Define if you have the <sys/resource.h> header file. */
-#undef HAVE_SYS_RESOURCE_H
-
-/* Define if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define if you have the <time.h> header file. */
-#undef HAVE_TIME_H
-
-/* Define if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define if you have the <values.h> header file. */
-#undef HAVE_VALUES_H
-
-/* Define if you have the m library (-lm). */
-#undef HAVE_LIBM
diff --git a/sim/mips/configure b/sim/mips/configure
deleted file mode 100755
index 5185b89..0000000
--- a/sim/mips/configure
+++ /dev/null
@@ -1,7535 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59.
-#
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
- set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" || {
- # Find who we are. Look in the path if we contain no path at all
- # relative or not.
- case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
- ;;
- esac
- # We did not find ourselves, most probably we were run as `sh COMMAND'
- # in which case we are not to be found in the path.
- if test "x$as_myself" = x; then
- as_myself=$0
- fi
- if test ! -f "$as_myself"; then
- { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
- { (exit 1); exit 1; }; }
- fi
- case $CONFIG_SHELL in
- '')
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
- fi;;
- esac
- done
-done
-;;
- esac
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line before each line; the second 'sed' does the real
- # work. The second script uses 'N' to pair each line-number line
- # with the numbered line, and appends trailing '-' during
- # substitution so that $LINENO is not a special case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
- sed '=' <$as_myself |
- sed '
- N
- s,$,-,
- : loop
- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
- t loop
- s,-$,,
- s,^['$as_cr_digits']*\n,,
- ' >$as_me.lineno &&
- chmod +x $as_me.lineno ||
- { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensible to this).
- . ./$as_me.lineno
- # Exit status is that of the last command.
- exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
- *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T=' ' ;;
- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- # We could just check for DJGPP; but this test a) works b) is more generic
- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
- if test -f conf$$.exe; then
- # Don't use ln at all; we don't have any links
- as_ln_s='cp -p'
- else
- as_ln_s='ln -s'
- fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_config_libobj_dir=.
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete. It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-
-ac_unique_file="Makefile.in"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# if HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
-#endif
-#if HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
-# include <memory.h>
-# endif
-# include <string.h>
-#endif
-#if HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-# include <stdint.h>
-# endif
-#endif
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS sim_environment sim_alignment sim_assert sim_bitsize sim_endian sim_hostendian sim_float sim_scache sim_default_model sim_hw_cflags sim_hw_objs sim_hw sim_inline sim_packages sim_regparm sim_reserved_bits sim_smp sim_stdcall sim_xor_endian WARN_CFLAGS WERROR_CFLAGS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CC_FOR_BUILD HDEFINES AR RANLIB ac_ct_RANLIB USE_NLS LIBINTL LIBINTL_DEP INCINTL XGETTEXT GMSGFMT POSUB CATALOGS DATADIRNAME INSTOBJEXT GENCAT CATOBJEXT CPP EGREP MAINT sim_bswap sim_cflags sim_debug sim_stdio sim_trace sim_profile SIM_SUBTARGET sim_igen_flags sim_m16_flags sim_gen sim_multi_flags sim_multi_igen_configs sim_multi_src sim_multi_obj mips_extra_objs mips_igen_engine mips_extra_libs cgen_breaks LIBOBJS LTLIBOBJS'
-ac_subst_files=''
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-ac_prev=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
-
- ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_option in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
- eval "enable_$ac_feature=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
- case $ac_option in
- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_$ac_feature='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case $ac_option in
- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
- eval "with_$ac_package='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package | sed 's/-/_/g'`
- eval "with_$ac_package=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; }
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
- { (exit 1); exit 1; }; }
- ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
- eval "$ac_envvar='$ac_optarg'"
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- { echo "$as_me: error: missing argument to $ac_option" >&2
- { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
- eval ac_val=$`echo $ac_var`
- case $ac_val in
- [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
- localstatedir libdir includedir oldincludedir infodir mandir
-do
- eval ac_val=$`echo $ac_var`
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) ;;
- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used." >&2
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
- ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$0" : 'X\(//\)[^/]' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$0" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
- { (exit 1); exit 1; }; }
- else
- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
- { (exit 1); exit 1; }; }
- fi
-fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
- { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
- { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-ac_env_CC_set=${CC+set}
-ac_env_CC_value=$CC
-ac_cv_env_CC_set=${CC+set}
-ac_cv_env_CC_value=$CC
-ac_env_CFLAGS_set=${CFLAGS+set}
-ac_env_CFLAGS_value=$CFLAGS
-ac_cv_env_CFLAGS_set=${CFLAGS+set}
-ac_cv_env_CFLAGS_value=$CFLAGS
-ac_env_LDFLAGS_set=${LDFLAGS+set}
-ac_env_LDFLAGS_value=$LDFLAGS
-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
-ac_cv_env_LDFLAGS_value=$LDFLAGS
-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_env_CPPFLAGS_value=$CPPFLAGS
-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
-ac_env_CPP_set=${CPP+set}
-ac_env_CPP_value=$CPP
-ac_cv_env_CPP_set=${CPP+set}
-ac_cv_env_CPP_value=$CPP
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-_ACEOF
-
- cat <<_ACEOF
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --infodir=DIR info documentation [PREFIX/info]
- --mandir=DIR man documentation [PREFIX/man]
-_ACEOF
-
- cat <<\_ACEOF
-
-Program names:
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM run sed PROGRAM on installed program names
-
-X features:
- --x-includes=DIR X include files are in DIR
- --x-libraries=DIR X library files are in DIR
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST cross-compile to build programs to run on HOST [BUILD]
- --target=TARGET configure for building compilers for TARGET [HOST]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-
- cat <<\_ACEOF
-
-Optional Features:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-maintainer-mode Enable developer functionality.
- --enable-sim-bswap Use Host specific BSWAP instruction.
- --enable-sim-cflags=opts Extra CFLAGS for use in building simulator
- --enable-sim-debug=opts Enable debugging flags
- --enable-sim-stdio Specify whether to use stdio for console input/output.
- --enable-sim-trace=opts Enable tracing flags
- --enable-sim-profile=opts Enable profiling flags
- --enable-sim-inline=inlines Specify which functions should be inlined.
- --enable-sim-alignment=align Specify strict, nonstrict or forced alignment of memory accesses.
- --enable-sim-hostendian=end Specify host byte endian orientation.
- --enable-build-warnings Enable build-time compiler warnings if gcc is used
- --enable-gdb-build-warnings Enable SIM specific build-time compiler warnings if gcc is used
- --enable-sim-reserved-bits Specify whether to check reserved bits in instruction.
- --enable-sim-endian=endian Specify target byte endian orientation.
- --enable-sim-bitsize=N Specify target bitsize (32 or 64).
- --enable-sim-float Specify that the target processor has floating point hardware.
- --enable-sim-smp=n Specify number of processors to configure for (default ${default_sim_smp}).
- --enable-sim-hardware=LIST Specify the hardware to be included in the build.
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-x use the X Window System
-
-Some influential environment variables:
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
- CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
- headers in a nonstandard directory <include dir>
- CPP C preprocessor
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- ac_popdir=`pwd`
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d $ac_dir || continue
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
- cd $ac_dir
- # Check for guested configure; otherwise get Cygnus style configure.
- if test -f $ac_srcdir/configure.gnu; then
- echo
- $SHELL $ac_srcdir/configure.gnu --help=recursive
- elif test -f $ac_srcdir/configure; then
- echo
- $SHELL $ac_srcdir/configure --help=recursive
- elif test -f $ac_srcdir/configure.ac ||
- test -f $ac_srcdir/configure.in; then
- echo
- $ac_configure --help
- else
- echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi
- cd $ac_popdir
- done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
- cat <<\_ACEOF
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by $as_me, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- echo "PATH: $as_dir"
-done
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_sep=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
- ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
- 2)
- ac_configure_args1="$ac_configure_args1 '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
- # Get rid of the leading space.
- ac_sep=" "
- ;;
- esac
- done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
- echo
- # The following way of writing the cache mishandles newlines in values,
-{
- (set) 2>&1 |
- case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- sed -n \
- "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
- ;;
- *)
- sed -n \
- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
- ;;
- esac;
-}
- echo
-
- cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=$`echo $ac_var`
- echo "$ac_var='"'"'$ac_val'"'"'"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=$`echo $ac_var`
- echo "$ac_var='"'"'$ac_val'"'"'"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
- echo
- sed "/^$/d" confdefs.h | sort
- echo
- fi
- test "$ac_signal" != 0 &&
- echo "$as_me: caught signal $ac_signal"
- echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core &&
- rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
- ' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special
- # files actually), so we avoid doing that.
- if test -f "$cache_file"; then
- { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . $cache_file;;
- *) . ./$cache_file;;
- esac
- fi
-else
- { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
- sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val="\$ac_cv_env_${ac_var}_value"
- eval ac_new_val="\$ac_env_${ac_var}_value"
- case $ac_old_set,$ac_new_set in
- set,)
- { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
-echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
-echo "$as_me: current value: $ac_new_val" >&2;}
- ac_cache_corrupted=:
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
- ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ac_config_headers="$ac_config_headers config.h:config.in"
-
-
-# This file contains common code used by all simulators.
-#
-# SIM_AC_COMMON invokes AC macros used by all simulators and by the common
-# directory. It is intended to be invoked before any target specific stuff.
-# SIM_AC_OUTPUT is a cover function to AC_OUTPUT to generate the Makefile.
-# It is intended to be invoked last.
-#
-# The simulator's configure.in should look like:
-#
-# dnl Process this file with autoconf to produce a configure script.
-# sinclude(../common/aclocal.m4)
-# AC_PREREQ(2.5)dnl
-# AC_INIT(Makefile.in)
-#
-# SIM_AC_COMMON
-#
-# ... target specific stuff ...
-#
-# SIM_AC_OUTPUT
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-sim_inline="-DDEFAULT_INLINE=0"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# intl sister-directory configuration rules.
-#
-
-# The idea behind this macro is that there's no need to repeat all the
-# autoconf probes done by the intl directory - it's already done them
-# for us. In fact, there's no need even to look at the cache for the
-# answers. All we need to do is nab a few pieces of information.
-# The intl directory is set up to make this easy, by generating a
-# small file which can be sourced as a shell script; then we produce
-# the necessary substitutions and definitions for this directory.
-
-
-
-
-
-
-
-# Bugs in autoconf 2.59 break the call to SIM_AC_COMMON, hack around
-# it by inlining the macro's contents.
-# This file contains common code used by all simulators.
-#
-# common.m4 invokes AC macros used by all simulators and by the common
-# directory. It is intended to be included before any target specific
-# stuff. SIM_AC_OUTPUT is a cover function to AC_OUTPUT to generate
-# the Makefile. It is intended to be invoked last.
-#
-# The simulator's configure.in should look like:
-#
-# dnl Process this file with autoconf to produce a configure script.
-# AC_PREREQ(2.5)dnl
-# AC_INIT(Makefile.in)
-# AC_CONFIG_HEADER(config.h:config.in)
-#
-# sinclude(../common/aclocal.m4)
-# sinclude(../common/common.m4)
-#
-# ... target specific stuff ...
-
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f $ac_dir/shtool; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
-echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
- { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
-# Make sure we can run config.sub.
-$ac_config_sub sun4 >/dev/null 2>&1 ||
- { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
- { (exit 1); exit 1; }; }
-
-echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6
-if test "${ac_cv_build+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_build_alias=$build_alias
-test -z "$ac_cv_build_alias" &&
- ac_cv_build_alias=`$ac_config_guess`
-test -z "$ac_cv_build_alias" &&
- { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
- { (exit 1); exit 1; }; }
-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6
-build=$ac_cv_build
-build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6
-if test "${ac_cv_host+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_host_alias=$host_alias
-test -z "$ac_cv_host_alias" &&
- ac_cv_host_alias=$ac_cv_build_alias
-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6
-host=$ac_cv_host
-host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-echo "$as_me:$LINENO: checking target system type" >&5
-echo $ECHO_N "checking target system type... $ECHO_C" >&6
-if test "${ac_cv_target+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_target_alias=$target_alias
-test "x$ac_cv_target_alias" = "x" &&
- ac_cv_target_alias=$ac_cv_host_alias
-ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_target" >&5
-echo "${ECHO_T}$ac_cv_target" >&6
-target=$ac_cv_target
-target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-# The aliases save the names the user supplied, while $host etc.
-# will get canonicalized.
-test -n "$target_alias" &&
- test "$program_prefix$program_suffix$program_transform_name" = \
- NONENONEs,x,x, &&
- program_prefix=${target_alias}-
-test "$program_prefix" != NONE &&
- program_transform_name="s,^,$program_prefix,;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s,\$,$program_suffix,;$program_transform_name"
-# Double any \ or $. echo might interpret backslashes.
-# By default was `s,x,x', remove it if useless.
-cat <<\_ACEOF >conftest.sed
-s/[\\$]/&&/g;s/;s,x,x,$//
-_ACEOF
-program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
-rm conftest.sed
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- CC=$ac_ct_CC
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- CC=$ac_ct_CC
-else
- CC="$ac_cv_prog_CC"
-fi
-
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$ac_ct_CC" && break
-done
-
- CC=$ac_ct_CC
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
- "checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
- (eval $ac_compiler --version </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
- (eval $ac_compiler -v </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
- (eval $ac_compiler -V </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
- (eval $ac_link_default) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # Find the output, starting from the most likely. This scheme is
-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
-# resort.
-
-# Be careful to initialize this variable, since it used to be cached.
-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
-ac_cv_exeext=
-# b.out is created by i960 compilers.
-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
- ;;
- conftest.$ac_ext )
- # This is the source file.
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- # FIXME: I believe we export ac_cv_exeext for Libtool,
- # but it would be cool to find out if it's true. Does anybody
- # maintain Libtool? --akim.
- export ac_cv_exeext
- break;;
- * )
- break;;
- esac
-done
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6
-
-# Check the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
- if { ac_try='./$ac_file'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
- fi
- fi
-fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
-
-echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- export ac_cv_exeext
- break;;
- * ) break;;
- esac
-done
-else
- { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
-if test "${ac_cv_objext+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_compiler_gnu=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_compiler_gnu=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-CFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_g+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_g=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_prog_cc_g=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_prog_cc_stdc=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std1 is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std1. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX 10.20 and later -Ae
-# HP-UX older versions -Aa -D_HPUX_SOURCE
-# SVR4 -Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_stdc=$ac_arg
-break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext
-done
-rm -f conftest.$ac_ext conftest.$ac_objext
-CC=$ac_save_CC
-
-fi
-
-case "x$ac_cv_prog_cc_stdc" in
- x|xno)
- echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
- *)
- echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
- CC="$CC $ac_cv_prog_cc_stdc" ;;
-esac
-
-# Some people use a C++ compiler to compile C. Since we use `exit',
-# in C++ we need to declare it. In case someone uses the same compiler
-# for both compiling C and C++ we need to have the C++ compiler decide
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-#ifndef __cplusplus
- choke me
-#endif
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- for ac_declaration in \
- '' \
- 'extern "C" void std::exit (int) throw (); using std::exit;' \
- 'extern "C" void std::exit (int); using std::exit;' \
- 'extern "C" void exit (int) throw ();' \
- 'extern "C" void exit (int);' \
- 'void exit (int);'
-do
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_declaration
-#include <stdlib.h>
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_declaration
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
- echo '#ifdef __cplusplus' >>confdefs.h
- echo $ac_declaration >>confdefs.h
- echo '#endif' >>confdefs.h
-fi
-
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
- ./ | .// | /cC/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- done
- done
- ;;
-esac
-done
-
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. We don't cache a
- # path for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the path is relative.
- INSTALL=$ac_install_sh
- fi
-fi
-echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-
-# Put a plausible default for CC_FOR_BUILD in Makefile.
-if test "x$cross_compiling" = "xno"; then
- CC_FOR_BUILD='$(CC)'
-else
- CC_FOR_BUILD=gcc
-fi
-
-
-
-
-AR=${AR-ar}
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_RANLIB+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- RANLIB=$ac_ct_RANLIB
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-
-ALL_LINGUAS=
-# If we haven't got the data from the intl directory,
-# assume NLS is disabled.
-USE_NLS=no
-LIBINTL=
-LIBINTL_DEP=
-INCINTL=
-XGETTEXT=
-GMSGFMT=
-POSUB=
-
-if test -f ../../intl/config.intl; then
- . ../../intl/config.intl
-fi
-echo "$as_me:$LINENO: checking whether NLS is requested" >&5
-echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6
-if test x"$USE_NLS" != xyes; then
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-else
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-cat >>confdefs.h <<\_ACEOF
-#define ENABLE_NLS 1
-_ACEOF
-
-
- echo "$as_me:$LINENO: checking for catalogs to be installed" >&5
-echo $ECHO_N "checking for catalogs to be installed... $ECHO_C" >&6
- # Look for .po and .gmo files in the source directory.
- CATALOGS=
- XLINGUAS=
- for cat in $srcdir/po/*.gmo $srcdir/po/*.po; do
- # If there aren't any .gmo files the shell will give us the
- # literal string "../path/to/srcdir/po/*.gmo" which has to be
- # weeded out.
- case "$cat" in *\**)
- continue;;
- esac
- # The quadruple backslash is collapsed to a double backslash
- # by the backticks, then collapsed again by the double quotes,
- # leaving us with one backslash in the sed expression (right
- # before the dot that mustn't act as a wildcard).
- cat=`echo $cat | sed -e "s!$srcdir/po/!!" -e "s!\\\\.po!.gmo!"`
- lang=`echo $cat | sed -e "s!\\\\.gmo!!"`
- # The user is allowed to set LINGUAS to a list of languages to
- # install catalogs for. If it's empty that means "all of them."
- if test "x$LINGUAS" = x; then
- CATALOGS="$CATALOGS $cat"
- XLINGUAS="$XLINGUAS $lang"
- else
- case "$LINGUAS" in *$lang*)
- CATALOGS="$CATALOGS $cat"
- XLINGUAS="$XLINGUAS $lang"
- ;;
- esac
- fi
- done
- LINGUAS="$XLINGUAS"
- echo "$as_me:$LINENO: result: $LINGUAS" >&5
-echo "${ECHO_T}$LINGUAS" >&6
-
-
- DATADIRNAME=share
-
- INSTOBJEXT=.mo
-
- GENCAT=gencat
-
- CATOBJEXT=.gmo
-
-fi
-
-# Check for common headers.
-# FIXME: Seems to me this can cause problems for i386-windows hosts.
-# At one point there were hardcoded AC_DEFINE's if ${host} = i386-*-windows*.
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if test "${ac_cv_prog_CPP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- :
-else
- { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-if test "${ac_cv_prog_egrep+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if echo a | (grep -E '(a|b)') >/dev/null 2>&1
- then ac_cv_prog_egrep='grep -E'
- else ac_cv_prog_egrep='egrep'
- fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
-
-
-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_header_stdc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_header_stdc=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- exit(2);
- exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-
-
-for ac_header in stdlib.h string.h strings.h unistd.h time.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- eval "$as_ac_Header=\$ac_header_preproc"
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-for ac_header in sys/time.h sys/resource.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- eval "$as_ac_Header=\$ac_header_preproc"
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-for ac_header in fcntl.h fpu_control.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- eval "$as_ac_Header=\$ac_header_preproc"
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-for ac_header in dlfcn.h errno.h sys/stat.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- eval "$as_ac_Header=\$ac_header_preproc"
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-for ac_func in getrusage time sigaction __setfpucw
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-# Check for socket libraries
-
-echo "$as_me:$LINENO: checking for bind in -lsocket" >&5
-echo $ECHO_N "checking for bind in -lsocket... $ECHO_C" >&6
-if test "${ac_cv_lib_socket_bind+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char bind ();
-int
-main ()
-{
-bind ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_socket_bind=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_socket_bind=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_socket_bind" >&5
-echo "${ECHO_T}$ac_cv_lib_socket_bind" >&6
-if test $ac_cv_lib_socket_bind = yes; then
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSOCKET 1
-_ACEOF
-
- LIBS="-lsocket $LIBS"
-
-fi
-
-
-echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5
-echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6
-if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lnsl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char gethostbyname ();
-int
-main ()
-{
-gethostbyname ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_nsl_gethostbyname=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_nsl_gethostbyname=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5
-echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6
-if test $ac_cv_lib_nsl_gethostbyname = yes; then
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBNSL 1
-_ACEOF
-
- LIBS="-lnsl $LIBS"
-
-fi
-
-
-. ${srcdir}/../../bfd/configure.host
-
-
-
-USE_MAINTAINER_MODE=no
-# Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then
- enableval="$enable_maintainer_mode"
- case "${enableval}" in
- yes) MAINT="" USE_MAINTAINER_MODE=yes ;;
- no) MAINT="#" ;;
- *) { { echo "$as_me:$LINENO: error: \"--enable-maintainer-mode does not take a value\"" >&5
-echo "$as_me: error: \"--enable-maintainer-mode does not take a value\"" >&2;}
- { (exit 1); exit 1; }; }; MAINT="#" ;;
-esac
-if test x"$silent" != x"yes" && test x"$MAINT" = x""; then
- echo "Setting maintainer mode" 6>&1
-fi
-else
- MAINT="#"
-fi;
-
-
-# Check whether --enable-sim-bswap or --disable-sim-bswap was given.
-if test "${enable_sim_bswap+set}" = set; then
- enableval="$enable_sim_bswap"
- case "${enableval}" in
- yes) sim_bswap="-DWITH_BSWAP=1 -DUSE_BSWAP=1";;
- no) sim_bswap="-DWITH_BSWAP=0";;
- *) { { echo "$as_me:$LINENO: error: \"--enable-sim-bswap does not take a value\"" >&5
-echo "$as_me: error: \"--enable-sim-bswap does not take a value\"" >&2;}
- { (exit 1); exit 1; }; }; sim_bswap="";;
-esac
-if test x"$silent" != x"yes" && test x"$sim_bswap" != x""; then
- echo "Setting bswap flags = $sim_bswap" 6>&1
-fi
-else
- sim_bswap=""
-fi;
-
-
-# Check whether --enable-sim-cflags or --disable-sim-cflags was given.
-if test "${enable_sim_cflags+set}" = set; then
- enableval="$enable_sim_cflags"
- case "${enableval}" in
- yes) sim_cflags="-O2 -fomit-frame-pointer";;
- trace) { { echo "$as_me:$LINENO: error: \"Please use --enable-sim-debug instead.\"" >&5
-echo "$as_me: error: \"Please use --enable-sim-debug instead.\"" >&2;}
- { (exit 1); exit 1; }; }; sim_cflags="";;
- no) sim_cflags="";;
- *) sim_cflags=`echo "${enableval}" | sed -e "s/,/ /g"`;;
-esac
-if test x"$silent" != x"yes" && test x"$sim_cflags" != x""; then
- echo "Setting sim cflags = $sim_cflags" 6>&1
-fi
-else
- sim_cflags=""
-fi;
-
-
-# Check whether --enable-sim-debug or --disable-sim-debug was given.
-if test "${enable_sim_debug+set}" = set; then
- enableval="$enable_sim_debug"
- case "${enableval}" in
- yes) sim_debug="-DDEBUG=7 -DWITH_DEBUG=7";;
- no) sim_debug="-DDEBUG=0 -DWITH_DEBUG=0";;
- *) sim_debug="-DDEBUG='(${enableval})' -DWITH_DEBUG='(${enableval})'";;
-esac
-if test x"$silent" != x"yes" && test x"$sim_debug" != x""; then
- echo "Setting sim debug = $sim_debug" 6>&1
-fi
-else
- sim_debug=""
-fi;
-
-
-# Check whether --enable-sim-stdio or --disable-sim-stdio was given.
-if test "${enable_sim_stdio+set}" = set; then
- enableval="$enable_sim_stdio"
- case "${enableval}" in
- yes) sim_stdio="-DWITH_STDIO=DO_USE_STDIO";;
- no) sim_stdio="-DWITH_STDIO=DONT_USE_STDIO";;
- *) { { echo "$as_me:$LINENO: error: \"Unknown value $enableval passed to --enable-sim-stdio\"" >&5
-echo "$as_me: error: \"Unknown value $enableval passed to --enable-sim-stdio\"" >&2;}
- { (exit 1); exit 1; }; }; sim_stdio="";;
-esac
-if test x"$silent" != x"yes" && test x"$sim_stdio" != x""; then
- echo "Setting stdio flags = $sim_stdio" 6>&1
-fi
-else
- sim_stdio=""
-fi;
-
-
-# Check whether --enable-sim-trace or --disable-sim-trace was given.
-if test "${enable_sim_trace+set}" = set; then
- enableval="$enable_sim_trace"
- case "${enableval}" in
- yes) sim_trace="-DTRACE=1 -DWITH_TRACE=-1";;
- no) sim_trace="-DTRACE=0 -DWITH_TRACE=0";;
- [-0-9]*)
- sim_trace="-DTRACE='(${enableval})' -DWITH_TRACE='(${enableval})'";;
- [a-z]*)
- sim_trace=""
- for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
- if test x"$sim_trace" = x; then
- sim_trace="-DWITH_TRACE='(TRACE_$x"
- else
- sim_trace="${sim_trace}|TRACE_$x"
- fi
- done
- sim_trace="$sim_trace)'" ;;
-esac
-if test x"$silent" != x"yes" && test x"$sim_trace" != x""; then
- echo "Setting sim trace = $sim_trace" 6>&1
-fi
-else
- sim_trace=""
-fi;
-
-
-# Check whether --enable-sim-profile or --disable-sim-profile was given.
-if test "${enable_sim_profile+set}" = set; then
- enableval="$enable_sim_profile"
- case "${enableval}" in
- yes) sim_profile="-DPROFILE=1 -DWITH_PROFILE=-1";;
- no) sim_profile="-DPROFILE=0 -DWITH_PROFILE=0";;
- [-0-9]*)
- sim_profile="-DPROFILE='(${enableval})' -DWITH_PROFILE='(${enableval})'";;
- [a-z]*)
- sim_profile=""
- for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
- if test x"$sim_profile" = x; then
- sim_profile="-DWITH_PROFILE='(PROFILE_$x"
- else
- sim_profile="${sim_profile}|PROFILE_$x"
- fi
- done
- sim_profile="$sim_profile)'" ;;
-esac
-if test x"$silent" != x"yes" && test x"$sim_profile" != x""; then
- echo "Setting sim profile = $sim_profile" 6>&1
-fi
-else
- sim_profile="-DPROFILE=1 -DWITH_PROFILE=-1"
-fi;
-
-
-echo "$as_me:$LINENO: checking return type of signal handlers" >&5
-echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
-if test "${ac_cv_type_signal+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-# undef signal
-#endif
-#ifdef __cplusplus
-extern "C" void (*signal (int, void (*)(int)))(int);
-#else
-void (*signal ()) ();
-#endif
-
-int
-main ()
-{
-int i;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_type_signal=void
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_type_signal=int
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5
-echo "${ECHO_T}$ac_cv_type_signal" >&6
-
-cat >>confdefs.h <<_ACEOF
-#define RETSIGTYPE $ac_cv_type_signal
-_ACEOF
-
-
-
-
-
-sim_link_files=
-sim_link_links=
-
-sim_link_links=tconfig.h
-if test -f ${srcdir}/tconfig.in
-then
- sim_link_files=tconfig.in
-else
- sim_link_files=../common/tconfig.in
-fi
-
-# targ-vals.def points to the libc macro description file.
-case "${target}" in
-*-*-*) TARG_VALS_DEF=../common/nltvals.def ;;
-esac
-sim_link_files="${sim_link_files} ${TARG_VALS_DEF}"
-sim_link_links="${sim_link_links} targ-vals.def"
-
-
-
-default_sim_inline=""
-# Check whether --enable-sim-inline or --disable-sim-inline was given.
-if test "${enable_sim_inline+set}" = set; then
- enableval="$enable_sim_inline"
- sim_inline=""
-case "$enableval" in
- no) sim_inline="-DDEFAULT_INLINE=0";;
- 0) sim_inline="-DDEFAULT_INLINE=0";;
- yes | 2) sim_inline="-DDEFAULT_INLINE=ALL_C_INLINE";;
- 1) sim_inline="-DDEFAULT_INLINE=INLINE_LOCALS";;
- *) for x in `echo "$enableval" | sed -e "s/,/ /g"`; do
- new_flag=""
- case "$x" in
- *_INLINE=*) new_flag="-D$x";;
- *=*) new_flag=`echo "$x" | sed -e "s/=/_INLINE=/" -e "s/^/-D/"`;;
- *_INLINE) new_flag="-D$x=ALL_C_INLINE";;
- *) new_flag="-D$x""_INLINE=ALL_C_INLINE";;
- esac
- if test x"$sim_inline" = x""; then
- sim_inline="$new_flag"
- else
- sim_inline="$sim_inline $new_flag"
- fi
- done;;
-esac
-if test x"$silent" != x"yes" && test x"$sim_inline" != x""; then
- echo "Setting inline flags = $sim_inline" 6>&1
-fi
-else
-
-if test "x$cross_compiling" = "xno"; then
- if test x"$GCC" != "x" -a x"${default_sim_inline}" != "x" ; then
- sim_inline="${default_sim_inline}"
- if test x"$silent" != x"yes"; then
- echo "Setting inline flags = $sim_inline" 6>&1
- fi
- else
- sim_inline=""
- fi
-else
- sim_inline="-DDEFAULT_INLINE=0"
-fi
-fi;
-wire_alignment="NONSTRICT_ALIGNMENT"
-default_alignment=""
-
-# Check whether --enable-sim-alignment or --disable-sim-alignment was given.
-if test "${enable_sim_alignment+set}" = set; then
- enableval="$enable_sim_alignment"
- case "${enableval}" in
- strict | STRICT) sim_alignment="-DWITH_ALIGNMENT=STRICT_ALIGNMENT";;
- nonstrict | NONSTRICT) sim_alignment="-DWITH_ALIGNMENT=NONSTRICT_ALIGNMENT";;
- forced | FORCED) sim_alignment="-DWITH_ALIGNMENT=FORCED_ALIGNMENT";;
- yes) if test x"$wire_alignment" != x; then
- sim_alignment="-DWITH_ALIGNMENT=${wire_alignment}"
- else
- if test x"$default_alignment" != x; then
- sim_alignment="-DWITH_ALIGNMENT=${default_alignment}"
- else
- echo "No hard-wired alignment for target $target" 1>&6
- sim_alignment="-DWITH_ALIGNMENT=0"
- fi
- fi;;
- no) if test x"$default_alignment" != x; then
- sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${default_alignment}"
- else
- if test x"$wire_alignment" != x; then
- sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${wire_alignment}"
- else
- echo "No default alignment for target $target" 1>&6
- sim_alignment="-DWITH_DEFAULT_ALIGNMENT=0"
- fi
- fi;;
- *) { { echo "$as_me:$LINENO: error: \"Unknown value $enableval passed to --enable-sim-alignment\"" >&5
-echo "$as_me: error: \"Unknown value $enableval passed to --enable-sim-alignment\"" >&2;}
- { (exit 1); exit 1; }; }; sim_alignment="";;
-esac
-if test x"$silent" != x"yes" && test x"$sim_alignment" != x""; then
- echo "Setting alignment flags = $sim_alignment" 6>&1
-fi
-else
- if test x"$default_alignment" != x; then
- sim_alignment="-DWITH_DEFAULT_ALIGNMENT=${default_alignment}"
-else
- if test x"$wire_alignment" != x; then
- sim_alignment="-DWITH_ALIGNMENT=${wire_alignment}"
- else
- sim_alignment=
- fi
-fi
-fi;
-
-# Check whether --enable-sim-hostendian or --disable-sim-hostendian was given.
-if test "${enable_sim_hostendian+set}" = set; then
- enableval="$enable_sim_hostendian"
- case "${enableval}" in
- no) sim_hostendian="-DWITH_HOST_BYTE_ORDER=0";;
- b*|B*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=BIG_ENDIAN";;
- l*|L*) sim_hostendian="-DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN";;
- *) { { echo "$as_me:$LINENO: error: \"Unknown value $enableval for --enable-sim-hostendian\"" >&5
-echo "$as_me: error: \"Unknown value $enableval for --enable-sim-hostendian\"" >&2;}
- { (exit 1); exit 1; }; }; sim_hostendian="";;
-esac
-if test x"$silent" != x"yes" && test x"$sim_hostendian" != x""; then
- echo "Setting hostendian flags = $sim_hostendian" 6>&1
-fi
-else
-
-if test "x$cross_compiling" = "xno"; then
- echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
-echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6
-if test "${ac_cv_c_bigendian+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # See if sys/param.h defines the BYTE_ORDER macro.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <sys/types.h>
-#include <sys/param.h>
-
-int
-main ()
-{
-#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
- bogus endian macros
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- # It does; now see whether it defined to BIG_ENDIAN or not.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <sys/types.h>
-#include <sys/param.h>
-
-int
-main ()
-{
-#if BYTE_ORDER != BIG_ENDIAN
- not big endian
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_c_bigendian=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_c_bigendian=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-# It does not; compile a test program.
-if test "$cross_compiling" = yes; then
- # try to guess the endianness by grepping values into an object file
- ac_cv_c_bigendian=unknown
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
-short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
-void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; }
-short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
-short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
-void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; }
-int
-main ()
-{
- _ascii (); _ebcdic ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then
- ac_cv_c_bigendian=yes
-fi
-if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
- if test "$ac_cv_c_bigendian" = unknown; then
- ac_cv_c_bigendian=no
- else
- # finding both strings is unlikely to happen, but who knows?
- ac_cv_c_bigendian=unknown
- fi
-fi
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-int
-main ()
-{
- /* Are we little or big endian? From Harbison&Steele. */
- union
- {
- long l;
- char c[sizeof (long)];
- } u;
- u.l = 1;
- exit (u.c[sizeof (long) - 1] == 1);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_c_bigendian=no
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_c_bigendian=yes
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
-echo "${ECHO_T}$ac_cv_c_bigendian" >&6
-case $ac_cv_c_bigendian in
- yes)
-
-cat >>confdefs.h <<\_ACEOF
-#define WORDS_BIGENDIAN 1
-_ACEOF
- ;;
- no)
- ;;
- *)
- { { echo "$as_me:$LINENO: error: unknown endianness
-presetting ac_cv_c_bigendian=no (or yes) will help" >&5
-echo "$as_me: error: unknown endianness
-presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
- { (exit 1); exit 1; }; } ;;
-esac
-
- if test $ac_cv_c_bigendian = yes; then
- sim_hostendian="-DWITH_HOST_BYTE_ORDER=BIG_ENDIAN"
- else
- sim_hostendian="-DWITH_HOST_BYTE_ORDER=LITTLE_ENDIAN"
- fi
-else
- sim_hostendian="-DWITH_HOST_BYTE_ORDER=0"
-fi
-fi;
-
-# NOTE: Don't add -Wall or -Wunused, they both include
-# -Wunused-parameter which reports bogus warnings.
-# NOTE: If you add to this list, remember to update
-# gdb/doc/gdbint.texinfo.
-build_warnings="-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs \
--Wformat -Wparentheses -Wpointer-arith"
-# GCC supports -Wuninitialized only with -O or -On, n != 0.
-if test x${CFLAGS+set} = xset; then
- case "${CFLAGS}" in
- *"-O0"* ) ;;
- *"-O"* )
- build_warnings="${build_warnings} -Wuninitialized"
- ;;
- esac
-else
- build_warnings="${build_warnings} -Wuninitialized"
-fi
-# Up for debate: -Wswitch -Wcomment -trigraphs -Wtrigraphs
-# -Wunused-function -Wunused-label -Wunused-variable -Wunused-value
-# -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
-# -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
-# -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
-# -Woverloaded-virtual -Winline -Werror"
-# Check whether --enable-build-warnings or --disable-build-warnings was given.
-if test "${enable_build_warnings+set}" = set; then
- enableval="$enable_build_warnings"
- case "${enableval}" in
- yes) ;;
- no) build_warnings="-w";;
- ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
- build_warnings="${build_warnings} ${t}";;
- *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
- build_warnings="${t} ${build_warnings}";;
- *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
-esac
-if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
- echo "Setting compiler warning flags = $build_warnings" 6>&1
-fi
-fi; # Check whether --enable-sim-build-warnings or --disable-sim-build-warnings was given.
-if test "${enable_sim_build_warnings+set}" = set; then
- enableval="$enable_sim_build_warnings"
- case "${enableval}" in
- yes) ;;
- no) build_warnings="-w";;
- ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
- build_warnings="${build_warnings} ${t}";;
- *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
- build_warnings="${t} ${build_warnings}";;
- *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
-esac
-if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
- echo "Setting GDB specific compiler warning flags = $build_warnings" 6>&1
-fi
-fi; WARN_CFLAGS=""
-WERROR_CFLAGS=""
-if test "x${build_warnings}" != x -a "x$GCC" = xyes
-then
- echo "$as_me:$LINENO: checking compiler warning flags" >&5
-echo $ECHO_N "checking compiler warning flags... $ECHO_C" >&6
- # Separate out the -Werror flag as some files just cannot be
- # compiled with it enabled.
- for w in ${build_warnings}; do
- case $w in
- -Werr*) WERROR_CFLAGS=-Werror ;;
- *) # Check that GCC accepts it
- saved_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $w"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- WARN_CFLAGS="${WARN_CFLAGS} $w"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS="$saved_CFLAGS"
- esac
- done
- echo "$as_me:$LINENO: result: ${WARN_CFLAGS}${WERROR_CFLAGS}" >&5
-echo "${ECHO_T}${WARN_CFLAGS}${WERROR_CFLAGS}" >&6
-fi
-
-
-default_sim_reserved_bits="1"
-# Check whether --enable-sim-reserved-bits or --disable-sim-reserved-bits was given.
-if test "${enable_sim_reserved_bits+set}" = set; then
- enableval="$enable_sim_reserved_bits"
- case "${enableval}" in
- yes) sim_reserved_bits="-DWITH_RESERVED_BITS=1";;
- no) sim_reserved_bits="-DWITH_RESERVED_BITS=0";;
- *) { { echo "$as_me:$LINENO: error: \"--enable-sim-reserved-bits does not take a value\"" >&5
-echo "$as_me: error: \"--enable-sim-reserved-bits does not take a value\"" >&2;}
- { (exit 1); exit 1; }; }; sim_reserved_bits="";;
-esac
-if test x"$silent" != x"yes" && test x"$sim_reserved_bits" != x""; then
- echo "Setting reserved flags = $sim_reserved_bits" 6>&1
-fi
-else
- sim_reserved_bits="-DWITH_RESERVED_BITS=${default_sim_reserved_bits}"
-fi;
-
-# DEPRECATED
-#
-# Instead of defining a `subtarget' macro, code should be checking
-# the value of {STATE,CPU}_ARCHITECTURE to identify the architecture
-# in question.
-#
-case "${target}" in
- mips64vr*-*-*) SIM_SUBTARGET="-DTARGET_ENABLE_FR=1" ;;
- mips*tx39*) SIM_SUBTARGET="-DSUBTARGET_R3900=1";;
- mipsisa32*-*-*) SIM_SUBTARGET="-DTARGET_ENABLE_FR=1";;
- mipsisa64*-*-*) SIM_SUBTARGET="-DTARGET_ENABLE_FR=1";;
- *) SIM_SUBTARGET="";;
-esac
-
-
-
-
-#
-# Select the byte order of the target
-#
-mips_endian=
-default_endian=
-case "${target}" in
- mips64el*-*-*) mips_endian=LITTLE_ENDIAN ;;
- mips64vr*el-*-*) default_endian=LITTLE_ENDIAN ;;
- mips64*-*-*) default_endian=BIG_ENDIAN ;;
- mips16*-*-*) default_endian=BIG_ENDIAN ;;
- mipsisa32*-*-*) default_endian=BIG_ENDIAN ;;
- mipsisa64*-*-*) default_endian=BIG_ENDIAN ;;
- mips*-*-*) default_endian=BIG_ENDIAN ;;
- *) default_endian=BIG_ENDIAN ;;
-esac
-
-wire_endian="$mips_endian"
-default_endian="$default_endian"
-# Check whether --enable-sim-endian or --disable-sim-endian was given.
-if test "${enable_sim_endian+set}" = set; then
- enableval="$enable_sim_endian"
- case "${enableval}" in
- b*|B*) sim_endian="-DWITH_TARGET_BYTE_ORDER=BIG_ENDIAN";;
- l*|L*) sim_endian="-DWITH_TARGET_BYTE_ORDER=LITTLE_ENDIAN";;
- yes) if test x"$wire_endian" != x; then
- sim_endian="-DWITH_TARGET_BYTE_ORDER=${wire_endian}"
- else
- if test x"$default_endian" != x; then
- sim_endian="-DWITH_TARGET_BYTE_ORDER=${default_endian}"
- else
- echo "No hard-wired endian for target $target" 1>&6
- sim_endian="-DWITH_TARGET_BYTE_ORDER=0"
- fi
- fi;;
- no) if test x"$default_endian" != x; then
- sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=${default_endian}"
- else
- if test x"$wire_endian" != x; then
- sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=${wire_endian}"
- else
- echo "No default endian for target $target" 1>&6
- sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=0"
- fi
- fi;;
- *) { { echo "$as_me:$LINENO: error: \"Unknown value $enableval for --enable-sim-endian\"" >&5
-echo "$as_me: error: \"Unknown value $enableval for --enable-sim-endian\"" >&2;}
- { (exit 1); exit 1; }; }; sim_endian="";;
-esac
-if test x"$silent" != x"yes" && test x"$sim_endian" != x""; then
- echo "Setting endian flags = $sim_endian" 6>&1
-fi
-else
- if test x"$default_endian" != x; then
- sim_endian="-DWITH_DEFAULT_TARGET_BYTE_ORDER=${default_endian}"
-else
- if test x"$wire_endian" != x; then
- sim_endian="-DWITH_TARGET_BYTE_ORDER=${wire_endian}"
- else
- sim_endian=
- fi
-fi
-fi;
-
-
-
-#
-# Select the bitsize of the target
-#
-mips_addr_bitsize=
-case "${target}" in
- mips64*-*-*) mips_bitsize=64 ; mips_msb=63 ;;
- mips16*-*-*) mips_bitsize=64 ; mips_msb=63 ;;
- mipsisa32*-*-*) mips_bitsize=32 ; mips_msb=31 ;;
- mipsisa64*-*-*) mips_bitsize=64 ; mips_msb=63 ;;
- mips*-*-*) mips_bitsize=32 ; mips_msb=31 ;;
- *) mips_bitsize=64 ; mips_msb=63 ;;
-esac
-wire_word_bitsize="$mips_bitsize"
-wire_word_msb="$mips_msb"
-wire_address_bitsize="$mips_addr_bitsize"
-wire_cell_bitsize=""
-# Check whether --enable-sim-bitsize or --disable-sim-bitsize was given.
-if test "${enable_sim_bitsize+set}" = set; then
- enableval="$enable_sim_bitsize"
- sim_bitsize=
-case "${enableval}" in
- 64,63 | 64,63,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=64 -DWITH_TARGET_WORD_MSB=63";;
- 32,31 | 32,31,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=31";;
- 64,0 | 64,0,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=0";;
- 32,0 | 64,0,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=0";;
- 32) if test x"$wire_word_msb" != x -a x"$wire_word_msb" != x0; then
- sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=31"
- else
- sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=0"
- fi ;;
- 64) if test x"$wire_word_msb" != x -a x"$wire_word_msb" != x0; then
- sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=64 -DWITH_TARGET_WORD_MSB=63"
- else
- sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=64 -DWITH_TARGET_WORD_MSB=0"
- fi ;;
- *) { { echo "$as_me:$LINENO: error: \"--enable-sim-bitsize was given $enableval. Expected 32 or 64\"" >&5
-echo "$as_me: error: \"--enable-sim-bitsize was given $enableval. Expected 32 or 64\"" >&2;}
- { (exit 1); exit 1; }; } ;;
-esac
-# address bitsize
-tmp=`echo "${enableval}" | sed -e "s/^[0-9]*,*[0-9]*,*//"`
-case x"${tmp}" in
- x ) ;;
- x32 | x32,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_ADDRESS_BITSIZE=32" ;;
- x64 | x64,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_ADDRESS_BITSIZE=64" ;;
- * ) { { echo "$as_me:$LINENO: error: \"--enable-sim-bitsize was given address size $enableval. Expected 32 or 64\"" >&5
-echo "$as_me: error: \"--enable-sim-bitsize was given address size $enableval. Expected 32 or 64\"" >&2;}
- { (exit 1); exit 1; }; } ;;
-esac
-# cell bitsize
-tmp=`echo "${enableval}" | sed -e "s/^[0-9]*,*[0-9*]*,*[0-9]*,*//"`
-case x"${tmp}" in
- x ) ;;
- x32 | x32,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_CELL_BITSIZE=32" ;;
- x64 | x64,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_CELL_BITSIZE=64" ;;
- * ) { { echo "$as_me:$LINENO: error: \"--enable-sim-bitsize was given cell size $enableval. Expected 32 or 64\"" >&5
-echo "$as_me: error: \"--enable-sim-bitsize was given cell size $enableval. Expected 32 or 64\"" >&2;}
- { (exit 1); exit 1; }; } ;;
-esac
-if test x"$silent" != x"yes" && test x"$sim_bitsize" != x""; then
- echo "Setting bitsize flags = $sim_bitsize" 6>&1
-fi
-else
- sim_bitsize=""
-if test x"$wire_word_bitsize" != x; then
- sim_bitsize="$sim_bitsize -DWITH_TARGET_WORD_BITSIZE=$wire_word_bitsize"
-fi
-if test x"$wire_word_msb" != x; then
- sim_bitsize="$sim_bitsize -DWITH_TARGET_WORD_MSB=$wire_word_msb"
-fi
-if test x"$wire_address_bitsize" != x; then
- sim_bitsize="$sim_bitsize -DWITH_TARGET_ADDRESS_BITSIZE=$wire_address_bitsize"
-fi
-if test x"$wire_cell_bitsize" != x; then
- sim_bitsize="$sim_bitsize -DWITH_TARGET_CELL_BITSIZE=$wire_cell_bitsize"
-fi
-fi;
-
-
-
-#
-# Select the floating hardware support of the target
-#
-mips_fpu=HARDWARE_FLOATING_POINT
-mips_fpu_bitsize=
-case "${target}" in
- mips*tx39*) mips_fpu=HARD_FLOATING_POINT
- mips_fpu_bitsize=32
- ;;
- mips64*-*-*) mips_fpu=HARD_FLOATING_POINT ;;
- mips16*-*-*) mips_fpu=HARD_FLOATING_POINT ;;
- mipsisa32*-*-*) mips_fpu=HARD_FLOATING_POINT ; mips_fpu_bitsize=64 ;;
- mipsisa64*-*-*) mips_fpu=HARD_FLOATING_POINT ; mips_fpu_bitsize=64 ;;
- mips*-*-*) mips_fpu=HARD_FLOATING_POINT ; mips_fpu_bitsize=32 ;;
- *) mips_fpu=HARD_FLOATING_POINT ;;
-esac
-
-default_sim_float="$mips_fpu"
-default_sim_float_bitsize="$mips_fpu_bitsize"
-# Check whether --enable-sim-float or --disable-sim-float was given.
-if test "${enable_sim_float+set}" = set; then
- enableval="$enable_sim_float"
- case "${enableval}" in
- yes | hard) sim_float="-DWITH_FLOATING_POINT=HARD_FLOATING_POINT";;
- no | soft) sim_float="-DWITH_FLOATING_POINT=SOFT_FLOATING_POINT";;
- 32) sim_float="-DWITH_FLOATING_POINT=HARD_FLOATING_POINT -DWITH_TARGET_FLOATING_POINT_BITSIZE=32";;
- 64) sim_float="-DWITH_FLOATING_POINT=HARD_FLOATING_POINT -DWITH_TARGET_FLOATING_POINT_BITSIZE=64";;
- *) { { echo "$as_me:$LINENO: error: \"Unknown value $enableval passed to --enable-sim-float\"" >&5
-echo "$as_me: error: \"Unknown value $enableval passed to --enable-sim-float\"" >&2;}
- { (exit 1); exit 1; }; }; sim_float="";;
-esac
-if test x"$silent" != x"yes" && test x"$sim_float" != x""; then
- echo "Setting float flags = $sim_float" 6>&1
-fi
-else
-
-sim_float=
-if test x"${default_sim_float}" != x""; then
- sim_float="-DWITH_FLOATING_POINT=${default_sim_float}"
-fi
-if test x"${default_sim_float_bitsize}" != x""; then
- sim_float="$sim_float -DWITH_TARGET_FLOATING_POINT_BITSIZE=${default_sim_float_bitsize}"
-fi
-
-fi;
-
-
-
-#
-# Select the level of SMP support
-#
-case "${target}" in
- *) mips_smp=0 ;;
-esac
-
-default_sim_smp="$mips_smp"
-# Check whether --enable-sim-smp or --disable-sim-smp was given.
-if test "${enable_sim_smp+set}" = set; then
- enableval="$enable_sim_smp"
- case "${enableval}" in
- yes) sim_smp="-DWITH_SMP=5" ; sim_igen_smp="-N 5";;
- no) sim_smp="-DWITH_SMP=0" ; sim_igen_smp="-N 0";;
- *) sim_smp="-DWITH_SMP=$enableval" ; sim_igen_smp="-N $enableval";;
-esac
-if test x"$silent" != x"yes" && test x"$sim_smp" != x""; then
- echo "Setting smp flags = $sim_smp" 6>&1
-fi
-else
- sim_smp="-DWITH_SMP=${default_sim_smp}" ; sim_igen_smp="-N ${default_sim_smp}"
-if test x"$silent" != x"yes"; then
- echo "Setting smp flags = $sim_smp" 6>&1
-fi
-fi;
-
-
-
-#
-# Select the IGEN architecture
-#
-sim_gen=IGEN
-sim_igen_machine="-M mipsIV"
-sim_m16_machine="-M mips16,mipsIII"
-sim_igen_filter="32,64,f"
-sim_m16_filter="16"
-sim_mach_default="mips8000"
-
-case "${target}" in
- mips*tx39*) sim_gen=IGEN
- sim_igen_filter="32,f"
- sim_igen_machine="-M r3900"
- ;;
- mips64vr43*-*-*) sim_gen=IGEN
- sim_igen_machine="-M mipsIV"
- sim_mach_default="mips8000"
- ;;
- mips64vr5*-*-*) sim_gen=IGEN
- sim_igen_machine="-M vr5000"
- sim_mach_default="mips5000"
- ;;
- mips64vr41*) sim_gen=M16
- sim_igen_machine="-M vr4100"
- sim_m16_machine="-M vr4100"
- sim_igen_filter="32,64,f"
- sim_m16_filter="16"
- sim_mach_default="mips4100"
- ;;
- mips64vr-*-* | mips64vrel-*-*)
- sim_gen=MULTI
- sim_multi_configs="\
- vr4100:mipsIII,mips16,vr4100:32,64:mips4100,mips4111\
- vr4120:mipsIII,mips16,vr4120:32,64:mips4120\
- vr5000:mipsIV:32,64,f:mips4300,mips5000\
- vr5400:mipsIV,vr5400:32,64,f:mips5400\
- vr5500:mipsIV,vr5500:32,64,f:mips5500"
- sim_multi_default=mips5000
- ;;
- mips64*-*-*) sim_igen_filter="32,64,f"
- sim_gen=IGEN
- ;;
- mips16*-*-*) sim_gen=M16
- sim_igen_filter="32,64,f"
- sim_m16_filter="16"
- ;;
- mipsisa32r2*-*-*) sim_gen=M16
- sim_igen_machine="-M mips32r2,mips16,mips16e,dsp"
- sim_m16_machine="-M mips16,mips16e,mips32r2"
- sim_igen_filter="32,f"
- sim_mach_default="mipsisa32r2"
- ;;
- mipsisa32*-*-*) sim_gen=M16
- sim_igen_machine="-M mips32,mips16,mips16e,dsp"
- sim_m16_machine="-M mips16,mips16e,mips32"
- sim_igen_filter="32,f"
- sim_mach_default="mipsisa32"
- ;;
- mipsisa64r2*-*-*) sim_gen=M16
- sim_igen_machine="-M mips64r2,mips3d,mips16,mips16e,dsp"
- sim_m16_machine="-M mips16,mips16e,mips64r2"
- sim_igen_filter="32,64,f"
- sim_mach_default="mipsisa64r2"
- ;;
- mipsisa64sb1*-*-*) sim_gen=IGEN
- sim_igen_machine="-M mips64,mips3d,sb1"
- sim_igen_filter="32,64,f"
- sim_mach_default="mips_sb1"
- ;;
- mipsisa64*-*-*) sim_gen=M16
- sim_igen_machine="-M mips64,mips3d,mips16,mips16e,dsp"
- sim_m16_machine="-M mips16,mips16e,mips64"
- sim_igen_filter="32,64,f"
- sim_mach_default="mipsisa64"
- ;;
- mips*lsi*) sim_gen=M16
- sim_igen_machine="-M mipsIII,mips16"
- sim_m16_machine="-M mips16,mipsIII"
- sim_igen_filter="32,f"
- sim_m16_filter="16"
- sim_mach_default="mips4000"
- ;;
- mips*-*-*) sim_gen=IGEN
- sim_igen_filter="32,f"
- ;;
-esac
-
-# The MULTI generator can combine several simulation engines into one.
-# executable. A configuration which uses the MULTI should set two
-# variables: ${sim_multi_configs} and ${sim_multi_default}.
-#
-# ${sim_multi_configs} is the list of engines to build. Each
-# space-separated entry has the form NAME:MACHINE:FILTER:BFDMACHS,
-# where:
-#
-# - NAME is a C-compatible prefix for the engine,
-# - MACHINE is a -M argument,
-# - FILTER is a -F argument, and
-# - BFDMACHS is a comma-separated list of bfd machines that the
-# simulator can run.
-#
-# Each entry will have a separate simulation engine whose prefix is
-# m32<NAME>. If the machine list includes "mips16", there will also
-# be a mips16 engine, prefix m16<NAME>. The mips16 engine will be
-# generated using the same machine list as the 32-bit version,
-# but the filter will be "16" instead of FILTER.
-#
-# The simulator compares the bfd mach against BFDMACHS to decide
-# which engine to use. Entries in BFDMACHS should be bfd_mach
-# values with "bfd_mach_" removed. ${sim_multi_default} says
-# which entry should be the default.
-if test ${sim_gen} = MULTI; then
-
- # Simple sanity check.
- if test -z "${sim_multi_configs}" || test -z "${sim_multi_default}"; then
- { { echo "$as_me:$LINENO: error: Error in configure.in: MULTI simulator not set up correctly" >&5
-echo "$as_me: error: Error in configure.in: MULTI simulator not set up correctly" >&2;}
- { (exit 1); exit 1; }; }
- fi
-
- # Start in a known state.
- rm -f multi-include.h multi-run.c
- sim_multi_flags=
- sim_multi_src=
- sim_multi_obj=multi-run.o
- sim_multi_igen_configs=
- sim_seen_default=no
-
- cat << __EOF__ > multi-run.c
-/* Main entry point for MULTI simulators.
- Copyright (C) 2003 Free Software Foundation, Inc.
-
- This program 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 2 of the License, or
- (at your option) any later version.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- --
-
- This file was generated by sim/mips/configure. */
-
-#include "sim-main.h"
-#include "multi-include.h"
-
-#define SD sd
-#define CPU cpu
-
-void
-sim_engine_run (SIM_DESC sd,
- int next_cpu_nr,
- int nr_cpus,
- int signal) /* ignore */
-{
- int mach;
-
- if (STATE_ARCHITECTURE (sd) == NULL)
- mach = bfd_mach_${sim_multi_default};
- else
- mach = STATE_ARCHITECTURE (SD)->mach;
-
- switch (mach)
- {
-__EOF__
-
- for fc in ${sim_multi_configs}; do
-
- # Split up the entry. ${c} contains the first three elements.
- # Note: outer sqaure brackets are m4 quotes.
- c=`echo ${fc} | sed 's/:[^:]*$//'`
- bfdmachs=`echo ${fc} | sed 's/.*://'`
- name=`echo ${c} | sed 's/:.*//'`
- machine=`echo ${c} | sed 's/.*:\(.*\):.*/\1/'`
- filter=`echo ${c} | sed 's/.*://'`
-
- # Build the following lists:
- #
- # sim_multi_flags: all -M and -F flags used by the simulator
- # sim_multi_src: all makefile-generated source files
- # sim_multi_obj: the objects for ${sim_multi_src}
- # sim_multi_igen_configs: igen configuration strings.
- #
- # Each entry in ${sim_multi_igen_configs} is a prefix (m32
- # or m16) followed by the NAME, MACHINE and FILTER part of
- # the ${sim_multi_configs} entry.
- sim_multi_flags="${sim_multi_flags} -F ${filter} -M ${machine}"
-
- # Check whether mips16 handling is needed.
- case ${c} in
- *:*mips16*:*)
- # Run igen twice, once for normal mode and once for mips16.
- ws="m32 m16"
-
- # The top-level function for the mips16 simulator is
- # in a file m16${name}_run.c, generated by the
- # tmp-run-multi Makefile rule.
- sim_multi_src="${sim_multi_src} m16${name}_run.c"
- sim_multi_obj="${sim_multi_obj} m16${name}_run.o"
- sim_multi_flags="${sim_multi_flags} -F 16"
- ;;
- *)
- ws=m32
- ;;
- esac
-
- # Now add the list of igen-generated files to ${sim_multi_src}
- # and ${sim_multi_obj}.
- for w in ${ws}; do
- for base in engine icache idecode model semantics support; do
- sim_multi_src="${sim_multi_src} ${w}${name}_${base}.c"
- sim_multi_src="${sim_multi_src} ${w}${name}_${base}.h"
- sim_multi_obj="${sim_multi_obj} ${w}${name}_${base}.o"
- done
- sim_multi_igen_configs="${sim_multi_igen_configs} ${w}${c}"
- done
-
- # Add an include for the engine.h file. This file declares the
- # top-level foo_engine_run() function.
- echo "#include \"${w}${name}_engine.h\"" >> multi-include.h
-
- # Add case statements for this engine to sim_engine_run().
- for mach in `echo ${bfdmachs} | sed 's/,/ /g'`; do
- echo " case bfd_mach_${mach}:" >> multi-run.c
- if test ${mach} = ${sim_multi_default}; then
- echo " default:" >> multi-run.c
- sim_seen_default=yes
- fi
- done
- echo " ${w}${name}_engine_run (sd, next_cpu_nr, nr_cpus, signal);" \
- >> multi-run.c
- echo " break;" >> multi-run.c
- done
-
- # Check whether we added a 'default:' label.
- if test ${sim_seen_default} = no; then
- { { echo "$as_me:$LINENO: error: Error in configure.in: \${sim_multi_configs} doesn't have an entry for \${sim_multi_default}" >&5
-echo "$as_me: error: Error in configure.in: \${sim_multi_configs} doesn't have an entry for \${sim_multi_default}" >&2;}
- { (exit 1); exit 1; }; }
- fi
-
- cat << __EOF__ >> multi-run.c
- }
-}
-
-int
-mips_mach_multi (SIM_DESC sd)
-{
- if (STATE_ARCHITECTURE (sd) == NULL)
- return bfd_mach_${sim_multi_default};
-
- switch (STATE_ARCHITECTURE (SD)->mach)
- {
-__EOF__
-
- # Add case statements for this engine to mips_mach_multi().
- for fc in ${sim_multi_configs}; do
-
- # Split up the entry. ${c} contains the first three elements.
- # Note: outer sqaure brackets are m4 quotes.
- c=`echo ${fc} | sed 's/:[^:]*$//'`
- bfdmachs=`echo ${fc} | sed 's/.*://'`
-
- for mach in `echo ${bfdmachs} | sed 's/,/ /g'`; do
- echo " case bfd_mach_${mach}:" >> multi-run.c
- done
- done
-
- cat << __EOF__ >> multi-run.c
- return (STATE_ARCHITECTURE (SD)->mach);
- default:
- return bfd_mach_${sim_multi_default};
- }
-}
-__EOF__
-
- SIM_SUBTARGET="$SIM_SUBTARGET -DMIPS_MACH_MULTI"
-else
- # For clean-extra
- sim_multi_src=doesnt-exist.c
-
- if test x"${sim_mach_default}" = x""; then
- { { echo "$as_me:$LINENO: error: Error in configure.in: \${sim_mach_default} not defined" >&5
-echo "$as_me: error: Error in configure.in: \${sim_mach_default} not defined" >&2;}
- { (exit 1); exit 1; }; }
- fi
- SIM_SUBTARGET="$SIM_SUBTARGET -DMIPS_MACH_DEFAULT=bfd_mach_${sim_mach_default}"
-fi
-sim_igen_flags="-F ${sim_igen_filter} ${sim_igen_machine} ${sim_igen_smp}"
-sim_m16_flags=" -F ${sim_m16_filter} ${sim_m16_machine} ${sim_igen_smp}"
-
-
-
-
-
-
-
-
-
-#
-# Add simulated hardware devices
-#
-hw_enabled=no
-case "${target}" in
- mips*tx39*)
- hw_enabled=yes
- hw_extra_devices="tx3904cpu tx3904irc tx3904tmr tx3904sio"
- mips_extra_objs="dv-sockser.o"
- SIM_SUBTARGET="$SIM_SUBTARGET -DTARGET_TX3904=1"
- ;;
- *)
- mips_extra_objs=""
- ;;
-esac
-
-if test x"$hw_enabled" = x"yes"; then
- sim_hw_p=yes
-else
- sim_hw_p=no
-fi
-if test "$hw_devices"; then
- hardware="core pal glue"
-else
- hardware="core pal glue $hw_extra_devices"
-fi
-sim_hw_cflags="-DWITH_HW=1"
-sim_hw="$hardware"
-sim_hw_objs="\$(SIM_COMMON_HW_OBJS) `echo $sim_hw | sed -e 's/\([^ ][^ ]*\)/dv-\1.o/g'`"
-# Check whether --enable-sim-hardware or --disable-sim-hardware was given.
-if test "${enable_sim_hardware+set}" = set; then
- enableval="$enable_sim_hardware"
-
-case "${enableval}" in
- yes) sim_hw_p=yes;;
- no) sim_hw_p=no;;
- ,*) sim_hw_p=yes; hardware="${hardware} `echo ${enableval} | sed -e 's/,/ /'`";;
- *,) sim_hw_p=yes; hardware="`echo ${enableval} | sed -e 's/,/ /'` ${hardware}";;
- *) sim_hw_p=yes; hardware="`echo ${enableval} | sed -e 's/,/ /'`"'';;
-esac
-if test "$sim_hw_p" != yes; then
- sim_hw_objs=
- sim_hw_cflags="-DWITH_HW=0"
- sim_hw=
-else
- sim_hw_cflags="-DWITH_HW=1"
- # remove duplicates
- sim_hw=""
- sim_hw_objs="\$(SIM_COMMON_HW_OBJS)"
- for i in $hardware ; do
- case " $sim_hw " in
- *" $i "*) ;;
- *) sim_hw="$sim_hw $i" ; sim_hw_objs="$sim_hw_objs dv-$i.o";;
- esac
- done
-fi
-if test x"$silent" != x"yes" && test "$sim_hw_p" = "yes"; then
- echo "Setting hardware to $sim_hw_cflags, $sim_hw, $sim_hw_objs"
-fi
-else
-
-if test "$sim_hw_p" != yes; then
- sim_hw_objs=
- sim_hw_cflags="-DWITH_HW=0"
- sim_hw=
-fi
-if test x"$silent" != x"yes"; then
- echo "Setting hardware to $sim_hw_cflags, $sim_hw, $sim_hw_objs"
-fi
-fi;
-
-
-
-# Choose simulator engine
-case "${target}" in
- *) mips_igen_engine="engine.o"
- ;;
-esac
-
-
-
-echo "$as_me:$LINENO: checking for X" >&5
-echo $ECHO_N "checking for X... $ECHO_C" >&6
-
-
-# Check whether --with-x or --without-x was given.
-if test "${with_x+set}" = set; then
- withval="$with_x"
-
-fi;
-# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
-if test "x$with_x" = xno; then
- # The user explicitly disabled X.
- have_x=disabled
-else
- if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then
- # Both variables are already set.
- have_x=yes
- else
- if test "${ac_cv_have_x+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # One or both of the vars are not set, and there is no cached value.
-ac_x_includes=no ac_x_libraries=no
-rm -fr conftest.dir
-if mkdir conftest.dir; then
- cd conftest.dir
- # Make sure to not put "make" in the Imakefile rules, since we grep it out.
- cat >Imakefile <<'_ACEOF'
-acfindx:
- @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"'
-_ACEOF
- if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
- # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
- eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
- # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
- for ac_extension in a so sl; do
- if test ! -f $ac_im_usrlibdir/libX11.$ac_extension &&
- test -f $ac_im_libdir/libX11.$ac_extension; then
- ac_im_usrlibdir=$ac_im_libdir; break
- fi
- done
- # Screen out bogus values from the imake configuration. They are
- # bogus both because they are the default anyway, and because
- # using them would break gcc on systems where it needs fixed includes.
- case $ac_im_incroot in
- /usr/include) ;;
- *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
- esac
- case $ac_im_usrlibdir in
- /usr/lib | /lib) ;;
- *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;;
- esac
- fi
- cd ..
- rm -fr conftest.dir
-fi
-
-# Standard set of common directories for X headers.
-# Check X11 before X11Rn because it is often a symlink to the current release.
-ac_x_header_dirs='
-/usr/X11/include
-/usr/X11R6/include
-/usr/X11R5/include
-/usr/X11R4/include
-
-/usr/include/X11
-/usr/include/X11R6
-/usr/include/X11R5
-/usr/include/X11R4
-
-/usr/local/X11/include
-/usr/local/X11R6/include
-/usr/local/X11R5/include
-/usr/local/X11R4/include
-
-/usr/local/include/X11
-/usr/local/include/X11R6
-/usr/local/include/X11R5
-/usr/local/include/X11R4
-
-/usr/X386/include
-/usr/x386/include
-/usr/XFree86/include/X11
-
-/usr/include
-/usr/local/include
-/usr/unsupported/include
-/usr/athena/include
-/usr/local/x11r5/include
-/usr/lpp/Xamples/include
-
-/usr/openwin/include
-/usr/openwin/share/include'
-
-if test "$ac_x_includes" = no; then
- # Guess where to find include files, by looking for Intrinsic.h.
- # First, try using that file with no special directory specified.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <X11/Intrinsic.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # We can compile using X headers with no special include directory.
-ac_x_includes=
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- for ac_dir in $ac_x_header_dirs; do
- if test -r "$ac_dir/X11/Intrinsic.h"; then
- ac_x_includes=$ac_dir
- break
- fi
-done
-fi
-rm -f conftest.err conftest.$ac_ext
-fi # $ac_x_includes = no
-
-if test "$ac_x_libraries" = no; then
- # Check for the libraries.
- # See if we find them without any special options.
- # Don't add to $LIBS permanently.
- ac_save_LIBS=$LIBS
- LIBS="-lXt $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <X11/Intrinsic.h>
-int
-main ()
-{
-XtMalloc (0)
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- LIBS=$ac_save_LIBS
-# We can link X programs with no special library path.
-ac_x_libraries=
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-LIBS=$ac_save_LIBS
-for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
-do
- # Don't even attempt the hair of trying to link an X program!
- for ac_extension in a so sl; do
- if test -r $ac_dir/libXt.$ac_extension; then
- ac_x_libraries=$ac_dir
- break 2
- fi
- done
-done
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi # $ac_x_libraries = no
-
-if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then
- # Didn't find X anywhere. Cache the known absence of X.
- ac_cv_have_x="have_x=no"
-else
- # Record where we found X for the cache.
- ac_cv_have_x="have_x=yes \
- ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries"
-fi
-fi
-
- fi
- eval "$ac_cv_have_x"
-fi # $with_x != no
-
-if test "$have_x" != yes; then
- echo "$as_me:$LINENO: result: $have_x" >&5
-echo "${ECHO_T}$have_x" >&6
- no_x=yes
-else
- # If each of the values was on the command line, it overrides each guess.
- test "x$x_includes" = xNONE && x_includes=$ac_x_includes
- test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
- # Update the cache value to reflect the command line values.
- ac_cv_have_x="have_x=yes \
- ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
- echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5
-echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6
-fi
-
-mips_extra_libs=""
-
-
-
-
-
-
-for ac_header in string.h strings.h stdlib.h stdlib.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- eval "$as_ac_Header=\$ac_header_preproc"
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-echo "$as_me:$LINENO: checking for fabs in -lm" >&5
-echo $ECHO_N "checking for fabs in -lm... $ECHO_C" >&6
-if test "${ac_cv_lib_m_fabs+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lm $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char fabs ();
-int
-main ()
-{
-fabs ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_m_fabs=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_m_fabs=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_m_fabs" >&5
-echo "${ECHO_T}$ac_cv_lib_m_fabs" >&6
-if test $ac_cv_lib_m_fabs = yes; then
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBM 1
-_ACEOF
-
- LIBS="-lm $LIBS"
-
-fi
-
-
-
-
-for ac_func in aint anint sqrt
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-ac_sources="$sim_link_files"
-ac_dests="$sim_link_links"
-while test -n "$ac_sources"; do
- set $ac_dests; ac_dest=$1; shift; ac_dests=$*
- set $ac_sources; ac_source=$1; shift; ac_sources=$*
- ac_config_links_1="$ac_config_links_1 $ac_dest:$ac_source"
-done
- ac_config_links="$ac_config_links $ac_config_links_1"
-
-cgen_breaks=""
-if grep CGEN_MAINT $srcdir/Makefile.in >/dev/null; then
-cgen_breaks="break cgen_rtx_error";
-fi
-
- ac_config_files="$ac_config_files Makefile.sim:Makefile.in"
-
- ac_config_files="$ac_config_files Make-common.sim:../common/Make-common.in"
-
- ac_config_files="$ac_config_files .gdbinit:../common/gdbinit.in"
-
- ac_config_commands="$ac_config_commands Makefile"
-
- ac_config_commands="$ac_config_commands stamp-h"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-{
- (set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n \
- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
- ;;
- esac;
-} |
- sed '
- t clear
- : clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
- /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
- if test -w $cache_file; then
- test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
- cat confcache >$cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[ ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[ ]*$//;
-}'
-fi
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_i=`echo "$ac_i" |
- sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
- # 2. Add them.
- ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
- ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
- set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" || {
- # Find who we are. Look in the path if we contain no path at all
- # relative or not.
- case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
- ;;
- esac
- # We did not find ourselves, most probably we were run as `sh COMMAND'
- # in which case we are not to be found in the path.
- if test "x$as_myself" = x; then
- as_myself=$0
- fi
- if test ! -f "$as_myself"; then
- { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
- { (exit 1); exit 1; }; }
- fi
- case $CONFIG_SHELL in
- '')
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
- fi;;
- esac
- done
-done
-;;
- esac
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line before each line; the second 'sed' does the real
- # work. The second script uses 'N' to pair each line-number line
- # with the numbered line, and appends trailing '-' during
- # substitution so that $LINENO is not a special case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
- sed '=' <$as_myself |
- sed '
- N
- s,$,-,
- : loop
- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
- t loop
- s,-$,,
- s,^['$as_cr_digits']*\n,,
- ' >$as_me.lineno &&
- chmod +x $as_me.lineno ||
- { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensible to this).
- . ./$as_me.lineno
- # Exit status is that of the last command.
- exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
- *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T=' ' ;;
- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- # We could just check for DJGPP; but this test a) works b) is more generic
- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
- if test -f conf$$.exe; then
- # Don't use ln at all; we don't have any links
- as_ln_s='cp -p'
- else
- as_ln_s='ln -s'
- fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling. Logging --version etc. is OK.
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by $as_me, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
- echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
- echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
- echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
- echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
- -h, --help print this help, then exit
- -V, --version print version number, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration links:
-$config_links
-
-Configuration commands:
-$config_commands
-
-Report bugs to <bug-autoconf@gnu.org>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-config.status
-configured by $0, generated by GNU Autoconf 2.59,
- with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-INSTALL="$INSTALL"
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value. By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=*)
- ac_option=`expr "x$1" : 'x\([^=]*\)='`
- ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- -*)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- *) # This is not an option, so the user has probably given explicit
- # arguments.
- ac_option=$1
- ac_need_defaults=false;;
- esac
-
- case $ac_option in
- # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --vers* | -V )
- echo "$ac_cs_version"; exit 0 ;;
- --he | --h)
- # Conflict between --help and --header
- { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
- { (exit 1); exit 1; }; };;
- --help | --hel | -h )
- echo "$ac_cs_usage"; exit 0 ;;
- --debug | --d* | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- CONFIG_FILES="$CONFIG_FILES $ac_optarg"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
- ac_need_defaults=false;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
- { (exit 1); exit 1; }; } ;;
-
- *) ac_config_targets="$ac_config_targets $1" ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
- echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
- exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-
-
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
- case "$ac_config_target" in
- # Handling of arguments.
- "Makefile.sim" ) CONFIG_FILES="$CONFIG_FILES Makefile.sim:Makefile.in" ;;
- "Make-common.sim" ) CONFIG_FILES="$CONFIG_FILES Make-common.sim:../common/Make-common.in" ;;
- ".gdbinit" ) CONFIG_FILES="$CONFIG_FILES .gdbinit:../common/gdbinit.in" ;;
- "$ac_config_links_1" ) CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_1" ;;
- "Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;;
- "stamp-h" ) CONFIG_COMMANDS="$CONFIG_COMMANDS stamp-h" ;;
- "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.in" ;;
- *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
- trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
- trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
-} ||
-{
- tmp=./confstat$$-$RANDOM
- (umask 077 && mkdir $tmp)
-} ||
-{
- echo "$me: cannot create a temporary directory in ." >&2
- { (exit 1); exit 1; }
-}
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
- # Protect against being on the right side of a sed subst in config.status.
- sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
- s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@sim_environment@,$sim_environment,;t t
-s,@sim_alignment@,$sim_alignment,;t t
-s,@sim_assert@,$sim_assert,;t t
-s,@sim_bitsize@,$sim_bitsize,;t t
-s,@sim_endian@,$sim_endian,;t t
-s,@sim_hostendian@,$sim_hostendian,;t t
-s,@sim_float@,$sim_float,;t t
-s,@sim_scache@,$sim_scache,;t t
-s,@sim_default_model@,$sim_default_model,;t t
-s,@sim_hw_cflags@,$sim_hw_cflags,;t t
-s,@sim_hw_objs@,$sim_hw_objs,;t t
-s,@sim_hw@,$sim_hw,;t t
-s,@sim_inline@,$sim_inline,;t t
-s,@sim_packages@,$sim_packages,;t t
-s,@sim_regparm@,$sim_regparm,;t t
-s,@sim_reserved_bits@,$sim_reserved_bits,;t t
-s,@sim_smp@,$sim_smp,;t t
-s,@sim_stdcall@,$sim_stdcall,;t t
-s,@sim_xor_endian@,$sim_xor_endian,;t t
-s,@WARN_CFLAGS@,$WARN_CFLAGS,;t t
-s,@WERROR_CFLAGS@,$WERROR_CFLAGS,;t t
-s,@build@,$build,;t t
-s,@build_cpu@,$build_cpu,;t t
-s,@build_vendor@,$build_vendor,;t t
-s,@build_os@,$build_os,;t t
-s,@host@,$host,;t t
-s,@host_cpu@,$host_cpu,;t t
-s,@host_vendor@,$host_vendor,;t t
-s,@host_os@,$host_os,;t t
-s,@target@,$target,;t t
-s,@target_cpu@,$target_cpu,;t t
-s,@target_vendor@,$target_vendor,;t t
-s,@target_os@,$target_os,;t t
-s,@CC@,$CC,;t t
-s,@CFLAGS@,$CFLAGS,;t t
-s,@LDFLAGS@,$LDFLAGS,;t t
-s,@CPPFLAGS@,$CPPFLAGS,;t t
-s,@ac_ct_CC@,$ac_ct_CC,;t t
-s,@EXEEXT@,$EXEEXT,;t t
-s,@OBJEXT@,$OBJEXT,;t t
-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
-s,@CC_FOR_BUILD@,$CC_FOR_BUILD,;t t
-s,@HDEFINES@,$HDEFINES,;t t
-s,@AR@,$AR,;t t
-s,@RANLIB@,$RANLIB,;t t
-s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
-s,@USE_NLS@,$USE_NLS,;t t
-s,@LIBINTL@,$LIBINTL,;t t
-s,@LIBINTL_DEP@,$LIBINTL_DEP,;t t
-s,@INCINTL@,$INCINTL,;t t
-s,@XGETTEXT@,$XGETTEXT,;t t
-s,@GMSGFMT@,$GMSGFMT,;t t
-s,@POSUB@,$POSUB,;t t
-s,@CATALOGS@,$CATALOGS,;t t
-s,@DATADIRNAME@,$DATADIRNAME,;t t
-s,@INSTOBJEXT@,$INSTOBJEXT,;t t
-s,@GENCAT@,$GENCAT,;t t
-s,@CATOBJEXT@,$CATOBJEXT,;t t
-s,@CPP@,$CPP,;t t
-s,@EGREP@,$EGREP,;t t
-s,@MAINT@,$MAINT,;t t
-s,@sim_bswap@,$sim_bswap,;t t
-s,@sim_cflags@,$sim_cflags,;t t
-s,@sim_debug@,$sim_debug,;t t
-s,@sim_stdio@,$sim_stdio,;t t
-s,@sim_trace@,$sim_trace,;t t
-s,@sim_profile@,$sim_profile,;t t
-s,@SIM_SUBTARGET@,$SIM_SUBTARGET,;t t
-s,@sim_igen_flags@,$sim_igen_flags,;t t
-s,@sim_m16_flags@,$sim_m16_flags,;t t
-s,@sim_gen@,$sim_gen,;t t
-s,@sim_multi_flags@,$sim_multi_flags,;t t
-s,@sim_multi_igen_configs@,$sim_multi_igen_configs,;t t
-s,@sim_multi_src@,$sim_multi_src,;t t
-s,@sim_multi_obj@,$sim_multi_obj,;t t
-s,@mips_extra_objs@,$mips_extra_objs,;t t
-s,@mips_igen_engine@,$mips_igen_engine,;t t
-s,@mips_extra_libs@,$mips_extra_libs,;t t
-s,@cgen_breaks@,$cgen_breaks,;t t
-s,@LIBOBJS@,$LIBOBJS,;t t
-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
-CEOF
-
-_ACEOF
-
- cat >>$CONFIG_STATUS <<\_ACEOF
- # Split the substitutions into bite-sized pieces for seds with
- # small command number limits, like on Digital OSF/1 and HP-UX.
- ac_max_sed_lines=48
- ac_sed_frag=1 # Number of current file.
- ac_beg=1 # First line for current file.
- ac_end=$ac_max_sed_lines # Line after last line for current file.
- ac_more_lines=:
- ac_sed_cmds=
- while $ac_more_lines; do
- if test $ac_beg -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
- else
- sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
- fi
- if test ! -s $tmp/subs.frag; then
- ac_more_lines=false
- else
- # The purpose of the label and of the branching condition is to
- # speed up the sed processing (if there are no `@' at all, there
- # is no need to browse any of the substitutions).
- # These are the two extra sed commands mentioned above.
- (echo ':t
- /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
- else
- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
- fi
- ac_sed_frag=`expr $ac_sed_frag + 1`
- ac_beg=$ac_end
- ac_end=`expr $ac_end + $ac_max_sed_lines`
- fi
- done
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
- fi
-fi # test -n "$CONFIG_FILES"
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case $ac_file in
- - | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- * ) ac_file_in=$ac_file.in ;;
- esac
-
- # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
- esac
-
- if test x"$ac_file" != x-; then
- { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
- rm -f "$ac_file"
- fi
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- if test x"$ac_file" = x-; then
- configure_input=
- else
- configure_input="$ac_file. "
- fi
- configure_input=$configure_input"Generated from `echo $ac_file_in |
- sed 's,.*/,,'` by configure."
-
- # First look for the input files in the build tree, otherwise in the
- # src tree.
- ac_file_inputs=`IFS=:
- for f in $ac_file_in; do
- case $f in
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- echo "$f";;
- *) # Relative
- if test -f "$f"; then
- # Build tree
- echo "$f"
- elif test -f "$srcdir/$f"; then
- # Source tree
- echo "$srcdir/$f"
- else
- # /dev/null tree
- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
- esac
- done` || { (exit 1); exit 1; }
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
- sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;t t
-s,@srcdir@,$ac_srcdir,;t t
-s,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-s,@INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
- rm -f $tmp/stdin
- if test x"$ac_file" != x-; then
- mv $tmp/out $ac_file
- else
- cat $tmp/out
- rm -f $tmp/out
- fi
-
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_HEADER section.
-#
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='[ ].*$,\1#\2'
-ac_dC=' '
-ac_dD=',;t'
-# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_uB='$,\1#\2define\3'
-ac_uC=' '
-ac_uD=',;t'
-
-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case $ac_file in
- - | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- * ) ac_file_in=$ac_file.in ;;
- esac
-
- test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-
- # First look for the input files in the build tree, otherwise in the
- # src tree.
- ac_file_inputs=`IFS=:
- for f in $ac_file_in; do
- case $f in
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- # Do quote $f, to prevent DOS paths from being IFS'd.
- echo "$f";;
- *) # Relative
- if test -f "$f"; then
- # Build tree
- echo "$f"
- elif test -f "$srcdir/$f"; then
- # Source tree
- echo "$srcdir/$f"
- else
- # /dev/null tree
- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
- esac
- done` || { (exit 1); exit 1; }
- # Remove the trailing spaces.
- sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
-
-_ACEOF
-
-# Transform confdefs.h into two sed scripts, `conftest.defines' and
-# `conftest.undefs', that substitutes the proper values into
-# config.h.in to produce config.h. The first handles `#define'
-# templates, and the second `#undef' templates.
-# And first: Protect against being on the right side of a sed subst in
-# config.status. Protect against being in an unquoted here document
-# in config.status.
-rm -f conftest.defines conftest.undefs
-# Using a here document instead of a string reduces the quoting nightmare.
-# Putting comments in sed scripts is not portable.
-#
-# `end' is used to avoid that the second main sed command (meant for
-# 0-ary CPP macros) applies to n-ary macro definitions.
-# See the Autoconf documentation for `clear'.
-cat >confdef2sed.sed <<\_ACEOF
-s/[\\&,]/\\&/g
-s,[\\$`],\\&,g
-t clear
-: clear
-s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
-t end
-s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
-: end
-_ACEOF
-# If some macros were called several times there might be several times
-# the same #defines, which is useless. Nevertheless, we may not want to
-# sort them, since we want the *last* AC-DEFINE to be honored.
-uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
-sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
-rm -f confdef2sed.sed
-
-# This sed command replaces #undef with comments. This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >>conftest.undefs <<\_ACEOF
-s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-_ACEOF
-
-# Break up conftest.defines because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
-echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
-echo ' :' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.defines >/dev/null
-do
- # Write a limited-size here document to $tmp/defines.sed.
- echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
- # Speed up: don't consider the non `#define' lines.
- echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
- # Work around the forget-to-reset-the-flag bug.
- echo 't clr' >>$CONFIG_STATUS
- echo ': clr' >>$CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
- echo 'CEOF
- sed -f $tmp/defines.sed $tmp/in >$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
- rm -f conftest.defines
- mv conftest.tail conftest.defines
-done
-rm -f conftest.defines
-echo ' fi # grep' >>$CONFIG_STATUS
-echo >>$CONFIG_STATUS
-
-# Break up conftest.undefs because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo ' # Handle all the #undef templates' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.undefs >/dev/null
-do
- # Write a limited-size here document to $tmp/undefs.sed.
- echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
- # Speed up: don't consider the non `#undef'
- echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
- # Work around the forget-to-reset-the-flag bug.
- echo 't clr' >>$CONFIG_STATUS
- echo ': clr' >>$CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
- echo 'CEOF
- sed -f $tmp/undefs.sed $tmp/in >$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
- rm -f conftest.undefs
- mv conftest.tail conftest.undefs
-done
-rm -f conftest.undefs
-
-cat >>$CONFIG_STATUS <<\_ACEOF
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- if test x"$ac_file" = x-; then
- echo "/* Generated by configure. */" >$tmp/config.h
- else
- echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
- fi
- cat $tmp/in >>$tmp/config.h
- rm -f $tmp/in
- if test x"$ac_file" != x-; then
- if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
- { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-echo "$as_me: $ac_file is unchanged" >&6;}
- else
- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- rm -f $ac_file
- mv $tmp/config.h $ac_file
- fi
- else
- cat $tmp/config.h
- rm -f $tmp/config.h
- fi
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_LINKS section.
-#
-
-for ac_file in : $CONFIG_LINKS; do test "x$ac_file" = x: && continue
- ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
- ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
-
- { echo "$as_me:$LINENO: linking $srcdir/$ac_source to $ac_dest" >&5
-echo "$as_me: linking $srcdir/$ac_source to $ac_dest" >&6;}
-
- if test ! -r $srcdir/$ac_source; then
- { { echo "$as_me:$LINENO: error: $srcdir/$ac_source: file not found" >&5
-echo "$as_me: error: $srcdir/$ac_source: file not found" >&2;}
- { (exit 1); exit 1; }; }
- fi
- rm -f $ac_dest
-
- # Make relative symlinks.
- ac_dest_dir=`(dirname "$ac_dest") 2>/dev/null ||
-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_dest" : 'X\(//\)[^/]' \| \
- X"$ac_dest" : 'X\(//\)$' \| \
- X"$ac_dest" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_dest" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dest_dir"
- else
- as_dir="$ac_dest_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dest_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dest_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- ac_builddir=.
-
-if test "$ac_dest_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dest_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dest_dir";;
-*)
- case "$ac_dest_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dest_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dest_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
-
- case $srcdir in
- [\\/$]* | ?:[\\/]* ) ac_rel_source=$srcdir/$ac_source ;;
- *) ac_rel_source=$ac_top_builddir$srcdir/$ac_source ;;
- esac
-
- # Try a symlink, then a hard link, then a copy.
- ln -s $ac_rel_source $ac_dest 2>/dev/null ||
- ln $srcdir/$ac_source $ac_dest 2>/dev/null ||
- cp -p $srcdir/$ac_source $ac_dest ||
- { { echo "$as_me:$LINENO: error: cannot link or copy $srcdir/$ac_source to $ac_dest" >&5
-echo "$as_me: error: cannot link or copy $srcdir/$ac_source to $ac_dest" >&2;}
- { (exit 1); exit 1; }; }
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_COMMANDS section.
-#
-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
- ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
- ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_dest" : 'X\(//\)[^/]' \| \
- X"$ac_dest" : 'X\(//\)$' \| \
- X"$ac_dest" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_dest" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
-
- { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
-echo "$as_me: executing $ac_dest commands" >&6;}
- case $ac_dest in
- Makefile ) echo "Merging Makefile.sim+Make-common.sim into Makefile ..."
- rm -f Makesim1.tmp Makesim2.tmp Makefile
- sed -n -e '/^## COMMON_PRE_/,/^## End COMMON_PRE_/ p' <Make-common.sim >Makesim1.tmp
- sed -n -e '/^## COMMON_POST_/,/^## End COMMON_POST_/ p' <Make-common.sim >Makesim2.tmp
- sed -e '/^## COMMON_PRE_/ r Makesim1.tmp' \
- -e '/^## COMMON_POST_/ r Makesim2.tmp' \
- <Makefile.sim >Makefile
- rm -f Makefile.sim Make-common.sim Makesim1.tmp Makesim2.tmp
- ;;
- stamp-h ) echo > stamp-h ;;
- esac
-done
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || { (exit 1); exit 1; }
-fi
-
-
diff --git a/sim/mips/configure.ac b/sim/mips/configure.ac
deleted file mode 100644
index f81abbb..0000000
--- a/sim/mips/configure.ac
+++ /dev/null
@@ -1,437 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-AC_PREREQ(2.59)dnl
-AC_INIT(Makefile.in)
-AC_CONFIG_HEADER(config.h:config.in)
-
-sinclude(../common/aclocal.m4)
-
-# Bugs in autoconf 2.59 break the call to SIM_AC_COMMON, hack around
-# it by inlining the macro's contents.
-sinclude(../common/common.m4)
-
-dnl Options available in this module
-SIM_AC_OPTION_INLINE()
-SIM_AC_OPTION_ALIGNMENT(NONSTRICT_ALIGNMENT)
-SIM_AC_OPTION_HOSTENDIAN
-SIM_AC_OPTION_WARNINGS
-SIM_AC_OPTION_RESERVED_BITS(1)
-
-# DEPRECATED
-#
-# Instead of defining a `subtarget' macro, code should be checking
-# the value of {STATE,CPU}_ARCHITECTURE to identify the architecture
-# in question.
-#
-case "${target}" in
- mips64vr*-*-*) SIM_SUBTARGET="-DTARGET_ENABLE_FR=1" ;;
- mips*tx39*) SIM_SUBTARGET="-DSUBTARGET_R3900=1";;
- mipsisa32*-*-*) SIM_SUBTARGET="-DTARGET_ENABLE_FR=1";;
- mipsisa64*-*-*) SIM_SUBTARGET="-DTARGET_ENABLE_FR=1";;
- *) SIM_SUBTARGET="";;
-esac
-AC_SUBST(SIM_SUBTARGET)
-
-
-
-#
-# Select the byte order of the target
-#
-mips_endian=
-default_endian=
-case "${target}" in
- mips64el*-*-*) mips_endian=LITTLE_ENDIAN ;;
- mips64vr*el-*-*) default_endian=LITTLE_ENDIAN ;;
- mips64*-*-*) default_endian=BIG_ENDIAN ;;
- mips16*-*-*) default_endian=BIG_ENDIAN ;;
- mipsisa32*-*-*) default_endian=BIG_ENDIAN ;;
- mipsisa64*-*-*) default_endian=BIG_ENDIAN ;;
- mips*-*-*) default_endian=BIG_ENDIAN ;;
- *) default_endian=BIG_ENDIAN ;;
-esac
-SIM_AC_OPTION_ENDIAN($mips_endian,$default_endian)
-
-
-
-#
-# Select the bitsize of the target
-#
-mips_addr_bitsize=
-case "${target}" in
- mips64*-*-*) mips_bitsize=64 ; mips_msb=63 ;;
- mips16*-*-*) mips_bitsize=64 ; mips_msb=63 ;;
- mipsisa32*-*-*) mips_bitsize=32 ; mips_msb=31 ;;
- mipsisa64*-*-*) mips_bitsize=64 ; mips_msb=63 ;;
- mips*-*-*) mips_bitsize=32 ; mips_msb=31 ;;
- *) mips_bitsize=64 ; mips_msb=63 ;;
-esac
-SIM_AC_OPTION_BITSIZE($mips_bitsize,$mips_msb,$mips_addr_bitsize)
-
-
-
-#
-# Select the floating hardware support of the target
-#
-mips_fpu=HARDWARE_FLOATING_POINT
-mips_fpu_bitsize=
-case "${target}" in
- mips*tx39*) mips_fpu=HARD_FLOATING_POINT
- mips_fpu_bitsize=32
- ;;
- mips64*-*-*) mips_fpu=HARD_FLOATING_POINT ;;
- mips16*-*-*) mips_fpu=HARD_FLOATING_POINT ;;
- mipsisa32*-*-*) mips_fpu=HARD_FLOATING_POINT ; mips_fpu_bitsize=64 ;;
- mipsisa64*-*-*) mips_fpu=HARD_FLOATING_POINT ; mips_fpu_bitsize=64 ;;
- mips*-*-*) mips_fpu=HARD_FLOATING_POINT ; mips_fpu_bitsize=32 ;;
- *) mips_fpu=HARD_FLOATING_POINT ;;
-esac
-SIM_AC_OPTION_FLOAT($mips_fpu,$mips_fpu_bitsize)
-
-
-
-#
-# Select the level of SMP support
-#
-case "${target}" in
- *) mips_smp=0 ;;
-esac
-SIM_AC_OPTION_SMP($mips_smp)
-
-
-
-#
-# Select the IGEN architecture
-#
-sim_gen=IGEN
-sim_igen_machine="-M mipsIV"
-sim_m16_machine="-M mips16,mipsIII"
-sim_igen_filter="32,64,f"
-sim_m16_filter="16"
-sim_mach_default="mips8000"
-
-case "${target}" in
- mips*tx39*) sim_gen=IGEN
- sim_igen_filter="32,f"
- sim_igen_machine="-M r3900"
- ;;
- mips64vr43*-*-*) sim_gen=IGEN
- sim_igen_machine="-M mipsIV"
- sim_mach_default="mips8000"
- ;;
- mips64vr5*-*-*) sim_gen=IGEN
- sim_igen_machine="-M vr5000"
- sim_mach_default="mips5000"
- ;;
- mips64vr41*) sim_gen=M16
- sim_igen_machine="-M vr4100"
- sim_m16_machine="-M vr4100"
- sim_igen_filter="32,64,f"
- sim_m16_filter="16"
- sim_mach_default="mips4100"
- ;;
- mips64vr-*-* | mips64vrel-*-*)
- sim_gen=MULTI
- sim_multi_configs="\
- vr4100:mipsIII,mips16,vr4100:32,64:mips4100,mips4111\
- vr4120:mipsIII,mips16,vr4120:32,64:mips4120\
- vr5000:mipsIV:32,64,f:mips4300,mips5000\
- vr5400:mipsIV,vr5400:32,64,f:mips5400\
- vr5500:mipsIV,vr5500:32,64,f:mips5500"
- sim_multi_default=mips5000
- ;;
- mips64*-*-*) sim_igen_filter="32,64,f"
- sim_gen=IGEN
- ;;
- mips16*-*-*) sim_gen=M16
- sim_igen_filter="32,64,f"
- sim_m16_filter="16"
- ;;
- mipsisa32r2*-*-*) sim_gen=M16
- sim_igen_machine="-M mips32r2,mips16,mips16e,dsp"
- sim_m16_machine="-M mips16,mips16e,mips32r2"
- sim_igen_filter="32,f"
- sim_mach_default="mipsisa32r2"
- ;;
- mipsisa32*-*-*) sim_gen=M16
- sim_igen_machine="-M mips32,mips16,mips16e,dsp"
- sim_m16_machine="-M mips16,mips16e,mips32"
- sim_igen_filter="32,f"
- sim_mach_default="mipsisa32"
- ;;
- mipsisa64r2*-*-*) sim_gen=M16
- sim_igen_machine="-M mips64r2,mips3d,mips16,mips16e,dsp"
- sim_m16_machine="-M mips16,mips16e,mips64r2"
- sim_igen_filter="32,64,f"
- sim_mach_default="mipsisa64r2"
- ;;
- mipsisa64sb1*-*-*) sim_gen=IGEN
- sim_igen_machine="-M mips64,mips3d,sb1"
- sim_igen_filter="32,64,f"
- sim_mach_default="mips_sb1"
- ;;
- mipsisa64*-*-*) sim_gen=M16
- sim_igen_machine="-M mips64,mips3d,mips16,mips16e,dsp"
- sim_m16_machine="-M mips16,mips16e,mips64"
- sim_igen_filter="32,64,f"
- sim_mach_default="mipsisa64"
- ;;
- mips*lsi*) sim_gen=M16
- sim_igen_machine="-M mipsIII,mips16"
- sim_m16_machine="-M mips16,mipsIII"
- sim_igen_filter="32,f"
- sim_m16_filter="16"
- sim_mach_default="mips4000"
- ;;
- mips*-*-*) sim_gen=IGEN
- sim_igen_filter="32,f"
- ;;
-esac
-
-# The MULTI generator can combine several simulation engines into one.
-# executable. A configuration which uses the MULTI should set two
-# variables: ${sim_multi_configs} and ${sim_multi_default}.
-#
-# ${sim_multi_configs} is the list of engines to build. Each
-# space-separated entry has the form NAME:MACHINE:FILTER:BFDMACHS,
-# where:
-#
-# - NAME is a C-compatible prefix for the engine,
-# - MACHINE is a -M argument,
-# - FILTER is a -F argument, and
-# - BFDMACHS is a comma-separated list of bfd machines that the
-# simulator can run.
-#
-# Each entry will have a separate simulation engine whose prefix is
-# m32<NAME>. If the machine list includes "mips16", there will also
-# be a mips16 engine, prefix m16<NAME>. The mips16 engine will be
-# generated using the same machine list as the 32-bit version,
-# but the filter will be "16" instead of FILTER.
-#
-# The simulator compares the bfd mach against BFDMACHS to decide
-# which engine to use. Entries in BFDMACHS should be bfd_mach
-# values with "bfd_mach_" removed. ${sim_multi_default} says
-# which entry should be the default.
-if test ${sim_gen} = MULTI; then
-
- # Simple sanity check.
- if test -z "${sim_multi_configs}" || test -z "${sim_multi_default}"; then
- AC_MSG_ERROR(Error in configure.in: MULTI simulator not set up correctly)
- fi
-
- # Start in a known state.
- rm -f multi-include.h multi-run.c
- sim_multi_flags=
- sim_multi_src=
- sim_multi_obj=multi-run.o
- sim_multi_igen_configs=
- sim_seen_default=no
-
- cat << __EOF__ > multi-run.c
-/* Main entry point for MULTI simulators.
- Copyright (C) 2003 Free Software Foundation, Inc.
-
- This program 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 2 of the License, or
- (at your option) any later version.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- --
-
- This file was generated by sim/mips/configure. */
-
-#include "sim-main.h"
-#include "multi-include.h"
-
-#define SD sd
-#define CPU cpu
-
-void
-sim_engine_run (SIM_DESC sd,
- int next_cpu_nr,
- int nr_cpus,
- int signal) /* ignore */
-{
- int mach;
-
- if (STATE_ARCHITECTURE (sd) == NULL)
- mach = bfd_mach_${sim_multi_default};
- else
- mach = STATE_ARCHITECTURE (SD)->mach;
-
- switch (mach)
- {
-__EOF__
-
- for fc in ${sim_multi_configs}; do
-
- # Split up the entry. ${c} contains the first three elements.
- # Note: outer sqaure brackets are m4 quotes.
- c=`echo ${fc} | sed ['s/:[^:]*$//']`
- bfdmachs=`echo ${fc} | sed 's/.*://'`
- name=`echo ${c} | sed 's/:.*//'`
- machine=`echo ${c} | sed 's/.*:\(.*\):.*/\1/'`
- filter=`echo ${c} | sed 's/.*://'`
-
- # Build the following lists:
- #
- # sim_multi_flags: all -M and -F flags used by the simulator
- # sim_multi_src: all makefile-generated source files
- # sim_multi_obj: the objects for ${sim_multi_src}
- # sim_multi_igen_configs: igen configuration strings.
- #
- # Each entry in ${sim_multi_igen_configs} is a prefix (m32
- # or m16) followed by the NAME, MACHINE and FILTER part of
- # the ${sim_multi_configs} entry.
- sim_multi_flags="${sim_multi_flags} -F ${filter} -M ${machine}"
-
- # Check whether mips16 handling is needed.
- case ${c} in
- *:*mips16*:*)
- # Run igen twice, once for normal mode and once for mips16.
- ws="m32 m16"
-
- # The top-level function for the mips16 simulator is
- # in a file m16${name}_run.c, generated by the
- # tmp-run-multi Makefile rule.
- sim_multi_src="${sim_multi_src} m16${name}_run.c"
- sim_multi_obj="${sim_multi_obj} m16${name}_run.o"
- sim_multi_flags="${sim_multi_flags} -F 16"
- ;;
- *)
- ws=m32
- ;;
- esac
-
- # Now add the list of igen-generated files to ${sim_multi_src}
- # and ${sim_multi_obj}.
- for w in ${ws}; do
- for base in engine icache idecode model semantics support; do
- sim_multi_src="${sim_multi_src} ${w}${name}_${base}.c"
- sim_multi_src="${sim_multi_src} ${w}${name}_${base}.h"
- sim_multi_obj="${sim_multi_obj} ${w}${name}_${base}.o"
- done
- sim_multi_igen_configs="${sim_multi_igen_configs} ${w}${c}"
- done
-
- # Add an include for the engine.h file. This file declares the
- # top-level foo_engine_run() function.
- echo "#include \"${w}${name}_engine.h\"" >> multi-include.h
-
- # Add case statements for this engine to sim_engine_run().
- for mach in `echo ${bfdmachs} | sed 's/,/ /g'`; do
- echo " case bfd_mach_${mach}:" >> multi-run.c
- if test ${mach} = ${sim_multi_default}; then
- echo " default:" >> multi-run.c
- sim_seen_default=yes
- fi
- done
- echo " ${w}${name}_engine_run (sd, next_cpu_nr, nr_cpus, signal);" \
- >> multi-run.c
- echo " break;" >> multi-run.c
- done
-
- # Check whether we added a 'default:' label.
- if test ${sim_seen_default} = no; then
- AC_MSG_ERROR(Error in configure.in: \${sim_multi_configs} doesn't have an entry for \${sim_multi_default})
- fi
-
- cat << __EOF__ >> multi-run.c
- }
-}
-
-int
-mips_mach_multi (SIM_DESC sd)
-{
- if (STATE_ARCHITECTURE (sd) == NULL)
- return bfd_mach_${sim_multi_default};
-
- switch (STATE_ARCHITECTURE (SD)->mach)
- {
-__EOF__
-
- # Add case statements for this engine to mips_mach_multi().
- for fc in ${sim_multi_configs}; do
-
- # Split up the entry. ${c} contains the first three elements.
- # Note: outer sqaure brackets are m4 quotes.
- c=`echo ${fc} | sed ['s/:[^:]*$//']`
- bfdmachs=`echo ${fc} | sed 's/.*://'`
-
- for mach in `echo ${bfdmachs} | sed 's/,/ /g'`; do
- echo " case bfd_mach_${mach}:" >> multi-run.c
- done
- done
-
- cat << __EOF__ >> multi-run.c
- return (STATE_ARCHITECTURE (SD)->mach);
- default:
- return bfd_mach_${sim_multi_default};
- }
-}
-__EOF__
-
- SIM_SUBTARGET="$SIM_SUBTARGET -DMIPS_MACH_MULTI"
-else
- # For clean-extra
- sim_multi_src=doesnt-exist.c
-
- if test x"${sim_mach_default}" = x""; then
- AC_MSG_ERROR(Error in configure.in: \${sim_mach_default} not defined)
- fi
- SIM_SUBTARGET="$SIM_SUBTARGET -DMIPS_MACH_DEFAULT=bfd_mach_${sim_mach_default}"
-fi
-sim_igen_flags="-F ${sim_igen_filter} ${sim_igen_machine} ${sim_igen_smp}"
-sim_m16_flags=" -F ${sim_m16_filter} ${sim_m16_machine} ${sim_igen_smp}"
-AC_SUBST(sim_igen_flags)
-AC_SUBST(sim_m16_flags)
-AC_SUBST(sim_gen)
-AC_SUBST(sim_multi_flags)
-AC_SUBST(sim_multi_igen_configs)
-AC_SUBST(sim_multi_src)
-AC_SUBST(sim_multi_obj)
-
-
-#
-# Add simulated hardware devices
-#
-hw_enabled=no
-case "${target}" in
- mips*tx39*)
- hw_enabled=yes
- hw_extra_devices="tx3904cpu tx3904irc tx3904tmr tx3904sio"
- mips_extra_objs="dv-sockser.o"
- SIM_SUBTARGET="$SIM_SUBTARGET -DTARGET_TX3904=1"
- ;;
- *)
- mips_extra_objs=""
- ;;
-esac
-SIM_AC_OPTION_HARDWARE($hw_enabled,$hw_devices,$hw_extra_devices)
-AC_SUBST(mips_extra_objs)
-
-
-# Choose simulator engine
-case "${target}" in
- *) mips_igen_engine="engine.o"
- ;;
-esac
-AC_SUBST(mips_igen_engine)
-
-
-AC_PATH_X
-mips_extra_libs=""
-AC_SUBST(mips_extra_libs)
-
-AC_CHECK_HEADERS(string.h strings.h stdlib.h stdlib.h)
-AC_CHECK_LIB(m, fabs)
-AC_CHECK_FUNCS(aint anint sqrt)
-
-SIM_AC_OUTPUT
diff --git a/sim/mips/cp1.c b/sim/mips/cp1.c
deleted file mode 100644
index 556af1a..0000000
--- a/sim/mips/cp1.c
+++ /dev/null
@@ -1,1584 +0,0 @@
-/*> cp1.c <*/
-/* MIPS Simulator FPU (CoProcessor 1) support.
- Copyright (C) 2002 Free Software Foundation, Inc.
- Originally created by Cygnus Solutions. Extensive modifications,
- including paired-single operation support and MIPS-3D support
- contributed by Ed Satterthwaite and Chris Demetriou, of Broadcom
- Corporation (SiByte).
-
-This file is part of GDB, the GNU debugger.
-
-This program 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 2, or (at your option)
-any later version.
-
-This program 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 this program; if not, write to the Free Software Foundation, Inc.,
-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-/* XXX: The following notice should be removed as soon as is practical: */
-/* Floating Point Support for gdb MIPS simulators
-
- This file is part of the MIPS sim
-
- THIS SOFTWARE IS NOT COPYRIGHTED
- (by Cygnus.)
-
- Cygnus offers the following for use in the public domain. Cygnus
- makes no warranty with regard to the software or it's performance
- and the user accepts the software "AS IS" with all faults.
-
- CYGNUS DISCLAIMS ANY WARRANTIES, EXPRESS OR IMPLIED, WITH REGARD TO
- THIS SOFTWARE INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-
- (Originally, this code was in interp.c)
-*/
-
-#include "sim-main.h"
-
-/* Within cp1.c we refer to sim_cpu directly. */
-#define CPU cpu
-#define SD CPU_STATE(cpu)
-
-/*-- FPU support routines ---------------------------------------------------*/
-
-/* Numbers are held in normalized form. The SINGLE and DOUBLE binary
- formats conform to ANSI/IEEE Std 754-1985.
-
- SINGLE precision floating:
- seeeeeeeefffffffffffffffffffffff
- s = 1bit = sign
- e = 8bits = exponent
- f = 23bits = fraction
-
- SINGLE precision fixed:
- siiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
- s = 1bit = sign
- i = 31bits = integer
-
- DOUBLE precision floating:
- seeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffff
- s = 1bit = sign
- e = 11bits = exponent
- f = 52bits = fraction
-
- DOUBLE precision fixed:
- siiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
- s = 1bit = sign
- i = 63bits = integer
-
- PAIRED SINGLE precision floating:
- seeeeeeeefffffffffffffffffffffffseeeeeeeefffffffffffffffffffffff
- | upper || lower |
- s = 1bit = sign
- e = 8bits = exponent
- f = 23bits = fraction
- Note: upper = [63..32], lower = [31..0]
- */
-
-/* Extract packed single values: */
-#define FP_PS_upper(v) (((v) >> 32) & (unsigned)0xFFFFFFFF)
-#define FP_PS_lower(v) ((v) & (unsigned)0xFFFFFFFF)
-#define FP_PS_cat(u,l) (((unsigned64)((u) & (unsigned)0xFFFFFFFF) << 32) \
- | (unsigned64)((l) & 0xFFFFFFFF))
-
-/* Explicit QNaN values. */
-#define FPQNaN_SINGLE (0x7FBFFFFF)
-#define FPQNaN_WORD (0x7FFFFFFF)
-#define FPQNaN_DOUBLE (UNSIGNED64 (0x7FF7FFFFFFFFFFFF))
-#define FPQNaN_LONG (UNSIGNED64 (0x7FFFFFFFFFFFFFFF))
-#define FPQNaN_PS (FP_PS_cat (FPQNaN_SINGLE, FPQNaN_SINGLE))
-
-static const char *fpu_format_name (FP_formats fmt);
-#ifdef DEBUG
-static const char *fpu_rounding_mode_name (int rm);
-#endif
-
-uword64
-value_fpr (sim_cpu *cpu,
- address_word cia,
- int fpr,
- FP_formats fmt)
-{
- uword64 value = 0;
- int err = 0;
-
- /* Treat unused register values, as fixed-point 64bit values. */
- if ((fmt == fmt_uninterpreted) || (fmt == fmt_unknown))
- {
-#if 1
- /* If request to read data as "uninterpreted", then use the current
- encoding: */
- fmt = FPR_STATE[fpr];
-#else
- fmt = fmt_long;
-#endif
- }
-
- /* For values not yet accessed, set to the desired format. */
- if (FPR_STATE[fpr] == fmt_uninterpreted)
- {
- FPR_STATE[fpr] = fmt;
-#ifdef DEBUG
- printf ("DBG: Register %d was fmt_uninterpreted. Now %s\n", fpr,
- fpu_format_name (fmt));
-#endif /* DEBUG */
- }
- if (fmt != FPR_STATE[fpr])
- {
- sim_io_eprintf (SD, "FPR %d (format %s) being accessed with format %s - setting to unknown (PC = 0x%s)\n",
- fpr, fpu_format_name (FPR_STATE[fpr]),
- fpu_format_name (fmt), pr_addr (cia));
- FPR_STATE[fpr] = fmt_unknown;
- }
-
- if (FPR_STATE[fpr] == fmt_unknown)
- {
- /* Set QNaN value: */
- switch (fmt)
- {
- case fmt_single: value = FPQNaN_SINGLE; break;
- case fmt_double: value = FPQNaN_DOUBLE; break;
- case fmt_word: value = FPQNaN_WORD; break;
- case fmt_long: value = FPQNaN_LONG; break;
- case fmt_ps: value = FPQNaN_PS; break;
- default: err = -1; break;
- }
- }
- else if (SizeFGR () == 64)
- {
- switch (fmt)
- {
- case fmt_single:
- case fmt_word:
- value = (FGR[fpr] & 0xFFFFFFFF);
- break;
-
- case fmt_uninterpreted:
- case fmt_double:
- case fmt_long:
- case fmt_ps:
- value = FGR[fpr];
- break;
-
- default:
- err = -1;
- break;
- }
- }
- else
- {
- switch (fmt)
- {
- case fmt_single:
- case fmt_word:
- value = (FGR[fpr] & 0xFFFFFFFF);
- break;
-
- case fmt_uninterpreted:
- case fmt_double:
- case fmt_long:
- if ((fpr & 1) == 0)
- {
- /* Even register numbers only. */
-#ifdef DEBUG
- printf ("DBG: ValueFPR: FGR[%d] = %s, FGR[%d] = %s\n",
- fpr + 1, pr_uword64 ((uword64) FGR[fpr+1]),
- fpr, pr_uword64 ((uword64) FGR[fpr]));
-#endif
- value = ((((uword64) FGR[fpr+1]) << 32)
- | (FGR[fpr] & 0xFFFFFFFF));
- }
- else
- {
- SignalException (ReservedInstruction, 0);
- }
- break;
-
- case fmt_ps:
- SignalException (ReservedInstruction, 0);
- break;
-
- default:
- err = -1;
- break;
- }
- }
-
- if (err)
- SignalExceptionSimulatorFault ("Unrecognised FP format in ValueFPR ()");
-
-#ifdef DEBUG
- printf ("DBG: ValueFPR: fpr = %d, fmt = %s, value = 0x%s : PC = 0x%s : SizeFGR () = %d\n",
- fpr, fpu_format_name (fmt), pr_uword64 (value), pr_addr (cia),
- SizeFGR ());
-#endif /* DEBUG */
-
- return (value);
-}
-
-void
-store_fpr (sim_cpu *cpu,
- address_word cia,
- int fpr,
- FP_formats fmt,
- uword64 value)
-{
- int err = 0;
-
-#ifdef DEBUG
- printf ("DBG: StoreFPR: fpr = %d, fmt = %s, value = 0x%s : PC = 0x%s : SizeFGR () = %d, \n",
- fpr, fpu_format_name (fmt), pr_uword64 (value), pr_addr (cia),
- SizeFGR ());
-#endif /* DEBUG */
-
- if (SizeFGR () == 64)
- {
- switch (fmt)
- {
- case fmt_uninterpreted_32:
- fmt = fmt_uninterpreted;
- case fmt_single:
- case fmt_word:
- if (STATE_VERBOSE_P (SD))
- sim_io_eprintf (SD,
- "Warning: PC 0x%s: interp.c store_fpr DEADCODE\n",
- pr_addr (cia));
- FGR[fpr] = (((uword64) 0xDEADC0DE << 32) | (value & 0xFFFFFFFF));
- FPR_STATE[fpr] = fmt;
- break;
-
- case fmt_uninterpreted_64:
- fmt = fmt_uninterpreted;
- case fmt_uninterpreted:
- case fmt_double:
- case fmt_long:
- case fmt_ps:
- FGR[fpr] = value;
- FPR_STATE[fpr] = fmt;
- break;
-
- default:
- FPR_STATE[fpr] = fmt_unknown;
- err = -1;
- break;
- }
- }
- else
- {
- switch (fmt)
- {
- case fmt_uninterpreted_32:
- fmt = fmt_uninterpreted;
- case fmt_single:
- case fmt_word:
- FGR[fpr] = (value & 0xFFFFFFFF);
- FPR_STATE[fpr] = fmt;
- break;
-
- case fmt_uninterpreted_64:
- fmt = fmt_uninterpreted;
- case fmt_uninterpreted:
- case fmt_double:
- case fmt_long:
- if ((fpr & 1) == 0)
- {
- /* Even register numbers only. */
- FGR[fpr+1] = (value >> 32);
- FGR[fpr] = (value & 0xFFFFFFFF);
- FPR_STATE[fpr + 1] = fmt;
- FPR_STATE[fpr] = fmt;
- }
- else
- {
- FPR_STATE[fpr] = fmt_unknown;
- FPR_STATE[fpr + 1] = fmt_unknown;
- SignalException (ReservedInstruction, 0);
- }
- break;
-
- case fmt_ps:
- FPR_STATE[fpr] = fmt_unknown;
- SignalException (ReservedInstruction, 0);
- break;
-
- default:
- FPR_STATE[fpr] = fmt_unknown;
- err = -1;
- break;
- }
- }
-
- if (err)
- SignalExceptionSimulatorFault ("Unrecognised FP format in StoreFPR ()");
-
-#ifdef DEBUG
- printf ("DBG: StoreFPR: fpr[%d] = 0x%s (format %s)\n",
- fpr, pr_uword64 (FGR[fpr]), fpu_format_name (fmt));
-#endif /* DEBUG */
-
- return;
-}
-
-
-/* CP1 control/status register access functions. */
-
-void
-test_fcsr (sim_cpu *cpu,
- address_word cia)
-{
- unsigned int cause;
-
- cause = (FCSR & fcsr_CAUSE_mask) >> fcsr_CAUSE_shift;
- if ((cause & ((FCSR & fcsr_ENABLES_mask) >> fcsr_ENABLES_shift)) != 0
- || (cause & (1 << UO)))
- {
- SignalExceptionFPE();
- }
-}
-
-unsigned_word
-value_fcr(sim_cpu *cpu,
- address_word cia,
- int fcr)
-{
- unsigned32 value = 0;
-
- switch (fcr)
- {
- case 0: /* FP Implementation and Revision Register. */
- value = FCR0;
- break;
- case 25: /* FP Condition Codes Register (derived from FCSR). */
- value = (FCR31 & fcsr_FCC_mask) >> fcsr_FCC_shift;
- value = (value & 0x1) | (value >> 1); /* Close FCC gap. */
- break;
- case 26: /* FP Exceptions Register (derived from FCSR). */
- value = FCR31 & (fcsr_CAUSE_mask | fcsr_FLAGS_mask);
- break;
- case 28: /* FP Enables Register (derived from FCSR). */
- value = FCR31 & (fcsr_ENABLES_mask | fcsr_RM_mask);
- if ((FCR31 & fcsr_FS) != 0)
- value |= fenr_FS;
- break;
- case 31: /* FP Control/Status Register (FCSR). */
- value = FCR31 & ~fcsr_ZERO_mask;
- break;
- }
-
- return (EXTEND32 (value));
-}
-
-void
-store_fcr(sim_cpu *cpu,
- address_word cia,
- int fcr,
- unsigned_word value)
-{
- unsigned32 v;
-
- v = VL4_8(value);
- switch (fcr)
- {
- case 25: /* FP Condition Codes Register (stored into FCSR). */
- v = (v << 1) | (v & 0x1); /* Adjust for FCC gap. */
- FCR31 &= ~fcsr_FCC_mask;
- FCR31 |= ((v << fcsr_FCC_shift) & fcsr_FCC_mask);
- break;
- case 26: /* FP Exceptions Register (stored into FCSR). */
- FCR31 &= ~(fcsr_CAUSE_mask | fcsr_FLAGS_mask);
- FCR31 |= (v & (fcsr_CAUSE_mask | fcsr_FLAGS_mask));
- test_fcsr(cpu, cia);
- break;
- case 28: /* FP Enables Register (stored into FCSR). */
- if ((v & fenr_FS) != 0)
- v |= fcsr_FS;
- else
- v &= ~fcsr_FS;
- FCR31 &= (fcsr_FCC_mask | fcsr_CAUSE_mask | fcsr_FLAGS_mask);
- FCR31 |= (v & (fcsr_FS | fcsr_ENABLES_mask | fcsr_RM_mask));
- test_fcsr(cpu, cia);
- break;
- case 31: /* FP Control/Status Register (FCSR). */
- FCR31 = v & ~fcsr_ZERO_mask;
- test_fcsr(cpu, cia);
- break;
- }
-}
-
-void
-update_fcsr (sim_cpu *cpu,
- address_word cia,
- sim_fpu_status status)
-{
- FCSR &= ~fcsr_CAUSE_mask;
-
- if (status != 0)
- {
- unsigned int cause = 0;
-
- /* map between sim_fpu codes and MIPS FCSR */
- if (status & (sim_fpu_status_invalid_snan
- | sim_fpu_status_invalid_isi
- | sim_fpu_status_invalid_idi
- | sim_fpu_status_invalid_zdz
- | sim_fpu_status_invalid_imz
- | sim_fpu_status_invalid_cmp
- | sim_fpu_status_invalid_sqrt
- | sim_fpu_status_invalid_cvi))
- cause |= (1 << IO);
- if (status & sim_fpu_status_invalid_div0)
- cause |= (1 << DZ);
- if (status & sim_fpu_status_overflow)
- cause |= (1 << OF);
- if (status & sim_fpu_status_underflow)
- cause |= (1 << UF);
- if (status & sim_fpu_status_inexact)
- cause |= (1 << IR);
-#if 0 /* Not yet. */
- /* Implicit clearing of other bits by unimplemented done by callers. */
- if (status & sim_fpu_status_unimplemented)
- cause |= (1 << UO);
-#endif
-
- FCSR |= (cause << fcsr_CAUSE_shift);
- test_fcsr (cpu, cia);
- FCSR |= ((cause & ~(1 << UO)) << fcsr_FLAGS_shift);
- }
- return;
-}
-
-static sim_fpu_round
-rounding_mode(int rm)
-{
- sim_fpu_round round;
-
- switch (rm)
- {
- case FP_RM_NEAREST:
- /* Round result to nearest representable value. When two
- representable values are equally near, round to the value
- that has a least significant bit of zero (i.e. is even). */
- round = sim_fpu_round_near;
- break;
- case FP_RM_TOZERO:
- /* Round result to the value closest to, and not greater in
- magnitude than, the result. */
- round = sim_fpu_round_zero;
- break;
- case FP_RM_TOPINF:
- /* Round result to the value closest to, and not less than,
- the result. */
- round = sim_fpu_round_up;
- break;
- case FP_RM_TOMINF:
- /* Round result to the value closest to, and not greater than,
- the result. */
- round = sim_fpu_round_down;
- break;
- default:
- round = 0;
- fprintf (stderr, "Bad switch\n");
- abort ();
- }
- return round;
-}
-
-/* When the FS bit is set, MIPS processors return zero for
- denormalized results and optionally replace denormalized inputs
- with zero. When FS is clear, some implementation trap on input
- and/or output, while other perform the operation in hardware. */
-static sim_fpu_denorm
-denorm_mode(sim_cpu *cpu)
-{
- sim_fpu_denorm denorm;
-
- /* XXX: FIXME: Eventually should be CPU model dependent. */
- if (GETFS())
- denorm = sim_fpu_denorm_zero;
- else
- denorm = 0;
- return denorm;
-}
-
-
-/* Comparison operations. */
-
-static sim_fpu_status
-fp_test(unsigned64 op1,
- unsigned64 op2,
- FP_formats fmt,
- int abs,
- int cond,
- int *condition)
-{
- sim_fpu wop1;
- sim_fpu wop2;
- sim_fpu_status status = 0;
- int less, equal, unordered;
-
- /* The format type has already been checked: */
- switch (fmt)
- {
- case fmt_single:
- {
- sim_fpu_32to (&wop1, op1);
- sim_fpu_32to (&wop2, op2);
- break;
- }
- case fmt_double:
- {
- sim_fpu_64to (&wop1, op1);
- sim_fpu_64to (&wop2, op2);
- break;
- }
- default:
- fprintf (stderr, "Bad switch\n");
- abort ();
- }
-
- if (sim_fpu_is_nan (&wop1) || sim_fpu_is_nan (&wop2))
- {
- if ((cond & (1 << 3)) ||
- sim_fpu_is_snan (&wop1) || sim_fpu_is_snan (&wop2))
- status = sim_fpu_status_invalid_snan;
- less = 0;
- equal = 0;
- unordered = 1;
- }
- else
- {
- if (abs)
- {
- status |= sim_fpu_abs (&wop1, &wop1);
- status |= sim_fpu_abs (&wop2, &wop2);
- }
- equal = sim_fpu_is_eq (&wop1, &wop2);
- less = !equal && sim_fpu_is_lt (&wop1, &wop2);
- unordered = 0;
- }
- *condition = (((cond & (1 << 2)) && less)
- || ((cond & (1 << 1)) && equal)
- || ((cond & (1 << 0)) && unordered));
- return status;
-}
-
-void
-fp_cmp(sim_cpu *cpu,
- address_word cia,
- unsigned64 op1,
- unsigned64 op2,
- FP_formats fmt,
- int abs,
- int cond,
- int cc)
-{
- sim_fpu_status status = 0;
-
- /* The format type should already have been checked. The FCSR is
- updated before the condition codes so that any exceptions will
- be signalled before the condition codes are changed. */
- switch (fmt)
- {
- case fmt_single:
- case fmt_double:
- {
- int result;
- status = fp_test(op1, op2, fmt, abs, cond, &result);
- update_fcsr (cpu, cia, status);
- SETFCC (cc, result);
- break;
- }
- case fmt_ps:
- {
- int result0, result1;
- status = fp_test(FP_PS_lower (op1), FP_PS_lower (op2), fmt_single,
- abs, cond, &result0);
- status |= fp_test(FP_PS_upper (op1), FP_PS_upper (op2), fmt_single,
- abs, cond, &result1);
- update_fcsr (cpu, cia, status);
- SETFCC (cc, result0);
- SETFCC (cc+1, result1);
- break;
- }
- default:
- sim_io_eprintf (SD, "Bad switch\n");
- abort ();
- }
-}
-
-
-/* Basic arithmetic operations. */
-
-static unsigned64
-fp_unary(sim_cpu *cpu,
- address_word cia,
- int (*sim_fpu_op)(sim_fpu *, const sim_fpu *),
- unsigned64 op,
- FP_formats fmt)
-{
- sim_fpu wop;
- sim_fpu ans;
- sim_fpu_round round = rounding_mode (GETRM());
- sim_fpu_denorm denorm = denorm_mode (cpu);
- sim_fpu_status status = 0;
- unsigned64 result = 0;
-
- /* The format type has already been checked: */
- switch (fmt)
- {
- case fmt_single:
- {
- unsigned32 res;
- sim_fpu_32to (&wop, op);
- status |= (*sim_fpu_op) (&ans, &wop);
- status |= sim_fpu_round_32 (&ans, round, denorm);
- sim_fpu_to32 (&res, &ans);
- result = res;
- break;
- }
- case fmt_double:
- {
- unsigned64 res;
- sim_fpu_64to (&wop, op);
- status |= (*sim_fpu_op) (&ans, &wop);
- status |= sim_fpu_round_64 (&ans, round, denorm);
- sim_fpu_to64 (&res, &ans);
- result = res;
- break;
- }
- case fmt_ps:
- {
- int status_u = 0, status_l = 0;
- unsigned32 res_u, res_l;
- sim_fpu_32to (&wop, FP_PS_upper(op));
- status_u |= (*sim_fpu_op) (&ans, &wop);
- sim_fpu_to32 (&res_u, &ans);
- sim_fpu_32to (&wop, FP_PS_lower(op));
- status_l |= (*sim_fpu_op) (&ans, &wop);
- sim_fpu_to32 (&res_l, &ans);
- result = FP_PS_cat(res_u, res_l);
- status = status_u | status_l;
- break;
- }
- default:
- sim_io_eprintf (SD, "Bad switch\n");
- abort ();
- }
-
- update_fcsr (cpu, cia, status);
- return result;
-}
-
-static unsigned64
-fp_binary(sim_cpu *cpu,
- address_word cia,
- int (*sim_fpu_op)(sim_fpu *, const sim_fpu *, const sim_fpu *),
- unsigned64 op1,
- unsigned64 op2,
- FP_formats fmt)
-{
- sim_fpu wop1;
- sim_fpu wop2;
- sim_fpu ans;
- sim_fpu_round round = rounding_mode (GETRM());
- sim_fpu_denorm denorm = denorm_mode (cpu);
- sim_fpu_status status = 0;
- unsigned64 result = 0;
-
- /* The format type has already been checked: */
- switch (fmt)
- {
- case fmt_single:
- {
- unsigned32 res;
- sim_fpu_32to (&wop1, op1);
- sim_fpu_32to (&wop2, op2);
- status |= (*sim_fpu_op) (&ans, &wop1, &wop2);
- status |= sim_fpu_round_32 (&ans, round, denorm);
- sim_fpu_to32 (&res, &ans);
- result = res;
- break;
- }
- case fmt_double:
- {
- unsigned64 res;
- sim_fpu_64to (&wop1, op1);
- sim_fpu_64to (&wop2, op2);
- status |= (*sim_fpu_op) (&ans, &wop1, &wop2);
- status |= sim_fpu_round_64 (&ans, round, denorm);
- sim_fpu_to64 (&res, &ans);
- result = res;
- break;
- }
- case fmt_ps:
- {
- int status_u = 0, status_l = 0;
- unsigned32 res_u, res_l;
- sim_fpu_32to (&wop1, FP_PS_upper(op1));
- sim_fpu_32to (&wop2, FP_PS_upper(op2));
- status_u |= (*sim_fpu_op) (&ans, &wop1, &wop2);
- sim_fpu_to32 (&res_u, &ans);
- sim_fpu_32to (&wop1, FP_PS_lower(op1));
- sim_fpu_32to (&wop2, FP_PS_lower(op2));
- status_l |= (*sim_fpu_op) (&ans, &wop1, &wop2);
- sim_fpu_to32 (&res_l, &ans);
- result = FP_PS_cat(res_u, res_l);
- status = status_u | status_l;
- break;
- }
- default:
- sim_io_eprintf (SD, "Bad switch\n");
- abort ();
- }
-
- update_fcsr (cpu, cia, status);
- return result;
-}
-
-/* Common MAC code for single operands (.s or .d), defers setting FCSR. */
-static sim_fpu_status
-inner_mac(int (*sim_fpu_op)(sim_fpu *, const sim_fpu *, const sim_fpu *),
- unsigned64 op1,
- unsigned64 op2,
- unsigned64 op3,
- int scale,
- int negate,
- FP_formats fmt,
- sim_fpu_round round,
- sim_fpu_denorm denorm,
- unsigned64 *result)
-{
- sim_fpu wop1;
- sim_fpu wop2;
- sim_fpu ans;
- sim_fpu_status status = 0;
- sim_fpu_status op_status;
- unsigned64 temp = 0;
-
- switch (fmt)
- {
- case fmt_single:
- {
- unsigned32 res;
- sim_fpu_32to (&wop1, op1);
- sim_fpu_32to (&wop2, op2);
- status |= sim_fpu_mul (&ans, &wop1, &wop2);
- if (scale != 0 && sim_fpu_is_number (&ans)) /* number or denorm */
- ans.normal_exp += scale;
- status |= sim_fpu_round_32 (&ans, round, denorm);
- wop1 = ans;
- op_status = 0;
- sim_fpu_32to (&wop2, op3);
- op_status |= (*sim_fpu_op) (&ans, &wop1, &wop2);
- op_status |= sim_fpu_round_32 (&ans, round, denorm);
- status |= op_status;
- if (negate)
- {
- wop1 = ans;
- op_status = sim_fpu_neg (&ans, &wop1);
- op_status |= sim_fpu_round_32 (&ans, round, denorm);
- status |= op_status;
- }
- sim_fpu_to32 (&res, &ans);
- temp = res;
- break;
- }
- case fmt_double:
- {
- unsigned64 res;
- sim_fpu_64to (&wop1, op1);
- sim_fpu_64to (&wop2, op2);
- status |= sim_fpu_mul (&ans, &wop1, &wop2);
- if (scale != 0 && sim_fpu_is_number (&ans)) /* number or denorm */
- ans.normal_exp += scale;
- status |= sim_fpu_round_64 (&ans, round, denorm);
- wop1 = ans;
- op_status = 0;
- sim_fpu_64to (&wop2, op3);
- op_status |= (*sim_fpu_op) (&ans, &wop1, &wop2);
- op_status |= sim_fpu_round_64 (&ans, round, denorm);
- status |= op_status;
- if (negate)
- {
- wop1 = ans;
- op_status = sim_fpu_neg (&ans, &wop1);
- op_status |= sim_fpu_round_64 (&ans, round, denorm);
- status |= op_status;
- }
- sim_fpu_to64 (&res, &ans);
- temp = res;
- break;
- }
- default:
- fprintf (stderr, "Bad switch\n");
- abort ();
- }
- *result = temp;
- return status;
-}
-
-/* Common implementation of madd, nmadd, msub, nmsub that does
- intermediate rounding per spec. Also used for recip2 and rsqrt2,
- which are transformed into equivalent nmsub operations. The scale
- argument is an adjustment to the exponent of the intermediate
- product op1*op2. It is currently non-zero for rsqrt2 (-1), which
- requires an effective division by 2. */
-static unsigned64
-fp_mac(sim_cpu *cpu,
- address_word cia,
- int (*sim_fpu_op)(sim_fpu *, const sim_fpu *, const sim_fpu *),
- unsigned64 op1,
- unsigned64 op2,
- unsigned64 op3,
- int scale,
- int negate,
- FP_formats fmt)
-{
- sim_fpu_round round = rounding_mode (GETRM());
- sim_fpu_denorm denorm = denorm_mode (cpu);
- sim_fpu_status status = 0;
- unsigned64 result = 0;
-
- /* The format type has already been checked: */
- switch (fmt)
- {
- case fmt_single:
- case fmt_double:
- status = inner_mac(sim_fpu_op, op1, op2, op3, scale,
- negate, fmt, round, denorm, &result);
- break;
- case fmt_ps:
- {
- int status_u, status_l;
- unsigned64 result_u, result_l;
- status_u = inner_mac(sim_fpu_op, FP_PS_upper(op1), FP_PS_upper(op2),
- FP_PS_upper(op3), scale, negate, fmt_single,
- round, denorm, &result_u);
- status_l = inner_mac(sim_fpu_op, FP_PS_lower(op1), FP_PS_lower(op2),
- FP_PS_lower(op3), scale, negate, fmt_single,
- round, denorm, &result_l);
- result = FP_PS_cat(result_u, result_l);
- status = status_u | status_l;
- break;
- }
- default:
- sim_io_eprintf (SD, "Bad switch\n");
- abort ();
- }
-
- update_fcsr (cpu, cia, status);
- return result;
-}
-
-/* Common rsqrt code for single operands (.s or .d), intermediate rounding. */
-static sim_fpu_status
-inner_rsqrt(unsigned64 op1,
- FP_formats fmt,
- sim_fpu_round round,
- sim_fpu_denorm denorm,
- unsigned64 *result)
-{
- sim_fpu wop1;
- sim_fpu ans;
- sim_fpu_status status = 0;
- sim_fpu_status op_status;
- unsigned64 temp = 0;
-
- switch (fmt)
- {
- case fmt_single:
- {
- unsigned32 res;
- sim_fpu_32to (&wop1, op1);
- status |= sim_fpu_sqrt (&ans, &wop1);
- status |= sim_fpu_round_32 (&ans, status, round);
- wop1 = ans;
- op_status = sim_fpu_inv (&ans, &wop1);
- op_status |= sim_fpu_round_32 (&ans, round, denorm);
- sim_fpu_to32 (&res, &ans);
- temp = res;
- status |= op_status;
- break;
- }
- case fmt_double:
- {
- unsigned64 res;
- sim_fpu_64to (&wop1, op1);
- status |= sim_fpu_sqrt (&ans, &wop1);
- status |= sim_fpu_round_64 (&ans, round, denorm);
- wop1 = ans;
- op_status = sim_fpu_inv (&ans, &wop1);
- op_status |= sim_fpu_round_64 (&ans, round, denorm);
- sim_fpu_to64 (&res, &ans);
- temp = res;
- status |= op_status;
- break;
- }
- default:
- fprintf (stderr, "Bad switch\n");
- abort ();
- }
- *result = temp;
- return status;
-}
-
-static unsigned64
-fp_inv_sqrt(sim_cpu *cpu,
- address_word cia,
- unsigned64 op1,
- FP_formats fmt)
-{
- sim_fpu_round round = rounding_mode (GETRM());
- sim_fpu_round denorm = denorm_mode (cpu);
- sim_fpu_status status = 0;
- unsigned64 result = 0;
-
- /* The format type has already been checked: */
- switch (fmt)
- {
- case fmt_single:
- case fmt_double:
- status = inner_rsqrt (op1, fmt, round, denorm, &result);
- break;
- case fmt_ps:
- {
- int status_u, status_l;
- unsigned64 result_u, result_l;
- status_u = inner_rsqrt (FP_PS_upper(op1), fmt_single, round, denorm,
- &result_u);
- status_l = inner_rsqrt (FP_PS_lower(op1), fmt_single, round, denorm,
- &result_l);
- result = FP_PS_cat(result_u, result_l);
- status = status_u | status_l;
- break;
- }
- default:
- sim_io_eprintf (SD, "Bad switch\n");
- abort ();
- }
-
- update_fcsr (cpu, cia, status);
- return result;
-}
-
-
-unsigned64
-fp_abs(sim_cpu *cpu,
- address_word cia,
- unsigned64 op,
- FP_formats fmt)
-{
- return fp_unary(cpu, cia, &sim_fpu_abs, op, fmt);
-}
-
-unsigned64
-fp_neg(sim_cpu *cpu,
- address_word cia,
- unsigned64 op,
- FP_formats fmt)
-{
- return fp_unary(cpu, cia, &sim_fpu_neg, op, fmt);
-}
-
-unsigned64
-fp_add(sim_cpu *cpu,
- address_word cia,
- unsigned64 op1,
- unsigned64 op2,
- FP_formats fmt)
-{
- return fp_binary(cpu, cia, &sim_fpu_add, op1, op2, fmt);
-}
-
-unsigned64
-fp_sub(sim_cpu *cpu,
- address_word cia,
- unsigned64 op1,
- unsigned64 op2,
- FP_formats fmt)
-{
- return fp_binary(cpu, cia, &sim_fpu_sub, op1, op2, fmt);
-}
-
-unsigned64
-fp_mul(sim_cpu *cpu,
- address_word cia,
- unsigned64 op1,
- unsigned64 op2,
- FP_formats fmt)
-{
- return fp_binary(cpu, cia, &sim_fpu_mul, op1, op2, fmt);
-}
-
-unsigned64
-fp_div(sim_cpu *cpu,
- address_word cia,
- unsigned64 op1,
- unsigned64 op2,
- FP_formats fmt)
-{
- return fp_binary(cpu, cia, &sim_fpu_div, op1, op2, fmt);
-}
-
-unsigned64
-fp_recip(sim_cpu *cpu,
- address_word cia,
- unsigned64 op,
- FP_formats fmt)
-{
- return fp_unary(cpu, cia, &sim_fpu_inv, op, fmt);
-}
-
-unsigned64
-fp_sqrt(sim_cpu *cpu,
- address_word cia,
- unsigned64 op,
- FP_formats fmt)
-{
- return fp_unary(cpu, cia, &sim_fpu_sqrt, op, fmt);
-}
-
-unsigned64
-fp_rsqrt(sim_cpu *cpu,
- address_word cia,
- unsigned64 op,
- FP_formats fmt)
-{
- return fp_inv_sqrt(cpu, cia, op, fmt);
-}
-
-unsigned64
-fp_madd(sim_cpu *cpu,
- address_word cia,
- unsigned64 op1,
- unsigned64 op2,
- unsigned64 op3,
- FP_formats fmt)
-{
- return fp_mac(cpu, cia, &sim_fpu_add, op1, op2, op3, 0, 0, fmt);
-}
-
-unsigned64
-fp_msub(sim_cpu *cpu,
- address_word cia,
- unsigned64 op1,
- unsigned64 op2,
- unsigned64 op3,
- FP_formats fmt)
-{
- return fp_mac(cpu, cia, &sim_fpu_sub, op1, op2, op3, 0, 0, fmt);
-}
-
-unsigned64
-fp_nmadd(sim_cpu *cpu,
- address_word cia,
- unsigned64 op1,
- unsigned64 op2,
- unsigned64 op3,
- FP_formats fmt)
-{
- return fp_mac(cpu, cia, &sim_fpu_add, op1, op2, op3, 0, 1, fmt);
-}
-
-unsigned64
-fp_nmsub(sim_cpu *cpu,
- address_word cia,
- unsigned64 op1,
- unsigned64 op2,
- unsigned64 op3,
- FP_formats fmt)
-{
- return fp_mac(cpu, cia, &sim_fpu_sub, op1, op2, op3, 0, 1, fmt);
-}
-
-
-/* MIPS-3D ASE operations. */
-
-/* Variant of fp_binary for *r.ps MIPS-3D operations. */
-static unsigned64
-fp_binary_r(sim_cpu *cpu,
- address_word cia,
- int (*sim_fpu_op)(sim_fpu *, const sim_fpu *, const sim_fpu *),
- unsigned64 op1,
- unsigned64 op2)
-{
- sim_fpu wop1;
- sim_fpu wop2;
- sim_fpu ans;
- sim_fpu_round round = rounding_mode (GETRM ());
- sim_fpu_denorm denorm = denorm_mode (cpu);
- sim_fpu_status status_u, status_l;
- unsigned64 result;
- unsigned32 res_u, res_l;
-
- /* The format must be fmt_ps. */
- status_u = 0;
- sim_fpu_32to (&wop1, FP_PS_upper (op1));
- sim_fpu_32to (&wop2, FP_PS_lower (op1));
- status_u |= (*sim_fpu_op) (&ans, &wop1, &wop2);
- status_u |= sim_fpu_round_32 (&ans, round, denorm);
- sim_fpu_to32 (&res_u, &ans);
- status_l = 0;
- sim_fpu_32to (&wop1, FP_PS_upper (op2));
- sim_fpu_32to (&wop2, FP_PS_lower (op2));
- status_l |= (*sim_fpu_op) (&ans, &wop1, &wop2);
- status_l |= sim_fpu_round_32 (&ans, round, denorm);
- sim_fpu_to32 (&res_l, &ans);
- result = FP_PS_cat (res_u, res_l);
-
- update_fcsr (cpu, cia, status_u | status_l);
- return result;
-}
-
-unsigned64
-fp_add_r(sim_cpu *cpu,
- address_word cia,
- unsigned64 op1,
- unsigned64 op2,
- FP_formats fmt)
-{
- return fp_binary_r (cpu, cia, &sim_fpu_add, op1, op2);
-}
-
-unsigned64
-fp_mul_r(sim_cpu *cpu,
- address_word cia,
- unsigned64 op1,
- unsigned64 op2,
- FP_formats fmt)
-{
- return fp_binary_r (cpu, cia, &sim_fpu_mul, op1, op2);
-}
-
-#define NR_FRAC_GUARD (60)
-#define IMPLICIT_1 LSBIT64 (NR_FRAC_GUARD)
-
-static int
-fpu_inv1(sim_fpu *f, const sim_fpu *l)
-{
- static const sim_fpu sim_fpu_one = {
- sim_fpu_class_number, 0, IMPLICIT_1, 0
- };
- int status = 0;
- sim_fpu t;
-
- if (sim_fpu_is_zero (l))
- {
- *f = sim_fpu_maxfp;
- f->sign = l->sign;
- return sim_fpu_status_invalid_div0;
- }
- if (sim_fpu_is_infinity (l))
- {
- *f = sim_fpu_zero;
- f->sign = l->sign;
- return status;
- }
- status |= sim_fpu_div (f, &sim_fpu_one, l);
- return status;
-}
-
-static int
-fpu_inv1_32(sim_fpu *f, const sim_fpu *l)
-{
- if (sim_fpu_is_zero (l))
- {
- *f = sim_fpu_max32;
- f->sign = l->sign;
- return sim_fpu_status_invalid_div0;
- }
- return fpu_inv1 (f, l);
-}
-
-static int
-fpu_inv1_64(sim_fpu *f, const sim_fpu *l)
-{
- if (sim_fpu_is_zero (l))
- {
- *f = sim_fpu_max64;
- f->sign = l->sign;
- return sim_fpu_status_invalid_div0;
- }
- return fpu_inv1 (f, l);
-}
-
-unsigned64
-fp_recip1(sim_cpu *cpu,
- address_word cia,
- unsigned64 op,
- FP_formats fmt)
-{
- switch (fmt)
- {
- case fmt_single:
- case fmt_ps:
- return fp_unary (cpu, cia, &fpu_inv1_32, op, fmt);
- case fmt_double:
- return fp_unary (cpu, cia, &fpu_inv1_64, op, fmt);
- }
- return 0;
-}
-
-unsigned64
-fp_recip2(sim_cpu *cpu,
- address_word cia,
- unsigned64 op1,
- unsigned64 op2,
- FP_formats fmt)
-{
- static const unsigned64 one_single = UNSIGNED64 (0x3F800000);
- static const unsigned64 one_double = UNSIGNED64 (0x3FF0000000000000);
- static const unsigned64 one_ps = (UNSIGNED64 (0x3F800000) << 32 | UNSIGNED64 (0x3F800000));
- unsigned64 one;
-
- /* Implemented as nmsub fd, 1, fs, ft. */
- switch (fmt)
- {
- case fmt_single: one = one_single; break;
- case fmt_double: one = one_double; break;
- case fmt_ps: one = one_ps; break;
- default: one = 0; abort ();
- }
- return fp_mac (cpu, cia, &sim_fpu_sub, op1, op2, one, 0, 1, fmt);
-}
-
-static int
-fpu_inv_sqrt1(sim_fpu *f, const sim_fpu *l)
-{
- static const sim_fpu sim_fpu_one = {
- sim_fpu_class_number, 0, IMPLICIT_1, 0
- };
- int status = 0;
- sim_fpu t;
-
- if (sim_fpu_is_zero (l))
- {
- *f = sim_fpu_maxfp;
- f->sign = l->sign;
- return sim_fpu_status_invalid_div0;
- }
- if (sim_fpu_is_infinity (l))
- {
- if (!l->sign)
- {
- f->class = sim_fpu_class_zero;
- f->sign = 0;
- }
- else
- {
- *f = sim_fpu_qnan;
- status = sim_fpu_status_invalid_sqrt;
- }
- return status;
- }
- status |= sim_fpu_sqrt (&t, l);
- status |= sim_fpu_div (f, &sim_fpu_one, &t);
- return status;
-}
-
-static int
-fpu_inv_sqrt1_32(sim_fpu *f, const sim_fpu *l)
-{
- if (sim_fpu_is_zero (l))
- {
- *f = sim_fpu_max32;
- f->sign = l->sign;
- return sim_fpu_status_invalid_div0;
- }
- return fpu_inv_sqrt1 (f, l);
-}
-
-static int
-fpu_inv_sqrt1_64(sim_fpu *f, const sim_fpu *l)
-{
- if (sim_fpu_is_zero (l))
- {
- *f = sim_fpu_max64;
- f->sign = l->sign;
- return sim_fpu_status_invalid_div0;
- }
- return fpu_inv_sqrt1 (f, l);
-}
-
-unsigned64
-fp_rsqrt1(sim_cpu *cpu,
- address_word cia,
- unsigned64 op,
- FP_formats fmt)
-{
- switch (fmt)
- {
- case fmt_single:
- case fmt_ps:
- return fp_unary (cpu, cia, &fpu_inv_sqrt1_32, op, fmt);
- case fmt_double:
- return fp_unary (cpu, cia, &fpu_inv_sqrt1_64, op, fmt);
- }
- return 0;
-}
-
-unsigned64
-fp_rsqrt2(sim_cpu *cpu,
- address_word cia,
- unsigned64 op1,
- unsigned64 op2,
- FP_formats fmt)
-{
- static const unsigned64 half_single = UNSIGNED64 (0x3F000000);
- static const unsigned64 half_double = UNSIGNED64 (0x3FE0000000000000);
- static const unsigned64 half_ps = (UNSIGNED64 (0x3F000000) << 32 | UNSIGNED64 (0x3F000000));
- unsigned64 half;
-
- /* Implemented as (nmsub fd, 0.5, fs, ft)/2, where the divide is
- done by scaling the exponent during multiply. */
- switch (fmt)
- {
- case fmt_single: half = half_single; break;
- case fmt_double: half = half_double; break;
- case fmt_ps: half = half_ps; break;
- default: half = 0; abort ();
- }
- return fp_mac (cpu, cia, &sim_fpu_sub, op1, op2, half, -1, 1, fmt);
-}
-
-
-/* Conversion operations. */
-
-uword64
-convert (sim_cpu *cpu,
- address_word cia,
- int rm,
- uword64 op,
- FP_formats from,
- FP_formats to)
-{
- sim_fpu wop;
- sim_fpu_round round = rounding_mode (rm);
- sim_fpu_denorm denorm = denorm_mode (cpu);
- unsigned32 result32;
- unsigned64 result64;
- sim_fpu_status status = 0;
-
- /* Convert the input to sim_fpu internal format */
- switch (from)
- {
- case fmt_double:
- sim_fpu_64to (&wop, op);
- break;
- case fmt_single:
- sim_fpu_32to (&wop, op);
- break;
- case fmt_word:
- status = sim_fpu_i32to (&wop, op, round);
- break;
- case fmt_long:
- status = sim_fpu_i64to (&wop, op, round);
- break;
- default:
- sim_io_eprintf (SD, "Bad switch\n");
- abort ();
- }
-
- /* Convert sim_fpu format into the output */
- /* The value WOP is converted to the destination format, rounding
- using mode RM. When the destination is a fixed-point format, then
- a source value of Infinity, NaN or one which would round to an
- integer outside the fixed point range then an IEEE Invalid Operation
- condition is raised. Not used if destination format is PS. */
- switch (to)
- {
- case fmt_single:
- status |= sim_fpu_round_32 (&wop, round, denorm);
- /* For a NaN, normalize mantissa bits (cvt.s.d can't preserve them) */
- if (sim_fpu_is_qnan (&wop))
- wop = sim_fpu_qnan;
- sim_fpu_to32 (&result32, &wop);
- result64 = result32;
- break;
- case fmt_double:
- status |= sim_fpu_round_64 (&wop, round, denorm);
- /* For a NaN, normalize mantissa bits (make cvt.d.s consistent) */
- if (sim_fpu_is_qnan (&wop))
- wop = sim_fpu_qnan;
- sim_fpu_to64 (&result64, &wop);
- break;
- case fmt_word:
- status |= sim_fpu_to32i (&result32, &wop, round);
- result64 = result32;
- break;
- case fmt_long:
- status |= sim_fpu_to64i (&result64, &wop, round);
- break;
- default:
- result64 = 0;
- sim_io_eprintf (SD, "Bad switch\n");
- abort ();
- }
-
- update_fcsr (cpu, cia, status);
- return result64;
-}
-
-unsigned64
-ps_lower(sim_cpu *cpu,
- address_word cia,
- unsigned64 op)
-{
- return FP_PS_lower (op);
-}
-
-unsigned64
-ps_upper(sim_cpu *cpu,
- address_word cia,
- unsigned64 op)
-{
- return FP_PS_upper(op);
-}
-
-unsigned64
-pack_ps(sim_cpu *cpu,
- address_word cia,
- unsigned64 op1,
- unsigned64 op2,
- FP_formats fmt)
-{
- unsigned64 result = 0;
-
- /* The registers must specify FPRs valid for operands of type
- "fmt". If they are not valid, the result is undefined. */
-
- /* The format type should already have been checked: */
- switch (fmt)
- {
- case fmt_single:
- {
- sim_fpu wop;
- unsigned32 res_u, res_l;
- sim_fpu_32to (&wop, op1);
- sim_fpu_to32 (&res_u, &wop);
- sim_fpu_32to (&wop, op2);
- sim_fpu_to32 (&res_l, &wop);
- result = FP_PS_cat(res_u, res_l);
- break;
- }
- default:
- sim_io_eprintf (SD, "Bad switch\n");
- abort ();
- }
-
- return result;
-}
-
-unsigned64
-convert_ps (sim_cpu *cpu,
- address_word cia,
- int rm,
- unsigned64 op,
- FP_formats from,
- FP_formats to)
-{
- sim_fpu wop_u, wop_l;
- sim_fpu_round round = rounding_mode (rm);
- sim_fpu_denorm denorm = denorm_mode (cpu);
- unsigned32 res_u, res_l;
- unsigned64 result;
- sim_fpu_status status_u = 0, status_l = 0;
-
- /* As convert, but used only for paired values (formats PS, PW) */
-
- /* Convert the input to sim_fpu internal format */
- switch (from)
- {
- case fmt_word: /* fmt_pw */
- sim_fpu_i32to (&wop_u, (op >> 32) & (unsigned)0xFFFFFFFF, round);
- sim_fpu_i32to (&wop_l, op & (unsigned)0xFFFFFFFF, round);
- break;
- case fmt_ps:
- sim_fpu_32to (&wop_u, FP_PS_upper(op));
- sim_fpu_32to (&wop_l, FP_PS_lower(op));
- break;
- default:
- sim_io_eprintf (SD, "Bad switch\n");
- abort ();
- }
-
- /* Convert sim_fpu format into the output */
- switch (to)
- {
- case fmt_word: /* fmt_pw */
- status_u |= sim_fpu_to32i (&res_u, &wop_u, round);
- status_l |= sim_fpu_to32i (&res_l, &wop_l, round);
- result = (((unsigned64)res_u) << 32) | (unsigned64)res_l;
- break;
- case fmt_ps:
- status_u |= sim_fpu_round_32 (&wop_u, 0, round);
- status_l |= sim_fpu_round_32 (&wop_l, 0, round);
- sim_fpu_to32 (&res_u, &wop_u);
- sim_fpu_to32 (&res_l, &wop_l);
- result = FP_PS_cat(res_u, res_l);
- break;
- default:
- result = 0;
- sim_io_eprintf (SD, "Bad switch\n");
- abort ();
- }
-
- update_fcsr (cpu, cia, status_u | status_l);
- return result;
-}
-
-static const char *
-fpu_format_name (FP_formats fmt)
-{
- switch (fmt)
- {
- case fmt_single:
- return "single";
- case fmt_double:
- return "double";
- case fmt_word:
- return "word";
- case fmt_long:
- return "long";
- case fmt_ps:
- return "ps";
- case fmt_unknown:
- return "<unknown>";
- case fmt_uninterpreted:
- return "<uninterpreted>";
- case fmt_uninterpreted_32:
- return "<uninterpreted_32>";
- case fmt_uninterpreted_64:
- return "<uninterpreted_64>";
- default:
- return "<format error>";
- }
-}
-
-#ifdef DEBUG
-static const char *
-fpu_rounding_mode_name (int rm)
-{
- switch (rm)
- {
- case FP_RM_NEAREST:
- return "Round";
- case FP_RM_TOZERO:
- return "Trunc";
- case FP_RM_TOPINF:
- return "Ceil";
- case FP_RM_TOMINF:
- return "Floor";
- default:
- return "<rounding mode error>";
- }
-}
-#endif /* DEBUG */
diff --git a/sim/mips/cp1.h b/sim/mips/cp1.h
deleted file mode 100644
index 9a189a9..0000000
--- a/sim/mips/cp1.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*> cp1.h <*/
-/* MIPS Simulator FPU (CoProcessor 1) definitions.
- Copyright (C) 1997, 1998, 2002 Free Software Foundation, Inc.
- Derived from sim-main.h contributed by Cygnus Solutions,
- modified substantially by Ed Satterthwaite of Broadcom Corporation
- (SiByte).
-
-This file is part of GDB, the GNU debugger.
-
-This program 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 2, or (at your option)
-any later version.
-
-This program 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 this program; if not, write to the Free Software Foundation, Inc.,
-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef CP1_H
-#define CP1_H
-
-/* See sim-main.h for allocation of registers FCR0 and FCR31 (FCSR)
- in CPU state (struct sim_cpu), and for FPU functions. */
-
-#define fcsr_FCC_mask (0xFE800000)
-#define fcsr_FCC_shift (23)
-#define fcsr_FCC_bit(cc) ((cc) == 0 ? 23 : (24 + (cc)))
-#define fcsr_FS (1 << 24) /* MIPS III onwards : Flush to Zero */
-#define fcsr_ZERO_mask (0x007C0000)
-#define fcsr_CAUSE_mask (0x0003F000)
-#define fcsr_CAUSE_shift (12)
-#define fcsr_ENABLES_mask (0x00000F80)
-#define fcsr_ENABLES_shift (7)
-#define fcsr_FLAGS_mask (0x0000007C)
-#define fcsr_FLAGS_shift (2)
-#define fcsr_RM_mask (0x00000003)
-#define fcsr_RM_shift (0)
-
-#define fenr_FS (0x00000004)
-
-/* Macros to update and retrieve the FCSR condition-code bits. This
- is complicated by the fact that there is a hole in the index range
- of the bits within the FCSR register. (Note that the number of bits
- visible depends on the ISA in use, but that is handled elsewhere.) */
-#define SETFCC(cc,v) \
- do { \
- (FCSR = ((FCSR & ~(1 << fcsr_FCC_bit(cc))) | ((v) << fcsr_FCC_bit(cc)))); \
- } while (0)
-#define GETFCC(cc) ((FCSR & (1 << fcsr_FCC_bit(cc))) != 0 ? 1 : 0)
-
-
-/* Read flush-to-zero bit (not right-justified). */
-#define GETFS() ((int)(FCSR & fcsr_FS))
-
-
-/* FCSR flag bits definitions and access macros. */
-#define IR 0 /* I: Inexact Result */
-#define UF 1 /* U: UnderFlow */
-#define OF 2 /* O: OverFlow */
-#define DZ 3 /* Z: Division by Zero */
-#define IO 4 /* V: Invalid Operation */
-#define UO 5 /* E: Unimplemented Operation (CAUSE field only) */
-
-#define FP_FLAGS(b) (1 << ((b) + fcsr_FLAGS_shift))
-#define FP_ENABLE(b) (1 << ((b) + fcsr_ENABLES_shift))
-#define FP_CAUSE(b) (1 << ((b) + fcsr_CAUSE_shift))
-
-
-/* Rounding mode bit definitions and access macros. */
-#define FP_RM_NEAREST 0 /* Round to nearest (Round). */
-#define FP_RM_TOZERO 1 /* Round to zero (Trunc). */
-#define FP_RM_TOPINF 2 /* Round to Plus infinity (Ceil). */
-#define FP_RM_TOMINF 3 /* Round to Minus infinity (Floor). */
-
-#define GETRM() ((FCSR >> fcsr_RM_shift) & fcsr_RM_mask)
-
-
-#endif /* CP1_H */
diff --git a/sim/mips/dsp.c b/sim/mips/dsp.c
deleted file mode 100644
index b829d77..0000000
--- a/sim/mips/dsp.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Simulation code for the MIPS DSP ASE.
- Copyright (C) 2005 Free Software Foundation, Inc.
- Contributed by MIPS Technologies, Inc. Written by Chao-ying Fu.
-
-This file is part of GDB, the GNU debugger.
-
-This program 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 2, or (at your option)
-any later version.
-
-This program 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 this program; if not, write to the Free Software Foundation, Inc.,
-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#include "sim-main.h"
-
-int DSPLO_REGNUM[4] =
-{
- AC0LOIDX,
- AC1LOIDX,
- AC2LOIDX,
- AC3LOIDX,
-};
-
-int DSPHI_REGNUM[4] =
-{
- AC0HIIDX,
- AC1HIIDX,
- AC2HIIDX,
- AC3HIIDX,
-};
diff --git a/sim/mips/dsp.igen b/sim/mips/dsp.igen
deleted file mode 100644
index 18aafcb..0000000
--- a/sim/mips/dsp.igen
+++ /dev/null
@@ -1,1820 +0,0 @@
-// -*- C -*-
-
-// Simulator definition for the MIPS DSP ASE.
-// Copyright (C) 2005 Free Software Foundation, Inc.
-// Contributed by MIPS Technologies, Inc. Written by Chao-ying Fu.
-//
-// This file is part of GDB, the GNU debugger.
-//
-// This program 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 2, or (at your option)
-// any later version.
-//
-// This program 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 this program; if not, write to the Free Software Foundation, Inc.,
-// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-
-// op: 0 = ADD, 1 = SUB
-// sat: 0 = no saturation, 1 = saturation
-:function:::void:do_ph_op:int rd, int rs, int rt, int op, int sat
-{
- int i;
- signed32 h0;
- signed16 h1, h2;
- unsigned32 v1 = GPR[rs];
- unsigned32 v2 = GPR[rt];
- unsigned32 result = 0;
- for (i = 0; i < 32; i += 16, v1 >>= 16, v2 >>= 16)
- {
- h1 = (signed16)(v1 & 0xffff);
- h2 = (signed16)(v2 & 0xffff);
- if (op == 0) // ADD
- h0 = (signed32)h1 + (signed32)h2;
- else // SUB
- h0 = (signed32)h1 - (signed32)h2;
- if (((h0 & 0x10000) >> 1) != (h0 & 0x8000))
- {
- DSPCR |= DSPCR_OUFLAG4;
- if (sat == 1)
- {
- if (h0 & 0x10000)
- h0 = 0x8000;
- else
- h0 = 0x7fff;
- }
- }
- result |= ((unsigned32)((unsigned16)h0) << i);
- }
- GPR[rd] = EXTEND32 (result);
-}
-
-// op: 0 = ADD, 1 = SUB
-:function:::void:do_w_op:int rd, int rs, int rt, int op
-{
- signed64 h0;
- signed32 h1, h2;
- unsigned32 v1 = GPR[rs];
- unsigned32 v2 = GPR[rt];
- unsigned32 result = 0;
- h1 = (signed32)v1;
- h2 = (signed32)v2;
- if (op == 0) // ADD
- h0 = (signed64)h1 + (signed64)h2;
- else // SUB
- h0 = (signed64)h1 - (signed64)h2;
- if (((h0 & 0x100000000) >> 1) != (h0 & 0x80000000))
- {
- DSPCR |= DSPCR_OUFLAG4;
- if (h0 & 0x100000000)
- h0 = 0x80000000;
- else
- h0 = 0x7fffffff;
- }
- GPR[rd] = EXTEND32 (h0);
-}
-
-// op: 0 = ADD, 1 = SUB
-// sat: 0 = no saturation, 1 = saturation
-:function:::void:do_qb_op:int rd, int rs, int rt, int op, int sat
-{
- int i;
- unsigned32 h0;
- unsigned8 h1, h2;
- unsigned32 v1 = GPR[rs];
- unsigned32 v2 = GPR[rt];
- unsigned32 result = 0;
- for (i = 0; i < 32; i += 8, v1 >>= 8, v2 >>= 8)
- {
- h1 = (unsigned8)(v1 & 0xff);
- h2 = (unsigned8)(v2 & 0xff);
- if (op == 0) // ADD
- h0 = (unsigned32)h1 + (unsigned32)h2;
- else // SUB
- h0 = (unsigned32)h1 - (unsigned32)h2;
- if (h0 & 0x100)
- {
- DSPCR |= DSPCR_OUFLAG4;
- if (sat == 1)
- {
- if (op == 0) // ADD
- h0 = 0xff;
- else // SUB
- h0 = 0;
- }
- }
- result |= ((unsigned32)((unsigned8)h0) << i);
- }
- GPR[rd] = EXTEND32 (result);
-}
-
-// op: 0 = left, 1 = right
-:function:::void:do_qb_shift:int rd, int rt, int shift, int op
-{
- int i, j;
- unsigned8 h0;
- unsigned32 v1 = GPR[rt];
- unsigned32 result = 0;
- for (i = 0; i < 32; i += 8, v1 >>= 8)
- {
- h0 = (unsigned8)(v1 & 0xff);
- if (op == 0) // left
- {
- for (j = 7; j >= 8 - shift; j--)
- {
- if (h0 & (1<<j))
- {
- DSPCR |= DSPCR_OUFLAG6;
- break;
- }
- }
- h0 = h0 << shift;
- }
- else // right
- h0 = h0 >> shift;
- result |= ((unsigned32)h0 << i);
- }
- GPR[rd] = EXTEND32 (result);
-}
-
-// op: 0 = left, 1 = right
-// sat: 0 = no saturation/rounding, 1 = saturation/rounding
-:function:::void:do_ph_shift:int rd, int rt, int shift, int op, int sat
-{
- int i, j;
- signed16 h0;
- unsigned32 v1 = GPR[rt];
- unsigned32 result = 0;
- int setcond;
- for (i = 0; i < 32; i += 16, v1 >>= 16)
- {
- h0 = (signed16)(v1 & 0xffff);
- if (op == 0) // left
- {
- setcond = 0;
- if (h0 & (1<<15))
- {
- for (j = 14; j >= 15 - shift; j--)
- {
- if (!(h0 & (1 << j)))
- {
- DSPCR |= DSPCR_OUFLAG6;
- setcond = 1;
- break;
- }
- }
- }
- else
- {
- for (j = 14; j >= 15 - shift; j--)
- {
- if (h0 & (1 << j))
- {
- DSPCR |= DSPCR_OUFLAG6;
- setcond = 2;
- break;
- }
- }
- }
- h0 = h0 << shift;
- if (sat == 1)
- {
- if (setcond == 2)
- h0 = 0x7fff;
- else if (setcond == 1)
- h0 = 0x8000;
- }
- }
- else // right
- {
- if (sat == 1 && shift != 0 && (h0 & (1 << (shift-1))))
- h0 = (h0 >> shift) + 1;
- else
- h0 = h0 >> shift;
- }
-
- result |= ((unsigned32)((unsigned16)h0) << i);
- }
- GPR[rd] = EXTEND32 (result);
-}
-
-:function:::void:do_w_shll:int rd, int rt, int shift
-{
- int i;
- unsigned32 v1 = GPR[rt];
- unsigned32 result = 0;
- int setcond = 0;
- if (v1 & (1 << 31))
- {
- for (i = 30; i >= 31 - shift; i--)
- {
- if (!(v1 & (1 << i)))
- {
- DSPCR |= DSPCR_OUFLAG6;
- setcond = 1;
- break;
- }
- }
- }
- else
- {
- for (i = 30; i >= 31 - shift; i--)
- {
- if (v1 & (1 << i))
- {
- DSPCR |= DSPCR_OUFLAG6;
- setcond = 2;
- break;
- }
- }
- }
- if (setcond == 2)
- result = 0x7fffffff;
- else if (setcond == 1)
- result = 0x80000000;
- else
- result = v1 << shift;
- GPR[rd] = EXTEND32 (result);
-}
-
-:function:::void:do_w_shra:int rd, int rt, int shift
-{
- unsigned32 result = GPR[rt];
- signed32 h0 = (signed32)result;
- if (shift != 0 && (h0 & (1 << (shift-1))))
- h0 = (h0 >> shift) + 1;
- else
- h0 = h0 >> shift;
- GPR[rd] = EXTEND32 (h0);
-}
-
-011111,5.RS,5.RT,5.RD,01010,010000:SPECIAL3:32::ADDQ.PH
-"addq.ph r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- do_ph_op (SD_, RD, RS, RT, 0, 0);
-}
-
-011111,5.RS,5.RT,5.RD,01110,010000:SPECIAL3:32::ADDQ_S.PH
-"addq_s.ph r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- do_ph_op (SD_, RD, RS, RT, 0, 1);
-}
-
-011111,5.RS,5.RT,5.RD,10110,010000:SPECIAL3:32::ADDQ_S.W
-"addq_s.w r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- do_w_op (SD_, RD, RS, RT, 0);
-}
-
-011111,5.RS,5.RT,5.RD,00000,010000:SPECIAL3:32::ADDU.QB
-"addu.qb r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- do_qb_op (SD_, RD, RS, RT, 0, 0);
-}
-
-011111,5.RS,5.RT,5.RD,00100,010000:SPECIAL3:32::ADDU_S.QB
-"addu_s.qb r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- do_qb_op (SD_, RD, RS, RT, 0, 1);
-}
-
-011111,5.RS,5.RT,5.RD,01011,010000:SPECIAL3:32::SUBQ.PH
-"subq.ph r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- do_ph_op (SD_, RD, RS, RT, 1, 0);
-}
-
-011111,5.RS,5.RT,5.RD,01111,010000:SPECIAL3:32::SUBQ_S.PH
-"subq_s.ph r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- do_ph_op (SD_, RD, RS, RT, 1, 1);
-}
-
-011111,5.RS,5.RT,5.RD,10111,010000:SPECIAL3:32::SUBQ_S.W
-"subq_s.w r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- do_w_op (SD_, RD, RS, RT, 1);
-}
-
-011111,5.RS,5.RT,5.RD,00001,010000:SPECIAL3:32::SUBU.QB
-"subu.qb r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- do_qb_op (SD_, RD, RS, RT, 1, 0);
-}
-
-011111,5.RS,5.RT,5.RD,00101,010000:SPECIAL3:32::SUBU_S.QB
-"subu_s.qb r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- do_qb_op (SD_, RD, RS, RT, 1, 1);
-}
-
-011111,5.RS,5.RT,5.RD,10000,010000:SPECIAL3:32::ADDSC
-"addsc r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- unsigned32 v1 = GPR[RS];
- unsigned32 v2 = GPR[RT];
- unsigned64 h0;
- h0 = (unsigned64)v1 + (unsigned64)v2;
- if (h0 & 0x100000000LL)
- DSPCR |= DSPCR_CARRY;
- GPR[RD] = EXTEND32 (h0);
-}
-
-011111,5.RS,5.RT,5.RD,10001,010000:SPECIAL3:32::ADDWC
-"addwc r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- unsigned32 v1 = GPR[RS];
- unsigned32 v2 = GPR[RT];
- unsigned64 h0;
- signed32 h1 = (signed32) v1;
- signed32 h2 = (signed32) v2;
- h0 = (signed64)h1 + (signed64)h2
- + (signed64)((DSPCR >> DSPCR_CARRY_SHIFT) & DSPCR_CARRY_MASK);
- if (((h0 & 0x100000000LL) >> 1) != (h0 & 0x80000000))
- DSPCR |= DSPCR_OUFLAG4;
- GPR[RD] = EXTEND32 (h0);
-}
-
-011111,5.RS,5.RT,5.RD,10010,010000:SPECIAL3:32::MODSUB
-"modsub r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- unsigned32 result = 0;
- unsigned32 v1 = GPR[RS];
- unsigned32 v2 = GPR[RT];
- unsigned32 decr = v2 & 0xff;
- unsigned32 lastindex = (v2 & 0xffff00) >> 8;
- if (v1 == 0)
- result = lastindex;
- else
- result = v1 - decr;
- GPR[RD] = EXTEND32 (result);
-}
-
-011111,5.RS,00000,5.RD,10100,010000:SPECIAL3:32::RADDU.W.QB
-"raddu.w.qb r<RD>, r<RS>"
-*dsp:
-{
- int i;
- unsigned8 h0;
- unsigned32 v1 = GPR[RS];
- unsigned32 result = 0;
- for (i = 0; i < 32; i += 8, v1 >>= 8)
- {
- h0 = (unsigned8)(v1 & 0xff);
- result += (unsigned32)h0;
- }
- GPR[RD] = EXTEND32 (result);
-}
-
-011111,00000,5.RT,5.RD,01001,010010:SPECIAL3:32::ABSQ_S.PH
-"absq_s.ph r<RD>, r<RT>"
-*dsp:
-{
- int i;
- signed16 h0;
- unsigned32 v1 = GPR[RT];
- unsigned32 result = 0;
- for (i = 0; i < 32; i += 16, v1 >>= 16)
- {
- h0 = (signed16)(v1 & 0xffff);
- if (h0 == (signed16)0x8000)
- {
- DSPCR |= DSPCR_OUFLAG4;
- h0 = 0x7fff;
- }
- else if (h0 & 0x8000)
- h0 = -h0;
- result |= ((unsigned32)((unsigned16)h0) << i);
- }
- GPR[RD] = EXTEND32 (result);
-}
-
-011111,00000,5.RT,5.RD,10001,010010:SPECIAL3:32::ABSQ_S.W
-"absq_s.w r<RD>, r<RT>"
-*dsp:
-{
- unsigned32 v1 = GPR[RT];
- signed32 h0 = (signed32)v1;
- if (h0 == (signed32)0x80000000)
- {
- DSPCR |= DSPCR_OUFLAG4;
- h0 = 0x7fffffff;
- }
- else if (h0 & 0x80000000)
- h0 = -h0;
- GPR[RD] = EXTEND32 (h0);
-}
-
-011111,5.RS,5.RT,5.RD,01100,010001:SPECIAL3:32::PRECRQ.QB.PH
-"precrq.qb.ph r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- unsigned32 v1 = GPR[RS];
- unsigned32 v2 = GPR[RT];
- unsigned32 tempu = (v1 & 0xff000000) >> 24;
- unsigned32 tempv = (v1 & 0xff00) >> 8;
- unsigned32 tempw = (v2 & 0xff000000) >> 24;
- unsigned32 tempx = (v2 & 0xff00) >> 8;
- GPR[RD] = EXTEND32 ((tempu << 24) | (tempv << 16) | (tempw << 8) | tempx);
-}
-
-011111,5.RS,5.RT,5.RD,10100,010001:SPECIAL3:32::PRECRQ.PH.W
-"precrq.ph.w r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- unsigned32 v1 = GPR[RS];
- unsigned32 v2 = GPR[RT];
- unsigned32 tempu = (v1 & 0xffff0000) >> 16;
- unsigned32 tempv = (v2 & 0xffff0000) >> 16;
- GPR[RD] = EXTEND32 ((tempu << 16) | tempv);
-}
-
-011111,5.RS,5.RT,5.RD,10101,010001:SPECIAL3:32::PRECRQ_RS.PH.W
-"precrq_rs.ph.w r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- unsigned32 v1 = GPR[RS];
- unsigned32 v2 = GPR[RT];
- signed32 h1 = (signed32)v1;
- signed32 h2 = (signed32)v2;
- signed64 temp1 = (signed64)h1 + (signed64)0x8000;
- signed32 temp2;
- signed64 temp3 = (signed64)h2 + (signed64)0x8000;
- signed32 temp4;
- if (((temp1 & 0x100000000LL) >> 1) != (temp1 & 0x80000000))
- {
- DSPCR |= DSPCR_OUFLAG6;
- temp2 = 0x7fff;
- }
- else
- temp2 = (signed32)((temp1 & 0xffff0000) >> 16);
- if (((temp3 & 0x100000000LL) >> 1) != (temp3 & 0x80000000))
- {
- DSPCR |= DSPCR_OUFLAG6;
- temp4 = 0x7fff;
- }
- else
- temp4 = (signed32)((temp3 & 0xffff0000) >> 16);
- GPR[RD] = EXTEND32 ((temp2 << 16) | temp4);
-}
-
-011111,5.RS,5.RT,5.RD,01111,010001:SPECIAL3:32::PRECRQU_S.QB.PH
-"precrqu_s.qb.ph r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- unsigned32 v1 = GPR[RS];
- unsigned32 v2 = GPR[RT];
- unsigned32 tempu, tempv, tempw, tempx;
- if (v1 & 0x80000000)
- {
- DSPCR |= DSPCR_OUFLAG6;
- tempu = 0;
- }
- else if (!(v1 & 0x80000000) && ((v1 >> 16) > (unsigned32)0x7f80))
- {
- DSPCR |= DSPCR_OUFLAG6;
- tempu = 0xff;
- }
- else
- tempu = (v1 & 0x7f800000) >> 23;
- if (v1 & 0x8000)
- {
- DSPCR |= DSPCR_OUFLAG6;
- tempv = 0;
- }
- else if (!(v1 & 0x8000) && ((v1 & 0xffff) > (unsigned32)0x7f80))
- {
- DSPCR |= DSPCR_OUFLAG6;
- tempv = 0xff;
- }
- else
- tempv = (v1 & 0x7f80) >> 7;
- if (v2 & 0x80000000)
- {
- DSPCR |= DSPCR_OUFLAG6;
- tempw = 0;
- }
- else if (!(v2 & 0x80000000) && ((v2 >> 16) > (unsigned32)0x7f80))
- {
- DSPCR |= DSPCR_OUFLAG6;
- tempw = 0xff;
- }
- else
- tempw = (v2 & 0x7f800000) >> 23;
- if (v2 & 0x8000)
- {
- DSPCR |= DSPCR_OUFLAG6;
- tempx = 0;
- }
- else if (!(v2 & 0x8000) && ((v2 & 0xffff) > (unsigned32)0x7f80))
- {
- DSPCR |= DSPCR_OUFLAG6;
- tempx = 0xff;
- }
- else
- tempx = (v2 & 0x7f80) >> 7;
- GPR[RD] = EXTEND32 ((tempu << 24) | (tempv << 16) | (tempw << 8) | tempx);
-}
-
-011111,00000,5.RT,5.RD,01100,010010:SPECIAL3:32::PRECEQ.W.PHL
-"preceq.w.phl r<RD>, r<RT>"
-*dsp:
-{
- unsigned32 v1 = GPR[RT];
- GPR[RD] = EXTEND32 (v1 & 0xffff0000);
-}
-
-011111,00000,5.RT,5.RD,01101,010010:SPECIAL3:32::PRECEQ.W.PHR
-"preceq.w.phr r<RD>, r<RT>"
-*dsp:
-{
- unsigned32 v1 = GPR[RT];
- GPR[RD] = EXTEND32 ((v1 & 0xffff) << 16);
-}
-
-011111,00000,5.RT,5.RD,00100,010010:SPECIAL3:32::PRECEQU.PH.QBL
-"precequ.ph.qbl r<RD>, r<RT>"
-*dsp:
-{
- unsigned32 v1 = GPR[RT];
- GPR[RD] = EXTEND32 ((v1 & 0xff000000) >> 1) | ((v1 & 0xff0000) >> 9);
-}
-
-011111,00000,5.RT,5.RD,00101,010010:SPECIAL3:32::PRECEQU.PH.QBR
-"precequ.ph.qbr r<RD>, r<RT>"
-*dsp:
-{
- unsigned32 v1 = GPR[RT];
- GPR[RD] = EXTEND32 ((v1 & 0xff00) << 15) | ((v1 & 0xff) << 7);
-}
-
-011111,00000,5.RT,5.RD,00110,010010:SPECIAL3:32::PRECEQU.PH.QBLA
-"precequ.ph.qbla r<RD>, r<RT>"
-*dsp:
-{
- unsigned32 v1 = GPR[RT];
- GPR[RD] = EXTEND32 ((v1 & 0xff000000) >> 1) | ((v1 & 0xff00) >> 1);
-}
-
-011111,00000,5.RT,5.RD,00111,010010:SPECIAL3:32::PRECEQU.PH.QBRA
-"precequ.ph.qbra r<RD>, r<RT>"
-*dsp:
-{
- unsigned32 v1 = GPR[RT];
- GPR[RD] = EXTEND32 ((v1 & 0xff0000) << 7) | ((v1 & 0xff) << 7);
-}
-
-011111,00000,5.RT,5.RD,11100,010010:SPECIAL3:32::PRECEU.PH.QBL
-"preceu.ph.qbl r<RD>, r<RT>"
-*dsp:
-{
- unsigned32 v1 = GPR[RT];
- GPR[RD] = EXTEND32 ((v1 & 0xff000000) >> 8) | ((v1 & 0xff0000) >> 16);
-}
-
-011111,00000,5.RT,5.RD,11101,010010:SPECIAL3:32::PRECEU.PH.QBR
-"preceu.ph.qbr r<RD>, r<RT>"
-*dsp:
-{
- unsigned32 v1 = GPR[RT];
- GPR[RD] = EXTEND32 ((v1 & 0xff00) << 8) | (v1 & 0xff);
-}
-
-011111,00000,5.RT,5.RD,11110,010010:SPECIAL3:32::PRECEU.PH.QBLA
-"preceu.ph.qbla r<RD>, r<RT>"
-*dsp:
-{
- unsigned32 v1 = GPR[RT];
- GPR[RD] = EXTEND32 ((v1 & 0xff000000) >> 8) | ((v1 & 0xff00) >> 8);
-}
-
-011111,00000,5.RT,5.RD,11111,010010:SPECIAL3:32::PRECEU.PH.QBRA
-"preceu.ph.qbra r<RD>, r<RT>"
-*dsp:
-{
- unsigned32 v1 = GPR[RT];
- GPR[RD] = EXTEND32 ((v1 & 0xff0000) | (v1 & 0xff));
-}
-
-011111,00,3.SHIFT3,5.RT,5.RD,00000,010011:SPECIAL3:32::SHLL.QB
-"shll.qb r<RD>, r<RT>, <SHIFT3>"
-*dsp:
-{
- do_qb_shift (SD_, RD, RT, SHIFT3, 0);
-}
-
-011111,5.RS,5.RT,5.RD,00010,010011:SPECIAL3:32::SHLLV.QB
-"shllv.qb r<RD>, r<RT>, r<RS>"
-*dsp:
-{
- unsigned32 shift = GPR[RS] & 0x7;
- do_qb_shift (SD_, RD, RT, shift, 0);
-}
-
-011111,0,4.SHIFT4,5.RT,5.RD,01000,010011:SPECIAL3:32::SHLL.PH
-"shll.ph r<RD>, r<RT>, <SHIFT4>"
-*dsp:
-{
- do_ph_shift (SD_, RD, RT, SHIFT4, 0, 0);
-}
-
-011111,5.RS,5.RT,5.RD,01010,010011:SPECIAL3:32::SHLLV.PH
-"shllv.ph r<RD>, r<RT>, r<RS>"
-*dsp:
-{
- unsigned32 shift = GPR[RS] & 0xf;
- do_ph_shift (SD_, RD, RT, shift, 0, 0);
-}
-
-011111,0,4.SHIFT4,5.RT,5.RD,01100,010011:SPECIAL3:32::SHLL_S.PH
-"shll_s.ph r<RD>, r<RT>, <SHIFT4>"
-*dsp:
-{
- do_ph_shift (SD_, RD, RT, SHIFT4, 0, 1);
-}
-
-011111,5.RS,5.RT,5.RD,01110,010011:SPECIAL3:32::SHLLV_S.PH
-"shllv_s.ph r<RD>, r<RT>, r<RS>"
-*dsp:
-{
- unsigned32 shift = GPR[RS] & 0xf;
- do_ph_shift (SD_, RD, RT, shift, 0, 1);
-}
-
-011111,5.SHIFT5,5.RT,5.RD,10100,010011:SPECIAL3:32::SHLL_S.W
-"shll_s.w r<RD>, r<RT>, <SHIFT5>"
-*dsp:
-{
- do_w_shll (SD_, RD, RT, SHIFT5);
-}
-
-011111,5.RS,5.RT,5.RD,10110,010011:SPECIAL3:32::SHLLV_S.W
-"shllv_s.w r<RD>, r<RT>, r<RS>"
-*dsp:
-{
- unsigned32 shift = GPR[RS] & 0x1f;
- do_w_shll (SD_, RD, RT, shift);
-}
-
-011111,00,3.SHIFT3,5.RT,5.RD,00001,010011:SPECIAL3:32::SHRL.QB
-"shrl.qb r<RD>, r<RT>, <SHIFT3>"
-*dsp:
-{
- do_qb_shift (SD_, RD, RT, SHIFT3, 1);
-}
-
-011111,5.RS,5.RT,5.RD,00011,010011:SPECIAL3:32::SHRLV.QB
-"shrlv.qb r<RD>, r<RT>, r<RS>"
-*dsp:
-{
- unsigned32 shift = GPR[RS] & 0x7;
- do_qb_shift (SD_, RD, RT, shift, 1);
-}
-
-011111,0,4.SHIFT4,5.RT,5.RD,01001,010011:SPECIAL3:32::SHRA.PH
-"shra.ph r<RD>, r<RT>, <SHIFT4>"
-*dsp:
-{
- do_ph_shift (SD_, RD, RT, SHIFT4, 1, 0);
-}
-
-011111,5.RS,5.RT,5.RD,01011,010011:SPECIAL3:32::SHRAV.PH
-"shrav.ph r<RD>, r<RT>, r<RS>"
-*dsp:
-{
- unsigned32 shift = GPR[RS] & 0xf;
- do_ph_shift (SD_, RD, RT, shift, 1, 0);
-}
-
-011111,0,4.SHIFT4,5.RT,5.RD,01101,010011:SPECIAL3:32::SHRA_R.PH
-"shra_r.ph r<RD>, r<RT>, <SHIFT4>"
-*dsp:
-{
- do_ph_shift (SD_, RD, RT, SHIFT4, 1, 1);
-}
-
-011111,5.RS,5.RT,5.RD,01111,010011:SPECIAL3:32::SHRAV_R.PH
-"shrav_r.ph r<RD>, r<RT>, r<RS>"
-*dsp:
-{
- unsigned32 shift = GPR[RS] & 0xf;
- do_ph_shift (SD_, RD, RT, shift, 1, 1);
-}
-
-011111,5.SHIFT5,5.RT,5.RD,10101,010011:SPECIAL3:32::SHRA_R.W
-"shra_r.w r<RD>, r<RT>, <SHIFT5>"
-*dsp:
-{
- do_w_shra (SD_, RD, RT, SHIFT5);
-}
-
-011111,5.RS,5.RT,5.RD,10111,010011:SPECIAL3:32::SHRAV_R.W
-"shrav_r.w r<RD>, r<RT>, r<RS>"
-*dsp:
-{
- unsigned32 shift = GPR[RS] & 0x1f;
- do_w_shra (SD_, RD, RT, shift);
-}
-
-// loc: 0 = qhl, 1 = qhr
-:function:::void:do_qb_muleu:int rd, int rs, int rt, int loc
-{
- int i;
- unsigned32 result = 0;
- unsigned32 v1 = GPR[rs];
- unsigned32 v2 = GPR[rt];
- unsigned16 h1, h2;
- unsigned32 prod;
- if (loc == 0)
- v1 >>= 16;
- for (i = 0; i < 32; i += 16, v1 >>= 8, v2 >>= 16)
- {
- h1 = (unsigned16)(v1 & 0xff);
- h2 = (unsigned16)(v2 & 0xffff);
- prod = (unsigned32)h1 * (unsigned32)h2;
- if (prod > 0xffff)
- {
- DSPCR |= DSPCR_OUFLAG5;
- prod = 0xffff;
- }
- result |= ((unsigned32)prod << i);
- }
- GPR[rd] = EXTEND32 (result);
-}
-
-011111,5.RS,5.RT,5.RD,00110,010000:SPECIAL3:32::MULEU_S.PH.QBL
-"muleu_s.ph.qbl r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- do_qb_muleu (SD_, RD, RS, RT, 0);
-}
-
-011111,5.RS,5.RT,5.RD,00111,010000:SPECIAL3:32::MULEU_S.PH.QBR
-"muleu_s.ph.qbr r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- do_qb_muleu (SD_, RD, RS, RT, 1);
-}
-
-011111,5.RS,5.RT,5.RD,11111,010000:SPECIAL3:32::MULQ_RS.PH
-"mulq_rs.ph r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- int i;
- unsigned32 result = 0;
- unsigned32 v1 = GPR[RS];
- unsigned32 v2 = GPR[RT];
- signed16 h1, h2;
- signed32 prod;
- for (i = 0; i < 32; i += 16, v1 >>= 16, v2 >>= 16)
- {
- h1 = (signed16)(v1 & 0xffff);
- h2 = (signed16)(v2 & 0xffff);
- if (h1 == (signed16)0x8000 && h2 == (signed16)0x8000)
- {
- DSPCR |= DSPCR_OUFLAG5;
- prod = 0x7fffffff;
- }
- else
- prod = (((signed32)h1 * (signed32)h2) << 1) + (signed32)0x8000;
-
- result |= (((unsigned32)prod >> 16) << i);
- }
- GPR[RD] = EXTEND32 (result);
-}
-
-// loc: 0 = phl, 1 = phr
-:function:::void:do_ph_muleq:int rd, int rs, int rt, int loc
-{
- unsigned32 v1 = GPR[rs];
- unsigned32 v2 = GPR[rt];
- signed16 h1, h2;
- signed32 prod;
- if (loc == 0)
- {
- h1 = (signed16)(v1 >> 16);
- h2 = (signed16)(v2 >> 16);
- }
- else
- {
- h1 = (signed16)(v1 & 0xffff);
- h2 = (signed16)(v2 & 0xffff);
- }
- if (h1 == (signed16)0x8000 && h2 == (signed16)0x8000)
- {
- DSPCR |= DSPCR_OUFLAG5;
- prod = 0x7fffffff;
- }
- else
- prod = ((signed32)h1 * (signed32)h2) << 1;
- GPR[rd] = EXTEND32 (prod);
-}
-
-011111,5.RS,5.RT,5.RD,11100,010000:SPECIAL3:32::MULEQ_S.W.PHL
-"muleq_s.w.phl r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- do_ph_muleq (SD_, RD, RS, RT, 0);
-}
-
-011111,5.RS,5.RT,5.RD,11101,010000:SPECIAL3:32::MULEQ_S.W.PHR
-"muleq_s.w.phr r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- do_ph_muleq (SD_, RD, RS, RT, 1);
-}
-
-// op: 0 = DPAU 1 = DPSU
-// loc: 0 = qbl, 1 = qbr
-:function:::void:do_qb_dot_product:int ac, int rs, int rt, int op, int loc
-{
- int i;
- unsigned32 v1 = GPR[rs];
- unsigned32 v2 = GPR[rt];
- unsigned8 h1, h2;
- unsigned32 lo = DSPLO(ac);
- unsigned32 hi = DSPHI(ac);
- unsigned64 prod = (((unsigned64)hi) << 32) + (unsigned64)lo;
- if (loc == 0)
- {
- v1 >>= 16;
- v2 >>= 16;
- }
- for (i = 0; i < 16; i += 8, v1 >>= 8, v2 >>= 8)
- {
- h1 = (unsigned8)(v1 & 0xff);
- h2 = (unsigned8)(v2 & 0xff);
- if (op == 0) // DPAU
- prod += (unsigned64)h1 * (unsigned64)h2;
- else // DPSU
- prod -= (unsigned64)h1 * (unsigned64)h2;
- }
- DSPLO(ac) = EXTEND32 (prod);
- DSPHI(ac) = EXTEND32 (prod >> 32);
-}
-
-011111,5.RS,5.RT,000,2.AC,00011,110000:SPECIAL3:32::DPAU.H.QBL
-"dpau.h.qbl ac<AC>, r<RS>, r<RT>"
-*dsp:
-{
- do_qb_dot_product (SD_, AC, RS, RT, 0, 0);
-}
-
-011111,5.RS,5.RT,000,2.AC,00111,110000:SPECIAL3:32::DPAU.H.QBR
-"dpau.h.qbr ac<AC>, r<RS>, r<RT>"
-*dsp:
-{
- do_qb_dot_product (SD_, AC, RS, RT, 0, 1);
-}
-
-011111,5.RS,5.RT,000,2.AC,01011,110000:SPECIAL3:32::DPSU.H.QBL
-"dpsu.h.qbl ac<AC>, r<RS>, r<RT>"
-*dsp:
-{
- do_qb_dot_product (SD_, AC, RS, RT, 1, 0);
-}
-
-011111,5.RS,5.RT,000,2.AC,01111,110000:SPECIAL3:32::DPSU.H.QBR
-"dpsu.h.qbr ac<AC>, r<RS>, r<RT>"
-*dsp:
-{
- do_qb_dot_product (SD_, AC, RS, RT, 1, 1);
-}
-
-// op: 0 = DPAQ 1 = DPSQ
-:function:::void:do_ph_dot_product:int ac, int rs, int rt, int op
-{
- int i;
- unsigned32 v1 = GPR[rs];
- unsigned32 v2 = GPR[rt];
- signed16 h1, h2;
- signed32 result;
- unsigned32 lo = DSPLO(ac);
- unsigned32 hi = DSPHI(ac);
- signed64 prod = (signed64)((((unsigned64)hi) << 32) + (unsigned64)lo);
- for (i = 0; i < 32; i += 16, v1 >>= 16, v2 >>= 16)
- {
- h1 = (signed16)(v1 & 0xffff);
- h2 = (signed16)(v2 & 0xffff);
- if (h1 == (signed16)0x8000 && h2 == (signed16)0x8000)
- {
- DSPCR |= (1 << (DSPCR_OUFLAG_SHIFT + ac));
- result = (signed32)0x7fffffff;
- }
- else
- result = ((signed32)h1 * (signed32)h2) << 1;
-
- if (op == 0) // DPAQ
- prod += (signed64)result;
- else // DPSQ
- prod -= (signed64)result;
- }
- DSPLO(ac) = EXTEND32 (prod);
- DSPHI(ac) = EXTEND32 (prod >> 32);
-}
-
-011111,5.RS,5.RT,000,2.AC,00100,110000:SPECIAL3:32::DPAQ_S.W.PH
-"dpaq_s.w.ph ac<AC>, r<RS>, r<RT>"
-*dsp:
-{
- do_ph_dot_product (SD_, AC, RS, RT, 0);
-}
-
-011111,5.RS,5.RT,000,2.AC,00101,110000:SPECIAL3:32::DPSQ_S.W.PH
-"dpsq_s.w.ph ac<AC>, r<RS>, r<RT>"
-*dsp:
-{
- do_ph_dot_product (SD_, AC, RS, RT, 1);
-}
-
-011111,5.RS,5.RT,000,2.AC,00110,110000:SPECIAL3:32::MULSAQ_S.W.PH
-"mulsaq_s.w.ph ac<AC>, r<RS>, r<RT>"
-*dsp:
-{
- int i;
- unsigned32 v1 = GPR[RS];
- unsigned32 v2 = GPR[RT];
- signed16 h1, h2;
- signed32 result;
- unsigned32 lo = DSPLO(AC);
- unsigned32 hi = DSPHI(AC);
- signed64 prod = (signed64)((((unsigned64)hi) << 32) + (unsigned64)lo);
- for (i = 0; i < 32; i += 16, v1 >>= 16, v2 >>= 16)
- {
- h1 = (signed16)(v1 & 0xffff);
- h2 = (signed16)(v2 & 0xffff);
- if (h1 == (signed16)0x8000 && h2 == (signed16)0x8000)
- {
- DSPCR |= (1 << (DSPCR_OUFLAG_SHIFT + AC));
- result = (signed32) 0x7fffffff;
- }
- else
- result = ((signed32)h1 * (signed32)h2) << 1;
-
- if (i == 0)
- prod -= (signed64) result;
- else
- prod += (signed64) result;
- }
- DSPLO(AC) = EXTEND32 (prod);
- DSPHI(AC) = EXTEND32 (prod >> 32);
-}
-
-// op: 0 = DPAQ 1 = DPSQ
-:function:::void:do_w_dot_product:int ac, int rs, int rt, int op
-{
- unsigned32 v1 = GPR[rs];
- unsigned32 v2 = GPR[rt];
- signed32 h1, h2;
- signed64 result;
- unsigned32 lo = DSPLO(ac);
- unsigned32 hi = DSPHI(ac);
- unsigned32 resultlo;
- unsigned32 resulthi;
- unsigned32 carry;
- unsigned64 temp1;
- signed64 temp2;
- h1 = (signed32) v1;
- h2 = (signed32) v2;
- if (h1 == 0x80000000 && h2 == 0x80000000)
- {
- DSPCR |= (1 << (DSPCR_OUFLAG_SHIFT + ac));
- result = (signed64) 0x7fffffffffffffffLL;
- }
- else
- result = ((signed64)h1 * (signed64)h2) << 1;
- resultlo = (unsigned32)(result);
- resulthi = (unsigned32)(result >> 32);
- if (op ==0) // DPAQ
- {
- temp1 = (unsigned64)lo + (unsigned64)resultlo;
- carry = (unsigned32)((temp1 >> 32) & 1);
- temp2 = (signed64)((signed32)hi) + (signed64)((signed32)resulthi) +
- (signed64)((signed32)carry);
- }
- else // DPSQ
- {
- temp1 = (unsigned64)lo - (unsigned64)resultlo;
- carry = (unsigned32)((temp1 >> 32) & 1);
- temp2 = (signed64)((signed32)hi) - (signed64)((signed32)resulthi) -
- (signed64)((signed32)carry);
- }
- if (((temp2 & 0x100000000LL) >> 1) != (temp2 & 0x80000000LL))
- {
- DSPCR |= (1 << (DSPCR_OUFLAG_SHIFT + ac));
- if (temp2 & 0x100000000LL)
- {
- DSPLO(ac) = EXTEND32 (0x00000000);
- DSPHI(ac) = EXTEND32 (0x80000000);
- }
- else
- {
- DSPLO(ac) = EXTEND32 (0xffffffff);
- DSPHI(ac) = EXTEND32 (0x7fffffff);
- }
- }
- else
- {
- DSPLO(ac) = EXTEND32 (temp1);
- DSPHI(ac) = EXTEND32 (temp2);
- }
-}
-
-011111,5.RS,5.RT,000,2.AC,01100,110000:SPECIAL3:32::DPAQ_SA.L.W
-"dpaq_sa.l.w ac<AC>, r<RS>, r<RT>"
-*dsp:
-{
- do_w_dot_product (SD_, AC, RS, RT, 0);
-}
-
-011111,5.RS,5.RT,000,2.AC,01101,110000:SPECIAL3:32::DPSQ_SA.L.W
-"dpsq_sa.l.w ac<AC>, r<RS>, r<RT>"
-*dsp:
-{
- do_w_dot_product (SD_, AC, RS, RT, 1);
-}
-
-// op: 0 = MAQ_S 1 = MAQ_SA
-// loc: 0 = phl, 1 = phr
-:function:::void:do_ph_maq:int ac, int rs, int rt, int op, int loc
-{
- int i;
- unsigned32 v1 = GPR[rs];
- unsigned32 v2 = GPR[rt];
- signed16 h1, h2;
- signed32 result;
- unsigned32 lo = DSPLO(ac);
- unsigned32 hi = DSPHI(ac);
- signed64 prod = (signed64)((((unsigned64)hi) << 32) + (unsigned64)lo);
- if (loc == 0)
- {
- h1 = (signed16)(v1 >> 16);
- h2 = (signed16)(v2 >> 16);
- }
- else
- {
- h1 = (signed16)(v1 & 0xffff);
- h2 = (signed16)(v2 & 0xffff);
- }
- if (h1 == (signed16)0x8000 && h2 == (signed16)0x8000)
- {
- DSPCR |= (1 << (DSPCR_OUFLAG_SHIFT + ac));
- result = (signed32)0x7fffffff;
- }
- else
- result = ((signed32)h1 * (signed32)h2) << 1;
- prod += (signed64)result;
- if (op == 1) // MAQ_SA
- {
- if (prod & 0x8000000000000000LL)
- {
- for (i = 62; i >= 31; i--)
- {
- if (!(prod & ((signed64)1 << i)))
- {
- DSPCR |= (1 << (DSPCR_OUFLAG_SHIFT + ac));
- prod = 0xffffffff80000000LL;
- break;
- }
- }
- }
- else
- {
- for (i = 62; i >= 31; i--)
- {
- if (prod & ((signed64)1 << i))
- {
- DSPCR |= (1 << (DSPCR_OUFLAG_SHIFT + ac));
- prod = 0x7fffffff;
- break;
- }
- }
- }
- }
- DSPLO(ac) = EXTEND32 (prod);
- DSPHI(ac) = EXTEND32 (prod >> 32);
-}
-
-011111,5.RS,5.RT,000,2.AC,10100,110000:SPECIAL3:32::MAQ_S.W.PHL
-"maq_s.w.phl ac<AC>, r<RS>, r<RT>"
-*dsp:
-{
- do_ph_maq (SD_, AC, RS, RT, 0, 0);
-}
-
-011111,5.RS,5.RT,000,2.AC,10110,110000:SPECIAL3:32::MAQ_S.W.PHR
-"maq_s.w.phr ac<AC>, r<RS>, r<RT>"
-*dsp:
-{
- do_ph_maq (SD_, AC, RS, RT, 0, 1);
-}
-
-011111,5.RS,5.RT,000,2.AC,10000,110000:SPECIAL3:32::MAQ_SA.W.PHL
-"maq_sa.w.phl ac<AC>, r<RS>, r<RT>"
-*dsp:
-{
- do_ph_maq (SD_, AC, RS, RT, 1, 0);
-}
-
-011111,5.RS,5.RT,000,2.AC,10010,110000:SPECIAL3:32::MAQ_SA.W.PHR
-"maq_sa.w.phr ac<AC>, r<RS>, r<RT>"
-*dsp:
-{
- do_ph_maq (SD_, AC, RS, RT, 1, 1);
-}
-
-011111,00000,5.RT,5.RD,11011,010010:SPECIAL3:32::BITREV
-"bitrev r<RD>, r<RT>"
-*dsp:
-{
- int i;
- unsigned32 v1 = GPR[RT];
- unsigned32 h1 = 0;
- for (i = 0; i < 16; i++)
- {
- if (v1 & (1 << i))
- h1 |= (1 << (15 - i));
- }
- GPR[RD] = EXTEND32 (h1);
-}
-
-011111,5.RS,5.RT,00000,00000,001100:SPECIAL3:32::INSV
-"insv r<RT>, r<RS>"
-*dsp:
-{
- unsigned32 v1 = GPR[RS];
- unsigned32 v2 = GPR[RT];
- unsigned32 pos = (DSPCR >> DSPCR_POS_SHIFT) & DSPCR_POS_MASK;
- unsigned32 size = (DSPCR >> DSPCR_SCOUNT_SHIFT) & DSPCR_SCOUNT_MASK;
- unsigned32 mask1, mask2, mask3, result;
- if (size < 32)
- mask1 = (1 << size) - 1;
- else
- mask1 = 0xffffffff;
- mask2 = (1 << pos) - 1;
- if (pos + size < 32)
- mask3 = ~((1 << (pos + size)) - 1);
- else
- mask3 = 0;
- result = (v2 & mask3) | ((v1 & mask1) << pos) | (v2 & mask2);
- GPR[RT] = EXTEND32 (result);
-}
-
-011111,00,8.IMM8,5.RD,00010,010010:SPECIAL3:32::REPL.QB
-"repl.qb r<RD>, <IMM8>"
-*dsp:
-{
- GPR[RD] = EXTEND32 ((IMM8 << 24) | (IMM8 << 16) | (IMM8 << 8) | IMM8);
-}
-
-011111,00000,5.RT,5.RD,00011,010010:SPECIAL3:32::REPLV.QB
-"replv.qb r<RD>, r<RT>"
-*dsp:
-{
- unsigned32 v1 = GPR[RT];
- v1 = v1 & 0xff;
- GPR[RD] = EXTEND32 ((v1 << 24) | (v1 << 16) | (v1 << 8) | v1);
-}
-
-011111,10.IMM10,5.RD,01010,010010:SPECIAL3:32::REPL.PH
-"repl.ph r<RD>, <IMM10>"
-*dsp:
-{
- signed32 v1 = IMM10;
- if (v1 & 0x200)
- v1 |= 0xfffffc00;
- GPR[RD] = EXTEND32 ((v1 << 16) | (v1 & 0xffff));
-}
-
-011111,00000,5.RT,5.RD,01011,010010:SPECIAL3:32::REPLV.PH
-"replv.ph r<RD>, r<RT>"
-*dsp:
-{
- unsigned32 v1 = GPR[RT];
- v1 = v1 & 0xffff;
- GPR[RD] = EXTEND32 ((v1 << 16) | v1);
-}
-
-// op: 0 = EQ, 1 = LT, 2 = LE
-:function:::void:do_qb_cmpu:int rs, int rt, int op
-{
- int i, j;
- unsigned32 v1 = GPR[rs];
- unsigned32 v2 = GPR[rt];
- unsigned8 h1, h2;
- unsigned32 mask;
- for (i = 0, j = 0; i < 32; i += 8, j++, v1 >>= 8, v2 >>= 8)
- {
- h1 = (unsigned8)(v1 & 0xff);
- h2 = (unsigned8)(v2 & 0xff);
- mask = ~(1 << (DSPCR_CCOND_SHIFT + j));
- DSPCR &= mask;
- if (op == 0) // EQ
- DSPCR |= ((h1 == h2) << (DSPCR_CCOND_SHIFT + j));
- else if (op == 1) // LT
- DSPCR |= ((h1 < h2) << (DSPCR_CCOND_SHIFT + j));
- else // LE
- DSPCR |= ((h1 <= h2) << (DSPCR_CCOND_SHIFT + j));
- }
-}
-
-011111,5.RS,5.RT,00000,00000,010001:SPECIAL3:32::CMPU.EQ.QB
-"cmpu.eq.qb r<RS>, r<RT>"
-*dsp:
-{
- do_qb_cmpu (SD_, RS, RT, 0);
-}
-
-011111,5.RS,5.RT,00000,00001,010001:SPECIAL3:32::CMPU.LT.QB
-"cmpu.lt.qb r<RS>, r<RT>"
-*dsp:
-{
- do_qb_cmpu (SD_, RS, RT, 1);
-}
-
-011111,5.RS,5.RT,00000,00010,010001:SPECIAL3:32::CMPU.LE.QB
-"cmpu.le.qb r<RS>, r<RT>"
-*dsp:
-{
- do_qb_cmpu (SD_, RS, RT, 2);
-}
-
-// op: 0 = EQ, 1 = LT, 2 = LE
-:function:::void:do_qb_cmpgu:int rd, int rs, int rt, int op
-{
- int i, j;
- unsigned32 v1 = GPR[rs];
- unsigned32 v2 = GPR[rt];
- unsigned8 h1, h2;
- unsigned32 result = 0;
- for (i = 0, j = 0; i < 32; i += 8, j++, v1 >>= 8, v2 >>= 8)
- {
- h1 = (unsigned8)(v1 & 0xff);
- h2 = (unsigned8)(v2 & 0xff);
- if (op == 0) // EQ
- result |= ((h1 == h2) << j);
- else if (op == 1) // LT
- result |= ((h1 < h2) << j);
- else // LE
- result |= ((h1 <= h2) << j);
- }
- GPR[rd] = EXTEND32 (result);
-}
-
-011111,5.RS,5.RT,5.RD,00100,010001:SPECIAL3:32::CMPGU.EQ.QB
-"cmpgu.eq.qb r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- do_qb_cmpgu (SD_, RD, RS, RT, 0);
-}
-
-011111,5.RS,5.RT,5.RD,00101,010001:SPECIAL3:32::CMPGU.LT.QB
-"cmpgu.lt.qb r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- do_qb_cmpgu (SD_, RD, RS, RT, 1);
-}
-
-011111,5.RS,5.RT,5.RD,00110,010001:SPECIAL3:32::CMPGU.LE.QB
-"cmpgu.le.qb r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- do_qb_cmpgu (SD_, RD, RS, RT, 2);
-}
-
-// op: 0 = EQ, 1 = LT, 2 = LE
-:function:::void:do_ph_cmpu:int rs, int rt, int op
-{
- int i, j;
- unsigned32 v1 = GPR[rs];
- unsigned32 v2 = GPR[rt];
- signed16 h1, h2;
- unsigned32 mask;
- for (i = 0, j = 0; i < 32; i += 16, j++, v1 >>= 16, v2 >>= 16)
- {
- h1 = (signed16)(v1 & 0xffff);
- h2 = (signed16)(v2 & 0xffff);
- mask = ~(1 << (DSPCR_CCOND_SHIFT + j));
- DSPCR &= mask;
- if (op == 0) // EQ
- DSPCR |= ((h1 == h2) << (DSPCR_CCOND_SHIFT + j));
- else if (op == 1) // LT
- DSPCR |= ((h1 < h2) << (DSPCR_CCOND_SHIFT + j));
- else // LE
- DSPCR |= ((h1 <= h2) << (DSPCR_CCOND_SHIFT + j));
- }
-}
-
-011111,5.RS,5.RT,00000,01000,010001:SPECIAL3:32::CMP.EQ.PH
-"cmp.eq.ph r<RS>, r<RT>"
-*dsp:
-{
- do_ph_cmpu (SD_, RS, RT, 0);
-}
-
-011111,5.RS,5.RT,00000,01001,010001:SPECIAL3:32::CMP.LT.PH
-"cmp.lt.ph r<RS>, r<RT>"
-*dsp:
-{
- do_ph_cmpu (SD_, RS, RT, 1);
-}
-
-011111,5.RS,5.RT,00000,01010,010001:SPECIAL3:32::CMP.LE.PH
-"cmp.le.ph r<RS>, r<RT>"
-*dsp:
-{
- do_ph_cmpu (SD_, RS, RT, 2);
-}
-
-011111,5.RS,5.RT,5.RD,00011,010001:SPECIAL3:32::PICK.QB
-"pick.qb r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- int i, j;
- unsigned32 v1 = GPR[RS];
- unsigned32 v2 = GPR[RT];
- unsigned8 h1, h2;
- unsigned32 result = 0;
- for (i = 0, j = 0; i < 32; i += 8, j++, v1 >>= 8, v2 >>= 8)
- {
- h1 = (unsigned8)(v1 & 0xff);
- h2 = (unsigned8)(v2 & 0xff);
- if (DSPCR & (1 << (DSPCR_CCOND_SHIFT + j)))
- result |= (unsigned32)(h1 << i);
- else
- result |= (unsigned32)(h2 << i);
- }
- GPR[RD] = EXTEND32 (result);
-}
-
-011111,5.RS,5.RT,5.RD,01011,010001:SPECIAL3:32::PICK.PH
-"pick.ph r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- int i, j;
- unsigned32 v1 = GPR[RS];
- unsigned32 v2 = GPR[RT];
- unsigned16 h1, h2;
- unsigned32 result = 0;
- for (i = 0, j = 0; i < 32; i += 16, j++, v1 >>= 16, v2 >>= 16)
- {
- h1 = (unsigned16)(v1 & 0xffff);
- h2 = (unsigned16)(v2 & 0xffff);
- if (DSPCR & (1 << (DSPCR_CCOND_SHIFT + j)))
- result |= (unsigned32)(h1 << i);
- else
- result |= (unsigned32)(h2 << i);
- }
- GPR[RD] = EXTEND32 (result);
-}
-
-011111,5.RS,5.RT,5.RD,01110,010001:SPECIAL3:32::PACKRL.PH
-"packrl.ph r<RD>, r<RS>, r<RT>"
-*dsp:
-{
- unsigned32 v1 = GPR[RS];
- unsigned32 v2 = GPR[RT];
- GPR[RD] = EXTEND32 ((v1 << 16) + (v2 >> 16));
-}
-
-// op: 0 = EXTR, 1 = EXTR_R, 2 = EXTR_RS
-:function:::void:do_w_extr:int rt, int ac, int shift, int op
-{
- int i;
- unsigned32 lo = DSPLO(ac);
- unsigned32 hi = DSPHI(ac);
- unsigned64 prod = (((unsigned64)hi) << 32) + (unsigned64)lo;
- signed64 result = (signed64)prod;
- int setcond = 0;
- if (!(prod & 0x8000000000000000LL))
- {
- for (i = 62; i >= (shift + 31); i--)
- {
- if (prod & ((unsigned64)1 << i))
- {
- DSPCR |= DSPCR_OUFLAG7;
- setcond = 1;
- break;
- }
- }
- if (((prod >> (shift - 1)) & 0xffffffffLL) == 0xffffffffLL)
- {
- DSPCR |= DSPCR_OUFLAG7;
- setcond = 1;
- }
- }
- else
- {
- for (i = 62; i >= (shift + 31); i--)
- {
- if (!(prod & ((unsigned64)1 << i)))
- {
- DSPCR |= DSPCR_OUFLAG7;
- setcond = 2;
- break;
- }
- }
- }
- if (op == 0) // EXTR
- result = result >> shift;
- else if (op == 1) // EXTR_R
- {
- if (shift != 0)
- result = ((result >> (shift - 1)) + 1) >> 1;
- else
- result = result >> shift;
- }
- else // EXTR_RS
- {
- if (setcond == 1)
- result = 0x7fffffff;
- else if (setcond == 2)
- result = 0x80000000;
- else
- {
- if (shift != 0)
- result = ((result >> (shift - 1)) + 1) >> 1;
- else
- result = result >> shift;
- }
- }
- GPR[rt] = EXTEND32 (result);
-}
-
-011111,5.SHIFT,5.RT,000,2.AC,00000,111000:SPECIAL3:32::EXTR.W
-"extr.w r<RT>, ac<AC>, <SHIFT>"
-*dsp:
-{
- do_w_extr (SD_, RT, AC, SHIFT, 0);
-}
-
-011111,5.RS,5.RT,000,2.AC,00001,111000:SPECIAL3:32::EXTRV.W
-"extrv.w r<RT>, ac<AC>, r<RS>"
-*dsp:
-{
- unsigned32 shift = GPR[RS] & 0x1f;
- do_w_extr (SD_, RT, AC, shift, 0);
-}
-
-011111,5.SHIFT,5.RT,000,2.AC,00100,111000:SPECIAL3:32::EXTR_R.W
-"extr_r.w r<RT>, ac<AC>, <SHIFT>"
-*dsp:
-{
- do_w_extr (SD_, RT, AC, SHIFT, 1);
-}
-
-011111,5.RS,5.RT,000,2.AC,00101,111000:SPECIAL3:32::EXTRV_R.W
-"extrv_r.w r<RT>, ac<AC>, r<RS>"
-*dsp:
-{
- unsigned32 shift = GPR[RS] & 0x1f;
- do_w_extr (SD_, RT, AC, shift, 1);
-}
-
-011111,5.SHIFT,5.RT,000,2.AC,00110,111000:SPECIAL3:32::EXTR_RS.W
-"extr_rs.w r<RT>, ac<AC>, <SHIFT>"
-*dsp:
-{
- do_w_extr (SD_, RT, AC, SHIFT, 2);
-}
-
-011111,5.RS,5.RT,000,2.AC,00111,111000:SPECIAL3:32::EXTRV_RS.W
-"extrv_rs.w r<RT>, ac<AC>, r<RS>"
-*dsp:
-{
- unsigned32 shift = GPR[RS] & 0x1f;
- do_w_extr (SD_, RT, AC, shift, 2);
-}
-
-:function:::void:do_h_extr:int rt, int ac, int shift
-{
- int i;
- unsigned32 lo = DSPLO(ac);
- unsigned32 hi = DSPHI(ac);
- unsigned64 prod = (((unsigned64)hi) << 32) + (unsigned64)lo;
- signed64 result = (signed64)prod;
- signed64 value = 0xffffffffffff8000LL;
- result >>= shift;
- if (result > 0x7fff)
- {
- result = 0x7fff;
- DSPCR |= DSPCR_OUFLAG7;
- }
- else if (result < value)
- {
- result = value;
- DSPCR |= DSPCR_OUFLAG7;
- }
- GPR[rt] = EXTEND32 (result);
-}
-
-011111,5.SHIFT,5.RT,000,2.AC,01110,111000:SPECIAL3:32::EXTR_S.H
-"extr_s.h r<RT>, ac<AC>, <SHIFT>"
-*dsp:
-{
- do_h_extr (SD_, RT, AC, SHIFT);
-}
-
-011111,5.RS,5.RT,000,2.AC,01111,111000:SPECIAL3:32::EXTRV_S.H
-"extrv_s.h r<RT>, ac<AC>, r<RS>"
-*dsp:
-{
- unsigned32 shift = GPR[RS] & 0x1f;
- do_h_extr (SD_, RT, AC, shift);
-}
-
-// op: 0 = EXTP, 1 = EXTPDP
-:function:::void:do_extp:int rt, int ac, int size, int op
-{
- signed32 pos = (DSPCR >> DSPCR_POS_SHIFT) & DSPCR_POS_MASK;
- unsigned32 lo = DSPLO(ac);
- unsigned32 hi = DSPHI(ac);
- unsigned64 prod = (((unsigned64)hi) << 32) + (unsigned64)lo;
- unsigned64 result = 0;
- if (pos - (size + 1) >= -1)
- {
- prod >>= (pos - size);
- result = prod & (((unsigned64)1 << (size + 1)) - 1);
- DSPCR &= (~DSPCR_EFI_SMASK);
- if (op == 1) // EXTPDP
- {
- if (pos - (size + 1) >= 0)
- {
- DSPCR &= (~DSPCR_POS_SMASK);
- DSPCR |= ((pos - (size + 1)) & DSPCR_POS_MASK) << DSPCR_POS_SHIFT;
- }
- else if (pos - (size + 1) == -1)
- {
- DSPCR |= DSPCR_POS_SMASK;
- }
- }
- }
- else
- {
- DSPCR |= DSPCR_EFI;
- Unpredictable ();
- }
- GPR[rt] = EXTEND32 (result);
-}
-
-011111,5.SIZE,5.RT,000,2.AC,00010,111000:SPECIAL3:32::EXTP
-"extp r<RT>, ac<AC>, <SIZE>"
-*dsp:
-{
- do_extp (SD_, RT, AC, SIZE, 0);
-}
-
-011111,5.RS,5.RT,000,2.AC,00011,111000:SPECIAL3:32::EXTPV
-"extpv r<RT>, ac<AC>, r<RS>"
-*dsp:
-{
- unsigned32 size = GPR[RS] & 0x1f;
- do_extp (SD_, RT, AC, size, 0);
-}
-
-011111,5.SIZE,5.RT,000,2.AC,01010,111000:SPECIAL3:32::EXTPDP
-"extpdp r<RT>, ac<AC>, <SIZE>"
-*dsp:
-{
- do_extp (SD_, RT, AC, SIZE, 1);
-}
-
-011111,5.RS,5.RT,000,2.AC,01011,111000:SPECIAL3:32::EXTPDPV
-"extpdpv r<RT>, ac<AC>, r<RS>"
-*dsp:
-{
- unsigned32 size = GPR[RS] & 0x1f;
- do_extp (SD_, RT, AC, size, 1);
-}
-
-:function:::void:do_shilo:int ac, int shift
-{
- unsigned32 lo = DSPLO(ac);
- unsigned32 hi = DSPHI(ac);
- unsigned64 prod = (((unsigned64)hi) << 32) + (unsigned64)lo;
- if (shift > 31)
- shift = shift - 64;
- if (shift >= 0)
- prod >>= shift;
- else
- prod <<= (-shift);
- DSPLO(ac) = EXTEND32 (prod);
- DSPHI(ac) = EXTEND32 (prod >> 32);
-}
-
-011111,6.SHIFT6,0000,000,2.AC,11010,111000:SPECIAL3:32::SHILO
-"shilo ac<AC>, <SHIFT6>"
-*dsp:
-{
- do_shilo (SD_, AC, SHIFT6);
-}
-
-011111,5.RS,00000,000,2.AC,11011,111000:SPECIAL3:32::SHILOV
-"shilov ac<AC>, r<RS>"
-*dsp:
-{
- signed32 shift = GPR[RS] & 0x3f;
- do_shilo (SD_, AC, shift);
-}
-
-011111,5.RS,00000,000,2.AC,11111,111000:SPECIAL3:32::MTHLIP
-"mthlip r<RS>, ac<AC>"
-*dsp:
-{
- unsigned32 pos = (DSPCR >> DSPCR_POS_SHIFT) & DSPCR_POS_MASK;
- DSPHI(AC) = DSPLO(AC);
- DSPLO(AC) = GPR[RS];
- if (pos >= 32)
- Unpredictable ();
- else
- pos += 32;
- DSPCR &= (~DSPCR_POS_SMASK);
- DSPCR |= (pos & DSPCR_POS_MASK) << DSPCR_POS_SHIFT;
-}
-
-000000,000,2.AC,00000,5.RD,00000,010000:SPECIAL:32::MFHIdsp
-"mfhi r<RD>":AC == 0
-"mfhi r<RD>, ac<AC>"
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*dsp:
-{
- if (AC == 0)
- do_mfhi (SD_, RD);
- else
- GPR[RD] = DSPHI(AC);
-}
-
-000000,000,2.AC,00000,5.RD,00000,010010:SPECIAL:32::MFLOdsp
-"mflo r<RD>":AC == 0
-"mflo r<RD>, ac<AC>"
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*dsp:
-{
- if (AC == 0)
- do_mflo (SD_, RD);
- else
- GPR[RD] = DSPLO(AC);
-}
-
-000000,5.RS,00000,000,2.AC,00000,010001:SPECIAL:32::MTHIdsp
-"mthi r<RS>":AC == 0
-"mthi r<RS>, ac<AC>"
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*dsp:
-{
- if (AC == 0)
- check_mt_hilo (SD_, HIHISTORY);
- DSPHI(AC) = GPR[RS];
-}
-
-000000,5.RS,00000,000,2.AC,00000,010011:SPECIAL:32::MTLOdsp
-"mtlo r<RS>":AC == 0
-"mtlo r<RS>, ac<AC>"
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*dsp:
-{
- if (AC == 0)
- check_mt_hilo (SD_, LOHISTORY);
- DSPLO(AC) = GPR[RS];
-}
-
-011111,5.RS,10.MASK10,10011,111000:SPECIAL3:32::WRDSP
-"wrdsp r<RS>":MASK10 == 1111111111
-"wrdsp r<RS>, <MASK10>"
-*dsp:
-{
- unsigned32 v1 = GPR[RS];
- if (MASK10 & 0x1)
- {
- DSPCR &= (~DSPCR_POS_SMASK);
- DSPCR |= (v1 & DSPCR_POS_SMASK);
- }
- if (MASK10 & 0x2)
- {
- DSPCR &= (~DSPCR_SCOUNT_SMASK);
- DSPCR |= (v1 & DSPCR_SCOUNT_SMASK);
- }
- if (MASK10 & 0x4)
- {
- DSPCR &= (~DSPCR_CARRY_SMASK);
- DSPCR |= (v1 & DSPCR_CARRY_SMASK);
- }
- if (MASK10 & 0x8)
- {
- DSPCR &= (~DSPCR_OUFLAG_SMASK);
- DSPCR |= (v1 & DSPCR_OUFLAG_SMASK);
- }
- if (MASK10 & 0x10)
- {
- DSPCR &= (~DSPCR_CCOND_SMASK);
- DSPCR |= (v1 & DSPCR_CCOND_SMASK);
- }
- if (MASK10 & 0x20)
- {
- DSPCR &= (~DSPCR_EFI_SMASK);
- DSPCR |= (v1 & DSPCR_EFI_SMASK);
- }
-}
-
-011111,10.MASK10,5.RD,10010,111000:SPECIAL3:32::RDDSP
-"rddsp r<RD>":MASK10 == 1111111111
-"rddsp r<RD>, <MASK10>"
-*dsp:
-{
- unsigned32 result = 0;
- if (MASK10 & 0x1)
- {
- result &= (~DSPCR_POS_SMASK);
- result |= (DSPCR & DSPCR_POS_SMASK);
- }
- if (MASK10 & 0x2)
- {
- result &= (~DSPCR_SCOUNT_SMASK);
- result |= (DSPCR & DSPCR_SCOUNT_SMASK);
- }
- if (MASK10 & 0x4)
- {
- result &= (~DSPCR_CARRY_SMASK);
- result |= (DSPCR & DSPCR_CARRY_SMASK);
- }
- if (MASK10 & 0x8)
- {
- result &= (~DSPCR_OUFLAG_SMASK);
- result |= (DSPCR & DSPCR_OUFLAG_SMASK);
- }
- if (MASK10 & 0x10)
- {
- result &= (~DSPCR_CCOND_SMASK);
- result |= (DSPCR & DSPCR_CCOND_SMASK);
- }
- if (MASK10 & 0x20)
- {
- result &= (~DSPCR_EFI_SMASK);
- result |= (DSPCR & DSPCR_EFI_SMASK);
- }
- GPR[RD] = EXTEND32 (result);
-}
-
-011111,5.BASE,5.INDEX,5.RD,00110,001010:SPECIAL3:32::LBUX
-"lbux r<RD>, r<INDEX>(r<BASE>)"
-*dsp:
-{
- GPR[RD] = do_load (SD_, AccessLength_BYTE, GPR[BASE], GPR[INDEX]);
-}
-
-011111,5.BASE,5.INDEX,5.RD,00100,001010:SPECIAL3:32::LHX
-"lhx r<RD>, r<INDEX>(r<BASE>)"
-*dsp:
-{
- GPR[RD] = EXTEND16 (do_load (SD_, AccessLength_HALFWORD, GPR[BASE], GPR[INDEX]));
-}
-
-011111,5.BASE,5.INDEX,5.RD,00000,001010:SPECIAL3:32::LWX
-"lwx r<RD>, r<INDEX>(r<BASE>)"
-*dsp:
-{
- GPR[RD] = EXTEND32 (do_load (SD_, AccessLength_WORD, GPR[BASE], GPR[INDEX]));
-}
-
-000001,00000,11100,16.OFFSET:REGIMM:32::BPOSGE32
-"bposge32 <OFFSET>"
-*dsp:
-{
- unsigned32 pos = (DSPCR >> DSPCR_POS_SHIFT) & DSPCR_POS_MASK;
- address_word offset = EXTEND16 (OFFSET) << 2;
- if (pos >= 32)
- {
- DELAY_SLOT (NIA + offset);
- }
-}
diff --git a/sim/mips/dv-tx3904cpu.c b/sim/mips/dv-tx3904cpu.c
deleted file mode 100644
index 07b8521..0000000
--- a/sim/mips/dv-tx3904cpu.c
+++ /dev/null
@@ -1,246 +0,0 @@
-/* This file is part of the program GDB, the GNU debugger.
-
- Copyright (C) 1998 Free Software Foundation, Inc.
- Contributed by Cygnus Solutions.
-
- This program 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 2 of the License, or
- (at your option) any later version.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- */
-
-
-#include "sim-main.h"
-#include "hw-main.h"
-
-/* DEVICE
-
-
- tx3904cpu - tx3904 cpu virtual device
-
-
- DESCRIPTION
-
-
- Implements the external tx3904 functionality. This includes the
- delivery of of interrupts generated from other devices and the
- handling of device specific registers.
-
-
- PROPERTIES
-
- none
-
-
- PORTS
-
-
- reset (input)
-
- Currently ignored.
-
-
- nmi (input)
-
- Deliver a non-maskable interrupt to the processor.
-
-
- level (input)
-
- Deliver a maskable interrupt of given level, corresponding to
- IP[5:0], to processor.
-
-
-
- BUGS
-
-
- When delivering an interrupt, this code assumes that there is only
- one processor (number 0).
-
- This code does not attempt to be efficient at handling pending
- interrupts. It simply schedules the interrupt delivery handler
- every instruction cycle until all pending interrupts go away. An
- alternative implementation might modify instructions that change
- the PSW and have them check to see if the change makes an interrupt
- delivery possible.
-
- */
-
-
-
-struct tx3904cpu {
- /* Pending interrupts for delivery by event handler */
- int pending_reset, pending_nmi, pending_level;
- struct hw_event* event;
-};
-
-
-
-/* input port ID's */
-
-enum {
- RESET_PORT,
- NMI_PORT,
- LEVEL_PORT,
-};
-
-
-static const struct hw_port_descriptor tx3904cpu_ports[] = {
-
- /* interrupt inputs */
- { "reset", RESET_PORT, 0, input_port, },
- { "nmi", NMI_PORT, 0, input_port, },
- { "level", LEVEL_PORT, 0, input_port, },
-
- { NULL, },
-};
-
-
-/* Finish off the partially created hw device. Attach our local
- callbacks. Wire up our port names etc */
-
-static hw_port_event_method tx3904cpu_port_event;
-
-
-
-static void
-tx3904cpu_finish (struct hw *me)
-{
- struct tx3904cpu *controller;
-
- controller = HW_ZALLOC (me, struct tx3904cpu);
- set_hw_data (me, controller);
- set_hw_ports (me, tx3904cpu_ports);
- set_hw_port_event (me, tx3904cpu_port_event);
-
- /* Initialize the pending interrupt flags */
- controller->pending_level = 0;
- controller->pending_reset = 0;
- controller->pending_nmi = 0;
- controller->event = NULL;
-}
-
-
-
-/* An event arrives on an interrupt port */
-
-static void
-deliver_tx3904cpu_interrupt (struct hw *me,
- void *data)
-{
- struct tx3904cpu *controller = hw_data (me);
- SIM_DESC sd = hw_system (me);
- sim_cpu *cpu = STATE_CPU (sd, 0); /* NB: fix CPU 0. */
- address_word cia = CIA_GET (cpu);
-
-#define CPU cpu
-#define SD current_state
-
- if (controller->pending_reset)
- {
- controller->pending_reset = 0;
- HW_TRACE ((me, "reset pc=0x%08lx", (long) CIA_GET (cpu)));
- SignalExceptionNMIReset();
- }
- else if (controller->pending_nmi)
- {
- controller->pending_nmi = 0;
- HW_TRACE ((me, "nmi pc=0x%08lx", (long) CIA_GET (cpu)));
- SignalExceptionNMIReset();
- }
- else if (controller->pending_level)
- {
- HW_TRACE ((me, "interrupt level=%d pc=0x%08lx sr=0x%08lx",
- controller->pending_level,
- (long) CIA_GET (cpu), (long) SR));
-
- /* Clear CAUSE register. It may stay this way if the interrupt
- was cleared with a negative pending_level. */
- CAUSE &= ~ (cause_IP_mask << cause_IP_shift);
-
- if(controller->pending_level > 0) /* interrupt set */
- {
- /* set hardware-interrupt subfields of CAUSE register */
- CAUSE |= (controller->pending_level & cause_IP_mask) << cause_IP_shift;
-
- /* check for enabled / unmasked interrupts */
- if((SR & status_IEc) &&
- (controller->pending_level & ((SR >> status_IM_shift) & status_IM_mask)))
- {
- controller->pending_level = 0;
- SignalExceptionInterrupt(0 /* dummy value */);
- }
- else
- {
- /* reschedule soon */
- if(controller->event != NULL)
- hw_event_queue_deschedule(me, controller->event);
- controller->event =
- hw_event_queue_schedule (me, 1, deliver_tx3904cpu_interrupt, NULL);
- }
- } /* interrupt set */
- }
-#undef CPU cpu
-#undef SD current_state
-}
-
-
-static void
-tx3904cpu_port_event (struct hw *me,
- int my_port,
- struct hw *source,
- int source_port,
- int level)
-{
- struct tx3904cpu *controller = hw_data (me);
-
- switch (my_port)
- {
- case RESET_PORT:
- controller->pending_reset = 1;
- HW_TRACE ((me, "port-in reset"));
- break;
-
- case NMI_PORT:
- controller->pending_nmi = 1;
- HW_TRACE ((me, "port-in nmi"));
- break;
-
- case LEVEL_PORT:
- /* level == 0 means that the interrupt was cleared */
- if(level == 0)
- controller->pending_level = -1; /* signal end of interrupt */
- else
- controller->pending_level = level;
- HW_TRACE ((me, "port-in level=%d", level));
- break;
-
- default:
- hw_abort (me, "bad switch");
- break;
- }
-
- /* Schedule an event to be delivered immediately after current
- instruction. */
- if(controller->event != NULL)
- hw_event_queue_deschedule(me, controller->event);
- controller->event =
- hw_event_queue_schedule (me, 0, deliver_tx3904cpu_interrupt, NULL);
-}
-
-
-const struct hw_descriptor dv_tx3904cpu_descriptor[] = {
- { "tx3904cpu", tx3904cpu_finish, },
- { NULL },
-};
diff --git a/sim/mips/dv-tx3904irc.c b/sim/mips/dv-tx3904irc.c
deleted file mode 100644
index 8b84e5c..0000000
--- a/sim/mips/dv-tx3904irc.c
+++ /dev/null
@@ -1,413 +0,0 @@
-/* This file is part of the program GDB, the GNU debugger.
-
- Copyright (C) 1998 Free Software Foundation, Inc.
- Contributed by Cygnus Solutions.
-
- This program 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 2 of the License, or
- (at your option) any later version.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- */
-
-
-#include "sim-main.h"
-#include "hw-main.h"
-
-
-/* DEVICE
-
-
- tx3904irc - tx3904 interrupt controller
-
-
- DESCRIPTION
-
-
- Implements the tx3904 interrupt controller described in the tx3904
- user guide. It does not include the interrupt detection circuit
- that preprocesses the eight external interrupts, so assumes that
- each event on an input interrupt port signals a new interrupt.
- That is, it implements edge- rather than level-triggered
- interrupts.
-
- This implementation does not support multiple concurrent
- interrupts.
-
-
- PROPERTIES
-
-
- reg <base> <length>
-
- Base of IRC control register bank. <length> must equal 0x20.
- Registers offsets: 0: ISR: interrupt status register
- 4: IMR: interrupt mask register
- 16: ILR0: interrupt level register 3..0
- 20: ILR1: interrupt level register 7..4
- 24: ILR2: interrupt level register 11..8
- 28: ILR3: interrupt level register 15..12
-
-
-
- PORTS
-
-
- ip (output)
-
- Interrupt priority port. An event is generated when an interrupt
- of a sufficient priority is passed through the IRC. The value
- associated with the event is the interrupt level (16-31), as given
- for bits IP[5:0] in the book TMPR3904F Rev. 2.0, pg. 11-3. Note
- that even though INT[0] is tied externally to IP[5], we simulate
- it as passing through the controller.
-
- An output level of zero signals the clearing of a level interrupt.
-
-
- int0-7 (input)
-
- External interrupts. Level = 0 -> level interrupt cleared.
-
-
- dmac0-3 (input)
-
- DMA internal interrupts, correspond to DMA channels 0-3. Level = 0 -> level interrupt cleared.
-
-
- sio0-1 (input)
-
- SIO internal interrupts. Level = 0 -> level interrupt cleared.
-
-
- tmr0-2 (input)
-
- Timer internal interrupts. Level = 0 -> level interrupt cleared.
-
- */
-
-
-
-
-
-/* register numbers; each is one word long */
-enum
-{
- ISR_REG = 0,
- IMR_REG = 1,
- ILR0_REG = 4,
- ILR1_REG = 5,
- ILR2_REG = 6,
- ILR3_REG = 7,
-};
-
-
-/* port ID's */
-
-enum
-{
- /* inputs, ordered to correspond to interrupt sources 0..15 */
- INT1_PORT = 0, INT2_PORT, INT3_PORT, INT4_PORT, INT5_PORT, INT6_PORT, INT7_PORT,
- DMAC3_PORT, DMAC2_PORT, DMAC1_PORT, DMAC0_PORT, SIO0_PORT, SIO1_PORT,
- TMR0_PORT, TMR1_PORT, TMR2_PORT,
-
- /* special INT[0] port */
- INT0_PORT,
-
- /* reset */
- RESET_PORT,
-
- /* output */
- IP_PORT
-};
-
-
-static const struct hw_port_descriptor tx3904irc_ports[] = {
-
- /* interrupt output */
-
- { "ip", IP_PORT, 0, output_port, },
-
- /* interrupt inputs (as names) */
- /* in increasing order of level number */
-
- { "int1", INT1_PORT, 0, input_port, },
- { "int2", INT2_PORT, 0, input_port, },
- { "int3", INT3_PORT, 0, input_port, },
- { "int4", INT4_PORT, 0, input_port, },
- { "int5", INT5_PORT, 0, input_port, },
- { "int6", INT6_PORT, 0, input_port, },
- { "int7", INT7_PORT, 0, input_port, },
-
- { "dmac3", DMAC3_PORT, 0, input_port, },
- { "dmac2", DMAC2_PORT, 0, input_port, },
- { "dmac1", DMAC1_PORT, 0, input_port, },
- { "dmac0", DMAC0_PORT, 0, input_port, },
-
- { "sio0", SIO0_PORT, 0, input_port, },
- { "sio1", SIO1_PORT, 0, input_port, },
-
- { "tmr0", TMR0_PORT, 0, input_port, },
- { "tmr1", TMR1_PORT, 0, input_port, },
- { "tmr2", TMR2_PORT, 0, input_port, },
-
- { "reset", RESET_PORT, 0, input_port, },
- { "int0", INT0_PORT, 0, input_port, },
-
- { NULL, },
-};
-
-
-#define NR_SOURCES (TMR3_PORT - INT1_PORT + 1) /* 16: number of interrupt sources */
-
-
-/* The interrupt controller register internal state. Note that we
- store state using the control register images, in host endian
- order. */
-
-struct tx3904irc {
- address_word base_address; /* control register base */
- unsigned_4 isr;
-#define ISR_SET(c,s) ((c)->isr &= ~ (1 << (s)))
- unsigned_4 imr;
-#define IMR_GET(c) ((c)->imr)
- unsigned_4 ilr[4];
-#define ILR_GET(c,s) LSEXTRACTED32((c)->ilr[(s)/4], (s) % 4 * 8 + 2, (s) % 4 * 8)
-};
-
-
-
-/* Finish off the partially created hw device. Attach our local
- callbacks. Wire up our port names etc */
-
-static hw_io_read_buffer_method tx3904irc_io_read_buffer;
-static hw_io_write_buffer_method tx3904irc_io_write_buffer;
-static hw_port_event_method tx3904irc_port_event;
-
-static void
-attach_tx3904irc_regs (struct hw *me,
- struct tx3904irc *controller)
-{
- unsigned_word attach_address;
- int attach_space;
- unsigned attach_size;
- reg_property_spec reg;
-
- if (hw_find_property (me, "reg") == NULL)
- hw_abort (me, "Missing \"reg\" property");
-
- if (!hw_find_reg_array_property (me, "reg", 0, &reg))
- hw_abort (me, "\"reg\" property must contain one addr/size entry");
-
- hw_unit_address_to_attach_address (hw_parent (me),
- &reg.address,
- &attach_space,
- &attach_address,
- me);
- hw_unit_size_to_attach_size (hw_parent (me),
- &reg.size,
- &attach_size, me);
-
- hw_attach_address (hw_parent (me), 0,
- attach_space, attach_address, attach_size,
- me);
-
- controller->base_address = attach_address;
-}
-
-
-static void
-tx3904irc_finish (struct hw *me)
-{
- struct tx3904irc *controller;
-
- controller = HW_ZALLOC (me, struct tx3904irc);
- set_hw_data (me, controller);
- set_hw_io_read_buffer (me, tx3904irc_io_read_buffer);
- set_hw_io_write_buffer (me, tx3904irc_io_write_buffer);
- set_hw_ports (me, tx3904irc_ports);
- set_hw_port_event (me, tx3904irc_port_event);
-
- /* Attach ourself to our parent bus */
- attach_tx3904irc_regs (me, controller);
-
- /* Initialize to reset state */
- controller->isr = 0x0000ffff;
- controller->imr = 0;
- controller->ilr[0] =
- controller->ilr[1] =
- controller->ilr[2] =
- controller->ilr[3] = 0;
-}
-
-
-
-/* An event arrives on an interrupt port */
-
-static void
-tx3904irc_port_event (struct hw *me,
- int my_port,
- struct hw *source_dev,
- int source_port,
- int level)
-{
- struct tx3904irc *controller = hw_data (me);
-
- /* handle deactivated interrupt */
- if(level == 0)
- {
- HW_TRACE ((me, "interrupt cleared on port %d", my_port));
- hw_port_event(me, IP_PORT, 0);
- return;
- }
-
- switch (my_port)
- {
- case INT0_PORT:
- {
- int ip_number = 32; /* compute IP[5:0] */
- HW_TRACE ((me, "port-event INT[0]"));
- hw_port_event(me, IP_PORT, ip_number);
- break;
- }
-
- case INT1_PORT: case INT2_PORT: case INT3_PORT: case INT4_PORT:
- case INT5_PORT: case INT6_PORT: case INT7_PORT: case DMAC3_PORT:
- case DMAC2_PORT: case DMAC1_PORT: case DMAC0_PORT: case SIO0_PORT:
- case SIO1_PORT: case TMR0_PORT: case TMR1_PORT: case TMR2_PORT:
- {
- int source = my_port - INT1_PORT;
-
- HW_TRACE ((me, "interrupt asserted on port %d", source));
- ISR_SET(controller, source);
- if(ILR_GET(controller, source) > IMR_GET(controller))
- {
- int ip_number = 16 + source; /* compute IP[4:0] */
- HW_TRACE ((me, "interrupt level %d", ILR_GET(controller,source)));
- hw_port_event(me, IP_PORT, ip_number);
- }
- break;
- }
-
- case RESET_PORT:
- {
- HW_TRACE ((me, "reset"));
- controller->isr = 0x0000ffff;
- controller->imr = 0;
- controller->ilr[0] =
- controller->ilr[1] =
- controller->ilr[2] =
- controller->ilr[3] = 0;
- break;
- }
-
- case IP_PORT:
- hw_abort (me, "Event on output port %d", my_port);
- break;
-
- default:
- hw_abort (me, "Event on unknown port %d", my_port);
- break;
- }
-}
-
-
-/* generic read/write */
-
-static unsigned
-tx3904irc_io_read_buffer (struct hw *me,
- void *dest,
- int space,
- unsigned_word base,
- unsigned nr_bytes)
-{
- struct tx3904irc *controller = hw_data (me);
- unsigned byte;
-
- HW_TRACE ((me, "read 0x%08lx %d", (long) base, (int) nr_bytes));
- for (byte = 0; byte < nr_bytes; byte++)
- {
- address_word address = base + byte;
- int reg_number = (address - controller->base_address) / 4;
- int reg_offset = (address - controller->base_address) % 4;
- unsigned_4 register_value; /* in target byte order */
-
- /* fill in entire register_value word */
- switch (reg_number)
- {
- case ISR_REG: register_value = controller->isr; break;
- case IMR_REG: register_value = controller->imr; break;
- case ILR0_REG: register_value = controller->ilr[0]; break;
- case ILR1_REG: register_value = controller->ilr[1]; break;
- case ILR2_REG: register_value = controller->ilr[2]; break;
- case ILR3_REG: register_value = controller->ilr[3]; break;
- default: register_value = 0;
- }
-
- /* write requested byte out */
- register_value = H2T_4(register_value);
- memcpy ((char*) dest + byte, ((char*)& register_value)+reg_offset, 1);
- }
-
- return nr_bytes;
-}
-
-
-
-static unsigned
-tx3904irc_io_write_buffer (struct hw *me,
- const void *source,
- int space,
- unsigned_word base,
- unsigned nr_bytes)
-{
- struct tx3904irc *controller = hw_data (me);
- unsigned byte;
-
- HW_TRACE ((me, "write 0x%08lx %d", (long) base, (int) nr_bytes));
- for (byte = 0; byte < nr_bytes; byte++)
- {
- address_word address = base + byte;
- int reg_number = (address - controller->base_address) / 4;
- int reg_offset = (address - controller->base_address) % 4;
- unsigned_4* register_ptr;
- unsigned_4 register_value;
-
- /* fill in entire register_value word */
- switch (reg_number)
- {
- case ISR_REG: register_ptr = & controller->isr; break;
- case IMR_REG: register_ptr = & controller->imr; break;
- case ILR0_REG: register_ptr = & controller->ilr[0]; break;
- case ILR1_REG: register_ptr = & controller->ilr[1]; break;
- case ILR2_REG: register_ptr = & controller->ilr[2]; break;
- case ILR3_REG: register_ptr = & controller->ilr[3]; break;
- default: register_ptr = & register_value; /* used as a dummy */
- }
-
- /* HW_TRACE ((me, "reg %d pre: %08lx", reg_number, (long) *register_ptr)); */
-
- /* overwrite requested byte */
- register_value = H2T_4(* register_ptr);
- memcpy (((char*)&register_value)+reg_offset, (const char*)source + byte, 1);
- * register_ptr = T2H_4(register_value);
-
- /* HW_TRACE ((me, "post: %08lx", (long) *register_ptr)); */
- }
- return nr_bytes;
-}
-
-
-const struct hw_descriptor dv_tx3904irc_descriptor[] = {
- { "tx3904irc", tx3904irc_finish, },
- { NULL },
-};
diff --git a/sim/mips/dv-tx3904sio.c b/sim/mips/dv-tx3904sio.c
deleted file mode 100644
index 5ba8e37..0000000
--- a/sim/mips/dv-tx3904sio.c
+++ /dev/null
@@ -1,622 +0,0 @@
-/* This file is part of the program GDB, the GNU debugger.
-
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
- Contributed by Cygnus Solutions.
-
- This program 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 2 of the License, or
- (at your option) any later version.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- */
-
-
-#include "sim-main.h"
-#include "hw-main.h"
-#include "dv-sockser.h"
-#include "sim-assert.h"
-
-
-/* DEVICE
-
-
- tx3904sio - tx3904 serial I/O
-
-
- DESCRIPTION
-
-
- Implements one tx3904 serial I/O controller described in the tx3904
- user guide. Three instances are required for SIO0 and SIO1 within
- the tx3904, at different base addresses.
-
- Both internal and system clocks are synthesized as divided versions
- of the simulator clock.
-
- There is no support for:
- - CTS/RTS flow control
- - baud rate emulation - use infinite speed instead
- - general frame format - use 8N1
- - multi-controller system
- - DMA - use interrupt-driven or polled-I/O instead
-
-
- PROPERTIES
-
-
- reg <base> <length>
-
- Base of SIO control register bank. <length> must equal 0x100.
- Register offsets: 0: SLCR: line control register
- 4: SLSR: line status register
- 8: SDICR: DMA/interrupt control register
- 12: SDISR: DMA/interrupt status register
- 16: SFCR: FIFO control register
- 20: SBGR: baud rate control register
- 32: transfer FIFO buffer
- 48: transfer FIFO buffer
-
- backend {tcp | stdio}
-
- Use dv-sockser TCP-port backend or stdio for backend. Default: stdio.
-
-
-
- PORTS
-
-
- int (output)
-
- Interrupt port. An event is generated when a timer interrupt
- occurs.
-
-
- reset (input)
-
- Reset port.
-
- */
-
-
-
-/* static functions */
-
-struct tx3904sio_fifo;
-
-static void tx3904sio_tickle(struct hw*);
-static int tx3904sio_fifo_nonempty(struct hw*, struct tx3904sio_fifo*);
-static char tx3904sio_fifo_pop(struct hw*, struct tx3904sio_fifo*);
-static void tx3904sio_fifo_push(struct hw*, struct tx3904sio_fifo*, char);
-static void tx3904sio_fifo_reset(struct hw*, struct tx3904sio_fifo*);
-static void tx3904sio_poll(struct hw*, void* data);
-
-
-/* register numbers; each is one word long */
-enum
-{
- SLCR_REG = 0,
- SLSR_REG = 1,
- SDICR_REG = 2,
- SDISR_REG = 3,
- SFCR_REG = 4,
- SBGR_REG = 5,
- TFIFO_REG = 8,
- SFIFO_REG = 12,
-};
-
-
-
-/* port ID's */
-
-enum
- {
- RESET_PORT,
- INT_PORT,
-};
-
-
-static const struct hw_port_descriptor tx3904sio_ports[] =
-{
- { "int", INT_PORT, 0, output_port, },
- { "reset", RESET_PORT, 0, input_port, },
- { NULL, },
-};
-
-
-
-/* Generic FIFO */
-struct tx3904sio_fifo
-{
- int size, used;
- unsigned_1 *buffer;
-};
-
-
-
-/* The timer/counter register internal state. Note that we store
- state using the control register images, in host endian order. */
-
-struct tx3904sio
-{
- address_word base_address; /* control register base */
- enum {sio_tcp, sio_stdio} backend; /* backend */
-
- struct tx3904sio_fifo rx_fifo, tx_fifo; /* FIFOs */
-
- unsigned_4 slcr;
-#define SLCR_WR_MASK 0xe17f0000U
-#define SLCR_SET_BYTE(c,o,b) ((c)->slcr = SLCR_WR_MASK & (((c)->slcr & ~LSMASK32((o)*8+7,(o)*8)) | ((b)<< (o)*8)))
- unsigned_4 slsr;
-#define SLSR_WR_MASK 0x00000000 /* UFER/UPER/UOER unimplemented */
- unsigned_4 sdicr;
-#define SDICR_WR_MASK 0x000f0000U
-#define SDICR_SET_BYTE(c,o,b) ((c)->sdicr = SDICR_WR_MASK & (((c)->sdicr & ~LSMASK32((o)*8+7,(o)*8)) | ((b)<< (o)*8)))
-#define SDICR_GET_SDMAE(c) ((c)->sdicr & 0x00080000)
-#define SDICR_GET_ERIE(c) ((c)->sdicr & 0x00040000)
-#define SDICR_GET_TDIE(c) ((c)->sdicr & 0x00020000)
-#define SDICR_GET_RDIE(c) ((c)->sdicr & 0x00010000)
- unsigned_4 sdisr;
-#define SDISR_WR_MASK 0x00070000U
-#define SDISR_SET_BYTE(c,o,b) ((c)->sdisr = SDISR_WR_MASK & (((c)->sdisr & ~LSMASK32((o)*8+7,(o)*8)) | ((b)<< (o)*8)))
-#define SDISR_CLEAR_FLAG_BYTE(c,o,b) ((c)->sdisr = SDISR_WR_MASK & (((c)->sdisr & ~LSMASK32((o)*8+7,(o)*8)) & ((b)<< (o)*8)))
-#define SDISR_GET_TDIS(c) ((c)->sdisr & 0x00020000)
-#define SDISR_SET_TDIS(c) ((c)->sdisr |= 0x00020000)
-#define SDISR_GET_RDIS(c) ((c)->sdisr & 0x00010000)
-#define SDISR_SET_RDIS(c) ((c)->sdisr |= 0x00010000)
- unsigned_4 sfcr;
-#define SFCR_WR_MASK 0x001f0000U
-#define SFCR_SET_BYTE(c,o,b) ((c)->sfcr = SFCR_WR_MASK & (((c)->sfcr & ~LSMASK32((o)*8+7,(o)*8)) | ((b)<< (o)*8)))
-#define SFCR_GET_TFRST(c) ((c)->sfcr & 0x00040000)
-#define SFCR_GET_RFRST(c) ((c)->sfcr & 0x00020000)
-#define SFCR_GET_FRSTE(c) ((c)->sfcr & 0x00010000)
- unsigned_4 sbgr;
-#define SBGR_WR_MASK 0x03ff0000U
-#define SBGR_SET_BYTE(c,o,b) ((c)->sbgr = SBGR_WR_MASK & (((c)->sbgr & ~LSMASK32((o)*8+7,(o)*8)) | ((b)<< (o)*8)))
-
- /* Periodic I/O polling */
- struct hw_event* poll_event;
-};
-
-
-
-/* Finish off the partially created hw device. Attach our local
- callbacks. Wire up our port names etc */
-
-static hw_io_read_buffer_method tx3904sio_io_read_buffer;
-static hw_io_write_buffer_method tx3904sio_io_write_buffer;
-static hw_port_event_method tx3904sio_port_event;
-
-
-static void
-attach_tx3904sio_regs (struct hw *me,
- struct tx3904sio *controller)
-{
- unsigned_word attach_address;
- int attach_space;
- unsigned attach_size;
- reg_property_spec reg;
-
- if (hw_find_property (me, "reg") == NULL)
- hw_abort (me, "Missing \"reg\" property");
-
- if (!hw_find_reg_array_property (me, "reg", 0, &reg))
- hw_abort (me, "\"reg\" property must contain one addr/size entry");
-
- hw_unit_address_to_attach_address (hw_parent (me),
- &reg.address,
- &attach_space,
- &attach_address,
- me);
- hw_unit_size_to_attach_size (hw_parent (me),
- &reg.size,
- &attach_size, me);
-
- hw_attach_address (hw_parent (me), 0,
- attach_space, attach_address, attach_size,
- me);
-
- if(hw_find_property(me, "backend") != NULL)
- {
- const char* value = hw_find_string_property(me, "backend");
- if(! strcmp(value, "tcp"))
- controller->backend = sio_tcp;
- else if(! strcmp(value, "stdio"))
- controller->backend = sio_stdio;
- else
- hw_abort(me, "illegal value for backend parameter `%s': use tcp or stdio", value);
- }
-
- controller->base_address = attach_address;
-}
-
-
-static void
-tx3904sio_finish (struct hw *me)
-{
- struct tx3904sio *controller;
-
- controller = HW_ZALLOC (me, struct tx3904sio);
- set_hw_data (me, controller);
- set_hw_io_read_buffer (me, tx3904sio_io_read_buffer);
- set_hw_io_write_buffer (me, tx3904sio_io_write_buffer);
- set_hw_ports (me, tx3904sio_ports);
- set_hw_port_event (me, tx3904sio_port_event);
-
- /* Preset defaults */
- controller->backend = sio_stdio;
-
- /* Attach ourself to our parent bus */
- attach_tx3904sio_regs (me, controller);
-
- /* Initialize to reset state */
- tx3904sio_fifo_reset(me, & controller->rx_fifo);
- tx3904sio_fifo_reset(me, & controller->tx_fifo);
- controller->slsr = controller->sdicr
- = controller->sdisr = controller->sfcr
- = controller->sbgr = 0;
- controller->slcr = 0x40000000; /* set TWUB */
- controller->sbgr = 0x03ff0000; /* set BCLK=3, BRD=FF */
- controller->poll_event = NULL;
-}
-
-
-
-/* An event arrives on an interrupt port */
-
-static void
-tx3904sio_port_event (struct hw *me,
- int my_port,
- struct hw *source,
- int source_port,
- int level)
-{
- struct tx3904sio *controller = hw_data (me);
-
- switch (my_port)
- {
- case RESET_PORT:
- {
- HW_TRACE ((me, "reset"));
-
- tx3904sio_fifo_reset(me, & controller->rx_fifo);
- tx3904sio_fifo_reset(me, & controller->tx_fifo);
- controller->slsr = controller->sdicr
- = controller->sdisr = controller->sfcr
- = controller->sbgr = 0;
- controller->slcr = 0x40000000; /* set TWUB */
- controller->sbgr = 0x03ff0000; /* set BCLK=3, BRD=FF */
- /* Don't interfere with I/O poller. */
- break;
- }
-
- default:
- hw_abort (me, "Event on unknown port %d", my_port);
- break;
- }
-}
-
-
-/* generic read/write */
-
-static unsigned
-tx3904sio_io_read_buffer (struct hw *me,
- void *dest,
- int space,
- unsigned_word base,
- unsigned nr_bytes)
-{
- struct tx3904sio *controller = hw_data (me);
- unsigned byte;
-
- HW_TRACE ((me, "read 0x%08lx %d", (long) base, (int) nr_bytes));
-
- /* tickle fifos */
- tx3904sio_tickle(me);
-
- for (byte = 0; byte < nr_bytes; byte++)
- {
- address_word address = base + byte;
- int reg_number = (address - controller->base_address) / 4;
- int reg_offset = (address - controller->base_address) % 4;
- unsigned_4 register_value; /* in target byte order */
-
- /* fill in entire register_value word */
- switch (reg_number)
- {
- case SLCR_REG: register_value = controller->slcr; break;
- case SLSR_REG: register_value = controller->slsr; break;
- case SDICR_REG: register_value = controller->sdicr; break;
- case SDISR_REG: register_value = controller->sdisr; break;
- case SFCR_REG: register_value = controller->sfcr; break;
- case SBGR_REG: register_value = controller->sbgr; break;
- case TFIFO_REG: register_value = 0; break;
- case SFIFO_REG:
- /* consume rx fifo for MS byte */
- if(reg_offset == 0 && tx3904sio_fifo_nonempty(me, & controller->rx_fifo))
- register_value = (tx3904sio_fifo_pop(me, & controller->rx_fifo) << 24);
- else
- register_value = 0;
- break;
- default: register_value = 0;
- }
-
- /* write requested byte out */
- register_value = H2T_4(register_value);
- /* HW_TRACE ((me, "byte %d %02x", reg_offset, ((char*)& register_value)[reg_offset])); */
- memcpy ((char*) dest + byte, ((char*)& register_value)+reg_offset, 1);
- }
-
- return nr_bytes;
-}
-
-
-
-static unsigned
-tx3904sio_io_write_buffer (struct hw *me,
- const void *source,
- int space,
- unsigned_word base,
- unsigned nr_bytes)
-{
- struct tx3904sio *controller = hw_data (me);
- unsigned byte;
-
- HW_TRACE ((me, "write 0x%08lx %d", (long) base, (int) nr_bytes));
- for (byte = 0; byte < nr_bytes; byte++)
- {
- address_word address = base + byte;
- unsigned_1 write_byte = ((const unsigned char*) source)[byte];
- int reg_number = (address - controller->base_address) / 4;
- int reg_offset = 3 - (address - controller->base_address) % 4;
-
- /* HW_TRACE ((me, "byte %d %02x", reg_offset, write_byte)); */
-
- /* fill in entire register_value word */
- switch (reg_number)
- {
- case SLCR_REG:
- SLCR_SET_BYTE(controller, reg_offset, write_byte);
- break;
-
- case SLSR_REG: /* unwriteable */ break;
-
- case SDICR_REG:
- {
- unsigned_4 last_int, next_int;
-
- /* deassert interrupt upon clear */
- last_int = controller->sdisr & controller->sdicr;
- /* HW_TRACE ((me, "sdicr - sdisr %08x sdicr %08x",
- controller->sdisr, controller->sdicr)); */
- SDICR_SET_BYTE(controller, reg_offset, write_byte);
- /* HW_TRACE ((me, "sdicr + sdisr %08x sdicr %08x",
- controller->sdisr, controller->sdicr)); */
- next_int = controller->sdisr & controller->sdicr;
-
- if(SDICR_GET_SDMAE(controller))
- hw_abort(me, "Cannot support DMA-driven sio.");
-
- if(~last_int & next_int) /* any bits set? */
- hw_port_event(me, INT_PORT, 1);
- if(last_int & ~next_int) /* any bits cleared? */
- hw_port_event(me, INT_PORT, 0);
- }
- break;
-
- case SDISR_REG:
- {
- unsigned_4 last_int, next_int;
-
- /* deassert interrupt upon clear */
- last_int = controller->sdisr & controller->sdicr;
- /* HW_TRACE ((me, "sdisr - sdisr %08x sdicr %08x",
- controller->sdisr, controller->sdicr)); */
- SDISR_CLEAR_FLAG_BYTE(controller, reg_offset, write_byte);
- /* HW_TRACE ((me, "sdisr + sdisr %08x sdicr %08x",
- controller->sdisr, controller->sdicr)); */
- next_int = controller->sdisr & controller->sdicr;
-
- if(~last_int & next_int) /* any bits set? */
- hw_port_event(me, INT_PORT, 1);
- if(last_int & ~next_int) /* any bits cleared? */
- hw_port_event(me, INT_PORT, 0);
- }
- break;
-
- case SFCR_REG:
- SFCR_SET_BYTE(controller, reg_offset, write_byte);
- if(SFCR_GET_FRSTE(controller))
- {
- if(SFCR_GET_TFRST(controller)) tx3904sio_fifo_reset(me, & controller->tx_fifo);
- if(SFCR_GET_RFRST(controller)) tx3904sio_fifo_reset(me, & controller->rx_fifo);
- }
- break;
-
- case SBGR_REG:
- SBGR_SET_BYTE(controller, reg_offset, write_byte);
- break;
-
- case SFIFO_REG: /* unwriteable */ break;
-
- case TFIFO_REG:
- if(reg_offset == 3) /* first byte */
- tx3904sio_fifo_push(me, & controller->tx_fifo, write_byte);
- break;
-
- default:
- HW_TRACE ((me, "write to illegal register %d", reg_number));
- }
- } /* loop over bytes */
-
- /* tickle fifos */
- tx3904sio_tickle(me);
-
- return nr_bytes;
-}
-
-
-
-
-
-
-/* Send enqueued characters from tx_fifo and trigger TX interrupt.
-Receive characters into rx_fifo and trigger RX interrupt. */
-void
-tx3904sio_tickle(struct hw *me)
-{
- struct tx3904sio* controller = hw_data(me);
- int c;
- char cc;
- unsigned_4 last_int, next_int;
-
- /* HW_TRACE ((me, "tickle backend: %02x", controller->backend)); */
- switch(controller->backend)
- {
- case sio_tcp:
-
- while(tx3904sio_fifo_nonempty(me, & controller->tx_fifo))
- {
- cc = tx3904sio_fifo_pop(me, & controller->tx_fifo);
- dv_sockser_write(hw_system(me), cc);
- HW_TRACE ((me, "tcp output: %02x", cc));
- }
-
- c = dv_sockser_read(hw_system(me));
- while(c != -1)
- {
- cc = (char) c;
- HW_TRACE ((me, "tcp input: %02x", cc));
- tx3904sio_fifo_push(me, & controller->rx_fifo, cc);
- c = dv_sockser_read(hw_system(me));
- }
- break;
-
- case sio_stdio:
-
- while(tx3904sio_fifo_nonempty(me, & controller->tx_fifo))
- {
- cc = tx3904sio_fifo_pop(me, & controller->tx_fifo);
- sim_io_write_stdout(hw_system(me), & cc, 1);
- sim_io_flush_stdout(hw_system(me));
- HW_TRACE ((me, "stdio output: %02x", cc));
- }
-
- c = sim_io_poll_read(hw_system(me), 0 /* stdin */, & cc, 1);
- while(c == 1)
- {
- HW_TRACE ((me, "stdio input: %02x", cc));
- tx3904sio_fifo_push(me, & controller->rx_fifo, cc);
- c = sim_io_poll_read(hw_system(me), 0 /* stdin */, & cc, 1);
- }
-
- break;
-
- default:
- hw_abort(me, "Illegal backend mode: %d", controller->backend);
- }
-
- /* Update RDIS / TDIS flags */
- last_int = controller->sdisr & controller->sdicr;
- /* HW_TRACE ((me, "tickle - sdisr %08x sdicr %08x", controller->sdisr, controller->sdicr)); */
- if(tx3904sio_fifo_nonempty(me, & controller->rx_fifo))
- SDISR_SET_RDIS(controller);
- if(! tx3904sio_fifo_nonempty(me, & controller->tx_fifo))
- SDISR_SET_TDIS(controller);
- next_int = controller->sdisr & controller->sdicr;
- /* HW_TRACE ((me, "tickle + sdisr %08x sdicr %08x", controller->sdisr, controller->sdicr)); */
-
- if(~last_int & next_int) /* any bits set? */
- hw_port_event(me, INT_PORT, 1);
- if(last_int & ~next_int) /* any bits cleared? */
- hw_port_event(me, INT_PORT, 0);
-
- /* Add periodic polling for this port, if it's not already going. */
- if(controller->poll_event == NULL)
- {
- controller->poll_event = hw_event_queue_schedule (me, 1000,
- tx3904sio_poll, NULL);
-
- }
-}
-
-
-
-
-int
-tx3904sio_fifo_nonempty(struct hw* me, struct tx3904sio_fifo* fifo)
-{
- /* HW_TRACE ((me, "fifo used: %d", fifo->used)); */
- return(fifo->used > 0);
-}
-
-
-char
-tx3904sio_fifo_pop(struct hw* me, struct tx3904sio_fifo* fifo)
-{
- char it;
- ASSERT(fifo->used > 0);
- ASSERT(fifo->buffer != NULL);
- it = fifo->buffer[0];
- memcpy(& fifo->buffer[0], & fifo->buffer[1], fifo->used - 1);
- fifo->used --;
- /* HW_TRACE ((me, "pop fifo -> %02x", it)); */
- return it;
-}
-
-
-void
-tx3904sio_fifo_push(struct hw* me, struct tx3904sio_fifo* fifo, char it)
-{
- /* HW_TRACE ((me, "push %02x -> fifo", it)); */
- if(fifo->size == fifo->used) /* full */
- {
- int next_size = fifo->size * 2 + 16;
- char* next_buf = zalloc(next_size);
- memcpy(next_buf, fifo->buffer, fifo->used);
-
- if(fifo->buffer != NULL) zfree(fifo->buffer);
- fifo->buffer = next_buf;
- fifo->size = next_size;
- }
-
- fifo->buffer[fifo->used] = it;
- fifo->used ++;
-}
-
-
-void
-tx3904sio_fifo_reset(struct hw* me, struct tx3904sio_fifo* fifo)
-{
- /* HW_TRACE ((me, "reset fifo")); */
- fifo->used = 0;
- fifo->size = 0;
- zfree(fifo->buffer);
- fifo->buffer = 0;
-}
-
-
-void
-tx3904sio_poll(struct hw* me, void* ignored)
-{
- struct tx3904sio* controller = hw_data (me);
- tx3904sio_tickle (me);
- hw_event_queue_deschedule (me, controller->poll_event);
- controller->poll_event = hw_event_queue_schedule (me, 1000,
- tx3904sio_poll, NULL);
-}
-
-
-
-const struct hw_descriptor dv_tx3904sio_descriptor[] = {
- { "tx3904sio", tx3904sio_finish, },
- { NULL },
-};
diff --git a/sim/mips/dv-tx3904tmr.c b/sim/mips/dv-tx3904tmr.c
deleted file mode 100644
index 89e0625..0000000
--- a/sim/mips/dv-tx3904tmr.c
+++ /dev/null
@@ -1,699 +0,0 @@
-/* This file is part of the program GDB, the GNU debugger.
-
- Copyright (C) 1998 Free Software Foundation, Inc.
- Contributed by Cygnus Solutions.
-
- This program 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 2 of the License, or
- (at your option) any later version.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- */
-
-
-#include "sim-main.h"
-#include "hw-main.h"
-
-
-/* DEVICE
-
-
- tx3904tmr - tx3904 timer
-
-
- DESCRIPTION
-
-
- Implements one tx3904 timer/counter described in the tx3904
- user guide. Three instances are required for TMR0, TMR1, and
- TMR3 within the tx3904, at different base addresses.
-
- Both internal and system clocks are synthesized as divided versions
- of the simulator clock.
-
- There is no support for:
- - edge sensitivity of external clock
- - different mode restrictions for TMR0..2
- - level interrupts (interrupts are treated as events that occur at edges)
-
-
-
- PROPERTIES
-
-
- reg <base> <length>
-
- Base of TMR control register bank. <length> must equal 0x100.
- Register offsets: 0: TCR: timer control register
- 4: TISR: timer interrupt status register
- 8: CPRA: compare register A
- 12: CPRB: compare register B
- 16: ITMR: interval timer mode register
- 32: CCDR: divider register
- 48: PMGR: pulse generator mode register
- 64: WTMR: watchdog timer mode register
- 240: TRR: timer read register
-
-
- clock <ticks>
-
- Rate of timer clock signal. This number is the number of simulator
- ticks per clock signal tick. Default 1.
-
-
- ext <ticks>
-
- Rate of "external input clock signal", the other clock input of the
- timer. It uses the same scale as above. Default 100.
-
-
-
- PORTS
-
-
- int (output)
-
- Interrupt port. An event is generated when a timer interrupt
- occurs.
-
-
- ff (output)
-
- Flip-flop output, corresponds to the TMFFOUT port. An event is
- generated when flip-flop changes value. The integer associated
- with the event is 1/0 according to flip-flop value.
-
-
- reset (input)
-
- Reset port.
-
- */
-
-
-
-/* static functions */
-
-static void deliver_tx3904tmr_tick (struct hw *me, void *data);
-
-
-/* register numbers; each is one word long */
-enum
-{
- TCR_REG = 0,
- TISR_REG = 1,
- CPRA_REG = 2,
- CPRB_REG = 3,
- ITMR_REG = 4,
- CCDR_REG = 8,
- PMGR_REG = 12,
- WTMR_REG = 16,
- TRR_REG = 60
-};
-
-
-
-/* port ID's */
-
-enum
- {
- RESET_PORT,
- INT_PORT,
- FF_PORT
-};
-
-
-static const struct hw_port_descriptor tx3904tmr_ports[] =
-{
- { "int", INT_PORT, 0, output_port, },
- { "ff", FF_PORT, 0, output_port, },
- { "reset", RESET_PORT, 0, input_port, },
- { NULL, },
-};
-
-
-
-/* The timer/counter register internal state. Note that we store
- state using the control register images, in host endian order. */
-
-struct tx3904tmr {
- address_word base_address; /* control register base */
- unsigned_4 clock_ticks, ext_ticks; /* clock frequencies */
- signed_8 last_ticks; /* time at last deliver_*_tick call */
- signed_8 roundoff_ticks; /* sim ticks unprocessed during last tick call */
- int ff; /* pulse generator flip-flop value: 1/0 */
- struct hw_event* event; /* last scheduled event */
-
- unsigned_4 tcr;
-#define GET_TCR_TCE(c) (((c)->tcr & 0x80) >> 7)
-#define GET_TCR_CCDE(c) (((c)->tcr & 0x40) >> 6)
-#define GET_TCR_CRE(c) (((c)->tcr & 0x20) >> 5)
-#define GET_TCR_CCS(c) (((c)->tcr & 0x04) >> 2)
-#define GET_TCR_TMODE(c) (((c)->tcr & 0x03) >> 0)
- unsigned_4 tisr;
-#define SET_TISR_TWIS(c) ((c)->tisr |= 0x08)
-#define SET_TISR_TPIBS(c) ((c)->tisr |= 0x04)
-#define SET_TISR_TPIAS(c) ((c)->tisr |= 0x02)
-#define SET_TISR_TIIS(c) ((c)->tisr |= 0x01)
- unsigned_4 cpra;
- unsigned_4 cprb;
- unsigned_4 itmr;
-#define GET_ITMR_TIIE(c) (((c)->itmr & 0x8000) >> 15)
-#define SET_ITMR_TIIE(c,v) BLIT32((c)->itmr, 15, (v) ? 1 : 0)
-#define GET_ITMR_TZCE(c) (((c)->itmr & 0x0001) >> 0)
-#define SET_ITMR_TZCE(c,v) BLIT32((c)->itmr, 0, (v) ? 1 : 0)
- unsigned_4 ccdr;
-#define GET_CCDR_CDR(c) (((c)->ccdr & 0x07) >> 0)
- unsigned_4 pmgr;
-#define GET_PMGR_TPIBE(c) (((c)->pmgr & 0x8000) >> 15)
-#define SET_PMGR_TPIBE(c,v) BLIT32((c)->pmgr, 15, (v) ? 1 : 0)
-#define GET_PMGR_TPIAE(c) (((c)->pmgr & 0x4000) >> 14)
-#define SET_PMGR_TPIAE(c,v) BLIT32((c)->pmgr, 14, (v) ? 1 : 0)
-#define GET_PMGR_FFI(c) (((c)->pmgr & 0x0001) >> 0)
-#define SET_PMGR_FFI(c,v) BLIT32((c)->pmgr, 0, (v) ? 1 : 0)
- unsigned_4 wtmr;
-#define GET_WTMR_TWIE(c) (((c)->wtmr & 0x8000) >> 15)
-#define SET_WTMR_TWIE(c,v) BLIT32((c)->wtmr, 15, (v) ? 1 : 0)
-#define GET_WTMR_WDIS(c) (((c)->wtmr & 0x0080) >> 7)
-#define SET_WTMR_WDIS(c,v) BLIT32((c)->wtmr, 7, (v) ? 1 : 0)
-#define GET_WTMR_TWC(c) (((c)->wtmr & 0x0001) >> 0)
-#define SET_WTMR_TWC(c,v) BLIT32((c)->wtmr, 0, (v) ? 1 : 0)
- unsigned_4 trr;
-};
-
-
-
-/* Finish off the partially created hw device. Attach our local
- callbacks. Wire up our port names etc */
-
-static hw_io_read_buffer_method tx3904tmr_io_read_buffer;
-static hw_io_write_buffer_method tx3904tmr_io_write_buffer;
-static hw_port_event_method tx3904tmr_port_event;
-
-static void
-attach_tx3904tmr_regs (struct hw *me,
- struct tx3904tmr *controller)
-{
- unsigned_word attach_address;
- int attach_space;
- unsigned attach_size;
- reg_property_spec reg;
-
- if (hw_find_property (me, "reg") == NULL)
- hw_abort (me, "Missing \"reg\" property");
-
- if (!hw_find_reg_array_property (me, "reg", 0, &reg))
- hw_abort (me, "\"reg\" property must contain one addr/size entry");
-
- hw_unit_address_to_attach_address (hw_parent (me),
- &reg.address,
- &attach_space,
- &attach_address,
- me);
- hw_unit_size_to_attach_size (hw_parent (me),
- &reg.size,
- &attach_size, me);
-
- hw_attach_address (hw_parent (me), 0,
- attach_space, attach_address, attach_size,
- me);
-
- if(hw_find_property(me, "clock") != NULL)
- controller->clock_ticks = (unsigned_4) hw_find_integer_property(me, "clock");
-
- if(hw_find_property(me, "ext") != NULL)
- controller->ext_ticks = (unsigned_4) hw_find_integer_property(me, "ext");
-
- controller->base_address = attach_address;
-}
-
-
-static void
-tx3904tmr_finish (struct hw *me)
-{
- struct tx3904tmr *controller;
-
- controller = HW_ZALLOC (me, struct tx3904tmr);
- set_hw_data (me, controller);
- set_hw_io_read_buffer (me, tx3904tmr_io_read_buffer);
- set_hw_io_write_buffer (me, tx3904tmr_io_write_buffer);
- set_hw_ports (me, tx3904tmr_ports);
- set_hw_port_event (me, tx3904tmr_port_event);
-
- /* Preset clock dividers */
- controller->clock_ticks = 1;
- controller->ext_ticks = 100;
-
- /* Attach ourself to our parent bus */
- attach_tx3904tmr_regs (me, controller);
-
- /* Initialize to reset state */
- controller->tcr =
- controller->itmr =
- controller->ccdr =
- controller->pmgr =
- controller->wtmr =
- controller->tisr =
- controller->trr = 0;
- controller->cpra = controller->cprb = 0x00FFFFFF;
- controller->ff = 0;
- controller->last_ticks = controller->roundoff_ticks = 0;
- controller->event = NULL;
-}
-
-
-
-/* An event arrives on an interrupt port */
-
-static void
-tx3904tmr_port_event (struct hw *me,
- int my_port,
- struct hw *source,
- int source_port,
- int level)
-{
- struct tx3904tmr *controller = hw_data (me);
-
- switch (my_port)
- {
- case RESET_PORT:
- {
- HW_TRACE ((me, "reset"));
-
- /* preset flip-flop to FFI value */
- controller->ff = GET_PMGR_FFI(controller);
-
- controller->tcr =
- controller->itmr =
- controller->ccdr =
- controller->pmgr =
- controller->wtmr =
- controller->tisr =
- controller->trr = 0;
- controller->cpra = controller->cprb = 0x00FFFFFF;
- controller->last_ticks = controller->roundoff_ticks = 0;
- if(controller->event != NULL)
- hw_event_queue_deschedule(me, controller->event);
- controller->event = NULL;
- break;
- }
-
- default:
- hw_abort (me, "Event on unknown port %d", my_port);
- break;
- }
-}
-
-
-/* generic read/write */
-
-static unsigned
-tx3904tmr_io_read_buffer (struct hw *me,
- void *dest,
- int space,
- unsigned_word base,
- unsigned nr_bytes)
-{
- struct tx3904tmr *controller = hw_data (me);
- unsigned byte;
-
- HW_TRACE ((me, "read 0x%08lx %d", (long) base, (int) nr_bytes));
- for (byte = 0; byte < nr_bytes; byte++)
- {
- address_word address = base + byte;
- int reg_number = (address - controller->base_address) / 4;
- int reg_offset = 3 - (address - controller->base_address) % 4;
- unsigned_4 register_value; /* in target byte order */
-
- /* fill in entire register_value word */
- switch (reg_number)
- {
- case TCR_REG: register_value = controller->tcr; break;
- case TISR_REG: register_value = controller->tisr; break;
- case CPRA_REG: register_value = controller->cpra; break;
- case CPRB_REG: register_value = controller->cprb; break;
- case ITMR_REG: register_value = controller->itmr; break;
- case CCDR_REG: register_value = controller->ccdr; break;
- case PMGR_REG: register_value = controller->pmgr; break;
- case WTMR_REG: register_value = controller->wtmr; break;
- case TRR_REG: register_value = controller->trr; break;
- default: register_value = 0;
- }
-
- /* write requested byte out */
- memcpy ((char*) dest + byte, ((char*)& register_value)+reg_offset, 1);
- }
-
- return nr_bytes;
-}
-
-
-
-static unsigned
-tx3904tmr_io_write_buffer (struct hw *me,
- const void *source,
- int space,
- unsigned_word base,
- unsigned nr_bytes)
-{
- struct tx3904tmr *controller = hw_data (me);
- unsigned byte;
-
- HW_TRACE ((me, "write 0x%08lx %d", (long) base, (int) nr_bytes));
- for (byte = 0; byte < nr_bytes; byte++)
- {
- address_word address = base + byte;
- unsigned_1 write_byte = ((const char*) source)[byte];
- int reg_number = (address - controller->base_address) / 4;
- int reg_offset = 3 - (address - controller->base_address) % 4;
-
- /* fill in entire register_value word */
- switch (reg_number)
- {
- case TCR_REG:
- if(reg_offset == 0) /* first byte */
- {
- /* update register, but mask out NOP bits */
- controller->tcr = (unsigned_4) (write_byte & 0xef);
-
- /* Reset counter value if timer suspended and CRE is set. */
- if(GET_TCR_TCE(controller) == 0 &&
- GET_TCR_CRE(controller) == 1)
- controller->trr = 0;
- }
- /* HW_TRACE ((me, "tcr: %08lx", (long) controller->tcr)); */
- break;
-
- case ITMR_REG:
- if(reg_offset == 1) /* second byte */
- {
- SET_ITMR_TIIE(controller, write_byte & 0x80);
- }
- else if(reg_offset == 0) /* first byte */
- {
- SET_ITMR_TZCE(controller, write_byte & 0x01);
- }
- /* HW_TRACE ((me, "itmr: %08lx", (long) controller->itmr)); */
- break;
-
- case CCDR_REG:
- if(reg_offset == 0) /* first byte */
- {
- controller->ccdr = write_byte & 0x07;
- }
- /* HW_TRACE ((me, "ccdr: %08lx", (long) controller->ccdr)); */
- break;
-
- case PMGR_REG:
- if(reg_offset == 1) /* second byte */
- {
- SET_PMGR_TPIBE(controller, write_byte & 0x80);
- SET_PMGR_TPIAE(controller, write_byte & 0x40);
- }
- else if(reg_offset == 0) /* first byte */
- {
- SET_PMGR_FFI(controller, write_byte & 0x01);
- }
- /* HW_TRACE ((me, "pmgr: %08lx", (long) controller->pmgr)); */
- break;
-
- case WTMR_REG:
- if(reg_offset == 1) /* second byte */
- {
- SET_WTMR_TWIE(controller, write_byte & 0x80);
- }
- else if(reg_offset == 0) /* first byte */
- {
- SET_WTMR_WDIS(controller, write_byte & 0x80);
- SET_WTMR_TWC(controller, write_byte & 0x01);
- }
- /* HW_TRACE ((me, "wtmr: %08lx", (long) controller->wtmr)); */
- break;
-
- case TISR_REG:
- if(reg_offset == 0) /* first byte */
- {
- /* All bits must be zero in given byte, according to
- spec. */
-
- /* Send an "interrupt off" event on the interrupt port */
- if(controller->tisr != 0) /* any interrupts active? */
- {
- hw_port_event(me, INT_PORT, 0);
- }
-
- /* clear interrupt status register */
- controller->tisr = 0;
- }
- /* HW_TRACE ((me, "tisr: %08lx", (long) controller->tisr)); */
- break;
-
- case CPRA_REG:
- if(reg_offset < 3) /* first, second, or third byte */
- {
- MBLIT32(controller->cpra, (reg_offset*8)+7, (reg_offset*8), write_byte);
- }
- /* HW_TRACE ((me, "cpra: %08lx", (long) controller->cpra)); */
- break;
-
- case CPRB_REG:
- if(reg_offset < 3) /* first, second, or third byte */
- {
- MBLIT32(controller->cprb, (reg_offset*8)+7, (reg_offset*8), write_byte);
- }
- /* HW_TRACE ((me, "cprb: %08lx", (long) controller->cprb)); */
- break;
-
- default:
- HW_TRACE ((me, "write to illegal register %d", reg_number));
- }
- } /* loop over bytes */
-
- /* Schedule a timer event in near future, so we can increment or
- stop the counter, to respond to register updates. */
- hw_event_queue_schedule(me, 1, deliver_tx3904tmr_tick, NULL);
-
- return nr_bytes;
-}
-
-
-
-/* Deliver a clock tick to the counter. */
-static void
-deliver_tx3904tmr_tick (struct hw *me,
- void *data)
-{
- struct tx3904tmr *controller = hw_data (me);
- SIM_DESC sd = hw_system (me);
- signed_8 this_ticks = sim_events_time(sd);
-
- signed_8 warp;
- signed_8 divisor;
- signed_8 quotient, remainder;
-
- /* compute simulation ticks between last tick and this tick */
- if(controller->last_ticks != 0)
- warp = this_ticks - controller->last_ticks + controller->roundoff_ticks;
- else
- {
- controller->last_ticks = this_ticks; /* initialize */
- warp = controller->roundoff_ticks;
- }
-
- if(controller->event != NULL)
- hw_event_queue_deschedule(me, controller->event);
- controller->event = NULL;
-
- /* Check whether the timer ticking is enabled at this moment. This
- largely a function of the TCE bit, but is also slightly
- mode-dependent. */
- switch((int) GET_TCR_TMODE(controller))
- {
- case 0: /* interval */
- /* do not advance counter if TCE = 0 or if holding at count = CPRA */
- if(GET_TCR_TCE(controller) == 0 ||
- controller->trr == controller->cpra)
- return;
- break;
-
- case 1: /* pulse generator */
- /* do not advance counter if TCE = 0 */
- if(GET_TCR_TCE(controller) == 0)
- return;
- break;
-
- case 2: /* watchdog */
- /* do not advance counter if TCE = 0 and WDIS = 1 */
- if(GET_TCR_TCE(controller) == 0 &&
- GET_WTMR_WDIS(controller) == 1)
- return;
- break;
-
- case 3: /* disabled */
- /* regardless of TCE, do not advance counter */
- return;
- }
-
- /* In any of the above cases that return, a subsequent register
- write will be needed to restart the timer. A tick event is
- scheduled by any register write, so it is more efficient not to
- reschedule dummy events here. */
-
-
- /* find appropriate divisor etc. */
- if(GET_TCR_CCS(controller) == 0) /* internal system clock */
- {
- /* apply internal clock divider */
- if(GET_TCR_CCDE(controller)) /* divisor circuit enabled? */
- divisor = controller->clock_ticks * (1 << (1 + GET_CCDR_CDR(controller)));
- else
- divisor = controller->clock_ticks;
- }
- else
- {
- divisor = controller->ext_ticks;
- }
-
- /* how many times to increase counter? */
- quotient = warp / divisor;
- remainder = warp % divisor;
-
- /* NOTE: If the event rescheduling code works properly, the quotient
- should never be larger than 1. That is, we should receive events
- here at least as frequently as the simulated counter is supposed
- to decrement. So the remainder (-> roundoff_ticks) will slowly
- accumulate, with the quotient == 0. Once in a while, quotient
- will equal 1. */
-
- controller->roundoff_ticks = remainder;
- controller->last_ticks = this_ticks;
- while(quotient > 0) /* Is it time to increment counter? */
- {
- /* next 24-bit counter value */
- unsigned_4 next_trr = (controller->trr + 1) % (1 << 24);
- quotient --;
-
- switch((int) GET_TCR_TMODE(controller))
- {
- case 0: /* interval timer mode */
- {
- /* Current or next counter value matches CPRA value? The
- first case covers counter holding at maximum before
- reset. The second case covers normal counting
- behavior. */
- if(controller->trr == controller->cpra ||
- next_trr == controller->cpra)
- {
- /* likely hold CPRA value */
- if(controller->trr == controller->cpra)
- next_trr = controller->cpra;
-
- SET_TISR_TIIS(controller);
-
- /* Signal an interrupt if it is enabled with TIIE,
- and if we just arrived at CPRA. Don't repeatedly
- interrupt if holding due to TZCE=0 */
- if(GET_ITMR_TIIE(controller) &&
- next_trr != controller->trr)
- {
- hw_port_event(me, INT_PORT, 1);
- }
-
- /* Reset counter? */
- if(GET_ITMR_TZCE(controller))
- {
- next_trr = 0;
- }
- }
- }
- break;
-
- case 1: /* pulse generator mode */
- {
- /* first trip point */
- if(next_trr == controller->cpra)
- {
- /* flip flip-flop & report */
- controller->ff ^= 1;
- hw_port_event(me, FF_PORT, controller->ff);
- SET_TISR_TPIAS(controller);
-
- /* signal interrupt */
- if(GET_PMGR_TPIAE(controller))
- {
- hw_port_event(me, INT_PORT, 1);
- }
-
- }
- /* second trip point */
- else if(next_trr == controller->cprb)
- {
- /* flip flip-flop & report */
- controller->ff ^= 1;
- hw_port_event(me, FF_PORT, controller->ff);
- SET_TISR_TPIBS(controller);
-
- /* signal interrupt */
- if(GET_PMGR_TPIBE(controller))
- {
- hw_port_event(me, INT_PORT, 1);
- }
-
- /* clear counter */
- next_trr = 0;
- }
- }
- break;
-
- case 2: /* watchdog timer mode */
- {
- /* watchdog timer expiry */
- if(next_trr == controller->cpra)
- {
- SET_TISR_TWIS(controller);
-
- /* signal interrupt */
- if(GET_WTMR_TWIE(controller))
- {
- hw_port_event(me, INT_PORT, 1);
- }
-
- /* clear counter */
- next_trr = 0;
- }
- }
- break;
-
- case 3: /* disabled */
- default:
- break;
- }
-
- /* update counter and report */
- controller->trr = next_trr;
- /* HW_TRACE ((me, "counter trr %ld tisr %lx",
- (long) controller->trr, (long) controller->tisr)); */
- } /* end quotient loop */
-
- /* Reschedule a timer event in near future, so we can increment the
- counter again. Set the event about 75% of divisor time away, so
- we will experience roughly 1.3 events per counter increment. */
- controller->event = hw_event_queue_schedule(me, divisor*3/4, deliver_tx3904tmr_tick, NULL);
-}
-
-
-
-
-const struct hw_descriptor dv_tx3904tmr_descriptor[] = {
- { "tx3904tmr", tx3904tmr_finish, },
- { NULL },
-};
diff --git a/sim/mips/interp.c b/sim/mips/interp.c
deleted file mode 100644
index 043d76d..0000000
--- a/sim/mips/interp.c
+++ /dev/null
@@ -1,2404 +0,0 @@
-/*> interp.c <*/
-/* Simulator for the MIPS architecture.
-
- This file is part of the MIPS sim
-
- THIS SOFTWARE IS NOT COPYRIGHTED
-
- Cygnus offers the following for use in the public domain. Cygnus
- makes no warranty with regard to the software or it's performance
- and the user accepts the software "AS IS" with all faults.
-
- CYGNUS DISCLAIMS ANY WARRANTIES, EXPRESS OR IMPLIED, WITH REGARD TO
- THIS SOFTWARE INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-
-NOTEs:
-
-The IDT monitor (found on the VR4300 board), seems to lie about
-register contents. It seems to treat the registers as sign-extended
-32-bit values. This cause *REAL* problems when single-stepping 64-bit
-code on the hardware.
-
-*/
-
-/* The TRACE manifests enable the provision of extra features. If they
- are not defined then a simpler (quicker) simulator is constructed
- without the required run-time checks, etc. */
-#if 1 /* 0 to allow user build selection, 1 to force inclusion */
-#define TRACE (1)
-#endif
-
-#include "bfd.h"
-#include "sim-main.h"
-#include "sim-utils.h"
-#include "sim-options.h"
-#include "sim-assert.h"
-#include "sim-hw.h"
-
-#include "itable.h"
-
-
-#include "config.h"
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <ansidecl.h>
-#include <ctype.h>
-#include <limits.h>
-#include <math.h>
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
-#include "getopt.h"
-#include "libiberty.h"
-#include "bfd.h"
-#include "gdb/callback.h" /* GDB simulator callback interface */
-#include "gdb/remote-sim.h" /* GDB simulator interface */
-
-#include "sysdep.h"
-
-#ifndef PARAMS
-#define PARAMS(x)
-#endif
-
-char* pr_addr PARAMS ((SIM_ADDR addr));
-char* pr_uword64 PARAMS ((uword64 addr));
-
-
-/* Within interp.c we refer to the sim_state and sim_cpu directly. */
-#define CPU cpu
-#define SD sd
-
-
-/* The following reserved instruction value is used when a simulator
- trap is required. NOTE: Care must be taken, since this value may be
- used in later revisions of the MIPS ISA. */
-
-#define RSVD_INSTRUCTION (0x00000005)
-#define RSVD_INSTRUCTION_MASK (0xFC00003F)
-
-#define RSVD_INSTRUCTION_ARG_SHIFT 6
-#define RSVD_INSTRUCTION_ARG_MASK 0xFFFFF
-
-
-/* Bits in the Debug register */
-#define Debug_DBD 0x80000000 /* Debug Branch Delay */
-#define Debug_DM 0x40000000 /* Debug Mode */
-#define Debug_DBp 0x00000002 /* Debug Breakpoint indicator */
-
-/*---------------------------------------------------------------------------*/
-/*-- GDB simulator interface ------------------------------------------------*/
-/*---------------------------------------------------------------------------*/
-
-static void ColdReset PARAMS((SIM_DESC sd));
-
-/*---------------------------------------------------------------------------*/
-
-
-
-#define DELAYSLOT() {\
- if (STATE & simDELAYSLOT)\
- sim_io_eprintf(sd,"Delay slot already activated (branch in delay slot?)\n");\
- STATE |= simDELAYSLOT;\
- }
-
-#define JALDELAYSLOT() {\
- DELAYSLOT ();\
- STATE |= simJALDELAYSLOT;\
- }
-
-#define NULLIFY() {\
- STATE &= ~simDELAYSLOT;\
- STATE |= simSKIPNEXT;\
- }
-
-#define CANCELDELAYSLOT() {\
- DSSTATE = 0;\
- STATE &= ~(simDELAYSLOT | simJALDELAYSLOT);\
- }
-
-#define INDELAYSLOT() ((STATE & simDELAYSLOT) != 0)
-#define INJALDELAYSLOT() ((STATE & simJALDELAYSLOT) != 0)
-
-/* Note that the monitor code essentially assumes this layout of memory.
- If you change these, change the monitor code, too. */
-#define K0BASE (0x80000000)
-#define K0SIZE (0x20000000)
-#define K1BASE (0xA0000000)
-#define K1SIZE (0x20000000)
-
-/* Simple run-time monitor support.
-
- We emulate the monitor by placing magic reserved instructions at
- the monitor's entry points; when we hit these instructions, instead
- of raising an exception (as we would normally), we look at the
- instruction and perform the appropriate monitory operation.
-
- `*_monitor_base' are the physical addresses at which the corresponding
- monitor vectors are located. `0' means none. By default,
- install all three.
- The RSVD_INSTRUCTION... macros specify the magic instructions we
- use at the monitor entry points. */
-static int firmware_option_p = 0;
-static SIM_ADDR idt_monitor_base = 0xBFC00000;
-static SIM_ADDR pmon_monitor_base = 0xBFC00500;
-static SIM_ADDR lsipmon_monitor_base = 0xBFC00200;
-
-static SIM_RC sim_firmware_command (SIM_DESC sd, char* arg);
-
-
-#define MEM_SIZE (2 << 20)
-
-
-#if defined(TRACE)
-static char *tracefile = "trace.din"; /* default filename for trace log */
-FILE *tracefh = NULL;
-static void open_trace PARAMS((SIM_DESC sd));
-#endif /* TRACE */
-
-static const char * get_insn_name (sim_cpu *, int);
-
-/* simulation target board. NULL=canonical */
-static char* board = NULL;
-
-
-static DECLARE_OPTION_HANDLER (mips_option_handler);
-
-enum {
- OPTION_DINERO_TRACE = OPTION_START,
- OPTION_DINERO_FILE,
- OPTION_FIRMWARE,
- OPTION_BOARD
-};
-
-
-static SIM_RC
-mips_option_handler (sd, cpu, opt, arg, is_command)
- SIM_DESC sd;
- sim_cpu *cpu;
- int opt;
- char *arg;
- int is_command;
-{
- int cpu_nr;
- switch (opt)
- {
- case OPTION_DINERO_TRACE: /* ??? */
-#if defined(TRACE)
- /* Eventually the simTRACE flag could be treated as a toggle, to
- allow external control of the program points being traced
- (i.e. only from main onwards, excluding the run-time setup,
- etc.). */
- for (cpu_nr = 0; cpu_nr < MAX_NR_PROCESSORS; cpu_nr++)
- {
- sim_cpu *cpu = STATE_CPU (sd, cpu_nr);
- if (arg == NULL)
- STATE |= simTRACE;
- else if (strcmp (arg, "yes") == 0)
- STATE |= simTRACE;
- else if (strcmp (arg, "no") == 0)
- STATE &= ~simTRACE;
- else if (strcmp (arg, "on") == 0)
- STATE |= simTRACE;
- else if (strcmp (arg, "off") == 0)
- STATE &= ~simTRACE;
- else
- {
- fprintf (stderr, "Unrecognized dinero-trace option `%s'\n", arg);
- return SIM_RC_FAIL;
- }
- }
- return SIM_RC_OK;
-#else /* !TRACE */
- fprintf(stderr,"\
-Simulator constructed without dinero tracing support (for performance).\n\
-Re-compile simulator with \"-DTRACE\" to enable this option.\n");
- return SIM_RC_FAIL;
-#endif /* !TRACE */
-
- case OPTION_DINERO_FILE:
-#if defined(TRACE)
- if (optarg != NULL) {
- char *tmp;
- tmp = (char *)malloc(strlen(optarg) + 1);
- if (tmp == NULL)
- {
- sim_io_printf(sd,"Failed to allocate buffer for tracefile name \"%s\"\n",optarg);
- return SIM_RC_FAIL;
- }
- else {
- strcpy(tmp,optarg);
- tracefile = tmp;
- sim_io_printf(sd,"Placing trace information into file \"%s\"\n",tracefile);
- }
- }
-#endif /* TRACE */
- return SIM_RC_OK;
-
- case OPTION_FIRMWARE:
- return sim_firmware_command (sd, arg);
-
- case OPTION_BOARD:
- {
- if (arg)
- {
- board = zalloc(strlen(arg) + 1);
- strcpy(board, arg);
- }
- return SIM_RC_OK;
- }
- }
-
- return SIM_RC_OK;
-}
-
-
-static const OPTION mips_options[] =
-{
- { {"dinero-trace", optional_argument, NULL, OPTION_DINERO_TRACE},
- '\0', "on|off", "Enable dinero tracing",
- mips_option_handler },
- { {"dinero-file", required_argument, NULL, OPTION_DINERO_FILE},
- '\0', "FILE", "Write dinero trace to FILE",
- mips_option_handler },
- { {"firmware", required_argument, NULL, OPTION_FIRMWARE},
- '\0', "[idt|pmon|lsipmon|none][@ADDRESS]", "Emulate ROM monitor",
- mips_option_handler },
- { {"board", required_argument, NULL, OPTION_BOARD},
- '\0', "none" /* rely on compile-time string concatenation for other options */
-
-#define BOARD_JMR3904 "jmr3904"
- "|" BOARD_JMR3904
-#define BOARD_JMR3904_PAL "jmr3904pal"
- "|" BOARD_JMR3904_PAL
-#define BOARD_JMR3904_DEBUG "jmr3904debug"
- "|" BOARD_JMR3904_DEBUG
-#define BOARD_BSP "bsp"
- "|" BOARD_BSP
-
- , "Customize simulation for a particular board.", mips_option_handler },
-
- { {NULL, no_argument, NULL, 0}, '\0', NULL, NULL, NULL }
-};
-
-
-int interrupt_pending;
-
-void
-interrupt_event (SIM_DESC sd, void *data)
-{
- sim_cpu *cpu = STATE_CPU (sd, 0); /* FIXME */
- address_word cia = CIA_GET (cpu);
- if (SR & status_IE)
- {
- interrupt_pending = 0;
- SignalExceptionInterrupt (1); /* interrupt "1" */
- }
- else if (!interrupt_pending)
- sim_events_schedule (sd, 1, interrupt_event, data);
-}
-
-
-/*---------------------------------------------------------------------------*/
-/*-- Device registration hook -----------------------------------------------*/
-/*---------------------------------------------------------------------------*/
-static void device_init(SIM_DESC sd) {
-#ifdef DEVICE_INIT
- extern void register_devices(SIM_DESC);
- register_devices(sd);
-#endif
-}
-
-/*---------------------------------------------------------------------------*/
-/*-- GDB simulator interface ------------------------------------------------*/
-/*---------------------------------------------------------------------------*/
-
-SIM_DESC
-sim_open (kind, cb, abfd, argv)
- SIM_OPEN_KIND kind;
- host_callback *cb;
- struct bfd *abfd;
- char **argv;
-{
- SIM_DESC sd = sim_state_alloc (kind, cb);
- sim_cpu *cpu = STATE_CPU (sd, 0); /* FIXME */
-
- SIM_ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
-
- /* FIXME: watchpoints code shouldn't need this */
- STATE_WATCHPOINTS (sd)->pc = &(PC);
- STATE_WATCHPOINTS (sd)->sizeof_pc = sizeof (PC);
- STATE_WATCHPOINTS (sd)->interrupt_handler = interrupt_event;
-
- /* Initialize the mechanism for doing insn profiling. */
- CPU_INSN_NAME (cpu) = get_insn_name;
- CPU_MAX_INSNS (cpu) = nr_itable_entries;
-
- STATE = 0;
-
- if (sim_pre_argv_init (sd, argv[0]) != SIM_RC_OK)
- return 0;
- sim_add_option_table (sd, NULL, mips_options);
-
-
- /* getopt will print the error message so we just have to exit if this fails.
- FIXME: Hmmm... in the case of gdb we need getopt to call
- print_filtered. */
- if (sim_parse_args (sd, argv) != SIM_RC_OK)
- {
- /* Uninstall the modules to avoid memory leaks,
- file descriptor leaks, etc. */
- sim_module_uninstall (sd);
- return 0;
- }
-
- /* handle board-specific memory maps */
- if (board == NULL)
- {
- /* Allocate core managed memory */
-
-
- /* For compatibility with the old code - under this (at level one)
- are the kernel spaces K0 & K1. Both of these map to a single
- smaller sub region */
- sim_do_command(sd," memory region 0x7fff8000,0x8000") ; /* MTZ- 32 k stack */
- sim_do_commandf (sd, "memory alias 0x%lx@1,0x%lx%%0x%lx,0x%0x",
- K1BASE, K0SIZE,
- MEM_SIZE, /* actual size */
- K0BASE);
-
- device_init(sd);
- }
- else if (board != NULL
- && (strcmp(board, BOARD_BSP) == 0))
- {
- int i;
-
- STATE_ENVIRONMENT (sd) = OPERATING_ENVIRONMENT;
-
- /* ROM: 0x9FC0_0000 - 0x9FFF_FFFF and 0xBFC0_0000 - 0xBFFF_FFFF */
- sim_do_commandf (sd, "memory alias 0x%lx@1,0x%lx,0x%0x",
- 0x9FC00000,
- 4 * 1024 * 1024, /* 4 MB */
- 0xBFC00000);
-
- /* SRAM: 0x8000_0000 - 0x803F_FFFF and 0xA000_0000 - 0xA03F_FFFF */
- sim_do_commandf (sd, "memory alias 0x%lx@1,0x%lx,0x%0x",
- 0x80000000,
- 4 * 1024 * 1024, /* 4 MB */
- 0xA0000000);
-
- /* DRAM: 0x8800_0000 - 0x89FF_FFFF and 0xA800_0000 - 0xA9FF_FFFF */
- for (i=0; i<8; i++) /* 32 MB total */
- {
- unsigned size = 4 * 1024 * 1024; /* 4 MB */
- sim_do_commandf (sd, "memory alias 0x%lx@1,0x%lx,0x%0x",
- 0x88000000 + (i * size),
- size,
- 0xA8000000 + (i * size));
- }
- }
-#if (WITH_HW)
- else if (board != NULL
- && (strcmp(board, BOARD_JMR3904) == 0 ||
- strcmp(board, BOARD_JMR3904_PAL) == 0 ||
- strcmp(board, BOARD_JMR3904_DEBUG) == 0))
- {
- /* match VIRTUAL memory layout of JMR-TX3904 board */
- int i;
-
- /* --- disable monitor unless forced on by user --- */
-
- if (! firmware_option_p)
- {
- idt_monitor_base = 0;
- pmon_monitor_base = 0;
- lsipmon_monitor_base = 0;
- }
-
- /* --- environment --- */
-
- STATE_ENVIRONMENT (sd) = OPERATING_ENVIRONMENT;
-
- /* --- memory --- */
-
- /* ROM: 0x9FC0_0000 - 0x9FFF_FFFF and 0xBFC0_0000 - 0xBFFF_FFFF */
- sim_do_commandf (sd, "memory alias 0x%lx@1,0x%lx,0x%0x",
- 0x9FC00000,
- 4 * 1024 * 1024, /* 4 MB */
- 0xBFC00000);
-
- /* SRAM: 0x8000_0000 - 0x803F_FFFF and 0xA000_0000 - 0xA03F_FFFF */
- sim_do_commandf (sd, "memory alias 0x%lx@1,0x%lx,0x%0x",
- 0x80000000,
- 4 * 1024 * 1024, /* 4 MB */
- 0xA0000000);
-
- /* DRAM: 0x8800_0000 - 0x89FF_FFFF and 0xA800_0000 - 0xA9FF_FFFF */
- for (i=0; i<8; i++) /* 32 MB total */
- {
- unsigned size = 4 * 1024 * 1024; /* 4 MB */
- sim_do_commandf (sd, "memory alias 0x%lx@1,0x%lx,0x%0x",
- 0x88000000 + (i * size),
- size,
- 0xA8000000 + (i * size));
- }
-
- /* Dummy memory regions for unsimulated devices - sorted by address */
-
- sim_do_commandf (sd, "memory alias 0x%lx@1,0x%lx", 0xB1000000, 0x400); /* ISA I/O */
- sim_do_commandf (sd, "memory alias 0x%lx@1,0x%lx", 0xB2100000, 0x004); /* ISA ctl */
- sim_do_commandf (sd, "memory alias 0x%lx@1,0x%lx", 0xB2500000, 0x004); /* LED/switch */
- sim_do_commandf (sd, "memory alias 0x%lx@1,0x%lx", 0xB2700000, 0x004); /* RTC */
- sim_do_commandf (sd, "memory alias 0x%lx@1,0x%lx", 0xB3C00000, 0x004); /* RTC */
- sim_do_commandf (sd, "memory alias 0x%lx@1,0x%lx", 0xFFFF8000, 0x900); /* DRAMC */
- sim_do_commandf (sd, "memory alias 0x%lx@1,0x%lx", 0xFFFF9000, 0x200); /* EBIF */
- sim_do_commandf (sd, "memory alias 0x%lx@1,0x%lx", 0xFFFFE000, 0x01c); /* EBIF */
- sim_do_commandf (sd, "memory alias 0x%lx@1,0x%lx", 0xFFFFF500, 0x300); /* PIO */
-
-
- /* --- simulated devices --- */
- sim_hw_parse (sd, "/tx3904irc@0xffffc000/reg 0xffffc000 0x20");
- sim_hw_parse (sd, "/tx3904cpu");
- sim_hw_parse (sd, "/tx3904tmr@0xfffff000/reg 0xfffff000 0x100");
- sim_hw_parse (sd, "/tx3904tmr@0xfffff100/reg 0xfffff100 0x100");
- sim_hw_parse (sd, "/tx3904tmr@0xfffff200/reg 0xfffff200 0x100");
- sim_hw_parse (sd, "/tx3904sio@0xfffff300/reg 0xfffff300 0x100");
- {
- /* FIXME: poking at dv-sockser internals, use tcp backend if
- --sockser_addr option was given.*/
- extern char* sockser_addr;
- if(sockser_addr == NULL)
- sim_hw_parse (sd, "/tx3904sio@0xfffff300/backend stdio");
- else
- sim_hw_parse (sd, "/tx3904sio@0xfffff300/backend tcp");
- }
- sim_hw_parse (sd, "/tx3904sio@0xfffff400/reg 0xfffff400 0x100");
- sim_hw_parse (sd, "/tx3904sio@0xfffff400/backend stdio");
-
- /* -- device connections --- */
- sim_hw_parse (sd, "/tx3904irc > ip level /tx3904cpu");
- sim_hw_parse (sd, "/tx3904tmr@0xfffff000 > int tmr0 /tx3904irc");
- sim_hw_parse (sd, "/tx3904tmr@0xfffff100 > int tmr1 /tx3904irc");
- sim_hw_parse (sd, "/tx3904tmr@0xfffff200 > int tmr2 /tx3904irc");
- sim_hw_parse (sd, "/tx3904sio@0xfffff300 > int sio0 /tx3904irc");
- sim_hw_parse (sd, "/tx3904sio@0xfffff400 > int sio1 /tx3904irc");
-
- /* add PAL timer & I/O module */
- if(! strcmp(board, BOARD_JMR3904_PAL))
- {
- /* the device */
- sim_hw_parse (sd, "/pal@0xffff0000");
- sim_hw_parse (sd, "/pal@0xffff0000/reg 0xffff0000 64");
-
- /* wire up interrupt ports to irc */
- sim_hw_parse (sd, "/pal@0x31000000 > countdown tmr0 /tx3904irc");
- sim_hw_parse (sd, "/pal@0x31000000 > timer tmr1 /tx3904irc");
- sim_hw_parse (sd, "/pal@0x31000000 > int int0 /tx3904irc");
- }
-
- if(! strcmp(board, BOARD_JMR3904_DEBUG))
- {
- /* -- DEBUG: glue interrupt generators --- */
- sim_hw_parse (sd, "/glue@0xffff0000/reg 0xffff0000 0x50");
- sim_hw_parse (sd, "/glue@0xffff0000 > int0 int0 /tx3904irc");
- sim_hw_parse (sd, "/glue@0xffff0000 > int1 int1 /tx3904irc");
- sim_hw_parse (sd, "/glue@0xffff0000 > int2 int2 /tx3904irc");
- sim_hw_parse (sd, "/glue@0xffff0000 > int3 int3 /tx3904irc");
- sim_hw_parse (sd, "/glue@0xffff0000 > int4 int4 /tx3904irc");
- sim_hw_parse (sd, "/glue@0xffff0000 > int5 int5 /tx3904irc");
- sim_hw_parse (sd, "/glue@0xffff0000 > int6 int6 /tx3904irc");
- sim_hw_parse (sd, "/glue@0xffff0000 > int7 int7 /tx3904irc");
- sim_hw_parse (sd, "/glue@0xffff0000 > int8 dmac0 /tx3904irc");
- sim_hw_parse (sd, "/glue@0xffff0000 > int9 dmac1 /tx3904irc");
- sim_hw_parse (sd, "/glue@0xffff0000 > int10 dmac2 /tx3904irc");
- sim_hw_parse (sd, "/glue@0xffff0000 > int11 dmac3 /tx3904irc");
- sim_hw_parse (sd, "/glue@0xffff0000 > int12 sio0 /tx3904irc");
- sim_hw_parse (sd, "/glue@0xffff0000 > int13 sio1 /tx3904irc");
- sim_hw_parse (sd, "/glue@0xffff0000 > int14 tmr0 /tx3904irc");
- sim_hw_parse (sd, "/glue@0xffff0000 > int15 tmr1 /tx3904irc");
- sim_hw_parse (sd, "/glue@0xffff0000 > int16 tmr2 /tx3904irc");
- sim_hw_parse (sd, "/glue@0xffff0000 > int17 nmi /tx3904cpu");
- }
-
- device_init(sd);
- }
-#endif
-
-
- /* check for/establish the a reference program image */
- if (sim_analyze_program (sd,
- (STATE_PROG_ARGV (sd) != NULL
- ? *STATE_PROG_ARGV (sd)
- : NULL),
- abfd) != SIM_RC_OK)
- {
- sim_module_uninstall (sd);
- return 0;
- }
-
- /* Configure/verify the target byte order and other runtime
- configuration options */
- if (sim_config (sd) != SIM_RC_OK)
- {
- sim_module_uninstall (sd);
- return 0;
- }
-
- if (sim_post_argv_init (sd) != SIM_RC_OK)
- {
- /* Uninstall the modules to avoid memory leaks,
- file descriptor leaks, etc. */
- sim_module_uninstall (sd);
- return 0;
- }
-
- /* verify assumptions the simulator made about the host type system.
- This macro does not return if there is a problem */
- SIM_ASSERT (sizeof(int) == (4 * sizeof(char)));
- SIM_ASSERT (sizeof(word64) == (8 * sizeof(char)));
-
- /* This is NASTY, in that we are assuming the size of specific
- registers: */
- {
- int rn;
- for (rn = 0; (rn < (LAST_EMBED_REGNUM + 1)); rn++)
- {
- if (rn < 32)
- cpu->register_widths[rn] = WITH_TARGET_WORD_BITSIZE;
- else if ((rn >= FGR_BASE) && (rn < (FGR_BASE + NR_FGR)))
- cpu->register_widths[rn] = WITH_TARGET_FLOATING_POINT_BITSIZE;
- else if ((rn >= 33) && (rn <= 37))
- cpu->register_widths[rn] = WITH_TARGET_WORD_BITSIZE;
- else if ((rn == SRIDX)
- || (rn == FCR0IDX)
- || (rn == FCR31IDX)
- || ((rn >= 72) && (rn <= 89)))
- cpu->register_widths[rn] = 32;
- else
- cpu->register_widths[rn] = 0;
- }
-
-
- }
-
-#if defined(TRACE)
- if (STATE & simTRACE)
- open_trace(sd);
-#endif /* TRACE */
-
- /*
- sim_io_eprintf (sd, "idt@%x pmon@%x lsipmon@%x\n",
- idt_monitor_base,
- pmon_monitor_base,
- lsipmon_monitor_base);
- */
-
- /* Write the monitor trap address handlers into the monitor (eeprom)
- address space. This can only be done once the target endianness
- has been determined. */
- if (idt_monitor_base != 0)
- {
- unsigned loop;
- unsigned idt_monitor_size = 1 << 11;
-
- /* the default monitor region */
- sim_do_commandf (sd, "memory region 0x%x,0x%x",
- idt_monitor_base, idt_monitor_size);
-
- /* Entry into the IDT monitor is via fixed address vectors, and
- not using machine instructions. To avoid clashing with use of
- the MIPS TRAP system, we place our own (simulator specific)
- "undefined" instructions into the relevant vector slots. */
- for (loop = 0; (loop < idt_monitor_size); loop += 4)
- {
- address_word vaddr = (idt_monitor_base + loop);
- unsigned32 insn = (RSVD_INSTRUCTION |
- (((loop >> 2) & RSVD_INSTRUCTION_ARG_MASK)
- << RSVD_INSTRUCTION_ARG_SHIFT));
- H2T (insn);
- sim_write (sd, vaddr, (char *)&insn, sizeof (insn));
- }
- }
-
- if ((pmon_monitor_base != 0) || (lsipmon_monitor_base != 0))
- {
- /* The PMON monitor uses the same address space, but rather than
- branching into it the address of a routine is loaded. We can
- cheat for the moment, and direct the PMON routine to IDT style
- instructions within the monitor space. This relies on the IDT
- monitor not using the locations from 0xBFC00500 onwards as its
- entry points.*/
- unsigned loop;
- for (loop = 0; (loop < 24); loop++)
- {
- unsigned32 value = ((0x500 - 8) / 8); /* default UNDEFINED reason code */
- switch (loop)
- {
- case 0: /* read */
- value = 7;
- break;
- case 1: /* write */
- value = 8;
- break;
- case 2: /* open */
- value = 6;
- break;
- case 3: /* close */
- value = 10;
- break;
- case 5: /* printf */
- value = ((0x500 - 16) / 8); /* not an IDT reason code */
- break;
- case 8: /* cliexit */
- value = 17;
- break;
- case 11: /* flush_cache */
- value = 28;
- break;
- }
-
- SIM_ASSERT (idt_monitor_base != 0);
- value = ((unsigned int) idt_monitor_base + (value * 8));
- H2T (value);
-
- if (pmon_monitor_base != 0)
- {
- address_word vaddr = (pmon_monitor_base + (loop * 4));
- sim_write (sd, vaddr, (char *)&value, sizeof (value));
- }
-
- if (lsipmon_monitor_base != 0)
- {
- address_word vaddr = (lsipmon_monitor_base + (loop * 4));
- sim_write (sd, vaddr, (char *)&value, sizeof (value));
- }
- }
-
- /* Write an abort sequence into the TRAP (common) exception vector
- addresses. This is to catch code executing a TRAP (et.al.)
- instruction without installing a trap handler. */
- if ((idt_monitor_base != 0) ||
- (pmon_monitor_base != 0) ||
- (lsipmon_monitor_base != 0))
- {
- unsigned32 halt[2] = { 0x2404002f /* addiu r4, r0, 47 */,
- HALT_INSTRUCTION /* BREAK */ };
- H2T (halt[0]);
- H2T (halt[1]);
- sim_write (sd, 0x80000000, (char *) halt, sizeof (halt));
- sim_write (sd, 0x80000180, (char *) halt, sizeof (halt));
- sim_write (sd, 0x80000200, (char *) halt, sizeof (halt));
- /* XXX: Write here unconditionally? */
- sim_write (sd, 0xBFC00200, (char *) halt, sizeof (halt));
- sim_write (sd, 0xBFC00380, (char *) halt, sizeof (halt));
- sim_write (sd, 0xBFC00400, (char *) halt, sizeof (halt));
- }
- }
-
-
-
- return sd;
-}
-
-#if defined(TRACE)
-static void
-open_trace(sd)
- SIM_DESC sd;
-{
- tracefh = fopen(tracefile,"wb+");
- if (tracefh == NULL)
- {
- sim_io_eprintf(sd,"Failed to create file \"%s\", writing trace information to stderr.\n",tracefile);
- tracefh = stderr;
- }
-}
-#endif /* TRACE */
-
-/* Return name of an insn, used by insn profiling. */
-static const char *
-get_insn_name (sim_cpu *cpu, int i)
-{
- return itable[i].name;
-}
-
-void
-sim_close (sd, quitting)
- SIM_DESC sd;
- int quitting;
-{
-#ifdef DEBUG
- printf("DBG: sim_close: entered (quitting = %d)\n",quitting);
-#endif
-
-
- /* "quitting" is non-zero if we cannot hang on errors */
-
- /* shut down modules */
- sim_module_uninstall (sd);
-
- /* Ensure that any resources allocated through the callback
- mechanism are released: */
- sim_io_shutdown (sd);
-
-#if defined(TRACE)
- if (tracefh != NULL && tracefh != stderr)
- fclose(tracefh);
- tracefh = NULL;
-#endif /* TRACE */
-
- /* FIXME - free SD */
-
- return;
-}
-
-
-int
-sim_write (sd,addr,buffer,size)
- SIM_DESC sd;
- SIM_ADDR addr;
- unsigned char *buffer;
- int size;
-{
- int index;
- sim_cpu *cpu = STATE_CPU (sd, 0); /* FIXME */
-
- /* Return the number of bytes written, or zero if error. */
-#ifdef DEBUG
- sim_io_printf(sd,"sim_write(0x%s,buffer,%d);\n",pr_addr(addr),size);
-#endif
-
- /* We use raw read and write routines, since we do not want to count
- the GDB memory accesses in our statistics gathering. */
-
- for (index = 0; index < size; index++)
- {
- address_word vaddr = (address_word)addr + index;
- address_word paddr;
- int cca;
- if (!address_translation (SD, CPU, NULL_CIA, vaddr, isDATA, isSTORE, &paddr, &cca, isRAW))
- break;
- if (sim_core_write_buffer (SD, CPU, read_map, buffer + index, paddr, 1) != 1)
- break;
- }
-
- return(index);
-}
-
-int
-sim_read (sd,addr,buffer,size)
- SIM_DESC sd;
- SIM_ADDR addr;
- unsigned char *buffer;
- int size;
-{
- int index;
- sim_cpu *cpu = STATE_CPU (sd, 0); /* FIXME */
-
- /* Return the number of bytes read, or zero if error. */
-#ifdef DEBUG
- sim_io_printf(sd,"sim_read(0x%s,buffer,%d);\n",pr_addr(addr),size);
-#endif /* DEBUG */
-
- for (index = 0; (index < size); index++)
- {
- address_word vaddr = (address_word)addr + index;
- address_word paddr;
- int cca;
- if (!address_translation (SD, CPU, NULL_CIA, vaddr, isDATA, isLOAD, &paddr, &cca, isRAW))
- break;
- if (sim_core_read_buffer (SD, CPU, read_map, buffer + index, paddr, 1) != 1)
- break;
- }
-
- return(index);
-}
-
-int
-sim_store_register (sd,rn,memory,length)
- SIM_DESC sd;
- int rn;
- unsigned char *memory;
- int length;
-{
- sim_cpu *cpu = STATE_CPU (sd, 0); /* FIXME */
- /* NOTE: gdb (the client) stores registers in target byte order
- while the simulator uses host byte order */
-#ifdef DEBUG
- sim_io_printf(sd,"sim_store_register(%d,*memory=0x%s);\n",rn,pr_addr(*((SIM_ADDR *)memory)));
-#endif /* DEBUG */
-
- /* Unfortunately this suffers from the same problem as the register
- numbering one. We need to know what the width of each logical
- register number is for the architecture being simulated. */
-
- if (cpu->register_widths[rn] == 0)
- {
- sim_io_eprintf(sd,"Invalid register width for %d (register store ignored)\n",rn);
- return 0;
- }
-
-
-
- if (rn >= FGR_BASE && rn < FGR_BASE + NR_FGR)
- {
- cpu->fpr_state[rn - FGR_BASE] = fmt_uninterpreted;
- if (cpu->register_widths[rn] == 32)
- {
- if (length == 8)
- {
- cpu->fgr[rn - FGR_BASE] =
- (unsigned32) T2H_8 (*(unsigned64*)memory);
- return 8;
- }
- else
- {
- cpu->fgr[rn - FGR_BASE] = T2H_4 (*(unsigned32*)memory);
- return 4;
- }
- }
- else
- {
- cpu->fgr[rn - FGR_BASE] = T2H_8 (*(unsigned64*)memory);
- return 8;
- }
- }
-
- if (cpu->register_widths[rn] == 32)
- {
- if (length == 8)
- {
- cpu->registers[rn] =
- (unsigned32) T2H_8 (*(unsigned64*)memory);
- return 8;
- }
- else
- {
- cpu->registers[rn] = T2H_4 (*(unsigned32*)memory);
- return 4;
- }
- }
- else
- {
- cpu->registers[rn] = T2H_8 (*(unsigned64*)memory);
- return 8;
- }
-
- return 0;
-}
-
-int
-sim_fetch_register (sd,rn,memory,length)
- SIM_DESC sd;
- int rn;
- unsigned char *memory;
- int length;
-{
- sim_cpu *cpu = STATE_CPU (sd, 0); /* FIXME */
- /* NOTE: gdb (the client) stores registers in target byte order
- while the simulator uses host byte order */
-#ifdef DEBUG
-#if 0 /* FIXME: doesn't compile */
- sim_io_printf(sd,"sim_fetch_register(%d=0x%s,mem) : place simulator registers into memory\n",rn,pr_addr(registers[rn]));
-#endif
-#endif /* DEBUG */
-
- if (cpu->register_widths[rn] == 0)
- {
- sim_io_eprintf (sd, "Invalid register width for %d (register fetch ignored)\n",rn);
- return 0;
- }
-
-
-
- /* Any floating point register */
- if (rn >= FGR_BASE && rn < FGR_BASE + NR_FGR)
- {
- if (cpu->register_widths[rn] == 32)
- {
- if (length == 8)
- {
- *(unsigned64*)memory =
- H2T_8 ((unsigned32) (cpu->fgr[rn - FGR_BASE]));
- return 8;
- }
- else
- {
- *(unsigned32*)memory = H2T_4 (cpu->fgr[rn - FGR_BASE]);
- return 4;
- }
- }
- else
- {
- *(unsigned64*)memory = H2T_8 (cpu->fgr[rn - FGR_BASE]);
- return 8;
- }
- }
-
- if (cpu->register_widths[rn] == 32)
- {
- if (length == 8)
- {
- *(unsigned64*)memory =
- H2T_8 ((unsigned32) (cpu->registers[rn]));
- return 8;
- }
- else
- {
- *(unsigned32*)memory = H2T_4 ((unsigned32)(cpu->registers[rn]));
- return 4;
- }
- }
- else
- {
- *(unsigned64*)memory = H2T_8 ((unsigned64)(cpu->registers[rn]));
- return 8;
- }
-
- return 0;
-}
-
-
-SIM_RC
-sim_create_inferior (sd, abfd, argv,env)
- SIM_DESC sd;
- struct bfd *abfd;
- char **argv;
- char **env;
-{
-
-#ifdef DEBUG
-#if 0 /* FIXME: doesn't compile */
- printf("DBG: sim_create_inferior entered: start_address = 0x%s\n",
- pr_addr(PC));
-#endif
-#endif /* DEBUG */
-
- ColdReset(sd);
-
- if (abfd != NULL)
- {
- /* override PC value set by ColdReset () */
- int cpu_nr;
- for (cpu_nr = 0; cpu_nr < sim_engine_nr_cpus (sd); cpu_nr++)
- {
- sim_cpu *cpu = STATE_CPU (sd, cpu_nr);
- CIA_SET (cpu, (unsigned64) bfd_get_start_address (abfd));
- }
- }
-
-#if 0 /* def DEBUG */
- if (argv || env)
- {
- /* We should really place the argv slot values into the argument
- registers, and onto the stack as required. However, this
- assumes that we have a stack defined, which is not
- necessarily true at the moment. */
- char **cptr;
- sim_io_printf(sd,"sim_create_inferior() : passed arguments ignored\n");
- for (cptr = argv; (cptr && *cptr); cptr++)
- printf("DBG: arg \"%s\"\n",*cptr);
- }
-#endif /* DEBUG */
-
- return SIM_RC_OK;
-}
-
-void
-sim_do_command (sd,cmd)
- SIM_DESC sd;
- char *cmd;
-{
- if (sim_args_command (sd, cmd) != SIM_RC_OK)
- sim_io_printf (sd, "Error: \"%s\" is not a valid MIPS simulator command.\n",
- cmd);
-}
-
-/*---------------------------------------------------------------------------*/
-/*-- Private simulator support interface ------------------------------------*/
-/*---------------------------------------------------------------------------*/
-
-/* Read a null terminated string from memory, return in a buffer */
-static char *
-fetch_str (SIM_DESC sd,
- address_word addr)
-{
- char *buf;
- int nr = 0;
- char null;
- while (sim_read (sd, addr + nr, &null, 1) == 1 && null != 0)
- nr++;
- buf = NZALLOC (char, nr + 1);
- sim_read (sd, addr, buf, nr);
- return buf;
-}
-
-
-/* Implements the "sim firmware" command:
- sim firmware NAME[@ADDRESS] --- emulate ROM monitor named NAME.
- NAME can be idt, pmon, or lsipmon. If omitted, ADDRESS
- defaults to the normal address for that monitor.
- sim firmware none --- don't emulate any ROM monitor. Useful
- if you need a clean address space. */
-static SIM_RC
-sim_firmware_command (SIM_DESC sd, char *arg)
-{
- int address_present = 0;
- SIM_ADDR address;
-
- /* Signal occurrence of this option. */
- firmware_option_p = 1;
-
- /* Parse out the address, if present. */
- {
- char *p = strchr (arg, '@');
- if (p)
- {
- char *q;
- address_present = 1;
- p ++; /* skip over @ */
-
- address = strtoul (p, &q, 0);
- if (*q != '\0')
- {
- sim_io_printf (sd, "Invalid address given to the"
- "`sim firmware NAME@ADDRESS' command: %s\n",
- p);
- return SIM_RC_FAIL;
- }
- }
- else
- {
- address_present = 0;
- address = -1; /* Dummy value. */
- }
- }
-
- if (! strncmp (arg, "idt", 3))
- {
- idt_monitor_base = address_present ? address : 0xBFC00000;
- pmon_monitor_base = 0;
- lsipmon_monitor_base = 0;
- }
- else if (! strncmp (arg, "pmon", 4))
- {
- /* pmon uses indirect calls. Hook into implied idt. */
- pmon_monitor_base = address_present ? address : 0xBFC00500;
- idt_monitor_base = pmon_monitor_base - 0x500;
- lsipmon_monitor_base = 0;
- }
- else if (! strncmp (arg, "lsipmon", 7))
- {
- /* lsipmon uses indirect calls. Hook into implied idt. */
- pmon_monitor_base = 0;
- lsipmon_monitor_base = address_present ? address : 0xBFC00200;
- idt_monitor_base = lsipmon_monitor_base - 0x200;
- }
- else if (! strncmp (arg, "none", 4))
- {
- if (address_present)
- {
- sim_io_printf (sd,
- "The `sim firmware none' command does "
- "not take an `ADDRESS' argument.\n");
- return SIM_RC_FAIL;
- }
- idt_monitor_base = 0;
- pmon_monitor_base = 0;
- lsipmon_monitor_base = 0;
- }
- else
- {
- sim_io_printf (sd, "\
-Unrecognized name given to the `sim firmware NAME' command: %s\n\
-Recognized firmware names are: `idt', `pmon', `lsipmon', and `none'.\n",
- arg);
- return SIM_RC_FAIL;
- }
-
- return SIM_RC_OK;
-}
-
-
-
-/* Simple monitor interface (currently setup for the IDT and PMON monitors) */
-int
-sim_monitor (SIM_DESC sd,
- sim_cpu *cpu,
- address_word cia,
- unsigned int reason)
-{
-#ifdef DEBUG
- printf("DBG: sim_monitor: entered (reason = %d)\n",reason);
-#endif /* DEBUG */
-
- /* The IDT monitor actually allows two instructions per vector
- slot. However, the simulator currently causes a trap on each
- individual instruction. We cheat, and lose the bottom bit. */
- reason >>= 1;
-
- /* The following callback functions are available, however the
- monitor we are simulating does not make use of them: get_errno,
- isatty, lseek, rename, system, time and unlink */
- switch (reason)
- {
-
- case 6: /* int open(char *path,int flags) */
- {
- char *path = fetch_str (sd, A0);
- V0 = sim_io_open (sd, path, (int)A1);
- zfree (path);
- break;
- }
-
- case 7: /* int read(int file,char *ptr,int len) */
- {
- int fd = A0;
- int nr = A2;
- char *buf = zalloc (nr);
- V0 = sim_io_read (sd, fd, buf, nr);
- sim_write (sd, A1, buf, nr);
- zfree (buf);
- }
- break;
-
- case 8: /* int write(int file,char *ptr,int len) */
- {
- int fd = A0;
- int nr = A2;
- char *buf = zalloc (nr);
- sim_read (sd, A1, buf, nr);
- V0 = sim_io_write (sd, fd, buf, nr);
- zfree (buf);
- break;
- }
-
- case 10: /* int close(int file) */
- {
- V0 = sim_io_close (sd, (int)A0);
- break;
- }
-
- case 2: /* Densan monitor: char inbyte(int waitflag) */
- {
- if (A0 == 0) /* waitflag == NOWAIT */
- V0 = (unsigned_word)-1;
- }
- /* Drop through to case 11 */
-
- case 11: /* char inbyte(void) */
- {
- char tmp;
- /* ensure that all output has gone... */
- sim_io_flush_stdout (sd);
- if (sim_io_read_stdin (sd, &tmp, sizeof(char)) != sizeof(char))
- {
- sim_io_error(sd,"Invalid return from character read");
- V0 = (unsigned_word)-1;
- }
- else
- V0 = (unsigned_word)tmp;
- break;
- }
-
- case 3: /* Densan monitor: void co(char chr) */
- case 12: /* void outbyte(char chr) : write a byte to "stdout" */
- {
- char tmp = (char)(A0 & 0xFF);
- sim_io_write_stdout (sd, &tmp, sizeof(char));
- break;
- }
-
- case 17: /* void _exit() */
- {
- sim_io_eprintf (sd, "sim_monitor(17): _exit(int reason) to be coded\n");
- sim_engine_halt (SD, CPU, NULL, NULL_CIA, sim_exited,
- (unsigned int)(A0 & 0xFFFFFFFF));
- break;
- }
-
- case 28: /* PMON flush_cache */
- break;
-
- case 55: /* void get_mem_info(unsigned int *ptr) */
- /* in: A0 = pointer to three word memory location */
- /* out: [A0 + 0] = size */
- /* [A0 + 4] = instruction cache size */
- /* [A0 + 8] = data cache size */
- {
- unsigned_4 value = MEM_SIZE /* FIXME STATE_MEM_SIZE (sd) */;
- unsigned_4 zero = 0;
- H2T (value);
- sim_write (sd, A0 + 0, (char *)&value, 4);
- sim_write (sd, A0 + 4, (char *)&zero, 4);
- sim_write (sd, A0 + 8, (char *)&zero, 4);
- /* sim_io_eprintf (sd, "sim: get_mem_info() deprecated\n"); */
- break;
- }
-
- case 158: /* PMON printf */
- /* in: A0 = pointer to format string */
- /* A1 = optional argument 1 */
- /* A2 = optional argument 2 */
- /* A3 = optional argument 3 */
- /* out: void */
- /* The following is based on the PMON printf source */
- {
- address_word s = A0;
- char c;
- signed_word *ap = &A1; /* 1st argument */
- /* This isn't the quickest way, since we call the host print
- routine for every character almost. But it does avoid
- having to allocate and manage a temporary string buffer. */
- /* TODO: Include check that we only use three arguments (A1,
- A2 and A3) */
- while (sim_read (sd, s++, &c, 1) && c != '\0')
- {
- if (c == '%')
- {
- char tmp[40];
- enum {FMT_RJUST, FMT_LJUST, FMT_RJUST0, FMT_CENTER} fmt = FMT_RJUST;
- int width = 0, trunc = 0, haddot = 0, longlong = 0;
- while (sim_read (sd, s++, &c, 1) && c != '\0')
- {
- if (strchr ("dobxXulscefg%", c))
- break;
- else if (c == '-')
- fmt = FMT_LJUST;
- else if (c == '0')
- fmt = FMT_RJUST0;
- else if (c == '~')
- fmt = FMT_CENTER;
- else if (c == '*')
- {
- if (haddot)
- trunc = (int)*ap++;
- else
- width = (int)*ap++;
- }
- else if (c >= '1' && c <= '9')
- {
- address_word t = s;
- unsigned int n;
- while (sim_read (sd, s++, &c, 1) == 1 && isdigit (c))
- tmp[s - t] = c;
- tmp[s - t] = '\0';
- n = (unsigned int)strtol(tmp,NULL,10);
- if (haddot)
- trunc = n;
- else
- width = n;
- s--;
- }
- else if (c == '.')
- haddot = 1;
- }
- switch (c)
- {
- case '%':
- sim_io_printf (sd, "%%");
- break;
- case 's':
- if ((int)*ap != 0)
- {
- address_word p = *ap++;
- char ch;
- while (sim_read (sd, p++, &ch, 1) == 1 && ch != '\0')
- sim_io_printf(sd, "%c", ch);
- }
- else
- sim_io_printf(sd,"(null)");
- break;
- case 'c':
- sim_io_printf (sd, "%c", (int)*ap++);
- break;
- default:
- if (c == 'l')
- {
- sim_read (sd, s++, &c, 1);
- if (c == 'l')
- {
- longlong = 1;
- sim_read (sd, s++, &c, 1);
- }
- }
- if (strchr ("dobxXu", c))
- {
- word64 lv = (word64) *ap++;
- if (c == 'b')
- sim_io_printf(sd,"<binary not supported>");
- else
- {
- sprintf (tmp, "%%%s%c", longlong ? "ll" : "", c);
- if (longlong)
- sim_io_printf(sd, tmp, lv);
- else
- sim_io_printf(sd, tmp, (int)lv);
- }
- }
- else if (strchr ("eEfgG", c))
- {
- double dbl = *(double*)(ap++);
- sprintf (tmp, "%%%d.%d%c", width, trunc, c);
- sim_io_printf (sd, tmp, dbl);
- trunc = 0;
- }
- }
- }
- else
- sim_io_printf(sd, "%c", c);
- }
- break;
- }
-
- default:
- /* Unknown reason. */
- return 0;
- }
- return 1;
-}
-
-/* Store a word into memory. */
-
-static void
-store_word (SIM_DESC sd,
- sim_cpu *cpu,
- address_word cia,
- uword64 vaddr,
- signed_word val)
-{
- address_word paddr;
- int uncached;
-
- if ((vaddr & 3) != 0)
- SignalExceptionAddressStore ();
- else
- {
- if (AddressTranslation (vaddr, isDATA, isSTORE, &paddr, &uncached,
- isTARGET, isREAL))
- {
- const uword64 mask = 7;
- uword64 memval;
- unsigned int byte;
-
- paddr = (paddr & ~mask) | ((paddr & mask) ^ (ReverseEndian << 2));
- byte = (vaddr & mask) ^ (BigEndianCPU << 2);
- memval = ((uword64) val) << (8 * byte);
- StoreMemory (uncached, AccessLength_WORD, memval, 0, paddr, vaddr,
- isREAL);
- }
- }
-}
-
-/* Load a word from memory. */
-
-static signed_word
-load_word (SIM_DESC sd,
- sim_cpu *cpu,
- address_word cia,
- uword64 vaddr)
-{
- if ((vaddr & 3) != 0)
- {
- SIM_CORE_SIGNAL (SD, cpu, cia, read_map, AccessLength_WORD+1, vaddr, read_transfer, sim_core_unaligned_signal);
- }
- else
- {
- address_word paddr;
- int uncached;
-
- if (AddressTranslation (vaddr, isDATA, isLOAD, &paddr, &uncached,
- isTARGET, isREAL))
- {
- const uword64 mask = 0x7;
- const unsigned int reverse = ReverseEndian ? 1 : 0;
- const unsigned int bigend = BigEndianCPU ? 1 : 0;
- uword64 memval;
- unsigned int byte;
-
- paddr = (paddr & ~mask) | ((paddr & mask) ^ (reverse << 2));
- LoadMemory (&memval,NULL,uncached, AccessLength_WORD, paddr, vaddr,
- isDATA, isREAL);
- byte = (vaddr & mask) ^ (bigend << 2);
- return EXTEND32 (memval >> (8 * byte));
- }
- }
-
- return 0;
-}
-
-/* Simulate the mips16 entry and exit pseudo-instructions. These
- would normally be handled by the reserved instruction exception
- code, but for ease of simulation we just handle them directly. */
-
-static void
-mips16_entry (SIM_DESC sd,
- sim_cpu *cpu,
- address_word cia,
- unsigned int insn)
-{
- int aregs, sregs, rreg;
-
-#ifdef DEBUG
- printf("DBG: mips16_entry: entered (insn = 0x%08X)\n",insn);
-#endif /* DEBUG */
-
- aregs = (insn & 0x700) >> 8;
- sregs = (insn & 0x0c0) >> 6;
- rreg = (insn & 0x020) >> 5;
-
- /* This should be checked by the caller. */
- if (sregs == 3)
- abort ();
-
- if (aregs < 5)
- {
- int i;
- signed_word tsp;
-
- /* This is the entry pseudo-instruction. */
-
- for (i = 0; i < aregs; i++)
- store_word (SD, CPU, cia, (uword64) (SP + 4 * i), GPR[i + 4]);
-
- tsp = SP;
- SP -= 32;
-
- if (rreg)
- {
- tsp -= 4;
- store_word (SD, CPU, cia, (uword64) tsp, RA);
- }
-
- for (i = 0; i < sregs; i++)
- {
- tsp -= 4;
- store_word (SD, CPU, cia, (uword64) tsp, GPR[16 + i]);
- }
- }
- else
- {
- int i;
- signed_word tsp;
-
- /* This is the exit pseudo-instruction. */
-
- tsp = SP + 32;
-
- if (rreg)
- {
- tsp -= 4;
- RA = load_word (SD, CPU, cia, (uword64) tsp);
- }
-
- for (i = 0; i < sregs; i++)
- {
- tsp -= 4;
- GPR[i + 16] = load_word (SD, CPU, cia, (uword64) tsp);
- }
-
- SP += 32;
-
- if (CURRENT_FLOATING_POINT == HARD_FLOATING_POINT)
- {
- if (aregs == 5)
- {
- FGR[0] = WORD64LO (GPR[4]);
- FPR_STATE[0] = fmt_uninterpreted;
- }
- else if (aregs == 6)
- {
- FGR[0] = WORD64LO (GPR[5]);
- FGR[1] = WORD64LO (GPR[4]);
- FPR_STATE[0] = fmt_uninterpreted;
- FPR_STATE[1] = fmt_uninterpreted;
- }
- }
-
- PC = RA;
- }
-
-}
-
-/*-- trace support ----------------------------------------------------------*/
-
-/* The TRACE support is provided (if required) in the memory accessing
- routines. Since we are also providing the architecture specific
- features, the architecture simulation code can also deal with
- notifying the TRACE world of cache flushes, etc. Similarly we do
- not need to provide profiling support in the simulator engine,
- since we can sample in the instruction fetch control loop. By
- defining the TRACE manifest, we add tracing as a run-time
- option. */
-
-#if defined(TRACE)
-/* Tracing by default produces "din" format (as required by
- dineroIII). Each line of such a trace file *MUST* have a din label
- and address field. The rest of the line is ignored, so comments can
- be included if desired. The first field is the label which must be
- one of the following values:
-
- 0 read data
- 1 write data
- 2 instruction fetch
- 3 escape record (treated as unknown access type)
- 4 escape record (causes cache flush)
-
- The address field is a 32bit (lower-case) hexadecimal address
- value. The address should *NOT* be preceded by "0x".
-
- The size of the memory transfer is not important when dealing with
- cache lines (as long as no more than a cache line can be
- transferred in a single operation :-), however more information
- could be given following the dineroIII requirement to allow more
- complete memory and cache simulators to provide better
- results. i.e. the University of Pisa has a cache simulator that can
- also take bus size and speed as (variable) inputs to calculate
- complete system performance (a much more useful ability when trying
- to construct an end product, rather than a processor). They
- currently have an ARM version of their tool called ChARM. */
-
-
-void
-dotrace (SIM_DESC sd,
- sim_cpu *cpu,
- FILE *tracefh,
- int type,
- SIM_ADDR address,
- int width,
- char *comment,...)
-{
- if (STATE & simTRACE) {
- va_list ap;
- fprintf(tracefh,"%d %s ; width %d ; ",
- type,
- pr_addr(address),
- width);
- va_start(ap,comment);
- vfprintf(tracefh,comment,ap);
- va_end(ap);
- fprintf(tracefh,"\n");
- }
- /* NOTE: Since the "din" format will only accept 32bit addresses, and
- we may be generating 64bit ones, we should put the hi-32bits of the
- address into the comment field. */
-
- /* TODO: Provide a buffer for the trace lines. We can then avoid
- performing writes until the buffer is filled, or the file is
- being closed. */
-
- /* NOTE: We could consider adding a comment field to the "din" file
- produced using type 3 markers (unknown access). This would then
- allow information about the program that the "din" is for, and
- the MIPs world that was being simulated, to be placed into the
- trace file. */
-
- return;
-}
-#endif /* TRACE */
-
-/*---------------------------------------------------------------------------*/
-/*-- simulator engine -------------------------------------------------------*/
-/*---------------------------------------------------------------------------*/
-
-static void
-ColdReset (SIM_DESC sd)
-{
- int cpu_nr;
- for (cpu_nr = 0; cpu_nr < sim_engine_nr_cpus (sd); cpu_nr++)
- {
- sim_cpu *cpu = STATE_CPU (sd, cpu_nr);
- /* RESET: Fixed PC address: */
- PC = (unsigned_word) UNSIGNED64 (0xFFFFFFFFBFC00000);
- /* The reset vector address is in the unmapped, uncached memory space. */
-
- SR &= ~(status_SR | status_TS | status_RP);
- SR |= (status_ERL | status_BEV);
-
- /* Cheat and allow access to the complete register set immediately */
- if (CURRENT_FLOATING_POINT == HARD_FLOATING_POINT
- && WITH_TARGET_WORD_BITSIZE == 64)
- SR |= status_FR; /* 64bit registers */
-
- /* Ensure that any instructions with pending register updates are
- cleared: */
- PENDING_INVALIDATE();
-
- /* Initialise the FPU registers to the unknown state */
- if (CURRENT_FLOATING_POINT == HARD_FLOATING_POINT)
- {
- int rn;
- for (rn = 0; (rn < 32); rn++)
- FPR_STATE[rn] = fmt_uninterpreted;
- }
-
- }
-}
-
-
-
-
-/* Description from page A-26 of the "MIPS IV Instruction Set" manual (revision 3.1) */
-/* Signal an exception condition. This will result in an exception
- that aborts the instruction. The instruction operation pseudocode
- will never see a return from this function call. */
-
-void
-signal_exception (SIM_DESC sd,
- sim_cpu *cpu,
- address_word cia,
- int exception,...)
-{
- /* int vector; */
-
-#ifdef DEBUG
- sim_io_printf(sd,"DBG: SignalException(%d) PC = 0x%s\n",exception,pr_addr(cia));
-#endif /* DEBUG */
-
- /* Ensure that any active atomic read/modify/write operation will fail: */
- LLBIT = 0;
-
- /* Save registers before interrupt dispatching */
-#ifdef SIM_CPU_EXCEPTION_TRIGGER
- SIM_CPU_EXCEPTION_TRIGGER(sd, cpu, cia);
-#endif
-
- switch (exception) {
-
- case DebugBreakPoint:
- if (! (Debug & Debug_DM))
- {
- if (INDELAYSLOT())
- {
- CANCELDELAYSLOT();
-
- Debug |= Debug_DBD; /* signaled from within in delay slot */
- DEPC = cia - 4; /* reference the branch instruction */
- }
- else
- {
- Debug &= ~Debug_DBD; /* not signaled from within a delay slot */
- DEPC = cia;
- }
-
- Debug |= Debug_DM; /* in debugging mode */
- Debug |= Debug_DBp; /* raising a DBp exception */
- PC = 0xBFC00200;
- sim_engine_restart (SD, CPU, NULL, NULL_CIA);
- }
- break;
-
- case ReservedInstruction:
- {
- va_list ap;
- unsigned int instruction;
- va_start(ap,exception);
- instruction = va_arg(ap,unsigned int);
- va_end(ap);
- /* Provide simple monitor support using ReservedInstruction
- exceptions. The following code simulates the fixed vector
- entry points into the IDT monitor by causing a simulator
- trap, performing the monitor operation, and returning to
- the address held in the $ra register (standard PCS return
- address). This means we only need to pre-load the vector
- space with suitable instruction values. For systems were
- actual trap instructions are used, we would not need to
- perform this magic. */
- if ((instruction & RSVD_INSTRUCTION_MASK) == RSVD_INSTRUCTION)
- {
- int reason = (instruction >> RSVD_INSTRUCTION_ARG_SHIFT) & RSVD_INSTRUCTION_ARG_MASK;
- if (!sim_monitor (SD, CPU, cia, reason))
- sim_io_error (sd, "sim_monitor: unhandled reason = %d, pc = 0x%s\n", reason, pr_addr (cia));
-
- /* NOTE: This assumes that a branch-and-link style
- instruction was used to enter the vector (which is the
- case with the current IDT monitor). */
- sim_engine_restart (SD, CPU, NULL, RA);
- }
- /* Look for the mips16 entry and exit instructions, and
- simulate a handler for them. */
- else if ((cia & 1) != 0
- && (instruction & 0xf81f) == 0xe809
- && (instruction & 0x0c0) != 0x0c0)
- {
- mips16_entry (SD, CPU, cia, instruction);
- sim_engine_restart (sd, NULL, NULL, NULL_CIA);
- }
- /* else fall through to normal exception processing */
- sim_io_eprintf(sd,"ReservedInstruction at PC = 0x%s\n", pr_addr (cia));
- }
-
- default:
- /* Store exception code into current exception id variable (used
- by exit code): */
-
- /* TODO: If not simulating exceptions then stop the simulator
- execution. At the moment we always stop the simulation. */
-
-#ifdef SUBTARGET_R3900
- /* update interrupt-related registers */
-
- /* insert exception code in bits 6:2 */
- CAUSE = LSMASKED32(CAUSE, 31, 7) | LSINSERTED32(exception, 6, 2);
- /* shift IE/KU history bits left */
- SR = LSMASKED32(SR, 31, 4) | LSINSERTED32(LSEXTRACTED32(SR, 3, 0), 5, 2);
-
- if (STATE & simDELAYSLOT)
- {
- STATE &= ~simDELAYSLOT;
- CAUSE |= cause_BD;
- EPC = (cia - 4); /* reference the branch instruction */
- }
- else
- EPC = cia;
-
- if (SR & status_BEV)
- PC = (signed)0xBFC00000 + 0x180;
- else
- PC = (signed)0x80000000 + 0x080;
-#else
- /* See figure 5-17 for an outline of the code below */
- if (! (SR & status_EXL))
- {
- CAUSE = (exception << 2);
- if (STATE & simDELAYSLOT)
- {
- STATE &= ~simDELAYSLOT;
- CAUSE |= cause_BD;
- EPC = (cia - 4); /* reference the branch instruction */
- }
- else
- EPC = cia;
- /* FIXME: TLB et.al. */
- /* vector = 0x180; */
- }
- else
- {
- CAUSE = (exception << 2);
- /* vector = 0x180; */
- }
- SR |= status_EXL;
- /* Store exception code into current exception id variable (used
- by exit code): */
-
- if (SR & status_BEV)
- PC = (signed)0xBFC00200 + 0x180;
- else
- PC = (signed)0x80000000 + 0x180;
-#endif
-
- switch ((CAUSE >> 2) & 0x1F)
- {
- case Interrupt:
- /* Interrupts arrive during event processing, no need to
- restart */
- return;
-
- case NMIReset:
- /* Ditto */
-#ifdef SUBTARGET_3900
- /* Exception vector: BEV=0 BFC00000 / BEF=1 BFC00000 */
- PC = (signed)0xBFC00000;
-#endif /* SUBTARGET_3900 */
- return;
-
- case TLBModification:
- case TLBLoad:
- case TLBStore:
- case AddressLoad:
- case AddressStore:
- case InstructionFetch:
- case DataReference:
- /* The following is so that the simulator will continue from the
- exception handler address. */
- sim_engine_halt (SD, CPU, NULL, PC,
- sim_stopped, SIM_SIGBUS);
-
- case ReservedInstruction:
- case CoProcessorUnusable:
- PC = EPC;
- sim_engine_halt (SD, CPU, NULL, PC,
- sim_stopped, SIM_SIGILL);
-
- case IntegerOverflow:
- case FPE:
- sim_engine_halt (SD, CPU, NULL, PC,
- sim_stopped, SIM_SIGFPE);
-
- case BreakPoint:
- sim_engine_halt (SD, CPU, NULL, PC, sim_stopped, SIM_SIGTRAP);
- break;
-
- case SystemCall:
- case Trap:
- sim_engine_restart (SD, CPU, NULL, PC);
- break;
-
- case Watch:
- PC = EPC;
- sim_engine_halt (SD, CPU, NULL, PC,
- sim_stopped, SIM_SIGTRAP);
-
- default: /* Unknown internal exception */
- PC = EPC;
- sim_engine_halt (SD, CPU, NULL, PC,
- sim_stopped, SIM_SIGABRT);
-
- }
-
- case SimulatorFault:
- {
- va_list ap;
- char *msg;
- va_start(ap,exception);
- msg = va_arg(ap,char *);
- va_end(ap);
- sim_engine_abort (SD, CPU, NULL_CIA,
- "FATAL: Simulator error \"%s\"\n",msg);
- }
- }
-
- return;
-}
-
-
-
-/* This function implements what the MIPS32 and MIPS64 ISAs define as
- "UNPREDICTABLE" behaviour.
-
- About UNPREDICTABLE behaviour they say: "UNPREDICTABLE results
- may vary from processor implementation to processor implementation,
- instruction to instruction, or as a function of time on the same
- implementation or instruction. Software can never depend on results
- that are UNPREDICTABLE. ..." (MIPS64 Architecture for Programmers
- Volume II, The MIPS64 Instruction Set. MIPS Document MD00087 revision
- 0.95, page 2.)
-
- For UNPREDICTABLE behaviour, we print a message, if possible print
- the offending instructions mips.igen instruction name (provided by
- the caller), and stop the simulator.
-
- XXX FIXME: eventually, stopping the simulator should be made conditional
- on a command-line option. */
-void
-unpredictable_action(sim_cpu *cpu, address_word cia)
-{
- SIM_DESC sd = CPU_STATE(cpu);
-
- sim_io_eprintf(sd, "UNPREDICTABLE: PC = 0x%s\n", pr_addr (cia));
- sim_engine_halt (SD, CPU, NULL, cia, sim_stopped, SIM_SIGABRT);
-}
-
-
-/*-- co-processor support routines ------------------------------------------*/
-
-static int UNUSED
-CoProcPresent(unsigned int coproc_number)
-{
- /* Return TRUE if simulator provides a model for the given co-processor number */
- return(0);
-}
-
-void
-cop_lw (SIM_DESC sd,
- sim_cpu *cpu,
- address_word cia,
- int coproc_num,
- int coproc_reg,
- unsigned int memword)
-{
- switch (coproc_num)
- {
- case 1:
- if (CURRENT_FLOATING_POINT == HARD_FLOATING_POINT)
- {
-#ifdef DEBUG
- printf("DBG: COP_LW: memword = 0x%08X (uword64)memword = 0x%s\n",memword,pr_addr(memword));
-#endif
- StoreFPR(coproc_reg,fmt_word,(uword64)memword);
- FPR_STATE[coproc_reg] = fmt_uninterpreted;
- break;
- }
-
- default:
-#if 0 /* this should be controlled by a configuration option */
- sim_io_printf(sd,"COP_LW(%d,%d,0x%08X) at PC = 0x%s : TODO (architecture specific)\n",coproc_num,coproc_reg,memword,pr_addr(cia));
-#endif
- break;
- }
-
- return;
-}
-
-void
-cop_ld (SIM_DESC sd,
- sim_cpu *cpu,
- address_word cia,
- int coproc_num,
- int coproc_reg,
- uword64 memword)
-{
-
-#ifdef DEBUG
- printf("DBG: COP_LD: coproc_num = %d, coproc_reg = %d, value = 0x%s : PC = 0x%s\n", coproc_num, coproc_reg, pr_uword64(memword), pr_addr(cia) );
-#endif
-
- switch (coproc_num) {
- case 1:
- if (CURRENT_FLOATING_POINT == HARD_FLOATING_POINT)
- {
- StoreFPR(coproc_reg,fmt_uninterpreted,memword);
- break;
- }
-
- default:
-#if 0 /* this message should be controlled by a configuration option */
- sim_io_printf(sd,"COP_LD(%d,%d,0x%s) at PC = 0x%s : TODO (architecture specific)\n",coproc_num,coproc_reg,pr_addr(memword),pr_addr(cia));
-#endif
- break;
- }
-
- return;
-}
-
-
-
-
-unsigned int
-cop_sw (SIM_DESC sd,
- sim_cpu *cpu,
- address_word cia,
- int coproc_num,
- int coproc_reg)
-{
- unsigned int value = 0;
-
- switch (coproc_num)
- {
- case 1:
- if (CURRENT_FLOATING_POINT == HARD_FLOATING_POINT)
- {
- FP_formats hold;
- hold = FPR_STATE[coproc_reg];
- FPR_STATE[coproc_reg] = fmt_word;
- value = (unsigned int)ValueFPR(coproc_reg,fmt_uninterpreted);
- FPR_STATE[coproc_reg] = hold;
- break;
- }
-
- default:
-#if 0 /* should be controlled by configuration option */
- sim_io_printf(sd,"COP_SW(%d,%d) at PC = 0x%s : TODO (architecture specific)\n",coproc_num,coproc_reg,pr_addr(cia));
-#endif
- break;
- }
-
- return(value);
-}
-
-uword64
-cop_sd (SIM_DESC sd,
- sim_cpu *cpu,
- address_word cia,
- int coproc_num,
- int coproc_reg)
-{
- uword64 value = 0;
- switch (coproc_num)
- {
- case 1:
- if (CURRENT_FLOATING_POINT == HARD_FLOATING_POINT)
- {
- value = ValueFPR(coproc_reg,fmt_uninterpreted);
- break;
- }
-
- default:
-#if 0 /* should be controlled by configuration option */
- sim_io_printf(sd,"COP_SD(%d,%d) at PC = 0x%s : TODO (architecture specific)\n",coproc_num,coproc_reg,pr_addr(cia));
-#endif
- break;
- }
-
- return(value);
-}
-
-
-
-
-void
-decode_coproc (SIM_DESC sd,
- sim_cpu *cpu,
- address_word cia,
- unsigned int instruction)
-{
- int coprocnum = ((instruction >> 26) & 3);
-
- switch (coprocnum)
- {
- case 0: /* standard CPU control and cache registers */
- {
- int code = ((instruction >> 21) & 0x1F);
- int rt = ((instruction >> 16) & 0x1F);
- int rd = ((instruction >> 11) & 0x1F);
- int tail = instruction & 0x3ff;
- /* R4000 Users Manual (second edition) lists the following CP0
- instructions:
- CODE><-RT><RD-><--TAIL--->
- DMFC0 Doubleword Move From CP0 (VR4100 = 01000000001tttttddddd00000000000)
- DMTC0 Doubleword Move To CP0 (VR4100 = 01000000101tttttddddd00000000000)
- MFC0 word Move From CP0 (VR4100 = 01000000000tttttddddd00000000000)
- MTC0 word Move To CP0 (VR4100 = 01000000100tttttddddd00000000000)
- TLBR Read Indexed TLB Entry (VR4100 = 01000010000000000000000000000001)
- TLBWI Write Indexed TLB Entry (VR4100 = 01000010000000000000000000000010)
- TLBWR Write Random TLB Entry (VR4100 = 01000010000000000000000000000110)
- TLBP Probe TLB for Matching Entry (VR4100 = 01000010000000000000000000001000)
- CACHE Cache operation (VR4100 = 101111bbbbbpppppiiiiiiiiiiiiiiii)
- ERET Exception return (VR4100 = 01000010000000000000000000011000)
- */
- if (((code == 0x00) || (code == 0x04) /* MFC0 / MTC0 */
- || (code == 0x01) || (code == 0x05)) /* DMFC0 / DMTC0 */
- && tail == 0)
- {
- /* Clear double/single coprocessor move bit. */
- code &= ~1;
-
- /* M[TF]C0 (32 bits) | DM[TF]C0 (64 bits) */
-
- switch (rd) /* NOTEs: Standard CP0 registers */
- {
- /* 0 = Index R4000 VR4100 VR4300 */
- /* 1 = Random R4000 VR4100 VR4300 */
- /* 2 = EntryLo0 R4000 VR4100 VR4300 */
- /* 3 = EntryLo1 R4000 VR4100 VR4300 */
- /* 4 = Context R4000 VR4100 VR4300 */
- /* 5 = PageMask R4000 VR4100 VR4300 */
- /* 6 = Wired R4000 VR4100 VR4300 */
- /* 8 = BadVAddr R4000 VR4100 VR4300 */
- /* 9 = Count R4000 VR4100 VR4300 */
- /* 10 = EntryHi R4000 VR4100 VR4300 */
- /* 11 = Compare R4000 VR4100 VR4300 */
- /* 12 = SR R4000 VR4100 VR4300 */
-#ifdef SUBTARGET_R3900
- case 3:
- /* 3 = Config R3900 */
- case 7:
- /* 7 = Cache R3900 */
- case 15:
- /* 15 = PRID R3900 */
-
- /* ignore */
- break;
-
- case 8:
- /* 8 = BadVAddr R4000 VR4100 VR4300 */
- if (code == 0x00)
- GPR[rt] = (signed_word) (signed_address) COP0_BADVADDR;
- else
- COP0_BADVADDR = GPR[rt];
- break;
-
-#endif /* SUBTARGET_R3900 */
- case 12:
- if (code == 0x00)
- GPR[rt] = SR;
- else
- SR = GPR[rt];
- break;
- /* 13 = Cause R4000 VR4100 VR4300 */
- case 13:
- if (code == 0x00)
- GPR[rt] = CAUSE;
- else
- CAUSE = GPR[rt];
- break;
- /* 14 = EPC R4000 VR4100 VR4300 */
- case 14:
- if (code == 0x00)
- GPR[rt] = (signed_word) (signed_address) EPC;
- else
- EPC = GPR[rt];
- break;
- /* 15 = PRId R4000 VR4100 VR4300 */
-#ifdef SUBTARGET_R3900
- /* 16 = Debug */
- case 16:
- if (code == 0x00)
- GPR[rt] = Debug;
- else
- Debug = GPR[rt];
- break;
-#else
- /* 16 = Config R4000 VR4100 VR4300 */
- case 16:
- if (code == 0x00)
- GPR[rt] = C0_CONFIG;
- else
- C0_CONFIG = GPR[rt];
- break;
-#endif
-#ifdef SUBTARGET_R3900
- /* 17 = Debug */
- case 17:
- if (code == 0x00)
- GPR[rt] = DEPC;
- else
- DEPC = GPR[rt];
- break;
-#else
- /* 17 = LLAddr R4000 VR4100 VR4300 */
-#endif
- /* 18 = WatchLo R4000 VR4100 VR4300 */
- /* 19 = WatchHi R4000 VR4100 VR4300 */
- /* 20 = XContext R4000 VR4100 VR4300 */
- /* 26 = PErr or ECC R4000 VR4100 VR4300 */
- /* 27 = CacheErr R4000 VR4100 */
- /* 28 = TagLo R4000 VR4100 VR4300 */
- /* 29 = TagHi R4000 VR4100 VR4300 */
- /* 30 = ErrorEPC R4000 VR4100 VR4300 */
- if (STATE_VERBOSE_P(SD))
- sim_io_eprintf (SD,
- "Warning: PC 0x%lx:interp.c decode_coproc DEADC0DE\n",
- (unsigned long)cia);
- GPR[rt] = 0xDEADC0DE; /* CPR[0,rd] */
- /* CPR[0,rd] = GPR[rt]; */
- default:
- if (code == 0x00)
- GPR[rt] = (signed_word) (signed32) COP0_GPR[rd];
- else
- COP0_GPR[rd] = GPR[rt];
-#if 0
- if (code == 0x00)
- sim_io_printf(sd,"Warning: MFC0 %d,%d ignored, PC=%08x (architecture specific)\n",rt,rd, (unsigned)cia);
- else
- sim_io_printf(sd,"Warning: MTC0 %d,%d ignored, PC=%08x (architecture specific)\n",rt,rd, (unsigned)cia);
-#endif
- }
- }
- else if (code == 0x10 && (tail & 0x3f) == 0x18)
- {
- /* ERET */
- if (SR & status_ERL)
- {
- /* Oops, not yet available */
- sim_io_printf(sd,"Warning: ERET when SR[ERL] set not handled yet");
- PC = EPC;
- SR &= ~status_ERL;
- }
- else
- {
- PC = EPC;
- SR &= ~status_EXL;
- }
- }
- else if (code == 0x10 && (tail & 0x3f) == 0x10)
- {
- /* RFE */
-#ifdef SUBTARGET_R3900
- /* TX39: Copy IEp/KUp -> IEc/KUc, and IEo/KUo -> IEp/KUp */
-
- /* shift IE/KU history bits right */
- SR = LSMASKED32(SR, 31, 4) | LSINSERTED32(LSEXTRACTED32(SR, 5, 2), 3, 0);
-
- /* TODO: CACHE register */
-#endif /* SUBTARGET_R3900 */
- }
- else if (code == 0x10 && (tail & 0x3f) == 0x1F)
- {
- /* DERET */
- Debug &= ~Debug_DM;
- DELAYSLOT();
- DSPC = DEPC;
- }
- else
- sim_io_eprintf(sd,"Unrecognised COP0 instruction 0x%08X at PC = 0x%s : No handler present\n",instruction,pr_addr(cia));
- /* TODO: When executing an ERET or RFE instruction we should
- clear LLBIT, to ensure that any out-standing atomic
- read/modify/write sequence fails. */
- }
- break;
-
- case 2: /* co-processor 2 */
- {
- int handle = 0;
-
-
- if(! handle)
- {
- sim_io_eprintf(sd, "COP2 instruction 0x%08X at PC = 0x%s : No handler present\n",
- instruction,pr_addr(cia));
- }
- }
- break;
-
- case 1: /* should not occur (FPU co-processor) */
- case 3: /* should not occur (FPU co-processor) */
- SignalException(ReservedInstruction,instruction);
- break;
- }
-
- return;
-}
-
-
-/* This code copied from gdb's utils.c. Would like to share this code,
- but don't know of a common place where both could get to it. */
-
-/* Temporary storage using circular buffer */
-#define NUMCELLS 16
-#define CELLSIZE 32
-static char*
-get_cell (void)
-{
- static char buf[NUMCELLS][CELLSIZE];
- static int cell=0;
- if (++cell>=NUMCELLS) cell=0;
- return buf[cell];
-}
-
-/* Print routines to handle variable size regs, etc */
-
-/* Eliminate warning from compiler on 32-bit systems */
-static int thirty_two = 32;
-
-char*
-pr_addr(addr)
- SIM_ADDR addr;
-{
- char *paddr_str=get_cell();
- switch (sizeof(addr))
- {
- case 8:
- sprintf(paddr_str,"%08lx%08lx",
- (unsigned long)(addr>>thirty_two),(unsigned long)(addr&0xffffffff));
- break;
- case 4:
- sprintf(paddr_str,"%08lx",(unsigned long)addr);
- break;
- case 2:
- sprintf(paddr_str,"%04x",(unsigned short)(addr&0xffff));
- break;
- default:
- sprintf(paddr_str,"%x",addr);
- }
- return paddr_str;
-}
-
-char*
-pr_uword64(addr)
- uword64 addr;
-{
- char *paddr_str=get_cell();
- sprintf(paddr_str,"%08lx%08lx",
- (unsigned long)(addr>>thirty_two),(unsigned long)(addr&0xffffffff));
- return paddr_str;
-}
-
-
-void
-mips_core_signal (SIM_DESC sd,
- sim_cpu *cpu,
- sim_cia cia,
- unsigned map,
- int nr_bytes,
- address_word addr,
- transfer_type transfer,
- sim_core_signals sig)
-{
- const char *copy = (transfer == read_transfer ? "read" : "write");
- address_word ip = CIA_ADDR (cia);
-
- switch (sig)
- {
- case sim_core_unmapped_signal:
- sim_io_eprintf (sd, "mips-core: %d byte %s to unmapped address 0x%lx at 0x%lx\n",
- nr_bytes, copy,
- (unsigned long) addr, (unsigned long) ip);
- COP0_BADVADDR = addr;
- SignalExceptionDataReference();
- break;
-
- case sim_core_unaligned_signal:
- sim_io_eprintf (sd, "mips-core: %d byte %s to unaligned address 0x%lx at 0x%lx\n",
- nr_bytes, copy,
- (unsigned long) addr, (unsigned long) ip);
- COP0_BADVADDR = addr;
- if(transfer == read_transfer)
- SignalExceptionAddressLoad();
- else
- SignalExceptionAddressStore();
- break;
-
- default:
- sim_engine_abort (sd, cpu, cia,
- "mips_core_signal - internal error - bad switch");
- }
-}
-
-
-void
-mips_cpu_exception_trigger(SIM_DESC sd, sim_cpu* cpu, address_word cia)
-{
- ASSERT(cpu != NULL);
-
- if(cpu->exc_suspended > 0)
- sim_io_eprintf(sd, "Warning, nested exception triggered (%d)\n", cpu->exc_suspended);
-
- PC = cia;
- memcpy(cpu->exc_trigger_registers, cpu->registers, sizeof(cpu->exc_trigger_registers));
- cpu->exc_suspended = 0;
-}
-
-void
-mips_cpu_exception_suspend(SIM_DESC sd, sim_cpu* cpu, int exception)
-{
- ASSERT(cpu != NULL);
-
- if(cpu->exc_suspended > 0)
- sim_io_eprintf(sd, "Warning, nested exception signal (%d then %d)\n",
- cpu->exc_suspended, exception);
-
- memcpy(cpu->exc_suspend_registers, cpu->registers, sizeof(cpu->exc_suspend_registers));
- memcpy(cpu->registers, cpu->exc_trigger_registers, sizeof(cpu->registers));
- cpu->exc_suspended = exception;
-}
-
-void
-mips_cpu_exception_resume(SIM_DESC sd, sim_cpu* cpu, int exception)
-{
- ASSERT(cpu != NULL);
-
- if(exception == 0 && cpu->exc_suspended > 0)
- {
- /* warn not for breakpoints */
- if(cpu->exc_suspended != sim_signal_to_host(sd, SIM_SIGTRAP))
- sim_io_eprintf(sd, "Warning, resuming but ignoring pending exception signal (%d)\n",
- cpu->exc_suspended);
- }
- else if(exception != 0 && cpu->exc_suspended > 0)
- {
- if(exception != cpu->exc_suspended)
- sim_io_eprintf(sd, "Warning, resuming with mismatched exception signal (%d vs %d)\n",
- cpu->exc_suspended, exception);
-
- memcpy(cpu->registers, cpu->exc_suspend_registers, sizeof(cpu->registers));
- }
- else if(exception != 0 && cpu->exc_suspended == 0)
- {
- sim_io_eprintf(sd, "Warning, ignoring spontanous exception signal (%d)\n", exception);
- }
- cpu->exc_suspended = 0;
-}
-
-
-/*---------------------------------------------------------------------------*/
-/*> EOF interp.c <*/
diff --git a/sim/mips/m16.dc b/sim/mips/m16.dc
deleted file mode 100644
index 292587c..0000000
--- a/sim/mips/m16.dc
+++ /dev/null
@@ -1,25 +0,0 @@
-# most instructions
-# ------ options ------ : Fst : Lst : ff : fl : fe : word : --- fmt --- : model ...
-# { : mask : value : word }
-
-# Top level - create a very big switch statement.
-
- padded-switch,combine : 15 : 11 : : : : : :
-
- switch,combine : 10 : 8 : : : : : :
-
- switch,combine : 4 : 0 : : : : : :
-
- switch,combine : 7 : 5 : : : : : :
-
-
-# Extended instructions, decode the same way
-
- padded-switch,combine : 15 : 11 : : : : 1 : :
-
- switch,combine : 10 : 8 : : : : 1 : :
-
- switch,combine : 4 : 0 : : : : 1 : :
-
- switch,combine : 7 : 5 : : : : 1 : :
-
diff --git a/sim/mips/m16.igen b/sim/mips/m16.igen
deleted file mode 100644
index f87a863..0000000
--- a/sim/mips/m16.igen
+++ /dev/null
@@ -1,1236 +0,0 @@
-// -*- C -*-
-//
-//
-// MIPS Architecture:
-//
-// CPU Instruction Set (mips16)
-//
-
-// The instructions in this section are ordered according
-// to http://www.sgi.com/MIPS/arch/MIPS16/mips16.pdf.
-
-
-// The MIPS16 codes registers in a special way, map from one to the other.
-// :<type>:<flags>:<models>:<typedef>:<name>:<field>:<expression>
-:compute:::int:TRX:RX:((RX < 2) ? (16 + RX) \: RX)
-:compute:::int:TRY:RY:((RY < 2) ? (16 + RY) \: RY)
-:compute:::int:TRZ:RZ:((RZ < 2) ? (16 + RZ) \: RZ)
-:compute:::int:SHIFT:SHAMT:((SHAMT == 0) ? 8 \: SHAMT)
-
-:compute:::int:SHAMT:SHAMT_4_0,S5:(LSINSERTED (S5, 5, 5) | SHAMT_4_0)
-
-:compute:::address_word:IMMEDIATE:IMM_25_21,IMM_20_16,IMMED_15_0:(LSINSERTED (IMM_25_21, 25, 21) | LSINSERTED (IMM_20_16, 20, 16) | LSINSERTED (IMMED_15_0, 15, 0))
-:compute:::int:R32:R32L,R32H:((R32H << 3) | R32L)
-
-:compute:::address_word:IMMEDIATE:IMM_10_5,IMM_15_11,IMM_4_0:(LSINSERTED (IMM_10_5, 10, 5) | LSINSERTED (IMM_15_11, 15, 11) | LSINSERTED (IMM_4_0, 4, 0))
-
-:compute:::address_word:IMMEDIATE:IMM_10_4,IMM_14_11,IMM_3_0:(LSINSERTED (IMM_10_4, 10, 4) | LSINSERTED (IMM_14_11, 14, 11) | LSINSERTED (IMM_3_0, 3, 0))
-
-
-// Load and Store Instructions
-
-
-10000,3.RX,3.RY,5.IMMED:RRI:16::LB
-"lb r<TRY>, <IMMED> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- GPR[TRY] = EXTEND8 (do_load (SD_, AccessLength_BYTE, GPR[TRX], IMMED));
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 10000,3.RX,3.RY,5.IMM_4_0:EXT-RRI:16::LB
-"lb r<TRY>, <IMMEDIATE> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- GPR[TRY] = EXTEND8 (do_load (SD_, AccessLength_BYTE, GPR[TRX], EXTEND16 (IMMEDIATE)));
-}
-
-
-
-10100,3.RX,3.RY,5.IMMED:RRI:16::LBU
-"lbu r<TRY>, <IMMED> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- GPR[TRY] = do_load (SD_, AccessLength_BYTE, GPR[TRX], IMMED);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 10100,3.RX,3.RY,5.IMM_4_0:EXT-RRI:16::LBU
-"lbu r<TRY>, <IMMEDIATE> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- GPR[TRY] = do_load (SD_, AccessLength_BYTE, GPR[TRX], EXTEND16 (IMMEDIATE));
-}
-
-
-
-10001,3.RX,3.RY,5.IMMED:RRI:16::LH
-"lh r<TRY>, <IMMED> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- GPR[TRY] = EXTEND16 (do_load (SD_, AccessLength_HALFWORD, GPR[TRX], IMMED << 1));
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 10001,3.RX,3.RY,5.IMM_4_0:EXT-RRI:16::LH
-"lh r<TRY>, <IMMEDIATE> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- GPR[TRY] = EXTEND16 (do_load (SD_, AccessLength_HALFWORD, GPR[TRX], EXTEND16 (IMMEDIATE)));
-}
-
-
-
-10101,3.RX,3.RY,5.IMMED:RRI:16::LHU
-"lhu r<TRY>, <IMMED> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- GPR[TRY] = do_load (SD_, AccessLength_HALFWORD, GPR[TRX], IMMED << 1);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 10101,3.RX,3.RY,5.IMM_4_0:EXT-RRI:16::LHU
-"lhu r<TRY>, <IMMEDIATE> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- GPR[TRY] = do_load (SD_, AccessLength_HALFWORD, GPR[TRX], EXTEND16 (IMMEDIATE));
-}
-
-
-
-10011,3.RX,3.RY,5.IMMED:RRI:16::LW
-"lw r<TRY>, <IMMED> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- GPR[TRY] = EXTEND32 (do_load (SD_, AccessLength_WORD, GPR[TRX], IMMED << 2));
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 10011,3.RX,3.RY,5.IMM_4_0:EXT-RRI:16::LW
-"lw r<TRY>, <IMMEDIATE> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- GPR[TRY] = EXTEND32 (do_load (SD_, AccessLength_WORD, GPR[TRX], EXTEND16 (IMMEDIATE)));
-}
-
-
-
-10110,3.RX,8.IMMED:RI:16::LWPC
-"lw r<TRX>, <IMMED> (PC)"
-*mips16:
-*vr4100:
-{
- GPR[TRX] = EXTEND32 (do_load (SD_, AccessLength_WORD,
- basepc (SD_) & ~3, IMMED << 2));
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 10110,3.RX,000,5.IMM_4_0:EXT-RI:16::LWPC
-"lw r<TRX>, <IMMEDIATE> (PC)"
-*mips16:
-*vr4100:
-{
- GPR[TRX] = EXTEND32 (do_load (SD_, AccessLength_WORD, basepc (SD_) & ~3, EXTEND16 (IMMEDIATE)));
-}
-
-
-
-10010,3.RX,8.IMMED:RI:16::LWSP
-"lw r<TRX>, <IMMED> (SP)"
-*mips16:
-*vr4100:
-{
- GPR[TRX] = EXTEND32 (do_load (SD_, AccessLength_WORD, SP, IMMED << 2));
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 10010,3.RX,000,5.IMM_4_0:EXT-RI:16::LWSP
-"lw r<TRX>, <IMMEDIATE> (SP)"
-*mips16:
-*vr4100:
-{
- GPR[TRX] = EXTEND32 (do_load (SD_, AccessLength_WORD, SP, EXTEND16 (IMMEDIATE)));
-}
-
-
-
-10111,3.RX,3.RY,5.IMMED:RRI:16::LWU
-"lwu r<TRY>, <IMMED> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- GPR[TRY] = do_load (SD_, AccessLength_WORD, GPR[TRX], IMMED << 2);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 10111,3.RX,3.RY,5.IMM_4_0:EXT-RRI:16::LWU
-"lwu r<TRY>, <IMMEDIATE> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- GPR[TRY] = do_load (SD_, AccessLength_WORD, GPR[TRX], EXTEND16 (IMMEDIATE));
-}
-
-
-
-00111,3.RX,3.RY,5.IMMED:RRI:16::LD
-"ld r<TRY>, <IMMED> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- GPR[TRY] = do_load (SD_, AccessLength_DOUBLEWORD, GPR[TRX], IMMED << 3);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 00111,3.RX,3.RY,5.IMM_4_0:EXT-RRI:16::LD
-"ld r<TRY>, <IMMEDIATE> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- GPR[TRY] = do_load (SD_, AccessLength_DOUBLEWORD, GPR[TRX], EXTEND16 (IMMEDIATE));
-}
-
-
-
-11111,100,3.RY,5.IMMED:RI64:16::LDPC
-"ld r<TRY>, <IMMED> (PC)"
-*mips16:
-*vr4100:
-{
- GPR[TRY] = do_load (SD_, AccessLength_DOUBLEWORD,
- basepc (SD_) & ~7, IMMED << 3);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 11111,100,3.RY,5.IMM_4_0:EXT-RI64:16::LDPC
-"ld r<TRY>, <IMMEDIATE> (PC)"
-*mips16:
-*vr4100:
-{
- GPR[TRY] = do_load (SD_, AccessLength_DOUBLEWORD, basepc (SD_) & ~7, EXTEND16 (IMMEDIATE));
-}
-
-
-
-11111,000,3.RY,5.IMMED:RI64:16::LDSP
-"ld r<TRY>, <IMMED> (SP)"
-*mips16:
-*vr4100:
-{
- GPR[TRY] = do_load (SD_, AccessLength_DOUBLEWORD, SP, IMMED << 3);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 11111,000,3.RY,5.IMM_4_0:EXT-RI64:16::LDSP
-"ld r<TRY>, <IMMEDIATE> (SP)"
-*mips16:
-*vr4100:
-{
- GPR[TRY] = do_load (SD_, AccessLength_DOUBLEWORD, SP, EXTEND16 (IMMEDIATE));
-}
-
-
-
-11000,3.RX,3.RY,5.IMMED:RRI:16::SB
-"sb r<TRY>, <IMMED> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- do_store (SD_, AccessLength_BYTE, GPR[TRX], IMMED, GPR[TRY]);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 11000,3.RX,3.RY,5.IMM_4_0:EXT-RRI:16::SB
-"sb r<TRY>, <IMMEDIATE> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- do_store (SD_, AccessLength_BYTE, GPR[TRX], EXTEND16 (IMMEDIATE), GPR[TRY]);
-}
-
-
-
-11001,3.RX,3.RY,5.IMMED:RRI:16::SH
-"sh r<TRY>, <IMMED> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- do_store (SD_, AccessLength_HALFWORD, GPR[TRX], IMMED << 1, GPR[TRY]);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 11001,3.RX,3.RY,5.IMM_4_0:EXT-RRI:16::SH
-"sh r<TRY>, <IMMEDIATE> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- do_store (SD_, AccessLength_HALFWORD, GPR[TRX], EXTEND16 (IMMEDIATE), GPR[TRY]);
-}
-
-
-
-11011,3.RX,3.RY,5.IMMED:RRI:16::SW
-"sw r<TRY>, <IMMED> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- do_store (SD_, AccessLength_WORD, GPR[TRX], IMMED << 2, GPR[TRY]);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 11011,3.RX,3.RY,5.IMM_4_0:EXT-RRI:16::SW
-"sw r<TRY>, <IMMEDIATE> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- do_store (SD_, AccessLength_WORD, GPR[TRX], EXTEND16 (IMMEDIATE), GPR[TRY]);
-}
-
-
-
-11010,3.RX,8.IMMED:RI:16::SWSP
-"sw r<TRX>, <IMMED> (SP)"
-*mips16:
-*vr4100:
-{
- do_store (SD_, AccessLength_WORD, SP, IMMED << 2, GPR[TRX]);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 11010,3.RX,000,5.IMM_4_0:EXT-RI:16::SWSP
-"sw r<TRX>, <IMMEDIATE> (SP)"
-*mips16:
-*vr4100:
-{
- do_store (SD_, AccessLength_WORD, SP, EXTEND16 (IMMEDIATE), GPR[TRX]);
-}
-
-
-
-01100,010,8.IMMED:I8:16::SWRASP
-"sw r<RAIDX>, <IMMED> (SP)"
-*mips16:
-*vr4100:
-{
- do_store (SD_, AccessLength_WORD, SP, IMMED << 2, RA);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 01100,010,000,5.IMM_4_0:EXT-I8:16::SWRASP
-"sw r<RAIDX>, <IMMEDIATE> (SP)"
-*mips16:
-*vr4100:
-{
- do_store (SD_, AccessLength_WORD, SP, EXTEND16 (IMMEDIATE), RA);
-}
-
-
-
-01111,3.RX,3.RY,5.IMMED:RRI:16::SD
-"sd r<TRY>, <IMMED> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- do_store (SD_, AccessLength_DOUBLEWORD, GPR[TRX], IMMED << 3, GPR[TRY]);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 01111,3.RX,3.RY,5.IMM_4_0:EXT-RRI:16::SD
-"sd r<TRY>, <IMMEDIATE> (r<TRX>)"
-*mips16:
-*vr4100:
-{
- do_store (SD_, AccessLength_DOUBLEWORD, GPR[TRX], EXTEND16 (IMMEDIATE), GPR[TRY]);
-}
-
-
-
-11111,001,3.RY,5.IMMED:RI64:16::SDSP
-"sd r<TRY>, <IMMED> (SP)"
-*mips16:
-*vr4100:
-{
- do_store (SD_, AccessLength_DOUBLEWORD, SP, IMMED << 3, GPR[TRY]);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 11111,001,3.RY,5.IMM_4_0:EXT-RI64:16::SDSP
-"sd r<TRY>, <IMMEDIATE> (SP)"
-*mips16:
-*vr4100:
-{
- do_store (SD_, AccessLength_DOUBLEWORD, SP, EXTEND16 (IMMEDIATE), GPR[TRY]);
-}
-
-
-
-11111,010,8.IMMED:I64:16::SDRASP
-"sd r<RAIDX>, <IMMED> (SP)"
-*mips16:
-*vr4100:
-{
- do_store (SD_, AccessLength_DOUBLEWORD, SP, IMMED << 3, RA);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 11111,010,000,5.IMM_4_0:EXT-I64:16::SDRASP
-"sd r<RAIDX>, <IMMEDIATE> (SP)"
-*mips16:
-*vr4100:
-{
- do_store (SD_, AccessLength_DOUBLEWORD, SP, EXTEND16 (IMMEDIATE), RA);
-}
-
-
-
-// ALU Immediate Instructions
-
-
-01101,3.RX,8.IMMED:RI:16::LI
-"li r<TRX>, <IMMED>"
-*mips16:
-*vr4100:
-{
- do_ori (SD_, 0, TRX, IMMED);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 01101,3.RX,000,5.IMM_4_0:EXT-RI:16::LI
-"li r<TRX>, <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- do_ori (SD_, 0, TRX, IMMEDIATE);
-}
-
-
-
-01000,3.RX,3.RY,0,4.IMMED:RRI-A:16::ADDIU
-"addiu r<TRY>, r<TRX>, <IMMED>"
-*mips16:
-*vr4100:
-{
- do_addiu (SD_, TRX, TRY, EXTEND4 (IMMED));
-}
-
-11110,7.IMM_10_4,4.IMM_14_11 + 01000,3.RX,3.RY,0,4.IMM_3_0:EXT-RRI-A:16::ADDIU
-"addiu r<TRY>, r<TRX>, <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- do_addiu (SD_, TRX, TRY, EXTEND15 (IMMEDIATE));
-}
-
-
-
-01001,3.RX,8.IMMED:RI:16::ADDIU8
-"addiu r<TRX>, <IMMED>"
-*mips16:
-*vr4100:
-{
- do_addiu (SD_, TRX, TRX, EXTEND8 (IMMED));
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 01001,3.RX,000,5.IMM_4_0:EXT-RI:16::ADDIU8
-"addiu r<TRX>, <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- do_addiu (SD_, TRX, TRX, EXTEND16 (IMMEDIATE));
-}
-
-
-
-01100,011,8.IMMED:I8:16::ADJSP
-"addiu SP, <IMMED>"
-*mips16:
-*vr4100:
-{
- do_addiu (SD_, SPIDX, SPIDX, EXTEND8 (IMMED) << 3);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 01100,011,000,5.IMM_4_0:EXT-I8:16::ADJSP
-"addiu SP, <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- do_addiu (SD_, SPIDX, SPIDX, EXTEND16 (IMMEDIATE));
-}
-
-
-
-00001,3.RX,8.IMMED:RI:16::ADDIUPC
-"addiu r<TRX>, PC, <IMMED>"
-*mips16:
-*vr4100:
-{
- unsigned32 temp = (basepc (SD_) & ~3) + (IMMED << 2);
- GPR[TRX] = EXTEND32 (temp);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 00001,3.RX,000,5.IMM_4_0:EXT-RI:16::ADDIUPC
-"addiu r<TRX>, PC, <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- unsigned32 temp = (basepc (SD_) & ~3) + EXTEND16 (IMMEDIATE);
- GPR[TRX] = EXTEND32 (temp);
-}
-
-
-
-00000,3.RX,8.IMMED:RI:16::ADDIUSP
-"addiu r<TRX>, SP, <IMMED>"
-*mips16:
-*vr4100:
-{
- do_addiu (SD_, SPIDX, TRX, IMMED << 2);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 00000,3.RX,000,5.IMM_4_0:EXT-RI:16::ADDIUSP
-"addiu r<TRX>, SP, <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- do_addiu (SD_, SPIDX, TRX, EXTEND16 (IMMEDIATE));
-}
-
-
-
-01000,3.RX,3.RY,1,4.IMMED:RRI-A:16::DADDIU
-"daddiu r<TRY>, r<TRX>, <IMMED>"
-*mips16:
-*vr4100:
-{
- do_daddiu (SD_, TRX, TRY, EXTEND4 (IMMED));
-}
-
-11110,7.IMM_10_4,4.IMM_14_11 + 01000,3.RX,3.RY,1,4.IMM_3_0:EXT-RRI-A:16::DADDIU
-"daddiu r<TRY>, r<TRX>, <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- do_daddiu (SD_, TRX, TRY, EXTEND15 (IMMEDIATE));
-}
-
-
-
-11111,101,3.RY,5.IMMED:RI64:16::DADDIU5
-"daddiu r<TRY>, <IMMED>"
-*mips16:
-*vr4100:
-{
- do_daddiu (SD_, TRY, TRY, EXTEND5 (IMMED));
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 11111,101,3.RY,5.IMM_4_0:EXT-RI64:16::DADDIU5
-"daddiu r<TRY>, <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- do_daddiu (SD_, TRY, TRY, EXTEND16 (IMMEDIATE));
-}
-
-
-
-11111,011,8.IMMED:I64:16::DADJSP
-"daddiu SP, <IMMED>"
-*mips16:
-*vr4100:
-{
- do_daddiu (SD_, SPIDX, SPIDX, EXTEND8 (IMMED) << 3);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 11111,011,000,5.IMM_4_0:EXT-I64:16::DADJSP
-"daddiu SP, <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- do_daddiu (SD_, SPIDX, SPIDX, EXTEND16 (IMMEDIATE));
-}
-
-
-
-11111,110,3.RY,5.IMMED:RI64:16::DADDIUPC
-"daddiu r<TRY>, PC, <IMMED>"
-*mips16:
-*vr4100:
-{
- GPR[TRY] = (basepc (SD_) & ~3) + (IMMED << 2);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 11111,110,3.RY,5.IMM_4_0:EXT-RI64:16::DADDIUPC
-"daddiu r<TRY>, PC, <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- GPR[TRY] = (basepc (SD_) & ~3) + EXTEND16 (IMMEDIATE);
-}
-
-
-
-11111,111,3.RY,5.IMMED:RI64:16::DADDIUSP
-"daddiu r<TRY>, SP, <IMMED>"
-*mips16:
-*vr4100:
-{
- do_daddiu (SD_, SPIDX, TRY, IMMED << 2);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 11111,111,3.RY,5.IMM_4_0:EXT-RI64:16::DADDIUSP
-"daddiu r<TRY>, SP, <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- do_daddiu (SD_, SPIDX, TRY, EXTEND16 (IMMEDIATE));
-}
-
-
-
-01010,3.RX,8.IMMED:RI:16::SLTI
-"slti r<TRX>, <IMMED>"
-*mips16:
-*vr4100:
-{
- do_slti (SD_, TRX, T8IDX, IMMED);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 01010,3.RX,000,5.IMM_4_0:EXT-RI:16::SLTI
-"slti r<TRX>, <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- do_slti (SD_, TRX, T8IDX, IMMEDIATE);
-}
-
-
-
-01011,3.RX,8.IMMED:RI:16::SLTIU
-"sltiu r<TRX>, <IMMED>"
-*mips16:
-*vr4100:
-{
- do_sltiu (SD_, TRX, T8IDX, IMMED);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 01011,3.RX,000,5.IMM_4_0:EXT-RI:16::SLTIU
-"sltiu r<TRX>, <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- do_sltiu (SD_, TRX, T8IDX, IMMEDIATE);
-}
-
-
-
-11101,3.RX,3.RY,01010:RR:16::CMP
-"cmp r<TRX>, r<TRY>"
-*mips16:
-*vr4100:
-{
- do_xor (SD_, TRX, TRY, T8IDX);
-}
-
-
-01110,3.RX,8.IMMED:RI:16::CMPI
-"cmpi r<TRX>, <IMMED>"
-*mips16:
-*vr4100:
-{
- do_xori (SD_, TRX, T8IDX, IMMED);
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 01110,3.RX,000,5.IMM_4_0:EXT-RI:16::CMPI
-"sltiu r<TRX>, <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- do_xori (SD_, TRX, T8IDX, IMMEDIATE);
-}
-
-
-
-// Two/Three Operand, Register-Type
-
-
-
-11100,3.RX,3.RY,3.RZ,01:RRR:16::ADDU
-"addu r<TRZ>, r<TRX>, r<TRY>"
-*mips16:
-*vr4100:
-{
- do_addu (SD_, TRX, TRY, TRZ);
-}
-
-
-
-11100,3.RX,3.RY,3.RZ,11:RRR:16::SUBU
-"subu r<TRZ>, r<TRX>, r<TRY>"
-*mips16:
-*vr4100:
-{
- do_subu (SD_, TRX, TRY, TRZ);
-}
-
-11100,3.RX,3.RY,3.RZ,00:RRR:16::DADDU
-"daddu r<TRZ>, r<TRX>, r<TRY>"
-*mips16:
-*vr4100:
-{
- do_daddu (SD_, TRX, TRY, TRZ);
-}
-
-
-
-11100,3.RX,3.RY,3.RZ,10:RRR:16::DSUBU
-"dsubu r<TRZ>, r<TRX>, r<TRY>"
-*mips16:
-*vr4100:
-{
- do_dsubu (SD_, TRX, TRY, TRZ);
-}
-
-
-
-11101,3.RX,3.RY,00010:RR:16::SLT
-"slt r<TRX>, r<TRY>"
-*mips16:
-*vr4100:
-{
- do_slt (SD_, TRX, TRY, T8IDX);
-}
-
-
-
-11101,3.RX,3.RY,00011:RR:16::SLTU
-"sltu r<TRX>, r<TRY>"
-*mips16:
-*vr4100:
-{
- do_sltu (SD_, TRX, TRY, T8IDX);
-}
-
-
-
-11101,3.RX,3.RY,01011:RR:16::NEG
-"neg r<TRX>, r<TRY>"
-*mips16:
-*vr4100:
-{
- do_subu (SD_, 0, TRY, TRX);
-}
-
-
-
-11101,3.RX,3.RY,01100:RR:16::AND
-"and r<TRX>, r<TRY>"
-*mips16:
-*vr4100:
-{
- do_and (SD_, TRX, TRY, TRX);
-}
-
-
-
-11101,3.RX,3.RY,01101:RR:16::OR
-"or r<TRX>, r<TRY>"
-*mips16:
-*vr4100:
-{
- do_or (SD_, TRX, TRY, TRX);
-}
-
-
-
-11101,3.RX,3.RY,01110:RR:16::XOR
-"xor r<TRX>, r<TRY>"
-*mips16:
-*vr4100:
-{
- do_xor (SD_, TRX, TRY, TRX);
-}
-
-
-
-11101,3.RX,3.RY,01111:RR:16::NOT
-"not r<TRX>, r<TRY>"
-*mips16:
-*vr4100:
-{
- do_nor (SD_, 0, TRY, TRX);
-}
-
-
-
-01100,111,3.RY,5.R32:I8_MOVR32:16::MOVR32
-"move r<TRY>, r<R32>"
-*mips16:
-*vr4100:
-{
- do_or (SD_, R32, 0, TRY);
-}
-
-
-
-01100,101,3.R32L,2.R32H,3.RZ:I8_MOV32R:16::MOV32R
-"move r<R32>, r<TRZ>"
-*mips16:
-*vr4100:
-{
- do_or (SD_, TRZ, 0, R32);
-}
-
-
-
-00110,3.RX,3.RY,3.SHAMT,00:SHIFT:16::SLL
-"sll r<TRX>, r<TRY>, <SHIFT>"
-*mips16:
-*vr4100:
-{
- do_sll (SD_, TRY, TRX, SHIFT);
-}
-
-11110,5.SHAMT,0,00000 + 00110,3.RX,3.RY,000,00:EXT-SHIFT:16::SLL
-"sll r<TRX>, r<TRY>, <SHIFT>"
-*mips16:
-*vr4100:
-{
- do_sll (SD_, TRY, TRX, SHAMT);
-}
-
-
-
-00110,3.RX,3.RY,3.SHAMT,10:SHIFT:16::SRL
-"srl r<TRX>, r<TRY>, <SHIFT>"
-*mips16:
-*vr4100:
-{
- do_srl (SD_, TRY, TRX, SHIFT);
-}
-
-11110,5.SHAMT,0,00000 + 00110,3.RX,3.RY,000,10:EXT-SHIFT:16::SRL
-"srl r<TRX>, r<TRY>, <SHIFT>"
-*mips16:
-*vr4100:
-{
- do_srl (SD_, TRY, TRX, SHAMT);
-}
-
-
-
-00110,3.RX,3.RY,3.SHAMT,11:SHIFT:16::SRA
-"sra r<TRX>, r<TRY>, <SHIFT>"
-*mips16:
-*vr4100:
-{
- do_sra (SD_, TRY, TRX, SHIFT);
-}
-
-11110,5.SHAMT,0,00000 + 00110,3.RX,3.RY,000,11:EXT-SHIFT:16::SRA
-"sra r<TRX>, r<TRY>, <SHIFT>"
-*mips16:
-*vr4100:
-{
- do_sra (SD_, TRY, TRX, SHAMT);
-}
-
-
-
-11101,3.RX,3.RY,00100:RR:16::SLLV
-"sllv r<TRY>, r<TRX>"
-*mips16:
-*vr4100:
-{
- do_sllv (SD_, TRX, TRY, TRY);
-}
-
-
-11101,3.RX,3.RY,00110:RR:16::SRLV
-"srlv r<TRY>, r<TRX>"
-*mips16:
-*vr4100:
-{
- do_srlv (SD_, TRX, TRY, TRY);
-}
-
-
-11101,3.RX,3.RY,00111:RR:16::SRAV
-"srav r<TRY>, r<TRX>"
-*mips16:
-*vr4100:
-{
- do_srav (SD_, TRX, TRY, TRY);
-}
-
-
-00110,3.RX,3.RY,3.SHAMT,01:SHIFT:16::DSLL
-"dsll r<TRY>, r<TRX>, <SHIFT>"
-*mips16:
-*vr4100:
-{
- do_dsll (SD_, TRY, TRX, SHIFT);
-}
-
-11110,5.SHAMT_4_0,1.S5,00000 + 00110,3.RX,3.RY,000,01:EXT-SHIFT:16::DSLL
-"dsll r<TRY>, r<TRX>, <SHAMT>"
-*mips16:
-*vr4100:
-{
- do_dsll (SD_, TRY, TRX, SHAMT);
-}
-
-
-
-11101,3.SHAMT,3.RY,01000:SHIFT64:16::DSRL
-"dsrl r<TRY>, <SHIFT>"
-*mips16:
-*vr4100:
-{
- do_dsrl (SD_, TRY, TRY, SHIFT);
-}
-
-11110,5.SHAMT_4_0,1.S5,00000 + 11101,000,3.RY,01000:EXT-SHIFT64:16::DSRL
-"dsrl r<TRY>, <SHAMT>"
-*mips16:
-*vr4100:
-{
- do_dsrl (SD_, TRY, TRY, SHAMT);
-}
-
-
-
-11101,3.SHAMT,3.RY,10011:SHIFT64:16::DSRA
-"dsra r<TRY>, <SHIFT>"
-*mips16:
-*vr4100:
-{
- do_dsra (SD_, TRY, TRY, SHIFT);
-}
-
-11110,5.SHAMT_4_0,1.S5,00000 + 11101,000,3.RY,10011:EXT-SHIFT64:16::DSRA
-"dsra r<TRY>, <SHAMT>"
-*mips16:
-*vr4100:
-{
- do_dsra (SD_, TRY, TRY, SHAMT);
-}
-
-
-
-11101,3.RX,3.RY,10100:RR:16::DSLLV
-"dsllv r<TRY>, r<TRX>"
-*mips16:
-*vr4100:
-{
- do_dsllv (SD_, TRX, TRY, TRY);
-}
-
-
-11101,3.RX,3.RY,10110:RR:16::DSRLV
-"dsrlv r<TRY>, r<TRX>"
-*mips16:
-*vr4100:
-{
- do_dsrlv (SD_, TRX, TRY, TRY);
-}
-
-
-11101,3.RX,3.RY,10111:RR:16::DSRAV
-"dsrav r<TRY>, r<TRX>"
-*mips16:
-*vr4100:
-{
- do_dsrav (SD_, TRX, TRY, TRY);
-}
-
-
-// Multiply /Divide Instructions
-
-
-11101,3.RX,3.RY,11000:RR:16::MULT
-"mult r<TRX>, r<TRY>"
-*mips16:
-*vr4100:
-{
- do_mult (SD_, TRX, TRY, 0);
-}
-
-
-11101,3.RX,3.RY,11001:RR:16::MULTU
-"multu r<TRX>, r<TRY>"
-*mips16:
-*vr4100:
-{
- do_multu (SD_, TRX, TRY, 0);
-}
-
-
-11101,3.RX,3.RY,11010:RR:16::DIV
-"div r<TRX>, r<TRY>"
-*mips16:
-*vr4100:
-{
- do_div (SD_, TRX, TRY);
-}
-
-
-11101,3.RX,3.RY,11011:RR:16::DIVU
-"divu r<TRX>, r<TRY>"
-*mips16:
-*vr4100:
-{
- do_divu (SD_, TRX, TRY);
-}
-
-
-11101,3.RX,000,10000:RR:16::MFHI
-"mfhi r<TRX>"
-*mips16:
-*vr4100:
-{
- do_mfhi (SD_, TRX);
-}
-
-
-11101,3.RX,000,10010:RR:16::MFLO
-"mflo r<TRX>"
-*mips16:
-*vr4100:
-{
- do_mflo (SD_, TRX);
-}
-
-
-11101,3.RX,3.RY,11100:RR:16::DMULT
-"dmult r<TRX>, r<TRY>"
-*mips16:
-*vr4100:
-{
- do_dmult (SD_, TRX, TRY, 0);
-}
-
-
-11101,3.RX,3.RY,11101:RR:16::DMULTU
-"dmultu r<TRX>, r<TRY>"
-*mips16:
-*vr4100:
-{
- do_dmultu (SD_, TRX, TRY, 0);
-}
-
-
-11101,3.RX,3.RY,11110:RR:16::DDIV
-"ddiv r<TRX>, r<TRY>"
-*mips16:
-*vr4100:
-{
- do_ddiv (SD_, TRX, TRY);
-}
-
-
-11101,3.RX,3.RY,11111:RR:16::DDIVU
-"ddivu r<TRX>, r<TRY>"
-*mips16:
-*vr4100:
-{
- do_ddivu (SD_, TRX, TRY);
-}
-
-
-// Jump and Branch Instructions
-
-
-
-// Issue instruction in delay slot of branch
-:function:::address_word:delayslot16:address_word nia, address_word target
-{
- instruction_word delay_insn;
- sim_events_slip (SD, 1);
- DSPC = CIA; /* save current PC somewhere */
- STATE |= simDELAYSLOT;
- delay_insn = IMEM16 (nia); /* NOTE: mips16 */
- idecode_issue (CPU_, delay_insn, (nia));
- STATE &= ~simDELAYSLOT;
- return target;
-}
-
-// compute basepc dependant on us being in a delay slot
-:function:::address_word:basepc:
-{
- if (STATE & simDELAYSLOT)
- {
- return DSPC; /* return saved address of preceeding jmp */
- }
- else
- {
- return CIA;
- }
-}
-
-
-// JAL
-00011,0,5.IMM_20_16,5.IMM_25_21 + 16.IMMED_15_0:JAL:16::JAL
-"jal <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- address_word region = (NIA & MASK (63, 28));
- RA = NIA + 2; /* skip 16 bit delayslot insn */
- NIA = delayslot16 (SD_, NIA, (region | (IMMEDIATE << 2))) | 1;
-}
-
-
-
-// JALX - 32 and 16 bit versions.
-
-011101,26.IMMED:JALX:32::JALX32
-"jalx <IMMED>"
-*mips16:
-*vr4100:
-{
- address_word region = (NIA & MASK (63, 28));
- RA = NIA + 4; /* skip 32 bit delayslot insn */
- NIA = delayslot32 (SD_, (region | (IMMED << 2)) | 1);
-}
-
-00011,1,5.IMM_20_16,5.IMM_25_21 + 16.IMMED_15_0:JALX:16::JALX16
-"jalx <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- address_word region = (NIA & MASK (63, 28));
- RA = NIA + 2; /* 16 bit INSN */
- NIA = delayslot16 (SD_, NIA, (region | (IMMEDIATE << 2)) & ~1);
-}
-
-
-
-11101,3.RX,000,00000:RR:16::JR
-"jr r<TRX>"
-*mips16:
-*vr4100:
-{
- NIA = delayslot16 (SD_, NIA, GPR[TRX]);
-}
-
-
-11101,000,001,00000:RR:16::JRRA
-"jrra"
-*mips16:
-*vr4100:
-{
- NIA = delayslot16 (SD_, NIA, RA);
-}
-
-
-
-11101,3.RX,010,00000:RR:16::JALR
-"jalr r<TRX>"
-*mips16:
-*vr4100:
-{
- RA = NIA + 2;
- NIA = delayslot16 (SD_, NIA, GPR[TRX]);
-}
-
-
-
-00100,3.RX,8.IMMED:RI:16::BEQZ
-"beqz r<TRX>, <IMMED>"
-*mips16:
-*vr4100:
-{
- if (GPR[TRX] == 0)
- NIA = (NIA + (EXTEND8 (IMMED) << 1));
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 00100,3.RX,000,5.IMM_4_0:EXT-RI:16::BEQZ
-"beqz r<TRX>, <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- if (GPR[TRX] == 0)
- NIA = (NIA + (EXTEND16 (IMMEDIATE) << 1));
-}
-
-
-
-00101,3.RX,8.IMMED:RI:16::BNEZ
-"bnez r<TRX>, <IMMED>"
-*mips16:
-*vr4100:
-{
- if (GPR[TRX] != 0)
- NIA = (NIA + (EXTEND8 (IMMED) << 1));
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 00101,3.RX,000,5.IMM_4_0:EXT-RI:16::BNEZ
-"bnez r<TRX>, <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- if (GPR[TRX] != 0)
- NIA = (NIA + (EXTEND16 (IMMEDIATE) << 1));
-}
-
-
-
-01100,000,8.IMMED:I8:16::BTEQZ
-"bteqz <IMMED>"
-*mips16:
-*vr4100:
-{
- if (T8 == 0)
- NIA = (NIA + (EXTEND8 (IMMED) << 1));
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 01100,000,000,5.IMM_4_0:EXT-I8:16::BTEQZ
-"bteqz <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- if (T8 == 0)
- NIA = (NIA + (EXTEND16 (IMMEDIATE) << 1));
-}
-
-
-
-01100,001,8.IMMED:I8:16::BTNEZ
-"btnez <IMMED>"
-*mips16:
-*vr4100:
-{
- if (T8 != 0)
- NIA = (NIA + (EXTEND8 (IMMED) << 1));
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 01100,001,000,5.IMM_4_0:EXT-I8:16::BTNEZ
-"btnez <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- if (T8 != 0)
- NIA = (NIA + (EXTEND16 (IMMEDIATE) << 1));
-}
-
-
-
-00010,11.IMMED:I:16::B
-"b <IMMED>"
-*mips16:
-*vr4100:
-{
- NIA = (NIA + (EXTEND11 (IMMED) << 1));
-}
-
-11110,6.IMM_10_5,5.IMM_15_11 + 00010,6.0,5.IMM_4_0:EXT-I:16::B
-"b <IMMEDIATE>"
-*mips16:
-*vr4100:
-{
- NIA = (NIA + (EXTEND16 (IMMEDIATE) << 1));
-}
-
-
-
-11101,3.RX,3.RY,00101:RR:16::BREAK
-"break"
-*mips16:
-*vr4100:
-{
- if (STATE & simDELAYSLOT)
- PC = cia - 2; /* reference the branch instruction */
- else
- PC = cia;
- SignalException (BreakPoint, instruction_0);
-}
diff --git a/sim/mips/m16e.igen b/sim/mips/m16e.igen
deleted file mode 100644
index 2d7a073..0000000
--- a/sim/mips/m16e.igen
+++ /dev/null
@@ -1,105 +0,0 @@
-// -*- C -*-
-
-// Simulator definition for the MIPS16e instructions.
-// Copyright (C) 2005 Free Software Foundation, Inc.
-// Contributed by Nigel Stephens (nigel@mips.com) and
-// David Ung (davidu@mips.com) of MIPS Technologies.
-//
-// This file is part of GDB, the GNU debugger.
-//
-// This program 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 2, or (at your option)
-// any later version.
-//
-// This program 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 this program; if not, write to the Free Software Foundation, Inc.,
-// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-
-11101,3.RX,100,10001:RR:16::SEB
-"seb r<TRX>"
-*mips16e:
-{
- TRACE_ALU_INPUT1 (GPR[TRX]);
- GPR[TRX] = EXTEND8 (GPR[TRX]);
- TRACE_ALU_RESULT (GPR[TRX]);
-}
-
-
-11101,3.RX,101,10001:RR:16::SEH
-"seh r<TRX>"
-*mips16e:
-{
- TRACE_ALU_INPUT1 (GPR[TRX]);
- GPR[TRX] = EXTEND16 (GPR[TRX]);
- TRACE_ALU_RESULT (GPR[TRX]);
-}
-
-11101,3.RX,110,10001:RR:16::SEW
-"sew r<TRX>"
-*mips16e:
-{
- check_u64 (SD_, instruction_0);
- TRACE_ALU_INPUT1 (GPR[TRX]);
- GPR[TRX] = EXTEND32 (GPR[TRX]);
- TRACE_ALU_RESULT (GPR[TRX]);
-}
-
-11101,3.RX,000,10001:RR:16::ZEB
-"zeb r<TRX>"
-*mips16e:
-{
- TRACE_ALU_INPUT1 (GPR[TRX]);
- GPR[TRX] = (unsigned_word)(unsigned8)(GPR[TRX]);
- TRACE_ALU_RESULT (GPR[TRX]);
-}
-
-11101,3.RX,001,10001:RR:16::ZEH
-"zeh r<TRX>"
-*mips16e:
-{
- TRACE_ALU_INPUT1 (GPR[TRX]);
- GPR[TRX] = (unsigned_word)(unsigned16)(GPR[TRX]);
- TRACE_ALU_RESULT (GPR[TRX]);
-}
-
-11101,3.RX,010,10001:RR:16::ZEW
-"zew r<TRX>"
-*mips16e:
-{
- check_u64 (SD_, instruction_0);
- TRACE_ALU_INPUT1 (GPR[TRX]);
- GPR[TRX] = (unsigned_word)(unsigned32)(GPR[TRX]);
- TRACE_ALU_RESULT (GPR[TRX]);
-}
-
-
-11101,3.RX,100,00000:RR:16::JRC
-"jrc r<TRX>"
-*mips16e:
-{
- NIA = GPR[TRX];
-}
-
-
-11101,000,101,00000:RR:16::JRCRA
-"jrc ra"
-*mips16e:
-{
- NIA = RA;
-}
-
-
-11101,3.RX,110,00000:RR:16::JALRC
-"jalrc r<TRX>"
-*mips16e:
-{
- RA = NIA;
- NIA = GPR[TRX];
-}
diff --git a/sim/mips/m16run.c b/sim/mips/m16run.c
deleted file mode 100644
index 8a5d607..0000000
--- a/sim/mips/m16run.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* This file is part of the program psim.
-
- Copyright (C) 1998, Andrew Cagney <cagney@highland.com.au>
-
- This program 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 2 of the License, or
- (at your option) any later version.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- */
-
-#include "sim-main.h"
-#include "m16_idecode.h"
-#include "m32_idecode.h"
-#include "bfd.h"
-
-
-#define SD sd
-#define CPU cpu
-
-void
-sim_engine_run (SIM_DESC sd,
- int next_cpu_nr,
- int nr_cpus, /* ignore */
- int siggnal) /* ignore */
-{
- sim_cpu *cpu = STATE_CPU (sd, next_cpu_nr);
- address_word cia = CIA_GET (cpu);
-
- while (1)
- {
- address_word nia;
-
-#if defined (ENGINE_ISSUE_PREFIX_HOOK)
- ENGINE_ISSUE_PREFIX_HOOK ();
-#endif
-
- if ((cia & 1))
- {
- m16_instruction_word instruction_0 = IMEM16 (cia);
- nia = m16_idecode_issue (sd, instruction_0, cia);
- }
- else
- {
- m32_instruction_word instruction_0 = IMEM32 (cia);
- nia = m32_idecode_issue (sd, instruction_0, cia);
- }
-
-#if defined (ENGINE_ISSUE_POSTFIX_HOOK)
- ENGINE_ISSUE_POSTFIX_HOOK ();
-#endif
-
- /* Update the instruction address */
- cia = nia;
-
- /* process any events */
- if (sim_events_tick (sd))
- {
- CIA_SET (CPU, cia);
- sim_events_process (sd);
- cia = CIA_GET (CPU);
- }
-
- }
-}
diff --git a/sim/mips/mdmx.c b/sim/mips/mdmx.c
deleted file mode 100644
index 3af59b0..0000000
--- a/sim/mips/mdmx.c
+++ /dev/null
@@ -1,1477 +0,0 @@
-/* Simulation code for the MIPS MDMX ASE.
- Copyright (C) 2002 Free Software Foundation, Inc.
- Contributed by Ed Satterthwaite and Chris Demetriou, of Broadcom
- Corporation (SiByte).
-
-This file is part of GDB, the GNU debugger.
-
-This program 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 2, or (at your option)
-any later version.
-
-This program 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 this program; if not, write to the Free Software Foundation, Inc.,
-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#include <stdio.h>
-
-#include "sim-main.h"
-
-/* Within mdmx.c we refer to the sim_cpu directly. */
-#define CPU cpu
-#define SD (CPU_STATE(CPU))
-
-/* XXX FIXME: temporary hack while the impact of making unpredictable()
- a "normal" (non-igen) function is evaluated. */
-#undef Unpredictable
-#define Unpredictable() unpredictable_action (cpu, cia)
-
-/* MDMX Representations
-
- An 8-bit packed byte element (OB) is always unsigned.
- The 24-bit accumulators are signed and are represented as 32-bit
- signed values, which are reduced to 24-bit signed values prior to
- Round and Clamp operations.
-
- A 16-bit packed halfword element (QH) is always signed.
- The 48-bit accumulators are signed and are represented as 64-bit
- signed values, which are reduced to 48-bit signed values prior to
- Round and Clamp operations.
-
- The code below assumes a 2's-complement representation of signed
- quantities. Care is required to clear extended sign bits when
- repacking fields.
-
- The code (and the code for arithmetic shifts in mips.igen) also makes
- the (not guaranteed portable) assumption that right shifts of signed
- quantities in C do sign extension. */
-
-typedef unsigned64 unsigned48;
-#define MASK48 (UNSIGNED64 (0xffffffffffff))
-
-typedef unsigned32 unsigned24;
-#define MASK24 (UNSIGNED32 (0xffffff))
-
-typedef enum {
- mdmx_ob, /* OB (octal byte) */
- mdmx_qh /* QH (quad half-word) */
-} MX_fmt;
-
-typedef enum {
- sel_elem, /* element select */
- sel_vect, /* vector select */
- sel_imm /* immediate select */
-} VT_select;
-
-#define OB_MAX ((unsigned8)0xFF)
-#define QH_MIN ((signed16)0x8000)
-#define QH_MAX ((signed16)0x7FFF)
-
-#define OB_CLAMP(x) ((unsigned8)((x) > OB_MAX ? OB_MAX : (x)))
-#define QH_CLAMP(x) ((signed16)((x) < QH_MIN ? QH_MIN : \
- ((x) > QH_MAX ? QH_MAX : (x))))
-
-#define MX_FMT(fmtsel) (((fmtsel) & 0x1) == 0 ? mdmx_ob : mdmx_qh)
-#define MX_VT(fmtsel) (((fmtsel) & 0x10) == 0 ? sel_elem : \
- (((fmtsel) & 0x18) == 0x10 ? sel_vect : sel_imm))
-
-#define QH_ELEM(v,fmtsel) \
- ((signed16)(((v) >> (((fmtsel) & 0xC) << 2)) & 0xFFFF))
-#define OB_ELEM(v,fmtsel) \
- ((unsigned8)(((v) >> (((fmtsel) & 0xE) << 2)) & 0xFF))
-
-
-typedef signed16 (*QH_FUNC)(signed16, signed16);
-typedef unsigned8 (*OB_FUNC)(unsigned8, unsigned8);
-
-/* vectorized logical operators */
-
-static signed16
-AndQH(signed16 ts, signed16 tt)
-{
- return (signed16)((unsigned16)ts & (unsigned16)tt);
-}
-
-static unsigned8
-AndOB(unsigned8 ts, unsigned8 tt)
-{
- return ts & tt;
-}
-
-static signed16
-NorQH(signed16 ts, signed16 tt)
-{
- return (signed16)(((unsigned16)ts | (unsigned16)tt) ^ 0xFFFF);
-}
-
-static unsigned8
-NorOB(unsigned8 ts, unsigned8 tt)
-{
- return (ts | tt) ^ 0xFF;
-}
-
-static signed16
-OrQH(signed16 ts, signed16 tt)
-{
- return (signed16)((unsigned16)ts | (unsigned16)tt);
-}
-
-static unsigned8
-OrOB(unsigned8 ts, unsigned8 tt)
-{
- return ts | tt;
-}
-
-static signed16
-XorQH(signed16 ts, signed16 tt)
-{
- return (signed16)((unsigned16)ts ^ (unsigned16)tt);
-}
-
-static unsigned8
-XorOB(unsigned8 ts, unsigned8 tt)
-{
- return ts ^ tt;
-}
-
-static signed16
-SLLQH(signed16 ts, signed16 tt)
-{
- unsigned32 s = (unsigned32)tt & 0xF;
- return (signed16)(((unsigned32)ts << s) & 0xFFFF);
-}
-
-static unsigned8
-SLLOB(unsigned8 ts, unsigned8 tt)
-{
- unsigned32 s = tt & 0x7;
- return (ts << s) & 0xFF;
-}
-
-static signed16
-SRLQH(signed16 ts, signed16 tt)
-{
- unsigned32 s = (unsigned32)tt & 0xF;
- return (signed16)((unsigned16)ts >> s);
-}
-
-static unsigned8
-SRLOB(unsigned8 ts, unsigned8 tt)
-{
- unsigned32 s = tt & 0x7;
- return ts >> s;
-}
-
-
-/* Vectorized arithmetic operators. */
-
-static signed16
-AddQH(signed16 ts, signed16 tt)
-{
- signed32 t = (signed32)ts + (signed32)tt;
- return QH_CLAMP(t);
-}
-
-static unsigned8
-AddOB(unsigned8 ts, unsigned8 tt)
-{
- unsigned32 t = (unsigned32)ts + (unsigned32)tt;
- return OB_CLAMP(t);
-}
-
-static signed16
-SubQH(signed16 ts, signed16 tt)
-{
- signed32 t = (signed32)ts - (signed32)tt;
- return QH_CLAMP(t);
-}
-
-static unsigned8
-SubOB(unsigned8 ts, unsigned8 tt)
-{
- signed32 t;
- t = (signed32)ts - (signed32)tt;
- if (t < 0)
- t = 0;
- return (unsigned8)t;
-}
-
-static signed16
-MinQH(signed16 ts, signed16 tt)
-{
- return (ts < tt ? ts : tt);
-}
-
-static unsigned8
-MinOB(unsigned8 ts, unsigned8 tt)
-{
- return (ts < tt ? ts : tt);
-}
-
-static signed16
-MaxQH(signed16 ts, signed16 tt)
-{
- return (ts > tt ? ts : tt);
-}
-
-static unsigned8
-MaxOB(unsigned8 ts, unsigned8 tt)
-{
- return (ts > tt ? ts : tt);
-}
-
-static signed16
-MulQH(signed16 ts, signed16 tt)
-{
- signed32 t = (signed32)ts * (signed32)tt;
- return QH_CLAMP(t);
-}
-
-static unsigned8
-MulOB(unsigned8 ts, unsigned8 tt)
-{
- unsigned32 t = (unsigned32)ts * (unsigned32)tt;
- return OB_CLAMP(t);
-}
-
-/* "msgn" and "sra" are defined only for QH format. */
-
-static signed16
-MsgnQH(signed16 ts, signed16 tt)
-{
- signed16 t;
- if (ts < 0)
- t = (tt == QH_MIN ? QH_MAX : -tt);
- else if (ts == 0)
- t = 0;
- else
- t = tt;
- return t;
-}
-
-static signed16
-SRAQH(signed16 ts, signed16 tt)
-{
- unsigned32 s = (unsigned32)tt & 0xF;
- return (signed16)((signed32)ts >> s);
-}
-
-
-/* "pabsdiff" and "pavg" are defined only for OB format. */
-
-static unsigned8
-AbsDiffOB(unsigned8 ts, unsigned8 tt)
-{
- return (ts >= tt ? ts - tt : tt - ts);
-}
-
-static unsigned8
-AvgOB(unsigned8 ts, unsigned8 tt)
-{
- return ((unsigned32)ts + (unsigned32)tt + 1) >> 1;
-}
-
-
-/* Dispatch tables for operations that update a CPR. */
-
-static const QH_FUNC qh_func[] = {
- AndQH, NorQH, OrQH, XorQH, SLLQH, SRLQH,
- AddQH, SubQH, MinQH, MaxQH,
- MulQH, MsgnQH, SRAQH, NULL, NULL
-};
-
-static const OB_FUNC ob_func[] = {
- AndOB, NorOB, OrOB, XorOB, SLLOB, SRLOB,
- AddOB, SubOB, MinOB, MaxOB,
- MulOB, NULL, NULL, AbsDiffOB, AvgOB
-};
-
-/* Auxiliary functions for CPR updates. */
-
-/* Vector mapping for QH format. */
-static unsigned64
-qh_vector_op(unsigned64 v1, unsigned64 v2, QH_FUNC func)
-{
- unsigned64 result = 0;
- int i;
- signed16 h, h1, h2;
-
- for (i = 0; i < 64; i += 16)
- {
- h1 = (signed16)(v1 & 0xFFFF); v1 >>= 16;
- h2 = (signed16)(v2 & 0xFFFF); v2 >>= 16;
- h = (*func)(h1, h2);
- result |= ((unsigned64)((unsigned16)h) << i);
- }
- return result;
-}
-
-static unsigned64
-qh_map_op(unsigned64 v1, signed16 h2, QH_FUNC func)
-{
- unsigned64 result = 0;
- int i;
- signed16 h, h1;
-
- for (i = 0; i < 64; i += 16)
- {
- h1 = (signed16)(v1 & 0xFFFF); v1 >>= 16;
- h = (*func)(h1, h2);
- result |= ((unsigned64)((unsigned16)h) << i);
- }
- return result;
-}
-
-
-/* Vector operations for OB format. */
-
-static unsigned64
-ob_vector_op(unsigned64 v1, unsigned64 v2, OB_FUNC func)
-{
- unsigned64 result = 0;
- int i;
- unsigned8 b, b1, b2;
-
- for (i = 0; i < 64; i += 8)
- {
- b1 = v1 & 0xFF; v1 >>= 8;
- b2 = v2 & 0xFF; v2 >>= 8;
- b = (*func)(b1, b2);
- result |= ((unsigned64)b << i);
- }
- return result;
-}
-
-static unsigned64
-ob_map_op(unsigned64 v1, unsigned8 b2, OB_FUNC func)
-{
- unsigned64 result = 0;
- int i;
- unsigned8 b, b1;
-
- for (i = 0; i < 64; i += 8)
- {
- b1 = v1 & 0xFF; v1 >>= 8;
- b = (*func)(b1, b2);
- result |= ((unsigned64)b << i);
- }
- return result;
-}
-
-
-/* Primary entry for operations that update CPRs. */
-unsigned64
-mdmx_cpr_op(sim_cpu *cpu,
- address_word cia,
- int op,
- unsigned64 op1,
- int vt,
- MX_fmtsel fmtsel)
-{
- unsigned64 op2;
- unsigned64 result = 0;
-
- switch (MX_FMT (fmtsel))
- {
- case mdmx_qh:
- switch (MX_VT (fmtsel))
- {
- case sel_elem:
- op2 = ValueFPR(vt, fmt_mdmx);
- result = qh_map_op(op1, QH_ELEM(op2, fmtsel), qh_func[op]);
- break;
- case sel_vect:
- result = qh_vector_op(op1, ValueFPR(vt, fmt_mdmx), qh_func[op]);
- break;
- case sel_imm:
- result = qh_map_op(op1, vt, qh_func[op]);
- break;
- }
- break;
- case mdmx_ob:
- switch (MX_VT (fmtsel))
- {
- case sel_elem:
- op2 = ValueFPR(vt, fmt_mdmx);
- result = ob_map_op(op1, OB_ELEM(op2, fmtsel), ob_func[op]);
- break;
- case sel_vect:
- result = ob_vector_op(op1, ValueFPR(vt, fmt_mdmx), ob_func[op]);
- break;
- case sel_imm:
- result = ob_map_op(op1, vt, ob_func[op]);
- break;
- }
- break;
- default:
- Unpredictable ();
- }
-
- return result;
-}
-
-
-/* Operations that update CCs */
-
-static void
-qh_vector_test(sim_cpu *cpu, unsigned64 v1, unsigned64 v2, int cond)
-{
- int i;
- signed16 h1, h2;
- int boolean;
-
- for (i = 0; i < 4; i++)
- {
- h1 = (signed16)(v1 & 0xFFFF); v1 >>= 16;
- h2 = (signed16)(v2 & 0xFFFF); v2 >>= 16;
- boolean = ((cond & MX_C_EQ) && (h1 == h2)) ||
- ((cond & MX_C_LT) && (h1 < h2));
- SETFCC(i, boolean);
- }
-}
-
-static void
-qh_map_test(sim_cpu *cpu, unsigned64 v1, signed16 h2, int cond)
-{
- int i;
- signed16 h1;
- int boolean;
-
- for (i = 0; i < 4; i++)
- {
- h1 = (signed16)(v1 & 0xFFFF); v1 >>= 16;
- boolean = ((cond & MX_C_EQ) && (h1 == h2)) ||
- ((cond & MX_C_LT) && (h1 < h2));
- SETFCC(i, boolean);
- }
-}
-
-static void
-ob_vector_test(sim_cpu *cpu, unsigned64 v1, unsigned64 v2, int cond)
-{
- int i;
- unsigned8 b1, b2;
- int boolean;
-
- for (i = 0; i < 8; i++)
- {
- b1 = v1 & 0xFF; v1 >>= 8;
- b2 = v2 & 0xFF; v2 >>= 8;
- boolean = ((cond & MX_C_EQ) && (b1 == b2)) ||
- ((cond & MX_C_LT) && (b1 < b2));
- SETFCC(i, boolean);
- }
-}
-
-static void
-ob_map_test(sim_cpu *cpu, unsigned64 v1, unsigned8 b2, int cond)
-{
- int i;
- unsigned8 b1;
- int boolean;
-
- for (i = 0; i < 8; i++)
- {
- b1 = (unsigned8)(v1 & 0xFF); v1 >>= 8;
- boolean = ((cond & MX_C_EQ) && (b1 == b2)) ||
- ((cond & MX_C_LT) && (b1 < b2));
- SETFCC(i, boolean);
- }
-}
-
-
-void
-mdmx_cc_op(sim_cpu *cpu,
- address_word cia,
- int cond,
- unsigned64 v1,
- int vt,
- MX_fmtsel fmtsel)
-{
- unsigned64 op2;
-
- switch (MX_FMT (fmtsel))
- {
- case mdmx_qh:
- switch (MX_VT (fmtsel))
- {
- case sel_elem:
- op2 = ValueFPR(vt, fmt_mdmx);
- qh_map_test(cpu, v1, QH_ELEM(op2, fmtsel), cond);
- break;
- case sel_vect:
- qh_vector_test(cpu, v1, ValueFPR(vt, fmt_mdmx), cond);
- break;
- case sel_imm:
- qh_map_test(cpu, v1, vt, cond);
- break;
- }
- break;
- case mdmx_ob:
- switch (MX_VT (fmtsel))
- {
- case sel_elem:
- op2 = ValueFPR(vt, fmt_mdmx);
- ob_map_test(cpu, v1, OB_ELEM(op2, fmtsel), cond);
- break;
- case sel_vect:
- ob_vector_test(cpu, v1, ValueFPR(vt, fmt_mdmx), cond);
- break;
- case sel_imm:
- ob_map_test(cpu, v1, vt, cond);
- break;
- }
- break;
- default:
- Unpredictable ();
- }
-}
-
-
-/* Pick operations. */
-
-static unsigned64
-qh_vector_pick(sim_cpu *cpu, unsigned64 v1, unsigned64 v2, int tf)
-{
- unsigned64 result = 0;
- int i, s;
- unsigned16 h;
-
- s = 0;
- for (i = 0; i < 4; i++)
- {
- h = ((GETFCC(i) == tf) ? (v1 & 0xFFFF) : (v2 & 0xFFFF));
- v1 >>= 16; v2 >>= 16;
- result |= ((unsigned64)h << s);
- s += 16;
- }
- return result;
-}
-
-static unsigned64
-qh_map_pick(sim_cpu *cpu, unsigned64 v1, signed16 h2, int tf)
-{
- unsigned64 result = 0;
- int i, s;
- unsigned16 h;
-
- s = 0;
- for (i = 0; i < 4; i++)
- {
- h = (GETFCC(i) == tf) ? (v1 & 0xFFFF) : (unsigned16)h2;
- v1 >>= 16;
- result |= ((unsigned64)h << s);
- s += 16;
- }
- return result;
-}
-
-static unsigned64
-ob_vector_pick(sim_cpu *cpu, unsigned64 v1, unsigned64 v2, int tf)
-{
- unsigned64 result = 0;
- int i, s;
- unsigned8 b;
-
- s = 0;
- for (i = 0; i < 8; i++)
- {
- b = (GETFCC(i) == tf) ? (v1 & 0xFF) : (v2 & 0xFF);
- v1 >>= 8; v2 >>= 8;
- result |= ((unsigned64)b << s);
- s += 8;
- }
- return result;
-}
-
-static unsigned64
-ob_map_pick(sim_cpu *cpu, unsigned64 v1, unsigned8 b2, int tf)
-{
- unsigned64 result = 0;
- int i, s;
- unsigned8 b;
-
- s = 0;
- for (i = 0; i < 8; i++)
- {
- b = (GETFCC(i) == tf) ? (v1 & 0xFF) : b2;
- v1 >>= 8;
- result |= ((unsigned64)b << s);
- s += 8;
- }
- return result;
-}
-
-
-unsigned64
-mdmx_pick_op(sim_cpu *cpu,
- address_word cia,
- int tf,
- unsigned64 v1,
- int vt,
- MX_fmtsel fmtsel)
-{
- unsigned64 result = 0;
- unsigned64 op2;
-
- switch (MX_FMT (fmtsel))
- {
- case mdmx_qh:
- switch (MX_VT (fmtsel))
- {
- case sel_elem:
- op2 = ValueFPR(vt, fmt_mdmx);
- result = qh_map_pick(cpu, v1, QH_ELEM(op2, fmtsel), tf);
- break;
- case sel_vect:
- result = qh_vector_pick(cpu, v1, ValueFPR(vt, fmt_mdmx), tf);
- break;
- case sel_imm:
- result = qh_map_pick(cpu, v1, vt, tf);
- break;
- }
- break;
- case mdmx_ob:
- switch (MX_VT (fmtsel))
- {
- case sel_elem:
- op2 = ValueFPR(vt, fmt_mdmx);
- result = ob_map_pick(cpu, v1, OB_ELEM(op2, fmtsel), tf);
- break;
- case sel_vect:
- result = ob_vector_pick(cpu, v1, ValueFPR(vt, fmt_mdmx), tf);
- break;
- case sel_imm:
- result = ob_map_pick(cpu, v1, vt, tf);
- break;
- }
- break;
- default:
- Unpredictable ();
- }
- return result;
-}
-
-
-/* Accumulators. */
-
-typedef void (*QH_ACC)(signed48 *a, signed16 ts, signed16 tt);
-
-static void
-AccAddAQH(signed48 *a, signed16 ts, signed16 tt)
-{
- *a += (signed48)ts + (signed48)tt;
-}
-
-static void
-AccAddLQH(signed48 *a, signed16 ts, signed16 tt)
-{
- *a = (signed48)ts + (signed48)tt;
-}
-
-static void
-AccMulAQH(signed48 *a, signed16 ts, signed16 tt)
-{
- *a += (signed48)ts * (signed48)tt;
-}
-
-static void
-AccMulLQH(signed48 *a, signed16 ts, signed16 tt)
-{
- *a = (signed48)ts * (signed48)tt;
-}
-
-static void
-SubMulAQH(signed48 *a, signed16 ts, signed16 tt)
-{
- *a -= (signed48)ts * (signed48)tt;
-}
-
-static void
-SubMulLQH(signed48 *a, signed16 ts, signed16 tt)
-{
- *a = -((signed48)ts * (signed48)tt);
-}
-
-static void
-AccSubAQH(signed48 *a, signed16 ts, signed16 tt)
-{
- *a += (signed48)ts - (signed48)tt;
-}
-
-static void
-AccSubLQH(signed48 *a, signed16 ts, signed16 tt)
-{
- *a = (signed48)ts - (signed48)tt;
-}
-
-
-typedef void (*OB_ACC)(signed24 *acc, unsigned8 ts, unsigned8 tt);
-
-static void
-AccAddAOB(signed24 *a, unsigned8 ts, unsigned8 tt)
-{
- *a += (signed24)ts + (signed24)tt;
-}
-
-static void
-AccAddLOB(signed24 *a, unsigned8 ts, unsigned8 tt)
-{
- *a = (signed24)ts + (signed24)tt;
-}
-
-static void
-AccMulAOB(signed24 *a, unsigned8 ts, unsigned8 tt)
-{
- *a += (signed24)ts * (signed24)tt;
-}
-
-static void
-AccMulLOB(signed24 *a, unsigned8 ts, unsigned8 tt)
-{
- *a = (signed24)ts * (signed24)tt;
-}
-
-static void
-SubMulAOB(signed24 *a, unsigned8 ts, unsigned8 tt)
-{
- *a -= (signed24)ts * (signed24)tt;
-}
-
-static void
-SubMulLOB(signed24 *a, unsigned8 ts, unsigned8 tt)
-{
- *a = -((signed24)ts * (signed24)tt);
-}
-
-static void
-AccSubAOB(signed24 *a, unsigned8 ts, unsigned8 tt)
-{
- *a += (signed24)ts - (signed24)tt;
-}
-
-static void
-AccSubLOB(signed24 *a, unsigned8 ts, unsigned8 tt)
-{
- *a = (signed24)ts - (signed24)tt;
-}
-
-static void
-AccAbsDiffOB(signed24 *a, unsigned8 ts, unsigned8 tt)
-{
- unsigned8 t = (ts >= tt ? ts - tt : tt - ts);
- *a += (signed24)t;
-}
-
-
-/* Dispatch tables for operations that update a CPR. */
-
-static const QH_ACC qh_acc[] = {
- AccAddAQH, AccAddAQH, AccMulAQH, AccMulLQH,
- SubMulAQH, SubMulLQH, AccSubAQH, AccSubLQH,
- NULL
-};
-
-static const OB_ACC ob_acc[] = {
- AccAddAOB, AccAddLOB, AccMulAOB, AccMulLOB,
- SubMulAOB, SubMulLOB, AccSubAOB, AccSubLOB,
- AccAbsDiffOB
-};
-
-
-static void
-qh_vector_acc(signed48 a[], unsigned64 v1, unsigned64 v2, QH_ACC acc)
-{
- int i;
- signed16 h1, h2;
-
- for (i = 0; i < 4; i++)
- {
- h1 = (signed16)(v1 & 0xFFFF); v1 >>= 16;
- h2 = (signed16)(v2 & 0xFFFF); v2 >>= 16;
- (*acc)(&a[i], h1, h2);
- }
-}
-
-static void
-qh_map_acc(signed48 a[], unsigned64 v1, signed16 h2, QH_ACC acc)
-{
- int i;
- signed16 h1;
-
- for (i = 0; i < 4; i++)
- {
- h1 = (signed16)(v1 & 0xFFFF); v1 >>= 16;
- (*acc)(&a[i], h1, h2);
- }
-}
-
-static void
-ob_vector_acc(signed24 a[], unsigned64 v1, unsigned64 v2, OB_ACC acc)
-{
- int i;
- unsigned8 b1, b2;
-
- for (i = 0; i < 8; i++)
- {
- b1 = v1 & 0xFF; v1 >>= 8;
- b2 = v2 & 0xFF; v2 >>= 8;
- (*acc)(&a[i], b1, b2);
- }
-}
-
-static void
-ob_map_acc(signed24 a[], unsigned64 v1, unsigned8 b2, OB_ACC acc)
-{
- int i;
- unsigned8 b1;
-
- for (i = 0; i < 8; i++)
- {
- b1 = v1 & 0xFF; v1 >>= 8;
- (*acc)(&a[i], b1, b2);
- }
-}
-
-
-/* Primary entry for operations that accumulate */
-void
-mdmx_acc_op(sim_cpu *cpu,
- address_word cia,
- int op,
- unsigned64 op1,
- int vt,
- MX_fmtsel fmtsel)
-{
- unsigned64 op2;
-
- switch (MX_FMT (fmtsel))
- {
- case mdmx_qh:
- switch (MX_VT (fmtsel))
- {
- case sel_elem:
- op2 = ValueFPR(vt, fmt_mdmx);
- qh_map_acc(ACC.qh, op1, QH_ELEM(op2, fmtsel), qh_acc[op]);
- break;
- case sel_vect:
- qh_vector_acc(ACC.qh, op1, ValueFPR(vt, fmt_mdmx), qh_acc[op]);
- break;
- case sel_imm:
- qh_map_acc(ACC.qh, op1, vt, qh_acc[op]);
- break;
- }
- break;
- case mdmx_ob:
- switch (MX_VT (fmtsel))
- {
- case sel_elem:
- op2 = ValueFPR(vt, fmt_mdmx);
- ob_map_acc(ACC.ob, op1, OB_ELEM(op2, fmtsel), ob_acc[op]);
- break;
- case sel_vect:
- ob_vector_acc(ACC.ob, op1, ValueFPR(vt, fmt_mdmx), ob_acc[op]);
- break;
- case sel_imm:
- ob_map_acc(ACC.ob, op1, vt, ob_acc[op]);
- break;
- }
- break;
- default:
- Unpredictable ();
- }
-}
-
-
-/* Reading and writing accumulator (no conversion). */
-
-unsigned64
-mdmx_rac_op(sim_cpu *cpu,
- address_word cia,
- int op,
- int fmt)
-{
- unsigned64 result;
- unsigned int shift;
- int i;
-
- shift = op; /* L = 00, M = 01, H = 10. */
- result = 0;
-
- switch (fmt)
- {
- case MX_FMT_QH:
- shift <<= 4; /* 16 bits per element. */
- for (i = 3; i >= 0; --i)
- {
- result <<= 16;
- result |= ((ACC.qh[i] >> shift) & 0xFFFF);
- }
- break;
- case MX_FMT_OB:
- shift <<= 3; /* 8 bits per element. */
- for (i = 7; i >= 0; --i)
- {
- result <<= 8;
- result |= ((ACC.ob[i] >> shift) & 0xFF);
- }
- break;
- default:
- Unpredictable ();
- }
- return result;
-}
-
-void
-mdmx_wacl(sim_cpu *cpu,
- address_word cia,
- int fmt,
- unsigned64 vs,
- unsigned64 vt)
-{
- int i;
-
- switch (fmt)
- {
- case MX_FMT_QH:
- for (i = 0; i < 4; i++)
- {
- signed32 s = (signed16)(vs & 0xFFFF);
- ACC.qh[i] = ((signed48)s << 16) | (vt & 0xFFFF);
- vs >>= 16; vt >>= 16;
- }
- break;
- case MX_FMT_OB:
- for (i = 0; i < 8; i++)
- {
- signed16 s = (signed8)(vs & 0xFF);
- ACC.ob[i] = ((signed24)s << 8) | (vt & 0xFF);
- vs >>= 8; vt >>= 8;
- }
- break;
- default:
- Unpredictable ();
- }
-}
-
-void
-mdmx_wach(sim_cpu *cpu,
- address_word cia,
- int fmt,
- unsigned64 vs)
-{
- int i;
-
- switch (fmt)
- {
- case MX_FMT_QH:
- for (i = 0; i < 4; i++)
- {
- signed32 s = (signed16)(vs & 0xFFFF);
- ACC.qh[i] &= ~((signed48)0xFFFF << 32);
- ACC.qh[i] |= ((signed48)s << 32);
- vs >>= 16;
- }
- break;
- case MX_FMT_OB:
- for (i = 0; i < 8; i++)
- {
- ACC.ob[i] &= ~((signed24)0xFF << 16);
- ACC.ob[i] |= ((signed24)(vs & 0xFF) << 16);
- vs >>= 8;
- }
- break;
- default:
- Unpredictable ();
- }
-}
-
-
-/* Reading and writing accumulator (rounding conversions).
- Enumerating function guarantees s >= 0 for QH ops. */
-
-typedef signed16 (*QH_ROUND)(signed48 a, signed16 s);
-
-#define QH_BIT(n) ((unsigned48)1 << (n))
-#define QH_ONES(n) (((unsigned48)1 << (n))-1)
-
-static signed16
-RNASQH(signed48 a, signed16 s)
-{
- signed48 t;
- signed16 result = 0;
-
- if (s > 48)
- result = 0;
- else
- {
- t = (a >> s);
- if ((a & QH_BIT(47)) == 0)
- {
- if (s > 0 && ((a >> (s-1)) & 1) == 1)
- t++;
- if (t > QH_MAX)
- t = QH_MAX;
- }
- else
- {
- if (s > 0 && ((a >> (s-1)) & 1) == 1)
- {
- if (s > 1 && ((unsigned48)a & QH_ONES(s-1)) != 0)
- t++;
- }
- if (t < QH_MIN)
- t = QH_MIN;
- }
- result = (signed16)t;
- }
- return result;
-}
-
-static signed16
-RNAUQH(signed48 a, signed16 s)
-{
- unsigned48 t;
- signed16 result;
-
- if (s > 48)
- result = 0;
- else if (s == 48)
- result = ((unsigned48)a & MASK48) >> 47;
- else
- {
- t = ((unsigned48)a & MASK48) >> s;
- if (s > 0 && ((a >> (s-1)) & 1) == 1)
- t++;
- if (t > 0xFFFF)
- t = 0xFFFF;
- result = (signed16)t;
- }
- return result;
-}
-
-static signed16
-RNESQH(signed48 a, signed16 s)
-{
- signed48 t;
- signed16 result = 0;
-
- if (s > 47)
- result = 0;
- else
- {
- t = (a >> s);
- if (s > 0 && ((a >> (s-1)) & 1) == 1)
- {
- if (s == 1 || (a & QH_ONES(s-1)) == 0)
- t += t & 1;
- else
- t += 1;
- }
- if ((a & QH_BIT(47)) == 0)
- {
- if (t > QH_MAX)
- t = QH_MAX;
- }
- else
- {
- if (t < QH_MIN)
- t = QH_MIN;
- }
- result = (signed16)t;
- }
- return result;
-}
-
-static signed16
-RNEUQH(signed48 a, signed16 s)
-{
- unsigned48 t;
- signed16 result;
-
- if (s > 48)
- result = 0;
- else if (s == 48)
- result = ((unsigned48)a > QH_BIT(47) ? 1 : 0);
- else
- {
- t = ((unsigned48)a & MASK48) >> s;
- if (s > 0 && ((a >> (s-1)) & 1) == 1)
- {
- if (s > 1 && (a & QH_ONES(s-1)) != 0)
- t++;
- else
- t += t & 1;
- }
- if (t > 0xFFFF)
- t = 0xFFFF;
- result = (signed16)t;
- }
- return result;
-}
-
-static signed16
-RZSQH(signed48 a, signed16 s)
-{
- signed48 t;
- signed16 result = 0;
-
- if (s > 47)
- result = 0;
- else
- {
- t = (a >> s);
- if ((a & QH_BIT(47)) == 0)
- {
- if (t > QH_MAX)
- t = QH_MAX;
- }
- else
- {
- if (t < QH_MIN)
- t = QH_MIN;
- }
- result = (signed16)t;
- }
- return result;
-}
-
-static signed16
-RZUQH(signed48 a, signed16 s)
-{
- unsigned48 t;
- signed16 result = 0;
-
- if (s > 48)
- result = 0;
- else if (s == 48)
- result = ((unsigned48)a > QH_BIT(47) ? 1 : 0);
- else
- {
- t = ((unsigned48)a & MASK48) >> s;
- if (t > 0xFFFF)
- t = 0xFFFF;
- result = (signed16)t;
- }
- return result;
-}
-
-
-typedef unsigned8 (*OB_ROUND)(signed24 a, unsigned8 s);
-
-#define OB_BIT(n) ((unsigned24)1 << (n))
-#define OB_ONES(n) (((unsigned24)1 << (n))-1)
-
-static unsigned8
-RNAUOB(signed24 a, unsigned8 s)
-{
- unsigned8 result;
- unsigned24 t;
-
- if (s > 24)
- result = 0;
- else if (s == 24)
- result = ((unsigned24)a & MASK24) >> 23;
- else
- {
- t = ((unsigned24)a & MASK24) >> s;
- if (s > 0 && ((a >> (s-1)) & 1) == 1)
- t ++;
- result = OB_CLAMP(t);
- }
- return result;
-}
-
-static unsigned8
-RNEUOB(signed24 a, unsigned8 s)
-{
- unsigned8 result;
- unsigned24 t;
-
- if (s > 24)
- result = 0;
- else if (s == 24)
- result = (((unsigned24)a & MASK24) > OB_BIT(23) ? 1 : 0);
- else
- {
- t = ((unsigned24)a & MASK24) >> s;
- if (s > 0 && ((a >> (s-1)) & 1) == 1)
- {
- if (s > 1 && (a & OB_ONES(s-1)) != 0)
- t++;
- else
- t += t & 1;
- }
- result = OB_CLAMP(t);
- }
- return result;
-}
-
-static unsigned8
-RZUOB(signed24 a, unsigned8 s)
-{
- unsigned8 result;
- unsigned24 t;
-
- if (s >= 24)
- result = 0;
- else
- {
- t = ((unsigned24)a & MASK24) >> s;
- result = OB_CLAMP(t);
- }
- return result;
-}
-
-
-static const QH_ROUND qh_round[] = {
- RNASQH, RNAUQH, RNESQH, RNEUQH, RZSQH, RZUQH
-};
-
-static const OB_ROUND ob_round[] = {
- NULL, RNAUOB, NULL, RNEUOB, NULL, RZUOB
-};
-
-
-static unsigned64
-qh_vector_round(sim_cpu *cpu, address_word cia, unsigned64 v2, QH_ROUND round)
-{
- unsigned64 result = 0;
- int i, s;
- signed16 h, h2;
-
- s = 0;
- for (i = 0; i < 4; i++)
- {
- h2 = (signed16)(v2 & 0xFFFF);
- if (h2 >= 0)
- h = (*round)(ACC.qh[i], h2);
- else
- {
- UnpredictableResult ();
- h = 0xdead;
- }
- v2 >>= 16;
- result |= ((unsigned64)((unsigned16)h) << s);
- s += 16;
- }
- return result;
-}
-
-static unsigned64
-qh_map_round(sim_cpu *cpu, address_word cia, signed16 h2, QH_ROUND round)
-{
- unsigned64 result = 0;
- int i, s;
- signed16 h;
-
- s = 0;
- for (i = 0; i < 4; i++)
- {
- if (h2 >= 0)
- h = (*round)(ACC.qh[i], h2);
- else
- {
- UnpredictableResult ();
- h = 0xdead;
- }
- result |= ((unsigned64)((unsigned16)h) << s);
- s += 16;
- }
- return result;
-}
-
-static unsigned64
-ob_vector_round(sim_cpu *cpu, address_word cia, unsigned64 v2, OB_ROUND round)
-{
- unsigned64 result = 0;
- int i, s;
- unsigned8 b, b2;
-
- s = 0;
- for (i = 0; i < 8; i++)
- {
- b2 = v2 & 0xFF; v2 >>= 8;
- b = (*round)(ACC.ob[i], b2);
- result |= ((unsigned64)b << s);
- s += 8;
- }
- return result;
-}
-
-static unsigned64
-ob_map_round(sim_cpu *cpu, address_word cia, unsigned8 b2, OB_ROUND round)
-{
- unsigned64 result = 0;
- int i, s;
- unsigned8 b;
-
- s = 0;
- for (i = 0; i < 8; i++)
- {
- b = (*round)(ACC.ob[i], b2);
- result |= ((unsigned64)b << s);
- s += 8;
- }
- return result;
-}
-
-
-unsigned64
-mdmx_round_op(sim_cpu *cpu,
- address_word cia,
- int rm,
- int vt,
- MX_fmtsel fmtsel)
-{
- unsigned64 op2;
- unsigned64 result = 0;
-
- switch (MX_FMT (fmtsel))
- {
- case mdmx_qh:
- switch (MX_VT (fmtsel))
- {
- case sel_elem:
- op2 = ValueFPR(vt, fmt_mdmx);
- result = qh_map_round(cpu, cia, QH_ELEM(op2, fmtsel), qh_round[rm]);
- break;
- case sel_vect:
- op2 = ValueFPR(vt, fmt_mdmx);
- result = qh_vector_round(cpu, cia, op2, qh_round[rm]);
- break;
- case sel_imm:
- result = qh_map_round(cpu, cia, vt, qh_round[rm]);
- break;
- }
- break;
- case mdmx_ob:
- switch (MX_VT (fmtsel))
- {
- case sel_elem:
- op2 = ValueFPR(vt, fmt_mdmx);
- result = ob_map_round(cpu, cia, OB_ELEM(op2, fmtsel), ob_round[rm]);
- break;
- case sel_vect:
- op2 = ValueFPR(vt, fmt_mdmx);
- result = ob_vector_round(cpu, cia, op2, ob_round[rm]);
- break;
- case sel_imm:
- result = ob_map_round(cpu, cia, vt, ob_round[rm]);
- break;
- }
- break;
- default:
- Unpredictable ();
- }
-
- return result;
-}
-
-
-/* Shuffle operation. */
-
-typedef struct {
- enum {vs, ss, vt} source;
- unsigned int index;
-} sh_map;
-
-static const sh_map ob_shuffle[][8] = {
- /* MDMX 2.0 encodings (3-4, 6-7). */
- /* vr5400 encoding (5), otherwise. */
- { }, /* RSVD */
- {{vt,4}, {vs,4}, {vt,5}, {vs,5}, {vt,6}, {vs,6}, {vt,7}, {vs,7}}, /* RSVD */
- {{vt,0}, {vs,0}, {vt,1}, {vs,1}, {vt,2}, {vs,2}, {vt,3}, {vs,3}}, /* RSVD */
- {{vs,0}, {ss,0}, {vs,1}, {ss,1}, {vs,2}, {ss,2}, {vs,3}, {ss,3}}, /* upsl */
- {{vt,1}, {vt,3}, {vt,5}, {vt,7}, {vs,1}, {vs,3}, {vs,5}, {vs,7}}, /* pach */
- {{vt,0}, {vt,2}, {vt,4}, {vt,6}, {vs,0}, {vs,2}, {vs,4}, {vs,6}}, /* pacl */
- {{vt,4}, {vs,4}, {vt,5}, {vs,5}, {vt,6}, {vs,6}, {vt,7}, {vs,7}}, /* mixh */
- {{vt,0}, {vs,0}, {vt,1}, {vs,1}, {vt,2}, {vs,2}, {vt,3}, {vs,3}} /* mixl */
-};
-
-static const sh_map qh_shuffle[][4] = {
- {{vt,2}, {vs,2}, {vt,3}, {vs,3}}, /* mixh */
- {{vt,0}, {vs,0}, {vt,1}, {vs,1}}, /* mixl */
- {{vt,1}, {vt,3}, {vs,1}, {vs,3}}, /* pach */
- { }, /* RSVD */
- {{vt,1}, {vs,0}, {vt,3}, {vs,2}}, /* bfla */
- { }, /* RSVD */
- {{vt,2}, {vt,3}, {vs,2}, {vs,3}}, /* repa */
- {{vt,0}, {vt,1}, {vs,0}, {vs,1}} /* repb */
-};
-
-
-unsigned64
-mdmx_shuffle(sim_cpu *cpu,
- address_word cia,
- int shop,
- unsigned64 op1,
- unsigned64 op2)
-{
- unsigned64 result = 0;
- int i, s;
- int op;
-
- if ((shop & 0x3) == 0x1) /* QH format. */
- {
- op = shop >> 2;
- s = 0;
- for (i = 0; i < 4; i++)
- {
- unsigned64 v;
-
- switch (qh_shuffle[op][i].source)
- {
- case vs:
- v = op1;
- break;
- case vt:
- v = op2;
- break;
- default:
- Unpredictable ();
- v = 0;
- }
- result |= (((v >> 16*qh_shuffle[op][i].index) & 0xFFFF) << s);
- s += 16;
- }
- }
- else if ((shop & 0x1) == 0x0) /* OB format. */
- {
- op = shop >> 1;
- s = 0;
- for (i = 0; i < 8; i++)
- {
- unsigned8 b;
- unsigned int ishift = 8*ob_shuffle[op][i].index;
-
- switch (ob_shuffle[op][i].source)
- {
- case vs:
- b = (op1 >> ishift) & 0xFF;
- break;
- case ss:
- b = ((op1 >> ishift) & 0x80) ? 0xFF : 0;
- break;
- case vt:
- b = (op2 >> ishift) & 0xFF;
- break;
- default:
- Unpredictable ();
- b = 0;
- }
- result |= ((unsigned64)b << s);
- s += 8;
- }
- }
- else
- Unpredictable ();
-
- return result;
-}
diff --git a/sim/mips/mdmx.igen b/sim/mips/mdmx.igen
deleted file mode 100644
index d8edcd7..0000000
--- a/sim/mips/mdmx.igen
+++ /dev/null
@@ -1,593 +0,0 @@
-// -*- C -*-
-
-// Simulator definition for the MIPS MDMX ASE.
-// Copyright (C) 2002 Free Software Foundation, Inc.
-// Contributed by Ed Satterthwaite and Chris Demetriou, of Broadcom
-// Corporation (SiByte).
-//
-// This file is part of GDB, the GNU debugger.
-//
-// This program 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 2, or (at your option)
-// any later version.
-//
-// This program 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 this program; if not, write to the Free Software Foundation, Inc.,
-// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-// Reference: MIPS64 Architecture Volume IV-b:
-// The MDMX Application-Specific Extension
-
-// Notes on "format selectors" (FMTSEL):
-//
-// A selector with final bit 0 indicates OB format.
-// A selector with final bits 01 indicates QH format.
-// A selector with final bits 11 has UNPREDICTABLE result per the spec.
-//
-// Similarly, for the single-bit fields which differentiate between
-// formats (FMTOP), 0 is OB format and 1 is QH format.
-
-// If you change this file to add instructions, please make sure that model
-// "sb1" configurations still build, and that you've added no new
-// instructions to the "sb1" model.
-
-
-// Helper:
-//
-// Check whether MDMX is usable, and if not signal an appropriate exception.
-//
-
-:function:::void:check_mdmx:instruction_word insn
-*mdmx:
-{
- if (! COP_Usable (1))
- SignalExceptionCoProcessorUnusable (1);
- if ((SR & (status_MX|status_FR)) != (status_MX|status_FR))
- SignalExceptionMDMX ();
- check_u64 (SD_, insn);
-}
-
-
-// Helper:
-//
-// Check whether a given MDMX format selector indicates a valid and usable
-// format, and if not signal an appropriate exception.
-//
-
-:function:::int:check_mdmx_fmtsel:instruction_word insn, int fmtsel
-*mdmx:
-{
- switch (fmtsel & 0x03)
- {
- case 0x00: /* ob */
- case 0x02:
- case 0x01: /* qh */
- return 1;
- case 0x03: /* UNPREDICTABLE */
- SignalException (ReservedInstruction, insn);
- return 0;
- }
- return 0;
-}
-
-
-// Helper:
-//
-// Check whether a given MDMX format bit indicates a valid and usable
-// format, and if not signal an appropriate exception.
-//
-
-:function:::int:check_mdmx_fmtop:instruction_word insn, int fmtop
-*mdmx:
-{
- switch (fmtop & 0x01)
- {
- case 0x00: /* ob */
- case 0x01: /* qh */
- return 1;
- }
- return 0;
-}
-
-
-:%s::::FMTSEL:int fmtsel
-*mdmx:
-*sb1:
-{
- if ((fmtsel & 0x1) == 0)
- return "ob";
- else if ((fmtsel & 0x3) == 1)
- return "qh";
- else
- return "?";
-}
-
-
-:%s::::FMTOP:int fmtop
-*mdmx:
-*sb1:
-{
- switch (fmtop)
- {
- case 0: return "ob";
- case 1: return "qh";
- default: return "?";
- }
-}
-
-
-:%s::::SHOP:int shop
-*mdmx:
-*sb1:
-{
- if ((shop & 0x11) == 0x00)
- switch ((shop >> 1) & 0x07)
- {
- case 3: return "upsl.ob";
- case 4: return "pach.ob";
- case 6: return "mixh.ob";
- case 7: return "mixl.ob";
- default: return "?";
- }
- else if ((shop & 0x03) == 0x01)
- switch ((shop >> 2) & 0x07)
- {
- case 0: return "mixh.qh";
- case 1: return "mixl.qh";
- case 2: return "pach.qh";
- case 4: return "bfla.qh";
- case 6: return "repa.qh";
- case 7: return "repb.qh";
- default: return "?";
- }
- else
- return "?";
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,5.VD,001011:MDMX:64::ADD.fmt
-"add.%s<FMTSEL> v<VD>, v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- StoreFPR(VD,fmt_mdmx,MX_Add(ValueFPR(VS,fmt_mdmx),VT,FMTSEL));
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,0,0000,110111:MDMX:64::ADDA.fmt
-"adda.%s<FMTSEL> v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- MX_AddA(ValueFPR(VS,fmt_mdmx),VT,FMTSEL);
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,1,0000,110111:MDMX:64::ADDL.fmt
-"addl.%s<FMTSEL> v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- MX_AddL(ValueFPR(VS,fmt_mdmx),VT,FMTSEL);
-}
-
-
-011110,00,3.IMM,5.VT,5.VS,5.VD,0110,1.FMTOP,0:MDMX:64::ALNI.fmt
-"alni.%s<FMTOP> v<VD>, v<VS>, v<VT>, <IMM>"
-*mdmx:
-*sb1:
-{
- unsigned64 result;
- int s;
- check_mdmx (SD_, instruction_0);
- check_mdmx_fmtop (SD_, instruction_0, FMTOP);
- s = (IMM << 3);
- result = ValueFPR(VS,fmt_mdmx) << s;
- if (s != 0) // x86 gcc treats >> 64 as >> 0
- result |= ValueFPR(VT,fmt_mdmx) >> (64 - s);
- StoreFPR(VD,fmt_mdmx,result);
-}
-
-
-011110,5.RS,5.VT,5.VS,5.VD,0110,1.FMTOP,1:MDMX:64::ALNV.fmt
-"alnv.%s<FMTOP> v<VD>, v<VS>, v<VT>, r<RS>"
-*mdmx:
-*sb1:
-{
- unsigned64 result;
- int s;
- check_mdmx (SD_, instruction_0);
- check_mdmx_fmtop (SD_, instruction_0, FMTOP);
- s = ((GPR[RS] & 0x7) << 3);
- result = ValueFPR(VS,fmt_mdmx) << s;
- if (s != 0) // x86 gcc treats >> 64 as >> 0
- result |= ValueFPR(VT,fmt_mdmx) >> (64 - s);
- StoreFPR(VD,fmt_mdmx,result);
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,5.VD,001100:MDMX:64::AND.fmt
-"and.%s<FMTSEL> v<VD>, v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- StoreFPR(VD,fmt_mdmx,MX_And(ValueFPR(VS,fmt_mdmx),VT,FMTSEL));
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,00000,000001:MDMX:64::C.EQ.fmt
-"c.eq.%s<FMTSEL> v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- MX_Comp(ValueFPR(VS,fmt_mdmx),MX_C_EQ,VT,FMTSEL);
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,00000,000101:MDMX:64::C.LE.fmt
-"c.le.%s<FMTSEL> v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- MX_Comp(ValueFPR(VS,fmt_mdmx),MX_C_LT|MX_C_EQ,VT,FMTSEL);
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,00000,000100:MDMX:64::C.LT.fmt
-"c.lt.%s<FMTSEL> v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- MX_Comp(ValueFPR(VS,fmt_mdmx),MX_C_LT,VT,FMTSEL);
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,5.VD,000111:MDMX:64::MAX.fmt
-"max.%s<FMTSEL> v<VD>, v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- StoreFPR(VD,fmt_mdmx,MX_Max(ValueFPR(VS,fmt_mdmx),VT,FMTSEL));
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,5.VD,000110:MDMX:64::MIN.fmt
-"min.%s<FMTSEL> v<VD>, v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- StoreFPR(VD,fmt_mdmx,MX_Min(ValueFPR(VS,fmt_mdmx),VT,FMTSEL));
-}
-
-
-011110,3.SEL,01,5.VT,5.VS,5.VD,000000:MDMX:64::MSGN.QH
-"msgn.qh v<VD>, v<VS>, v<VT>"
-*mdmx:
-{
- check_mdmx (SD_, instruction_0);
- StoreFPR(VD,fmt_mdmx,MX_Msgn(ValueFPR(VS,fmt_mdmx),VT,qh_fmtsel(SEL)));
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,5.VD,110000:MDMX:64::MUL.fmt
-"mul.%s<FMTSEL> v<VD>, v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- StoreFPR(VD,fmt_mdmx,MX_Mul(ValueFPR(VS,fmt_mdmx),VT,FMTSEL));
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,0,0000,110011:MDMX:64::MULA.fmt
-"mula.%s<FMTSEL> v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- MX_MulA(ValueFPR(VS,fmt_mdmx),VT,FMTSEL);
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,1,0000,110011:MDMX:64::MULL.fmt
-"mull.%s<FMTSEL> v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- MX_MulL(ValueFPR(VS,fmt_mdmx),VT,FMTSEL);
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,0,0000,110010:MDMX:64::MULS.fmt
-"muls.%s<FMTSEL> v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- MX_MulS(ValueFPR(VS,fmt_mdmx),VT,FMTSEL);
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,1,0000,110010:MDMX:64::MULSL.fmt
-"mulsl.%s<FMTSEL> v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- MX_MulSL(ValueFPR(VS,fmt_mdmx),VT,FMTSEL);
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,5.VD,001111:MDMX:64::NOR.fmt
-"nor.%s<FMTSEL> v<VD>, v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- StoreFPR(VD,fmt_mdmx,MX_Nor(ValueFPR(VS,fmt_mdmx),VT,FMTSEL));
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,5.VD,001110:MDMX:64::OR.fmt
-"or.%s<FMTSEL> v<VD>, v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- StoreFPR(VD,fmt_mdmx,MX_Or(ValueFPR(VS,fmt_mdmx),VT,FMTSEL));
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,5.VD,000010:MDMX:64::PICKF.fmt
-"pickf.%s<FMTSEL> v<VD>, v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- StoreFPR(VD,fmt_mdmx,MX_Pick(0,ValueFPR(VS,fmt_mdmx),VT,FMTSEL));
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,5.VD,000011:MDMX:64::PICKT.fmt
-"pickt.%s<FMTSEL> v<VD>, v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- StoreFPR(VD,fmt_mdmx,MX_Pick(1,ValueFPR(VS,fmt_mdmx),VT,FMTSEL));
-}
-
-
-011110,1000,1.FMTOP,00000,00000,5.VD,111111:MDMX:64::RACH.fmt
-"rach.%s<FMTOP> v<VD>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- check_mdmx_fmtop (SD_, instruction_0, FMTOP);
- StoreFPR(VD,fmt_mdmx,MX_RAC(MX_RAC_H,FMTOP));
-}
-
-
-011110,0000,1.FMTOP,00000,00000,5.VD,111111:MDMX:64::RACL.fmt
-"racl.%s<FMTOP> v<VD>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- check_mdmx_fmtop (SD_, instruction_0, FMTOP);
- StoreFPR(VD,fmt_mdmx,MX_RAC(MX_RAC_L,FMTOP));
-}
-
-
-011110,0100,1.FMTOP,00000,00000,5.VD,111111:MDMX:64::RACM.fmt
-"racm.%s<FMTOP> v<VD>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- check_mdmx_fmtop (SD_, instruction_0, FMTOP);
- StoreFPR(VD,fmt_mdmx,MX_RAC(MX_RAC_M,FMTOP));
-}
-
-
-011110,3.SEL,01,5.VT,00000,5.VD,100101:MDMX:64::RNAS.QH
-"rnas.qh v<VD>, v<VT>"
-*mdmx:
-{
- check_mdmx (SD_, instruction_0);
- StoreFPR(VD,fmt_mdmx,MX_RNAS(VT,qh_fmtsel(SEL)));
-}
-
-
-011110,5.FMTSEL,5.VT,00000,5.VD,100001:MDMX:64::RNAU.fmt
-"rnau.%s<FMTSEL> v<VD>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- StoreFPR(VD,fmt_mdmx,MX_RNAU(VT,FMTSEL));
-}
-
-
-011110,3.SEL,01,5.VT,00000,5.VD,100110:MDMX:64::RNES.QH
-"rnes.qh v<VD>, v<VT>"
-*mdmx:
-{
- check_mdmx (SD_, instruction_0);
- StoreFPR(VD,fmt_mdmx,MX_RNES(VT,qh_fmtsel(SEL)));
-}
-
-
-011110,5.FMTSEL,5.VT,00000,5.VD,100010:MDMX:64::RNEU.fmt
-"rneu.%s<FMTSEL> v<VD>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- StoreFPR(VD,fmt_mdmx,MX_RNEU(VT,FMTSEL));
-}
-
-
-011110,3.SEL,01,5.VT,00000,5.VD,100100:MDMX:64::RZS.QH
-"rzs.qh v<VD>, v<VT>"
-*mdmx:
-{
- check_mdmx (SD_, instruction_0);
- StoreFPR(VD,fmt_mdmx,MX_RZS(VT,qh_fmtsel(SEL)));
-}
-
-
-011110,5.FMTSEL,5.VT,00000,5.VD,100000:MDMX:64::RZU.fmt
-"rzu.%s<FMTSEL> v<VD>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- StoreFPR(VD,fmt_mdmx,MX_RZU(VT,FMTSEL));
-}
-
-
-011110,5.SHOP,5.VT,5.VS,5.VD,011111:MDMX:64::SHFL.op.fmt
-"shfl.%s<SHOP> v<VD>, v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, SHOP))
- StoreFPR(VD,fmt_mdmx,MX_SHFL(SHOP,ValueFPR(VS,fmt_mdmx),ValueFPR(VT,fmt_mdmx)));
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,5.VD,010000:MDMX:64::SLL.fmt
-"sll.%s<FMTSEL> v<VD>, v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- StoreFPR(VD,fmt_mdmx,MX_ShiftLeftLogical(ValueFPR(VS,fmt_mdmx),VT,FMTSEL));
-}
-
-
-011110,3.SEL,01,5.VT,5.VS,5.VD,010011:MDMX:64::SRA.QH
-"sra.qh v<VD>, v<VS>, v<VT>"
-*mdmx:
-{
- check_mdmx (SD_, instruction_0);
- StoreFPR(VD,fmt_mdmx,MX_ShiftRightArith(ValueFPR(VS,fmt_mdmx),VT,qh_fmtsel(SEL)));
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,5.VD,010010:MDMX:64::SRL.fmt
-"srl.%s<FMTSEL> v<VD>, v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- StoreFPR(VD,fmt_mdmx,MX_ShiftRightLogical(ValueFPR(VS,fmt_mdmx),VT,FMTSEL));
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,5.VD,001010:MDMX:64::SUB.fmt
-"sub.%s<FMTSEL> v<VD>, v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- StoreFPR(VD,fmt_mdmx,MX_Sub(ValueFPR(VS,fmt_mdmx),VT,FMTSEL));
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,0,0000,110110:MDMX:64::SUBA.fmt
-"suba.%s<FMTSEL> v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- MX_SubA(ValueFPR(VS,fmt_mdmx),VT,FMTSEL);
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,1,0000,110110:MDMX:64::SUBL.fmt
-"subl.%s<FMTSEL> v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- MX_SubL(ValueFPR(VS,fmt_mdmx),VT,FMTSEL);
-}
-
-
-011110,1000,1.FMTOP,00000,5.VS,00000,111110:MDMX:64::WACH.fmt
-"wach.%s<FMTOP> v<VS>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- check_mdmx_fmtop (SD_, instruction_0, FMTOP);
- MX_WACH(FMTOP,ValueFPR(VS,fmt_mdmx));
-}
-
-
-011110,0000,1.FMTOP,5.VT,5.VS,00000,111110:MDMX:64::WACL.fmt
-"wacl.%s<FMTOP> v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- check_mdmx_fmtop (SD_, instruction_0, FMTOP);
- MX_WACL(FMTOP,ValueFPR(VS,fmt_mdmx),ValueFPR(VT,fmt_mdmx));
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,5.VD,001101:MDMX:64::XOR.fmt
-"xor.%s<FMTSEL> v<VD>, v<VS>, v<VT>"
-*mdmx:
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- if (check_mdmx_fmtsel (SD_, instruction_0, FMTSEL))
- StoreFPR(VD,fmt_mdmx,MX_Xor(ValueFPR(VS,fmt_mdmx),VT,FMTSEL));
-}
diff --git a/sim/mips/mips.dc b/sim/mips/mips.dc
deleted file mode 100644
index 98da024..0000000
--- a/sim/mips/mips.dc
+++ /dev/null
@@ -1,16 +0,0 @@
-# most instructions
-# ------ options ------ : Fst : Lst : ff : fl : fe : word : --- fmt --- : model ...
-# { : mask : value : word }
-
-# Top level - create a very big switch statement.
-
- padded-switch,combine : 31 : 26 : : : : : :
-
- switch,combine : 5 : 0 : : : : : :
-
- switch,combine : 20 : 16 : : : : : :
-
- switch,combine : 25 : 21 : : : : : :
-
- switch,combine : 10 : 6 : : : : : :
-
diff --git a/sim/mips/mips.igen b/sim/mips/mips.igen
deleted file mode 100644
index e179cf0..0000000
--- a/sim/mips/mips.igen
+++ /dev/null
@@ -1,5686 +0,0 @@
-// -*- C -*-
-//
-// <insn> ::=
-// <insn-word> { "+" <insn-word> }
-// ":" <format-name>
-// ":" <filter-flags>
-// ":" <options>
-// ":" <name>
-// <nl>
-// { <insn-model> }
-// { <insn-mnemonic> }
-// <code-block>
-//
-
-
-// IGEN config - mips16
-// :option:16::insn-bit-size:16
-// :option:16::hi-bit-nr:15
-:option:16::insn-specifying-widths:true
-:option:16::gen-delayed-branch:false
-
-// IGEN config - mips32/64..
-// :option:32::insn-bit-size:32
-// :option:32::hi-bit-nr:31
-:option:32::insn-specifying-widths:true
-:option:32::gen-delayed-branch:false
-
-
-// Generate separate simulators for each target
-// :option:::multi-sim:true
-
-
-// Models known by this simulator are defined below.
-//
-// When placing models in the instruction descriptions, please place
-// them one per line, in the order given here.
-
-// MIPS ISAs:
-//
-// Instructions and related functions for these models are included in
-// this file.
-:model:::mipsI:mips3000:
-:model:::mipsII:mips6000:
-:model:::mipsIII:mips4000:
-:model:::mipsIV:mips8000:
-:model:::mipsV:mipsisaV:
-:model:::mips32:mipsisa32:
-:model:::mips32r2:mipsisa32r2:
-:model:::mips64:mipsisa64:
-:model:::mips64r2:mipsisa64r2:
-
-// Vendor ISAs:
-//
-// Standard MIPS ISA instructions used for these models are listed here,
-// as are functions needed by those standard instructions. Instructions
-// which are model-dependent and which are not in the standard MIPS ISAs
-// (or which pre-date or use different encodings than the standard
-// instructions) are (for the most part) in separate .igen files.
-:model:::vr4100:mips4100: // vr.igen
-:model:::vr4120:mips4120:
-:model:::vr5000:mips5000:
-:model:::vr5400:mips5400:
-:model:::vr5500:mips5500:
-:model:::r3900:mips3900: // tx.igen
-
-// MIPS Application Specific Extensions (ASEs)
-//
-// Instructions for the ASEs are in separate .igen files.
-// ASEs add instructions on to a base ISA.
-:model:::mips16:mips16: // m16.igen (and m16.dc)
-:model:::mips16e:mips16e: // m16e.igen
-:model:::mips3d:mips3d: // mips3d.igen
-:model:::mdmx:mdmx: // mdmx.igen
-:model:::dsp:dsp: // dsp.igen
-
-// Vendor Extensions
-//
-// Instructions specific to these extensions are in separate .igen files.
-// Extensions add instructions on to a base ISA.
-:model:::sb1:sb1: // sb1.igen
-
-
-// Pseudo instructions known by IGEN
-:internal::::illegal:
-{
- SignalException (ReservedInstruction, 0);
-}
-
-
-// Pseudo instructions known by interp.c
-// For grep - RSVD_INSTRUCTION, RSVD_INSTRUCTION_MASK
-000000,5.*,5.*,5.*,5.OP,000101:SPECIAL:32::RSVD
-"rsvd <OP>"
-{
- SignalException (ReservedInstruction, instruction_0);
-}
-
-
-
-// Helper:
-//
-// Simulate a 32 bit delayslot instruction
-//
-
-:function:::address_word:delayslot32:address_word target
-{
- instruction_word delay_insn;
- sim_events_slip (SD, 1);
- DSPC = CIA;
- CIA = CIA + 4; /* NOTE not mips16 */
- STATE |= simDELAYSLOT;
- delay_insn = IMEM32 (CIA); /* NOTE not mips16 */
- ENGINE_ISSUE_PREFIX_HOOK();
- idecode_issue (CPU_, delay_insn, (CIA));
- STATE &= ~simDELAYSLOT;
- return target;
-}
-
-:function:::address_word:nullify_next_insn32:
-{
- sim_events_slip (SD, 1);
- dotrace (SD, CPU, tracefh, 2, CIA + 4, 4, "load instruction");
- return CIA + 8;
-}
-
-
-// Helper:
-//
-// Calculate an effective address given a base and an offset.
-//
-
-:function:::address_word:loadstore_ea:address_word base, address_word offset
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- return base + offset;
-}
-
-:function:::address_word:loadstore_ea:address_word base, address_word offset
-*mips64:
-*mips64r2:
-{
-#if 0 /* XXX FIXME: enable this only after some additional testing. */
- /* If in user mode and UX is not set, use 32-bit compatibility effective
- address computations as defined in the MIPS64 Architecture for
- Programmers Volume III, Revision 0.95, section 4.9. */
- if ((SR & (status_KSU_mask|status_EXL|status_ERL|status_UX))
- == (ksu_user << status_KSU_shift))
- return (address_word)((signed32)base + (signed32)offset);
-#endif
- return base + offset;
-}
-
-
-// Helper:
-//
-// Check that a 32-bit register value is properly sign-extended.
-// (See NotWordValue in ISA spec.)
-//
-
-:function:::int:not_word_value:unsigned_word value
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*vr4100:
-*vr5000:
-*r3900:
-{
- /* For historical simulator compatibility (until documentation is
- found that makes these operations unpredictable on some of these
- architectures), this check never returns true. */
- return 0;
-}
-
-:function:::int:not_word_value:unsigned_word value
-*mips32:
-*mips32r2:
-{
- /* On MIPS32, since registers are 32-bits, there's no check to be done. */
- return 0;
-}
-
-:function:::int:not_word_value:unsigned_word value
-*mips64:
-*mips64r2:
-{
- return ((value >> 32) != (value & 0x80000000 ? 0xFFFFFFFF : 0));
-}
-
-
-// Helper:
-//
-// Handle UNPREDICTABLE operation behaviour. The goal here is to prevent
-// theoretically portable code which invokes non-portable behaviour from
-// running with no indication of the portability issue.
-// (See definition of UNPREDICTABLE in ISA spec.)
-//
-
-:function:::void:unpredictable:
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*vr4100:
-*vr5000:
-*r3900:
-{
-}
-
-:function:::void:unpredictable:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-{
- unpredictable_action (CPU, CIA);
-}
-
-
-// Helpers:
-//
-// Check that an access to a HI/LO register meets timing requirements
-//
-// In all MIPS ISAs,
-//
-// OP {HI and LO} followed by MT{LO or HI} (and not MT{HI or LO})
-// makes subsequent MF{HI or LO} UNPREDICTABLE. (1)
-//
-// The following restrictions exist for MIPS I - MIPS III:
-//
-// MF{HI or LO} followed by MT{HI or LO} w/ less than 2 instructions
-// in between makes MF UNPREDICTABLE. (2)
-//
-// MF{HI or LO} followed by OP {HI and LO} w/ less than 2 instructions
-// in between makes MF UNPREDICTABLE. (3)
-//
-// On the r3900, restriction (2) is not present, and restriction (3) is not
-// present for multiplication.
-//
-// Unfortunately, there seems to be some confusion about whether the last
-// two restrictions should apply to "MIPS IV" as well. One edition of
-// the MIPS IV ISA says they do, but references in later ISA documents
-// suggest they don't.
-//
-// In reality, some MIPS IV parts, such as the VR5000 and VR5400, do have
-// these restrictions, while others, like the VR5500, don't. To accomodate
-// such differences, the MIPS IV and MIPS V version of these helper functions
-// use auxillary routines to determine whether the restriction applies.
-
-// check_mf_cycles:
-//
-// Helper used by check_mt_hilo, check_mult_hilo, and check_div_hilo
-// to check for restrictions (2) and (3) above.
-//
-:function:::int:check_mf_cycles:hilo_history *history, signed64 time, const char *new
-{
- if (history->mf.timestamp + 3 > time)
- {
- sim_engine_abort (SD, CPU, CIA, "HILO: %s: %s at 0x%08lx too close to MF at 0x%08lx\n",
- itable[MY_INDEX].name,
- new, (long) CIA,
- (long) history->mf.cia);
- return 0;
- }
- return 1;
-}
-
-
-// check_mt_hilo:
-//
-// Check for restriction (2) above (for ISAs/processors that have it),
-// and record timestamps for restriction (1) above.
-//
-:function:::int:check_mt_hilo:hilo_history *history
-*mipsI:
-*mipsII:
-*mipsIII:
-*vr4100:
-*vr5000:
-{
- signed64 time = sim_events_time (SD);
- int ok = check_mf_cycles (SD_, history, time, "MT");
- history->mt.timestamp = time;
- history->mt.cia = CIA;
- return ok;
-}
-
-:function:::int:check_mt_hilo:hilo_history *history
-*mipsIV:
-*mipsV:
-{
- signed64 time = sim_events_time (SD);
- int ok = (! MIPS_MACH_HAS_MT_HILO_HAZARD (SD)
- || check_mf_cycles (SD_, history, time, "MT"));
- history->mt.timestamp = time;
- history->mt.cia = CIA;
- return ok;
-}
-
-:function:::int:check_mt_hilo:hilo_history *history
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*r3900:
-{
- signed64 time = sim_events_time (SD);
- history->mt.timestamp = time;
- history->mt.cia = CIA;
- return 1;
-}
-
-
-// check_mf_hilo:
-//
-// Check for restriction (1) above, and record timestamps for
-// restriction (2) and (3) above.
-//
-:function:::int:check_mf_hilo:hilo_history *history, hilo_history *peer
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- signed64 time = sim_events_time (SD);
- int ok = 1;
- if (peer != NULL
- && peer->mt.timestamp > history->op.timestamp
- && history->mt.timestamp < history->op.timestamp
- && ! (history->mf.timestamp > history->op.timestamp
- && history->mf.timestamp < peer->mt.timestamp)
- && ! (peer->mf.timestamp > history->op.timestamp
- && peer->mf.timestamp < peer->mt.timestamp))
- {
- /* The peer has been written to since the last OP yet we have
- not */
- sim_engine_abort (SD, CPU, CIA, "HILO: %s: MF at 0x%08lx following OP at 0x%08lx corrupted by MT at 0x%08lx\n",
- itable[MY_INDEX].name,
- (long) CIA,
- (long) history->op.cia,
- (long) peer->mt.cia);
- ok = 0;
- }
- history->mf.timestamp = time;
- history->mf.cia = CIA;
- return ok;
-}
-
-
-
-// check_mult_hilo:
-//
-// Check for restriction (3) above (for ISAs/processors that have it)
-// for MULT ops, and record timestamps for restriction (1) above.
-//
-:function:::int:check_mult_hilo:hilo_history *hi, hilo_history *lo
-*mipsI:
-*mipsII:
-*mipsIII:
-*vr4100:
-*vr5000:
-{
- signed64 time = sim_events_time (SD);
- int ok = (check_mf_cycles (SD_, hi, time, "OP")
- && check_mf_cycles (SD_, lo, time, "OP"));
- hi->op.timestamp = time;
- lo->op.timestamp = time;
- hi->op.cia = CIA;
- lo->op.cia = CIA;
- return ok;
-}
-
-:function:::int:check_mult_hilo:hilo_history *hi, hilo_history *lo
-*mipsIV:
-*mipsV:
-{
- signed64 time = sim_events_time (SD);
- int ok = (! MIPS_MACH_HAS_MULT_HILO_HAZARD (SD)
- || (check_mf_cycles (SD_, hi, time, "OP")
- && check_mf_cycles (SD_, lo, time, "OP")));
- hi->op.timestamp = time;
- lo->op.timestamp = time;
- hi->op.cia = CIA;
- lo->op.cia = CIA;
- return ok;
-}
-
-:function:::int:check_mult_hilo:hilo_history *hi, hilo_history *lo
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*r3900:
-{
- /* FIXME: could record the fact that a stall occured if we want */
- signed64 time = sim_events_time (SD);
- hi->op.timestamp = time;
- lo->op.timestamp = time;
- hi->op.cia = CIA;
- lo->op.cia = CIA;
- return 1;
-}
-
-
-// check_div_hilo:
-//
-// Check for restriction (3) above (for ISAs/processors that have it)
-// for DIV ops, and record timestamps for restriction (1) above.
-//
-:function:::int:check_div_hilo:hilo_history *hi, hilo_history *lo
-*mipsI:
-*mipsII:
-*mipsIII:
-*vr4100:
-*vr5000:
-*r3900:
-{
- signed64 time = sim_events_time (SD);
- int ok = (check_mf_cycles (SD_, hi, time, "OP")
- && check_mf_cycles (SD_, lo, time, "OP"));
- hi->op.timestamp = time;
- lo->op.timestamp = time;
- hi->op.cia = CIA;
- lo->op.cia = CIA;
- return ok;
-}
-
-:function:::int:check_div_hilo:hilo_history *hi, hilo_history *lo
-*mipsIV:
-*mipsV:
-{
- signed64 time = sim_events_time (SD);
- int ok = (! MIPS_MACH_HAS_DIV_HILO_HAZARD (SD)
- || (check_mf_cycles (SD_, hi, time, "OP")
- && check_mf_cycles (SD_, lo, time, "OP")));
- hi->op.timestamp = time;
- lo->op.timestamp = time;
- hi->op.cia = CIA;
- lo->op.cia = CIA;
- return ok;
-}
-
-:function:::int:check_div_hilo:hilo_history *hi, hilo_history *lo
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-{
- signed64 time = sim_events_time (SD);
- hi->op.timestamp = time;
- lo->op.timestamp = time;
- hi->op.cia = CIA;
- lo->op.cia = CIA;
- return 1;
-}
-
-
-// Helper:
-//
-// Check that the 64-bit instruction can currently be used, and signal
-// a ReservedInstruction exception if not.
-//
-
-:function:::void:check_u64:instruction_word insn
-*mipsIII:
-*mipsIV:
-*mipsV:
-*vr4100:
-*vr5000:
-*vr5400:
-*vr5500:
-{
- // The check should be similar to mips64 for any with PX/UX bit equivalents.
-}
-
-:function:::void:check_u64:instruction_word insn
-*mips16e:
-*mips64:
-*mips64r2:
-{
-#if 0 /* XXX FIXME: enable this only after some additional testing. */
- if (UserMode && (SR & (status_UX|status_PX)) == 0)
- SignalException (ReservedInstruction, insn);
-#endif
-}
-
-
-
-//
-// MIPS Architecture:
-//
-// CPU Instruction Set (mipsI - mipsV, mips32/r2, mips64/r2)
-//
-
-
-
-000000,5.RS,5.RT,5.RD,00000,100000:SPECIAL:32::ADD
-"add r<RD>, r<RS>, r<RT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- if (NotWordValue (GPR[RS]) || NotWordValue (GPR[RT]))
- Unpredictable ();
- TRACE_ALU_INPUT2 (GPR[RS], GPR[RT]);
- {
- ALU32_BEGIN (GPR[RS]);
- ALU32_ADD (GPR[RT]);
- ALU32_END (GPR[RD]); /* This checks for overflow. */
- }
- TRACE_ALU_RESULT (GPR[RD]);
-}
-
-
-
-001000,5.RS,5.RT,16.IMMEDIATE:NORMAL:32::ADDI
-"addi r<RT>, r<RS>, <IMMEDIATE>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- if (NotWordValue (GPR[RS]))
- Unpredictable ();
- TRACE_ALU_INPUT2 (GPR[RS], EXTEND16 (IMMEDIATE));
- {
- ALU32_BEGIN (GPR[RS]);
- ALU32_ADD (EXTEND16 (IMMEDIATE));
- ALU32_END (GPR[RT]); /* This checks for overflow. */
- }
- TRACE_ALU_RESULT (GPR[RT]);
-}
-
-
-
-:function:::void:do_addiu:int rs, int rt, unsigned16 immediate
-{
- if (NotWordValue (GPR[rs]))
- Unpredictable ();
- TRACE_ALU_INPUT2 (GPR[rs], EXTEND16 (immediate));
- GPR[rt] = EXTEND32 (GPR[rs] + EXTEND16 (immediate));
- TRACE_ALU_RESULT (GPR[rt]);
-}
-
-001001,5.RS,5.RT,16.IMMEDIATE:NORMAL:32::ADDIU
-"addiu r<RT>, r<RS>, <IMMEDIATE>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_addiu (SD_, RS, RT, IMMEDIATE);
-}
-
-
-
-:function:::void:do_addu:int rs, int rt, int rd
-{
- if (NotWordValue (GPR[rs]) || NotWordValue (GPR[rt]))
- Unpredictable ();
- TRACE_ALU_INPUT2 (GPR[rs], GPR[rt]);
- GPR[rd] = EXTEND32 (GPR[rs] + GPR[rt]);
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,5.RS,5.RT,5.RD,00000,100001:SPECIAL:32::ADDU
-"addu r<RD>, r<RS>, r<RT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_addu (SD_, RS, RT, RD);
-}
-
-
-
-:function:::void:do_and:int rs, int rt, int rd
-{
- TRACE_ALU_INPUT2 (GPR[rs], GPR[rt]);
- GPR[rd] = GPR[rs] & GPR[rt];
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,5.RS,5.RT,5.RD,00000,100100:SPECIAL:32::AND
-"and r<RD>, r<RS>, r<RT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_and (SD_, RS, RT, RD);
-}
-
-
-
-001100,5.RS,5.RT,16.IMMEDIATE:NORMAL:32::ANDI
-"andi r<RT>, r<RS>, %#lx<IMMEDIATE>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- TRACE_ALU_INPUT2 (GPR[RS], IMMEDIATE);
- GPR[RT] = GPR[RS] & IMMEDIATE;
- TRACE_ALU_RESULT (GPR[RT]);
-}
-
-
-
-000100,5.RS,5.RT,16.OFFSET:NORMAL:32::BEQ
-"beq r<RS>, r<RT>, <OFFSET>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- address_word offset = EXTEND16 (OFFSET) << 2;
- if ((signed_word) GPR[RS] == (signed_word) GPR[RT])
- {
- DELAY_SLOT (NIA + offset);
- }
-}
-
-
-
-010100,5.RS,5.RT,16.OFFSET:NORMAL:32::BEQL
-"beql r<RS>, r<RT>, <OFFSET>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- address_word offset = EXTEND16 (OFFSET) << 2;
- if ((signed_word) GPR[RS] == (signed_word) GPR[RT])
- {
- DELAY_SLOT (NIA + offset);
- }
- else
- NULLIFY_NEXT_INSTRUCTION ();
-}
-
-
-
-000001,5.RS,00001,16.OFFSET:REGIMM:32::BGEZ
-"bgez r<RS>, <OFFSET>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- address_word offset = EXTEND16 (OFFSET) << 2;
- if ((signed_word) GPR[RS] >= 0)
- {
- DELAY_SLOT (NIA + offset);
- }
-}
-
-
-
-000001,5.RS!31,10001,16.OFFSET:REGIMM:32::BGEZAL
-"bgezal r<RS>, <OFFSET>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- address_word offset = EXTEND16 (OFFSET) << 2;
- if (RS == 31)
- Unpredictable ();
- RA = (CIA + 8);
- if ((signed_word) GPR[RS] >= 0)
- {
- DELAY_SLOT (NIA + offset);
- }
-}
-
-
-
-000001,5.RS!31,10011,16.OFFSET:REGIMM:32::BGEZALL
-"bgezall r<RS>, <OFFSET>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- address_word offset = EXTEND16 (OFFSET) << 2;
- if (RS == 31)
- Unpredictable ();
- RA = (CIA + 8);
- /* NOTE: The branch occurs AFTER the next instruction has been
- executed */
- if ((signed_word) GPR[RS] >= 0)
- {
- DELAY_SLOT (NIA + offset);
- }
- else
- NULLIFY_NEXT_INSTRUCTION ();
-}
-
-
-
-000001,5.RS,00011,16.OFFSET:REGIMM:32::BGEZL
-"bgezl r<RS>, <OFFSET>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- address_word offset = EXTEND16 (OFFSET) << 2;
- if ((signed_word) GPR[RS] >= 0)
- {
- DELAY_SLOT (NIA + offset);
- }
- else
- NULLIFY_NEXT_INSTRUCTION ();
-}
-
-
-
-000111,5.RS,00000,16.OFFSET:NORMAL:32::BGTZ
-"bgtz r<RS>, <OFFSET>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- address_word offset = EXTEND16 (OFFSET) << 2;
- if ((signed_word) GPR[RS] > 0)
- {
- DELAY_SLOT (NIA + offset);
- }
-}
-
-
-
-010111,5.RS,00000,16.OFFSET:NORMAL:32::BGTZL
-"bgtzl r<RS>, <OFFSET>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- address_word offset = EXTEND16 (OFFSET) << 2;
- /* NOTE: The branch occurs AFTER the next instruction has been
- executed */
- if ((signed_word) GPR[RS] > 0)
- {
- DELAY_SLOT (NIA + offset);
- }
- else
- NULLIFY_NEXT_INSTRUCTION ();
-}
-
-
-
-000110,5.RS,00000,16.OFFSET:NORMAL:32::BLEZ
-"blez r<RS>, <OFFSET>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- address_word offset = EXTEND16 (OFFSET) << 2;
- /* NOTE: The branch occurs AFTER the next instruction has been
- executed */
- if ((signed_word) GPR[RS] <= 0)
- {
- DELAY_SLOT (NIA + offset);
- }
-}
-
-
-
-010110,5.RS,00000,16.OFFSET:NORMAL:32::BLEZL
-"bgezl r<RS>, <OFFSET>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- address_word offset = EXTEND16 (OFFSET) << 2;
- if ((signed_word) GPR[RS] <= 0)
- {
- DELAY_SLOT (NIA + offset);
- }
- else
- NULLIFY_NEXT_INSTRUCTION ();
-}
-
-
-
-000001,5.RS,00000,16.OFFSET:REGIMM:32::BLTZ
-"bltz r<RS>, <OFFSET>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- address_word offset = EXTEND16 (OFFSET) << 2;
- if ((signed_word) GPR[RS] < 0)
- {
- DELAY_SLOT (NIA + offset);
- }
-}
-
-
-
-000001,5.RS!31,10000,16.OFFSET:REGIMM:32::BLTZAL
-"bltzal r<RS>, <OFFSET>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- address_word offset = EXTEND16 (OFFSET) << 2;
- if (RS == 31)
- Unpredictable ();
- RA = (CIA + 8);
- /* NOTE: The branch occurs AFTER the next instruction has been
- executed */
- if ((signed_word) GPR[RS] < 0)
- {
- DELAY_SLOT (NIA + offset);
- }
-}
-
-
-
-000001,5.RS!31,10010,16.OFFSET:REGIMM:32::BLTZALL
-"bltzall r<RS>, <OFFSET>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- address_word offset = EXTEND16 (OFFSET) << 2;
- if (RS == 31)
- Unpredictable ();
- RA = (CIA + 8);
- if ((signed_word) GPR[RS] < 0)
- {
- DELAY_SLOT (NIA + offset);
- }
- else
- NULLIFY_NEXT_INSTRUCTION ();
-}
-
-
-
-000001,5.RS,00010,16.OFFSET:REGIMM:32::BLTZL
-"bltzl r<RS>, <OFFSET>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- address_word offset = EXTEND16 (OFFSET) << 2;
- /* NOTE: The branch occurs AFTER the next instruction has been
- executed */
- if ((signed_word) GPR[RS] < 0)
- {
- DELAY_SLOT (NIA + offset);
- }
- else
- NULLIFY_NEXT_INSTRUCTION ();
-}
-
-
-
-000101,5.RS,5.RT,16.OFFSET:NORMAL:32::BNE
-"bne r<RS>, r<RT>, <OFFSET>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- address_word offset = EXTEND16 (OFFSET) << 2;
- if ((signed_word) GPR[RS] != (signed_word) GPR[RT])
- {
- DELAY_SLOT (NIA + offset);
- }
-}
-
-
-
-010101,5.RS,5.RT,16.OFFSET:NORMAL:32::BNEL
-"bnel r<RS>, r<RT>, <OFFSET>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- address_word offset = EXTEND16 (OFFSET) << 2;
- if ((signed_word) GPR[RS] != (signed_word) GPR[RT])
- {
- DELAY_SLOT (NIA + offset);
- }
- else
- NULLIFY_NEXT_INSTRUCTION ();
-}
-
-
-
-000000,20.CODE,001101:SPECIAL:32::BREAK
-"break %#lx<CODE>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- /* Check for some break instruction which are reserved for use by the simulator. */
- unsigned int break_code = instruction_0 & HALT_INSTRUCTION_MASK;
- if (break_code == (HALT_INSTRUCTION & HALT_INSTRUCTION_MASK) ||
- break_code == (HALT_INSTRUCTION2 & HALT_INSTRUCTION_MASK))
- {
- sim_engine_halt (SD, CPU, NULL, cia,
- sim_exited, (unsigned int)(A0 & 0xFFFFFFFF));
- }
- else if (break_code == (BREAKPOINT_INSTRUCTION & HALT_INSTRUCTION_MASK) ||
- break_code == (BREAKPOINT_INSTRUCTION2 & HALT_INSTRUCTION_MASK))
- {
- if (STATE & simDELAYSLOT)
- PC = cia - 4; /* reference the branch instruction */
- else
- PC = cia;
- SignalException (BreakPoint, instruction_0);
- }
-
- else
- {
- /* If we get this far, we're not an instruction reserved by the sim. Raise
- the exception. */
- SignalException (BreakPoint, instruction_0);
- }
-}
-
-
-
-011100,5.RS,5.RT,5.RD,00000,100001:SPECIAL2:32::CLO
-"clo r<RD>, r<RS>"
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr5500:
-{
- unsigned32 temp = GPR[RS];
- unsigned32 i, mask;
- if (RT != RD)
- Unpredictable ();
- if (NotWordValue (GPR[RS]))
- Unpredictable ();
- TRACE_ALU_INPUT1 (GPR[RS]);
- for (mask = ((unsigned32)1<<31), i = 0; i < 32; ++i)
- {
- if ((temp & mask) == 0)
- break;
- mask >>= 1;
- }
- GPR[RD] = EXTEND32 (i);
- TRACE_ALU_RESULT (GPR[RD]);
-}
-
-
-
-011100,5.RS,5.RT,5.RD,00000,100000:SPECIAL2:32::CLZ
-"clz r<RD>, r<RS>"
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr5500:
-{
- unsigned32 temp = GPR[RS];
- unsigned32 i, mask;
- if (RT != RD)
- Unpredictable ();
- if (NotWordValue (GPR[RS]))
- Unpredictable ();
- TRACE_ALU_INPUT1 (GPR[RS]);
- for (mask = ((unsigned32)1<<31), i = 0; i < 32; ++i)
- {
- if ((temp & mask) != 0)
- break;
- mask >>= 1;
- }
- GPR[RD] = EXTEND32 (i);
- TRACE_ALU_RESULT (GPR[RD]);
-}
-
-
-
-000000,5.RS,5.RT,5.RD,00000,101100:SPECIAL:64::DADD
-"dadd r<RD>, r<RS>, r<RT>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- TRACE_ALU_INPUT2 (GPR[RS], GPR[RT]);
- {
- ALU64_BEGIN (GPR[RS]);
- ALU64_ADD (GPR[RT]);
- ALU64_END (GPR[RD]); /* This checks for overflow. */
- }
- TRACE_ALU_RESULT (GPR[RD]);
-}
-
-
-
-011000,5.RS,5.RT,16.IMMEDIATE:NORMAL:64::DADDI
-"daddi r<RT>, r<RS>, <IMMEDIATE>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- TRACE_ALU_INPUT2 (GPR[RS], EXTEND16 (IMMEDIATE));
- {
- ALU64_BEGIN (GPR[RS]);
- ALU64_ADD (EXTEND16 (IMMEDIATE));
- ALU64_END (GPR[RT]); /* This checks for overflow. */
- }
- TRACE_ALU_RESULT (GPR[RT]);
-}
-
-
-
-:function:::void:do_daddiu:int rs, int rt, unsigned16 immediate
-{
- TRACE_ALU_INPUT2 (GPR[rs], EXTEND16 (immediate));
- GPR[rt] = GPR[rs] + EXTEND16 (immediate);
- TRACE_ALU_RESULT (GPR[rt]);
-}
-
-011001,5.RS,5.RT,16.IMMEDIATE:NORMAL:64::DADDIU
-"daddiu r<RT>, r<RS>, <IMMEDIATE>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- do_daddiu (SD_, RS, RT, IMMEDIATE);
-}
-
-
-
-:function:::void:do_daddu:int rs, int rt, int rd
-{
- TRACE_ALU_INPUT2 (GPR[rs], GPR[rt]);
- GPR[rd] = GPR[rs] + GPR[rt];
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,5.RS,5.RT,5.RD,00000,101101:SPECIAL:64::DADDU
-"daddu r<RD>, r<RS>, r<RT>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- do_daddu (SD_, RS, RT, RD);
-}
-
-
-
-011100,5.RS,5.RT,5.RD,00000,100101:SPECIAL2:64::DCLO
-"dclo r<RD>, r<RS>"
-*mips64:
-*mips64r2:
-*vr5500:
-{
- unsigned64 temp = GPR[RS];
- unsigned32 i;
- unsigned64 mask;
- check_u64 (SD_, instruction_0);
- if (RT != RD)
- Unpredictable ();
- TRACE_ALU_INPUT1 (GPR[RS]);
- for (mask = ((unsigned64)1<<63), i = 0; i < 64; ++i)
- {
- if ((temp & mask) == 0)
- break;
- mask >>= 1;
- }
- GPR[RD] = EXTEND32 (i);
- TRACE_ALU_RESULT (GPR[RD]);
-}
-
-
-
-011100,5.RS,5.RT,5.RD,00000,100100:SPECIAL2:64::DCLZ
-"dclz r<RD>, r<RS>"
-*mips64:
-*mips64r2:
-*vr5500:
-{
- unsigned64 temp = GPR[RS];
- unsigned32 i;
- unsigned64 mask;
- check_u64 (SD_, instruction_0);
- if (RT != RD)
- Unpredictable ();
- TRACE_ALU_INPUT1 (GPR[RS]);
- for (mask = ((unsigned64)1<<63), i = 0; i < 64; ++i)
- {
- if ((temp & mask) != 0)
- break;
- mask >>= 1;
- }
- GPR[RD] = EXTEND32 (i);
- TRACE_ALU_RESULT (GPR[RD]);
-}
-
-
-
-:function:::void:do_ddiv:int rs, int rt
-{
- check_div_hilo (SD_, HIHISTORY, LOHISTORY);
- TRACE_ALU_INPUT2 (GPR[rs], GPR[rt]);
- {
- signed64 n = GPR[rs];
- signed64 d = GPR[rt];
- signed64 hi;
- signed64 lo;
- if (d == 0)
- {
- lo = SIGNED64 (0x8000000000000000);
- hi = 0;
- }
- else if (d == -1 && n == SIGNED64 (0x8000000000000000))
- {
- lo = SIGNED64 (0x8000000000000000);
- hi = 0;
- }
- else
- {
- lo = (n / d);
- hi = (n % d);
- }
- HI = hi;
- LO = lo;
- }
- TRACE_ALU_RESULT2 (HI, LO);
-}
-
-000000,5.RS,5.RT,0000000000,011110:SPECIAL:64::DDIV
-"ddiv r<RS>, r<RT>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- do_ddiv (SD_, RS, RT);
-}
-
-
-
-:function:::void:do_ddivu:int rs, int rt
-{
- check_div_hilo (SD_, HIHISTORY, LOHISTORY);
- TRACE_ALU_INPUT2 (GPR[rs], GPR[rt]);
- {
- unsigned64 n = GPR[rs];
- unsigned64 d = GPR[rt];
- unsigned64 hi;
- unsigned64 lo;
- if (d == 0)
- {
- lo = SIGNED64 (0x8000000000000000);
- hi = 0;
- }
- else
- {
- lo = (n / d);
- hi = (n % d);
- }
- HI = hi;
- LO = lo;
- }
- TRACE_ALU_RESULT2 (HI, LO);
-}
-
-000000,5.RS,5.RT,0000000000,011111:SPECIAL:64::DDIVU
-"ddivu r<RS>, r<RT>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- do_ddivu (SD_, RS, RT);
-}
-
-:function:::void:do_div:int rs, int rt
-{
- check_div_hilo (SD_, HIHISTORY, LOHISTORY);
- TRACE_ALU_INPUT2 (GPR[rs], GPR[rt]);
- {
- signed32 n = GPR[rs];
- signed32 d = GPR[rt];
- if (d == 0)
- {
- LO = EXTEND32 (0x80000000);
- HI = EXTEND32 (0);
- }
- else if (n == SIGNED32 (0x80000000) && d == -1)
- {
- LO = EXTEND32 (0x80000000);
- HI = EXTEND32 (0);
- }
- else
- {
- LO = EXTEND32 (n / d);
- HI = EXTEND32 (n % d);
- }
- }
- TRACE_ALU_RESULT2 (HI, LO);
-}
-
-000000,5.RS,5.RT,0000000000,011010:SPECIAL:32::DIV
-"div r<RS>, r<RT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_div (SD_, RS, RT);
-}
-
-
-
-:function:::void:do_divu:int rs, int rt
-{
- check_div_hilo (SD_, HIHISTORY, LOHISTORY);
- TRACE_ALU_INPUT2 (GPR[rs], GPR[rt]);
- {
- unsigned32 n = GPR[rs];
- unsigned32 d = GPR[rt];
- if (d == 0)
- {
- LO = EXTEND32 (0x80000000);
- HI = EXTEND32 (0);
- }
- else
- {
- LO = EXTEND32 (n / d);
- HI = EXTEND32 (n % d);
- }
- }
- TRACE_ALU_RESULT2 (HI, LO);
-}
-
-000000,5.RS,5.RT,0000000000,011011:SPECIAL:32::DIVU
-"divu r<RS>, r<RT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_divu (SD_, RS, RT);
-}
-
-
-:function:::void:do_dmultx:int rs, int rt, int rd, int signed_p
-{
- unsigned64 lo;
- unsigned64 hi;
- unsigned64 m00;
- unsigned64 m01;
- unsigned64 m10;
- unsigned64 m11;
- unsigned64 mid;
- int sign;
- unsigned64 op1 = GPR[rs];
- unsigned64 op2 = GPR[rt];
- check_mult_hilo (SD_, HIHISTORY, LOHISTORY);
- TRACE_ALU_INPUT2 (GPR[rs], GPR[rt]);
- /* make signed multiply unsigned */
- sign = 0;
- if (signed_p)
- {
- if ((signed64) op1 < 0)
- {
- op1 = - op1;
- ++sign;
- }
- if ((signed64) op2 < 0)
- {
- op2 = - op2;
- ++sign;
- }
- }
- /* multiply out the 4 sub products */
- m00 = ((unsigned64) VL4_8 (op1) * (unsigned64) VL4_8 (op2));
- m10 = ((unsigned64) VH4_8 (op1) * (unsigned64) VL4_8 (op2));
- m01 = ((unsigned64) VL4_8 (op1) * (unsigned64) VH4_8 (op2));
- m11 = ((unsigned64) VH4_8 (op1) * (unsigned64) VH4_8 (op2));
- /* add the products */
- mid = ((unsigned64) VH4_8 (m00)
- + (unsigned64) VL4_8 (m10)
- + (unsigned64) VL4_8 (m01));
- lo = U8_4 (mid, m00);
- hi = (m11
- + (unsigned64) VH4_8 (mid)
- + (unsigned64) VH4_8 (m01)
- + (unsigned64) VH4_8 (m10));
- /* fix the sign */
- if (sign & 1)
- {
- lo = -lo;
- if (lo == 0)
- hi = -hi;
- else
- hi = -hi - 1;
- }
- /* save the result HI/LO (and a gpr) */
- LO = lo;
- HI = hi;
- if (rd != 0)
- GPR[rd] = lo;
- TRACE_ALU_RESULT2 (HI, LO);
-}
-
-:function:::void:do_dmult:int rs, int rt, int rd
-{
- do_dmultx (SD_, rs, rt, rd, 1);
-}
-
-000000,5.RS,5.RT,0000000000,011100:SPECIAL:64::DMULT
-"dmult r<RS>, r<RT>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-{
- check_u64 (SD_, instruction_0);
- do_dmult (SD_, RS, RT, 0);
-}
-
-000000,5.RS,5.RT,5.RD,00000,011100:SPECIAL:64::DMULT
-"dmult r<RS>, r<RT>":RD == 0
-"dmult r<RD>, r<RS>, r<RT>"
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- do_dmult (SD_, RS, RT, RD);
-}
-
-
-
-:function:::void:do_dmultu:int rs, int rt, int rd
-{
- do_dmultx (SD_, rs, rt, rd, 0);
-}
-
-000000,5.RS,5.RT,0000000000,011101:SPECIAL:64::DMULTU
-"dmultu r<RS>, r<RT>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-{
- check_u64 (SD_, instruction_0);
- do_dmultu (SD_, RS, RT, 0);
-}
-
-000000,5.RS,5.RT,5.RD,00000,011101:SPECIAL:64::DMULTU
-"dmultu r<RD>, r<RS>, r<RT>":RD == 0
-"dmultu r<RS>, r<RT>"
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- do_dmultu (SD_, RS, RT, RD);
-}
-
-
-:function:::unsigned64:do_dror:unsigned64 x,unsigned64 y
-{
- unsigned64 result;
-
- y &= 63;
- TRACE_ALU_INPUT2 (x, y);
- result = ROTR64 (x, y);
- TRACE_ALU_RESULT (result);
- return result;
-}
-
-000000,00001,5.RT,5.RD,5.SHIFT,111010::64::DROR
-"dror r<RD>, r<RT>, <SHIFT>"
-*mips64r2:
-*vr5400:
-*vr5500:
-{
- check_u64 (SD_, instruction_0);
- GPR[RD] = do_dror (SD_, GPR[RT], SHIFT);
-}
-
-000000,00001,5.RT,5.RD,5.SHIFT,111110::64::DROR32
-"dror32 r<RD>, r<RT>, <SHIFT>"
-*mips64r2:
-*vr5400:
-*vr5500:
-{
- check_u64 (SD_, instruction_0);
- GPR[RD] = do_dror (SD_, GPR[RT], SHIFT + 32);
-}
-
-000000,5.RS,5.RT,5.RD,00001,010110::64::DRORV
-"drorv r<RD>, r<RT>, r<RS>"
-*mips64r2:
-*vr5400:
-*vr5500:
-{
- check_u64 (SD_, instruction_0);
- GPR[RD] = do_dror (SD_, GPR[RT], GPR[RS]);
-}
-
-
-:function:::void:do_dsll:int rt, int rd, int shift
-{
- TRACE_ALU_INPUT2 (GPR[rt], shift);
- GPR[rd] = GPR[rt] << shift;
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,00000,5.RT,5.RD,5.SHIFT,111000:SPECIAL:64::DSLL
-"dsll r<RD>, r<RT>, <SHIFT>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- do_dsll (SD_, RT, RD, SHIFT);
-}
-
-
-000000,00000,5.RT,5.RD,5.SHIFT,111100:SPECIAL:64::DSLL32
-"dsll32 r<RD>, r<RT>, <SHIFT>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- int s = 32 + SHIFT;
- check_u64 (SD_, instruction_0);
- TRACE_ALU_INPUT2 (GPR[RT], s);
- GPR[RD] = GPR[RT] << s;
- TRACE_ALU_RESULT (GPR[RD]);
-}
-
-:function:::void:do_dsllv:int rs, int rt, int rd
-{
- int s = MASKED64 (GPR[rs], 5, 0);
- TRACE_ALU_INPUT2 (GPR[rt], s);
- GPR[rd] = GPR[rt] << s;
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,5.RS,5.RT,5.RD,00000,010100:SPECIAL:64::DSLLV
-"dsllv r<RD>, r<RT>, r<RS>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- do_dsllv (SD_, RS, RT, RD);
-}
-
-:function:::void:do_dsra:int rt, int rd, int shift
-{
- TRACE_ALU_INPUT2 (GPR[rt], shift);
- GPR[rd] = ((signed64) GPR[rt]) >> shift;
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-
-000000,00000,5.RT,5.RD,5.SHIFT,111011:SPECIAL:64::DSRA
-"dsra r<RD>, r<RT>, <SHIFT>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- do_dsra (SD_, RT, RD, SHIFT);
-}
-
-
-000000,00000,5.RT,5.RD,5.SHIFT,111111:SPECIAL:64::DSRA32
-"dsra32 r<RD>, r<RT>, <SHIFT>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- int s = 32 + SHIFT;
- check_u64 (SD_, instruction_0);
- TRACE_ALU_INPUT2 (GPR[RT], s);
- GPR[RD] = ((signed64) GPR[RT]) >> s;
- TRACE_ALU_RESULT (GPR[RD]);
-}
-
-
-:function:::void:do_dsrav:int rs, int rt, int rd
-{
- int s = MASKED64 (GPR[rs], 5, 0);
- TRACE_ALU_INPUT2 (GPR[rt], s);
- GPR[rd] = ((signed64) GPR[rt]) >> s;
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,5.RS,5.RT,5.RD,00000,010111:SPECIAL:64::DSRAV
-"dsrav r<RD>, r<RT>, r<RS>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- do_dsrav (SD_, RS, RT, RD);
-}
-
-:function:::void:do_dsrl:int rt, int rd, int shift
-{
- TRACE_ALU_INPUT2 (GPR[rt], shift);
- GPR[rd] = (unsigned64) GPR[rt] >> shift;
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-
-000000,00000,5.RT,5.RD,5.SHIFT,111010:SPECIAL:64::DSRL
-"dsrl r<RD>, r<RT>, <SHIFT>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- do_dsrl (SD_, RT, RD, SHIFT);
-}
-
-
-000000,00000,5.RT,5.RD,5.SHIFT,111110:SPECIAL:64::DSRL32
-"dsrl32 r<RD>, r<RT>, <SHIFT>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- int s = 32 + SHIFT;
- check_u64 (SD_, instruction_0);
- TRACE_ALU_INPUT2 (GPR[RT], s);
- GPR[RD] = (unsigned64) GPR[RT] >> s;
- TRACE_ALU_RESULT (GPR[RD]);
-}
-
-
-:function:::void:do_dsrlv:int rs, int rt, int rd
-{
- int s = MASKED64 (GPR[rs], 5, 0);
- TRACE_ALU_INPUT2 (GPR[rt], s);
- GPR[rd] = (unsigned64) GPR[rt] >> s;
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-
-
-000000,5.RS,5.RT,5.RD,00000,010110:SPECIAL:64::DSRLV
-"dsrlv r<RD>, r<RT>, r<RS>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- do_dsrlv (SD_, RS, RT, RD);
-}
-
-
-000000,5.RS,5.RT,5.RD,00000,101110:SPECIAL:64::DSUB
-"dsub r<RD>, r<RS>, r<RT>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- TRACE_ALU_INPUT2 (GPR[RS], GPR[RT]);
- {
- ALU64_BEGIN (GPR[RS]);
- ALU64_SUB (GPR[RT]);
- ALU64_END (GPR[RD]); /* This checks for overflow. */
- }
- TRACE_ALU_RESULT (GPR[RD]);
-}
-
-
-:function:::void:do_dsubu:int rs, int rt, int rd
-{
- TRACE_ALU_INPUT2 (GPR[rs], GPR[rt]);
- GPR[rd] = GPR[rs] - GPR[rt];
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,5.RS,5.RT,5.RD,00000,101111:SPECIAL:64::DSUBU
-"dsubu r<RD>, r<RS>, r<RT>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- do_dsubu (SD_, RS, RT, RD);
-}
-
-
-000010,26.INSTR_INDEX:NORMAL:32::J
-"j <INSTR_INDEX>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- /* NOTE: The region used is that of the delay slot NIA and NOT the
- current instruction */
- address_word region = (NIA & MASK (63, 28));
- DELAY_SLOT (region | (INSTR_INDEX << 2));
-}
-
-
-000011,26.INSTR_INDEX:NORMAL:32::JAL
-"jal <INSTR_INDEX>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- /* NOTE: The region used is that of the delay slot and NOT the
- current instruction */
- address_word region = (NIA & MASK (63, 28));
- GPR[31] = CIA + 8;
- DELAY_SLOT (region | (INSTR_INDEX << 2));
-}
-
-000000,5.RS,00000,5.RD,00000,001001:SPECIAL:32::JALR
-"jalr r<RS>":RD == 31
-"jalr r<RD>, r<RS>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- address_word temp = GPR[RS];
- GPR[RD] = CIA + 8;
- DELAY_SLOT (temp);
-}
-
-
-000000,5.RS,000000000000000,001000:SPECIAL:32::JR
-"jr r<RS>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- DELAY_SLOT (GPR[RS]);
-}
-
-
-:function:::unsigned_word:do_load:unsigned access, address_word base, address_word offset
-{
- address_word mask = (WITH_TARGET_WORD_BITSIZE == 64 ? 0x7 : 0x3);
- address_word reverseendian = (ReverseEndian ? (mask ^ access) : 0);
- address_word bigendiancpu = (BigEndianCPU ? (mask ^ access) : 0);
- unsigned int byte;
- address_word paddr;
- int uncached;
- unsigned64 memval;
- address_word vaddr;
-
- vaddr = loadstore_ea (SD_, base, offset);
- if ((vaddr & access) != 0)
- {
- SIM_CORE_SIGNAL (SD, STATE_CPU (SD, 0), cia, read_map, access+1, vaddr, read_transfer, sim_core_unaligned_signal);
- }
- AddressTranslation (vaddr, isDATA, isLOAD, &paddr, &uncached, isTARGET, isREAL);
- paddr = ((paddr & ~mask) | ((paddr & mask) ^ reverseendian));
- LoadMemory (&memval, NULL, uncached, access, paddr, vaddr, isDATA, isREAL);
- byte = ((vaddr & mask) ^ bigendiancpu);
- return (memval >> (8 * byte));
-}
-
-:function:::unsigned_word:do_load_left:unsigned access, address_word base, address_word offset, unsigned_word rt
-{
- address_word mask = (WITH_TARGET_WORD_BITSIZE == 64 ? 0x7 : 0x3);
- address_word reverseendian = (ReverseEndian ? -1 : 0);
- address_word bigendiancpu = (BigEndianCPU ? -1 : 0);
- unsigned int byte;
- unsigned int word;
- address_word paddr;
- int uncached;
- unsigned64 memval;
- address_word vaddr;
- int nr_lhs_bits;
- int nr_rhs_bits;
- unsigned_word lhs_mask;
- unsigned_word temp;
-
- vaddr = loadstore_ea (SD_, base, offset);
- AddressTranslation (vaddr, isDATA, isLOAD, &paddr, &uncached, isTARGET, isREAL);
- paddr = (paddr ^ (reverseendian & mask));
- if (BigEndianMem == 0)
- paddr = paddr & ~access;
-
- /* compute where within the word/mem we are */
- byte = ((vaddr ^ bigendiancpu) & access); /* 0..access */
- word = ((vaddr ^ bigendiancpu) & (mask & ~access)) / (access + 1); /* 0..1 */
- nr_lhs_bits = 8 * byte + 8;
- nr_rhs_bits = 8 * access - 8 * byte;
- /* nr_lhs_bits + nr_rhs_bits == 8 * (accesss + 1) */
-
- /* fprintf (stderr, "l[wd]l: 0x%08lx%08lx 0x%08lx%08lx %d:%d %d+%d\n",
- (long) ((unsigned64) vaddr >> 32), (long) vaddr,
- (long) ((unsigned64) paddr >> 32), (long) paddr,
- word, byte, nr_lhs_bits, nr_rhs_bits); */
-
- LoadMemory (&memval, NULL, uncached, byte, paddr, vaddr, isDATA, isREAL);
- if (word == 0)
- {
- /* GPR{31..32-NR_LHS_BITS} = memval{NR_LHS_BITS-1..0} */
- temp = (memval << nr_rhs_bits);
- }
- else
- {
- /* GPR{31..32-NR_LHS_BITS = memval{32+NR_LHS_BITS..32} */
- temp = (memval >> nr_lhs_bits);
- }
- lhs_mask = LSMASK (nr_lhs_bits + nr_rhs_bits - 1, nr_rhs_bits);
- rt = (rt & ~lhs_mask) | (temp & lhs_mask);
-
- /* fprintf (stderr, "l[wd]l: 0x%08lx%08lx -> 0x%08lx%08lx & 0x%08lx%08lx -> 0x%08lx%08lx\n",
- (long) ((unsigned64) memval >> 32), (long) memval,
- (long) ((unsigned64) temp >> 32), (long) temp,
- (long) ((unsigned64) lhs_mask >> 32), (long) lhs_mask,
- (long) (rt >> 32), (long) rt); */
- return rt;
-}
-
-:function:::unsigned_word:do_load_right:unsigned access, address_word base, address_word offset, unsigned_word rt
-{
- address_word mask = (WITH_TARGET_WORD_BITSIZE == 64 ? 0x7 : 0x3);
- address_word reverseendian = (ReverseEndian ? -1 : 0);
- address_word bigendiancpu = (BigEndianCPU ? -1 : 0);
- unsigned int byte;
- address_word paddr;
- int uncached;
- unsigned64 memval;
- address_word vaddr;
-
- vaddr = loadstore_ea (SD_, base, offset);
- AddressTranslation (vaddr, isDATA, isLOAD, &paddr, &uncached, isTARGET, isREAL);
- /* NOTE: SPEC is wrong, has `BigEndianMem == 0' not `BigEndianMem != 0' */
- paddr = (paddr ^ (reverseendian & mask));
- if (BigEndianMem != 0)
- paddr = paddr & ~access;
- byte = ((vaddr & mask) ^ (bigendiancpu & mask));
- /* NOTE: SPEC is wrong, had `byte' not `access - byte'. See SW. */
- LoadMemory (&memval, NULL, uncached, access - (access & byte), paddr, vaddr, isDATA, isREAL);
- /* printf ("lr: 0x%08lx %d@0x%08lx 0x%08lx\n",
- (long) paddr, byte, (long) paddr, (long) memval); */
- {
- unsigned_word screen = LSMASK (8 * (access - (byte & access) + 1) - 1, 0);
- rt &= ~screen;
- rt |= (memval >> (8 * byte)) & screen;
- }
- return rt;
-}
-
-
-100000,5.BASE,5.RT,16.OFFSET:NORMAL:32::LB
-"lb r<RT>, <OFFSET>(r<BASE>)"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- GPR[RT] = EXTEND8 (do_load (SD_, AccessLength_BYTE, GPR[BASE], EXTEND16 (OFFSET)));
-}
-
-
-100100,5.BASE,5.RT,16.OFFSET:NORMAL:32::LBU
-"lbu r<RT>, <OFFSET>(r<BASE>)"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- GPR[RT] = do_load (SD_, AccessLength_BYTE, GPR[BASE], EXTEND16 (OFFSET));
-}
-
-
-110111,5.BASE,5.RT,16.OFFSET:NORMAL:64::LD
-"ld r<RT>, <OFFSET>(r<BASE>)"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- GPR[RT] = EXTEND64 (do_load (SD_, AccessLength_DOUBLEWORD, GPR[BASE], EXTEND16 (OFFSET)));
-}
-
-
-1101,ZZ!0!1!3,5.BASE,5.RT,16.OFFSET:NORMAL:64::LDCz
-"ldc<ZZ> r<RT>, <OFFSET>(r<BASE>)"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- COP_LD (ZZ, RT, do_load (SD_, AccessLength_DOUBLEWORD, GPR[BASE], EXTEND16 (OFFSET)));
-}
-
-
-
-
-011010,5.BASE,5.RT,16.OFFSET:NORMAL:64::LDL
-"ldl r<RT>, <OFFSET>(r<BASE>)"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- GPR[RT] = do_load_left (SD_, AccessLength_DOUBLEWORD, GPR[BASE], EXTEND16 (OFFSET), GPR[RT]);
-}
-
-
-011011,5.BASE,5.RT,16.OFFSET:NORMAL:64::LDR
-"ldr r<RT>, <OFFSET>(r<BASE>)"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- GPR[RT] = do_load_right (SD_, AccessLength_DOUBLEWORD, GPR[BASE], EXTEND16 (OFFSET), GPR[RT]);
-}
-
-
-100001,5.BASE,5.RT,16.OFFSET:NORMAL:32::LH
-"lh r<RT>, <OFFSET>(r<BASE>)"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- GPR[RT] = EXTEND16 (do_load (SD_, AccessLength_HALFWORD, GPR[BASE], EXTEND16 (OFFSET)));
-}
-
-
-100101,5.BASE,5.RT,16.OFFSET:NORMAL:32::LHU
-"lhu r<RT>, <OFFSET>(r<BASE>)"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- GPR[RT] = do_load (SD_, AccessLength_HALFWORD, GPR[BASE], EXTEND16 (OFFSET));
-}
-
-
-110000,5.BASE,5.RT,16.OFFSET:NORMAL:32::LL
-"ll r<RT>, <OFFSET>(r<BASE>)"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- address_word base = GPR[BASE];
- address_word offset = EXTEND16 (OFFSET);
- {
- address_word vaddr = loadstore_ea (SD_, base, offset);
- address_word paddr;
- int uncached;
- if ((vaddr & 3) != 0)
- {
- SIM_CORE_SIGNAL (SD, CPU, cia, read_map, 4, vaddr, read_transfer, sim_core_unaligned_signal);
- }
- else
- {
- if (AddressTranslation(vaddr,isDATA,isLOAD,&paddr,&uncached,isTARGET,isREAL))
- {
- unsigned64 memval = 0;
- unsigned64 memval1 = 0;
- unsigned64 mask = 0x7;
- unsigned int shift = 2;
- unsigned int reverse = (ReverseEndian ? (mask >> shift) : 0);
- unsigned int bigend = (BigEndianCPU ? (mask >> shift) : 0);
- unsigned int byte;
- paddr = ((paddr & ~mask) | ((paddr & mask) ^ (reverse << shift)));
- LoadMemory(&memval,&memval1,uncached,AccessLength_WORD,paddr,vaddr,isDATA,isREAL);
- byte = ((vaddr & mask) ^ (bigend << shift));
- GPR[RT] = EXTEND32 (memval >> (8 * byte));
- LLBIT = 1;
- }
- }
- }
-}
-
-
-110100,5.BASE,5.RT,16.OFFSET:NORMAL:64::LLD
-"lld r<RT>, <OFFSET>(r<BASE>)"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- address_word base = GPR[BASE];
- address_word offset = EXTEND16 (OFFSET);
- check_u64 (SD_, instruction_0);
- {
- address_word vaddr = loadstore_ea (SD_, base, offset);
- address_word paddr;
- int uncached;
- if ((vaddr & 7) != 0)
- {
- SIM_CORE_SIGNAL (SD, CPU, cia, read_map, 8, vaddr, read_transfer, sim_core_unaligned_signal);
- }
- else
- {
- if (AddressTranslation(vaddr,isDATA,isLOAD,&paddr,&uncached,isTARGET,isREAL))
- {
- unsigned64 memval = 0;
- unsigned64 memval1 = 0;
- LoadMemory(&memval,&memval1,uncached,AccessLength_DOUBLEWORD,paddr,vaddr,isDATA,isREAL);
- GPR[RT] = memval;
- LLBIT = 1;
- }
- }
- }
-}
-
-
-001111,00000,5.RT,16.IMMEDIATE:NORMAL:32::LUI
-"lui r<RT>, %#lx<IMMEDIATE>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- TRACE_ALU_INPUT1 (IMMEDIATE);
- GPR[RT] = EXTEND32 (IMMEDIATE << 16);
- TRACE_ALU_RESULT (GPR[RT]);
-}
-
-
-100011,5.BASE,5.RT,16.OFFSET:NORMAL:32::LW
-"lw r<RT>, <OFFSET>(r<BASE>)"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- GPR[RT] = EXTEND32 (do_load (SD_, AccessLength_WORD, GPR[BASE], EXTEND16 (OFFSET)));
-}
-
-
-1100,ZZ!0!1!3,5.BASE,5.RT,16.OFFSET:NORMAL:32::LWCz
-"lwc<ZZ> r<RT>, <OFFSET>(r<BASE>)"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- COP_LW (ZZ, RT, do_load (SD_, AccessLength_WORD, GPR[BASE], EXTEND16 (OFFSET)));
-}
-
-
-100010,5.BASE,5.RT,16.OFFSET:NORMAL:32::LWL
-"lwl r<RT>, <OFFSET>(r<BASE>)"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- GPR[RT] = EXTEND32 (do_load_left (SD_, AccessLength_WORD, GPR[BASE], EXTEND16 (OFFSET), GPR[RT]));
-}
-
-
-100110,5.BASE,5.RT,16.OFFSET:NORMAL:32::LWR
-"lwr r<RT>, <OFFSET>(r<BASE>)"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- GPR[RT] = EXTEND32 (do_load_right (SD_, AccessLength_WORD, GPR[BASE], EXTEND16 (OFFSET), GPR[RT]));
-}
-
-
-100111,5.BASE,5.RT,16.OFFSET:NORMAL:64::LWU
-"lwu r<RT>, <OFFSET>(r<BASE>)"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- GPR[RT] = do_load (SD_, AccessLength_WORD, GPR[BASE], EXTEND16 (OFFSET));
-}
-
-
-
-011100,5.RS,5.RT,00000,00000,000000:SPECIAL2:32::MADD
-"madd r<RS>, r<RT>"
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr5500:
-{
- signed64 temp;
- check_mult_hilo (SD_, HIHISTORY, LOHISTORY);
- if (NotWordValue (GPR[RS]) || NotWordValue (GPR[RT]))
- Unpredictable ();
- TRACE_ALU_INPUT2 (GPR[RS], GPR[RT]);
- temp = (U8_4 (VL4_8 (HI), VL4_8 (LO))
- + ((signed64) EXTEND32 (GPR[RT]) * (signed64) EXTEND32 (GPR[RS])));
- LO = EXTEND32 (temp);
- HI = EXTEND32 (VH4_8 (temp));
- TRACE_ALU_RESULT2 (HI, LO);
-}
-
-
-
-011100,5.RS,5.RT,00000,00000,000001:SPECIAL2:32::MADDU
-"maddu r<RS>, r<RT>"
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr5500:
-{
- unsigned64 temp;
- check_mult_hilo (SD_, HIHISTORY, LOHISTORY);
- if (NotWordValue (GPR[RS]) || NotWordValue (GPR[RT]))
- Unpredictable ();
- TRACE_ALU_INPUT2 (GPR[RS], GPR[RT]);
- temp = (U8_4 (VL4_8 (HI), VL4_8 (LO))
- + ((unsigned64) VL4_8 (GPR[RS]) * (unsigned64) VL4_8 (GPR[RT])));
- LO = EXTEND32 (temp);
- HI = EXTEND32 (VH4_8 (temp));
- TRACE_ALU_RESULT2 (HI, LO);
-}
-
-
-:function:::void:do_mfhi:int rd
-{
- check_mf_hilo (SD_, HIHISTORY, LOHISTORY);
- TRACE_ALU_INPUT1 (HI);
- GPR[rd] = HI;
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,0000000000,5.RD,00000,010000:SPECIAL:32::MFHI
-"mfhi r<RD>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_mfhi (SD_, RD);
-}
-
-
-
-:function:::void:do_mflo:int rd
-{
- check_mf_hilo (SD_, LOHISTORY, HIHISTORY);
- TRACE_ALU_INPUT1 (LO);
- GPR[rd] = LO;
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,0000000000,5.RD,00000,010010:SPECIAL:32::MFLO
-"mflo r<RD>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_mflo (SD_, RD);
-}
-
-
-
-000000,5.RS,5.RT,5.RD,00000,001011:SPECIAL:32::MOVN
-"movn r<RD>, r<RS>, r<RT>"
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr5000:
-{
- if (GPR[RT] != 0)
- {
- GPR[RD] = GPR[RS];
- TRACE_ALU_RESULT (GPR[RD]);
- }
-}
-
-
-
-000000,5.RS,5.RT,5.RD,00000,001010:SPECIAL:32::MOVZ
-"movz r<RD>, r<RS>, r<RT>"
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr5000:
-{
- if (GPR[RT] == 0)
- {
- GPR[RD] = GPR[RS];
- TRACE_ALU_RESULT (GPR[RD]);
- }
-}
-
-
-
-011100,5.RS,5.RT,00000,00000,000100:SPECIAL2:32::MSUB
-"msub r<RS>, r<RT>"
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr5500:
-{
- signed64 temp;
- check_mult_hilo (SD_, HIHISTORY, LOHISTORY);
- if (NotWordValue (GPR[RS]) || NotWordValue (GPR[RT]))
- Unpredictable ();
- TRACE_ALU_INPUT2 (GPR[RS], GPR[RT]);
- temp = (U8_4 (VL4_8 (HI), VL4_8 (LO))
- - ((signed64) EXTEND32 (GPR[RT]) * (signed64) EXTEND32 (GPR[RS])));
- LO = EXTEND32 (temp);
- HI = EXTEND32 (VH4_8 (temp));
- TRACE_ALU_RESULT2 (HI, LO);
-}
-
-
-
-011100,5.RS,5.RT,00000,00000,000101:SPECIAL2:32::MSUBU
-"msubu r<RS>, r<RT>"
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr5500:
-{
- unsigned64 temp;
- check_mult_hilo (SD_, HIHISTORY, LOHISTORY);
- if (NotWordValue (GPR[RS]) || NotWordValue (GPR[RT]))
- Unpredictable ();
- TRACE_ALU_INPUT2 (GPR[RS], GPR[RT]);
- temp = (U8_4 (VL4_8 (HI), VL4_8 (LO))
- - ((unsigned64) VL4_8 (GPR[RS]) * (unsigned64) VL4_8 (GPR[RT])));
- LO = EXTEND32 (temp);
- HI = EXTEND32 (VH4_8 (temp));
- TRACE_ALU_RESULT2 (HI, LO);
-}
-
-
-
-000000,5.RS,000000000000000,010001:SPECIAL:32::MTHI
-"mthi r<RS>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*vr4100:
-*vr5000:
-*r3900:
-{
- check_mt_hilo (SD_, HIHISTORY);
- HI = GPR[RS];
-}
-
-
-
-000000,5.RS,000000000000000,010011:SPECIAL:32::MTLO
-"mtlo r<RS>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*vr4100:
-*vr5000:
-*r3900:
-{
- check_mt_hilo (SD_, LOHISTORY);
- LO = GPR[RS];
-}
-
-
-
-011100,5.RS,5.RT,5.RD,00000,000010:SPECIAL2:32::MUL
-"mul r<RD>, r<RS>, r<RT>"
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr5500:
-{
- signed64 prod;
- if (NotWordValue (GPR[RS]) || NotWordValue (GPR[RT]))
- Unpredictable ();
- TRACE_ALU_INPUT2 (GPR[RS], GPR[RT]);
- prod = (((signed64)(signed32) GPR[RS])
- * ((signed64)(signed32) GPR[RT]));
- GPR[RD] = EXTEND32 (VL4_8 (prod));
- TRACE_ALU_RESULT (GPR[RD]);
-}
-
-
-
-:function:::void:do_mult:int rs, int rt, int rd
-{
- signed64 prod;
- check_mult_hilo (SD_, HIHISTORY, LOHISTORY);
- if (NotWordValue (GPR[rs]) || NotWordValue (GPR[rt]))
- Unpredictable ();
- TRACE_ALU_INPUT2 (GPR[rs], GPR[rt]);
- prod = (((signed64)(signed32) GPR[rs])
- * ((signed64)(signed32) GPR[rt]));
- LO = EXTEND32 (VL4_8 (prod));
- HI = EXTEND32 (VH4_8 (prod));
- if (rd != 0)
- GPR[rd] = LO;
- TRACE_ALU_RESULT2 (HI, LO);
-}
-
-000000,5.RS,5.RT,0000000000,011000:SPECIAL:32::MULT
-"mult r<RS>, r<RT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-{
- do_mult (SD_, RS, RT, 0);
-}
-
-
-000000,5.RS,5.RT,5.RD,00000,011000:SPECIAL:32::MULT
-"mult r<RS>, r<RT>":RD == 0
-"mult r<RD>, r<RS>, r<RT>"
-*vr5000:
-*r3900:
-{
- do_mult (SD_, RS, RT, RD);
-}
-
-
-:function:::void:do_multu:int rs, int rt, int rd
-{
- unsigned64 prod;
- check_mult_hilo (SD_, HIHISTORY, LOHISTORY);
- if (NotWordValue (GPR[rs]) || NotWordValue (GPR[rt]))
- Unpredictable ();
- TRACE_ALU_INPUT2 (GPR[rs], GPR[rt]);
- prod = (((unsigned64)(unsigned32) GPR[rs])
- * ((unsigned64)(unsigned32) GPR[rt]));
- LO = EXTEND32 (VL4_8 (prod));
- HI = EXTEND32 (VH4_8 (prod));
- if (rd != 0)
- GPR[rd] = LO;
- TRACE_ALU_RESULT2 (HI, LO);
-}
-
-000000,5.RS,5.RT,0000000000,011001:SPECIAL:32::MULTU
-"multu r<RS>, r<RT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-{
- do_multu (SD_, RS, RT, 0);
-}
-
-000000,5.RS,5.RT,5.RD,00000,011001:SPECIAL:32::MULTU
-"multu r<RS>, r<RT>":RD == 0
-"multu r<RD>, r<RS>, r<RT>"
-*vr5000:
-*r3900:
-{
- do_multu (SD_, RS, RT, RD);
-}
-
-
-:function:::void:do_nor:int rs, int rt, int rd
-{
- TRACE_ALU_INPUT2 (GPR[rs], GPR[rt]);
- GPR[rd] = ~ (GPR[rs] | GPR[rt]);
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,5.RS,5.RT,5.RD,00000,100111:SPECIAL:32::NOR
-"nor r<RD>, r<RS>, r<RT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_nor (SD_, RS, RT, RD);
-}
-
-
-:function:::void:do_or:int rs, int rt, int rd
-{
- TRACE_ALU_INPUT2 (GPR[rs], GPR[rt]);
- GPR[rd] = (GPR[rs] | GPR[rt]);
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,5.RS,5.RT,5.RD,00000,100101:SPECIAL:32::OR
-"or r<RD>, r<RS>, r<RT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_or (SD_, RS, RT, RD);
-}
-
-
-
-:function:::void:do_ori:int rs, int rt, unsigned immediate
-{
- TRACE_ALU_INPUT2 (GPR[rs], immediate);
- GPR[rt] = (GPR[rs] | immediate);
- TRACE_ALU_RESULT (GPR[rt]);
-}
-
-001101,5.RS,5.RT,16.IMMEDIATE:NORMAL:32::ORI
-"ori r<RT>, r<RS>, %#lx<IMMEDIATE>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_ori (SD_, RS, RT, IMMEDIATE);
-}
-
-
-110011,5.BASE,5.HINT,16.OFFSET:NORMAL:32::PREF
-"pref <HINT>, <OFFSET>(r<BASE>)"
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr5000:
-{
- address_word base = GPR[BASE];
- address_word offset = EXTEND16 (OFFSET);
- {
- address_word vaddr = loadstore_ea (SD_, base, offset);
- address_word paddr;
- int uncached;
- {
- if (AddressTranslation(vaddr,isDATA,isLOAD,&paddr,&uncached,isTARGET,isREAL))
- Prefetch(uncached,paddr,vaddr,isDATA,HINT);
- }
- }
-}
-
-
-:function:::unsigned64:do_ror:unsigned32 x,unsigned32 y
-{
- unsigned64 result;
-
- y &= 31;
- TRACE_ALU_INPUT2 (x, y);
- result = EXTEND32 (ROTR32 (x, y));
- TRACE_ALU_RESULT (result);
- return result;
-}
-
-000000,00001,5.RT,5.RD,5.SHIFT,000010::32::ROR
-"ror r<RD>, r<RT>, <SHIFT>"
-*mips32r2:
-*mips64r2:
-*vr5400:
-*vr5500:
-{
- GPR[RD] = do_ror (SD_, GPR[RT], SHIFT);
-}
-
-000000,5.RS,5.RT,5.RD,00001,000110::32::RORV
-"rorv r<RD>, r<RT>, r<RS>"
-*mips32r2:
-*mips64r2:
-*vr5400:
-*vr5500:
-{
- GPR[RD] = do_ror (SD_, GPR[RT], GPR[RS]);
-}
-
-
-:function:::void:do_store:unsigned access, address_word base, address_word offset, unsigned_word word
-{
- address_word mask = (WITH_TARGET_WORD_BITSIZE == 64 ? 0x7 : 0x3);
- address_word reverseendian = (ReverseEndian ? (mask ^ access) : 0);
- address_word bigendiancpu = (BigEndianCPU ? (mask ^ access) : 0);
- unsigned int byte;
- address_word paddr;
- int uncached;
- unsigned64 memval;
- address_word vaddr;
-
- vaddr = loadstore_ea (SD_, base, offset);
- if ((vaddr & access) != 0)
- {
- SIM_CORE_SIGNAL (SD, STATE_CPU(SD, 0), cia, read_map, access+1, vaddr, write_transfer, sim_core_unaligned_signal);
- }
- AddressTranslation (vaddr, isDATA, isSTORE, &paddr, &uncached, isTARGET, isREAL);
- paddr = ((paddr & ~mask) | ((paddr & mask) ^ reverseendian));
- byte = ((vaddr & mask) ^ bigendiancpu);
- memval = (word << (8 * byte));
- StoreMemory (uncached, access, memval, 0, paddr, vaddr, isREAL);
-}
-
-:function:::void:do_store_left:unsigned access, address_word base, address_word offset, unsigned_word rt
-{
- address_word mask = (WITH_TARGET_WORD_BITSIZE == 64 ? 0x7 : 0x3);
- address_word reverseendian = (ReverseEndian ? -1 : 0);
- address_word bigendiancpu = (BigEndianCPU ? -1 : 0);
- unsigned int byte;
- unsigned int word;
- address_word paddr;
- int uncached;
- unsigned64 memval;
- address_word vaddr;
- int nr_lhs_bits;
- int nr_rhs_bits;
-
- vaddr = loadstore_ea (SD_, base, offset);
- AddressTranslation (vaddr, isDATA, isSTORE, &paddr, &uncached, isTARGET, isREAL);
- paddr = (paddr ^ (reverseendian & mask));
- if (BigEndianMem == 0)
- paddr = paddr & ~access;
-
- /* compute where within the word/mem we are */
- byte = ((vaddr ^ bigendiancpu) & access); /* 0..access */
- word = ((vaddr ^ bigendiancpu) & (mask & ~access)) / (access + 1); /* 0..1 */
- nr_lhs_bits = 8 * byte + 8;
- nr_rhs_bits = 8 * access - 8 * byte;
- /* nr_lhs_bits + nr_rhs_bits == 8 * (accesss + 1) */
- /* fprintf (stderr, "s[wd]l: 0x%08lx%08lx 0x%08lx%08lx %d:%d %d+%d\n",
- (long) ((unsigned64) vaddr >> 32), (long) vaddr,
- (long) ((unsigned64) paddr >> 32), (long) paddr,
- word, byte, nr_lhs_bits, nr_rhs_bits); */
-
- if (word == 0)
- {
- memval = (rt >> nr_rhs_bits);
- }
- else
- {
- memval = (rt << nr_lhs_bits);
- }
- /* fprintf (stderr, "s[wd]l: 0x%08lx%08lx -> 0x%08lx%08lx\n",
- (long) ((unsigned64) rt >> 32), (long) rt,
- (long) ((unsigned64) memval >> 32), (long) memval); */
- StoreMemory (uncached, byte, memval, 0, paddr, vaddr, isREAL);
-}
-
-:function:::void:do_store_right:unsigned access, address_word base, address_word offset, unsigned_word rt
-{
- address_word mask = (WITH_TARGET_WORD_BITSIZE == 64 ? 0x7 : 0x3);
- address_word reverseendian = (ReverseEndian ? -1 : 0);
- address_word bigendiancpu = (BigEndianCPU ? -1 : 0);
- unsigned int byte;
- address_word paddr;
- int uncached;
- unsigned64 memval;
- address_word vaddr;
-
- vaddr = loadstore_ea (SD_, base, offset);
- AddressTranslation (vaddr, isDATA, isSTORE, &paddr, &uncached, isTARGET, isREAL);
- paddr = (paddr ^ (reverseendian & mask));
- if (BigEndianMem != 0)
- paddr &= ~access;
- byte = ((vaddr & mask) ^ (bigendiancpu & mask));
- memval = (rt << (byte * 8));
- StoreMemory (uncached, access - (access & byte), memval, 0, paddr, vaddr, isREAL);
-}
-
-
-101000,5.BASE,5.RT,16.OFFSET:NORMAL:32::SB
-"sb r<RT>, <OFFSET>(r<BASE>)"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_store (SD_, AccessLength_BYTE, GPR[BASE], EXTEND16 (OFFSET), GPR[RT]);
-}
-
-
-111000,5.BASE,5.RT,16.OFFSET:NORMAL:32::SC
-"sc r<RT>, <OFFSET>(r<BASE>)"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- unsigned32 instruction = instruction_0;
- address_word base = GPR[BASE];
- address_word offset = EXTEND16 (OFFSET);
- {
- address_word vaddr = loadstore_ea (SD_, base, offset);
- address_word paddr;
- int uncached;
- if ((vaddr & 3) != 0)
- {
- SIM_CORE_SIGNAL (SD, CPU, cia, read_map, 4, vaddr, write_transfer, sim_core_unaligned_signal);
- }
- else
- {
- if (AddressTranslation(vaddr,isDATA,isSTORE,&paddr,&uncached,isTARGET,isREAL))
- {
- unsigned64 memval = 0;
- unsigned64 memval1 = 0;
- unsigned64 mask = 0x7;
- unsigned int byte;
- paddr = ((paddr & ~mask) | ((paddr & mask) ^ (ReverseEndian << 2)));
- byte = ((vaddr & mask) ^ (BigEndianCPU << 2));
- memval = ((unsigned64) GPR[RT] << (8 * byte));
- if (LLBIT)
- {
- StoreMemory(uncached,AccessLength_WORD,memval,memval1,paddr,vaddr,isREAL);
- }
- GPR[RT] = LLBIT;
- }
- }
- }
-}
-
-
-111100,5.BASE,5.RT,16.OFFSET:NORMAL:64::SCD
-"scd r<RT>, <OFFSET>(r<BASE>)"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- address_word base = GPR[BASE];
- address_word offset = EXTEND16 (OFFSET);
- check_u64 (SD_, instruction_0);
- {
- address_word vaddr = loadstore_ea (SD_, base, offset);
- address_word paddr;
- int uncached;
- if ((vaddr & 7) != 0)
- {
- SIM_CORE_SIGNAL (SD, CPU, cia, read_map, 8, vaddr, write_transfer, sim_core_unaligned_signal);
- }
- else
- {
- if (AddressTranslation(vaddr,isDATA,isSTORE,&paddr,&uncached,isTARGET,isREAL))
- {
- unsigned64 memval = 0;
- unsigned64 memval1 = 0;
- memval = GPR[RT];
- if (LLBIT)
- {
- StoreMemory(uncached,AccessLength_DOUBLEWORD,memval,memval1,paddr,vaddr,isREAL);
- }
- GPR[RT] = LLBIT;
- }
- }
- }
-}
-
-
-111111,5.BASE,5.RT,16.OFFSET:NORMAL:64::SD
-"sd r<RT>, <OFFSET>(r<BASE>)"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- do_store (SD_, AccessLength_DOUBLEWORD, GPR[BASE], EXTEND16 (OFFSET), GPR[RT]);
-}
-
-
-1111,ZZ!0!1!3,5.BASE,5.RT,16.OFFSET:NORMAL:64::SDCz
-"sdc<ZZ> r<RT>, <OFFSET>(r<BASE>)"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- do_store (SD_, AccessLength_DOUBLEWORD, GPR[BASE], EXTEND16 (OFFSET), COP_SD (ZZ, RT));
-}
-
-
-101100,5.BASE,5.RT,16.OFFSET:NORMAL:64::SDL
-"sdl r<RT>, <OFFSET>(r<BASE>)"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- do_store_left (SD_, AccessLength_DOUBLEWORD, GPR[BASE], EXTEND16 (OFFSET), GPR[RT]);
-}
-
-
-101101,5.BASE,5.RT,16.OFFSET:NORMAL:64::SDR
-"sdr r<RT>, <OFFSET>(r<BASE>)"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- check_u64 (SD_, instruction_0);
- do_store_right (SD_, AccessLength_DOUBLEWORD, GPR[BASE], EXTEND16 (OFFSET), GPR[RT]);
-}
-
-
-
-101001,5.BASE,5.RT,16.OFFSET:NORMAL:32::SH
-"sh r<RT>, <OFFSET>(r<BASE>)"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_store (SD_, AccessLength_HALFWORD, GPR[BASE], EXTEND16 (OFFSET), GPR[RT]);
-}
-
-
-:function:::void:do_sll:int rt, int rd, int shift
-{
- unsigned32 temp = (GPR[rt] << shift);
- TRACE_ALU_INPUT2 (GPR[rt], shift);
- GPR[rd] = EXTEND32 (temp);
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,00000,5.RT,5.RD,5.SHIFT,000000:SPECIAL:32::SLLa
-"nop":RD == 0 && RT == 0 && SHIFT == 0
-"sll r<RD>, r<RT>, <SHIFT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*vr4100:
-*vr5000:
-*r3900:
-{
- /* Skip shift for NOP, so that there won't be lots of extraneous
- trace output. */
- if (RD != 0 || RT != 0 || SHIFT != 0)
- do_sll (SD_, RT, RD, SHIFT);
-}
-
-000000,00000,5.RT,5.RD,5.SHIFT,000000:SPECIAL:32::SLLb
-"nop":RD == 0 && RT == 0 && SHIFT == 0
-"ssnop":RD == 0 && RT == 0 && SHIFT == 1
-"sll r<RD>, r<RT>, <SHIFT>"
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-{
- /* Skip shift for NOP and SSNOP, so that there won't be lots of
- extraneous trace output. */
- if (RD != 0 || RT != 0 || (SHIFT != 0 && SHIFT != 1))
- do_sll (SD_, RT, RD, SHIFT);
-}
-
-
-:function:::void:do_sllv:int rs, int rt, int rd
-{
- int s = MASKED (GPR[rs], 4, 0);
- unsigned32 temp = (GPR[rt] << s);
- TRACE_ALU_INPUT2 (GPR[rt], s);
- GPR[rd] = EXTEND32 (temp);
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,5.RS,5.RT,5.RD,00000,000100:SPECIAL:32::SLLV
-"sllv r<RD>, r<RT>, r<RS>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_sllv (SD_, RS, RT, RD);
-}
-
-
-:function:::void:do_slt:int rs, int rt, int rd
-{
- TRACE_ALU_INPUT2 (GPR[rs], GPR[rt]);
- GPR[rd] = ((signed_word) GPR[rs] < (signed_word) GPR[rt]);
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,5.RS,5.RT,5.RD,00000,101010:SPECIAL:32::SLT
-"slt r<RD>, r<RS>, r<RT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_slt (SD_, RS, RT, RD);
-}
-
-
-:function:::void:do_slti:int rs, int rt, unsigned16 immediate
-{
- TRACE_ALU_INPUT2 (GPR[rs], EXTEND16 (immediate));
- GPR[rt] = ((signed_word) GPR[rs] < (signed_word) EXTEND16 (immediate));
- TRACE_ALU_RESULT (GPR[rt]);
-}
-
-001010,5.RS,5.RT,16.IMMEDIATE:NORMAL:32::SLTI
-"slti r<RT>, r<RS>, <IMMEDIATE>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_slti (SD_, RS, RT, IMMEDIATE);
-}
-
-
-:function:::void:do_sltiu:int rs, int rt, unsigned16 immediate
-{
- TRACE_ALU_INPUT2 (GPR[rs], EXTEND16 (immediate));
- GPR[rt] = ((unsigned_word) GPR[rs] < (unsigned_word) EXTEND16 (immediate));
- TRACE_ALU_RESULT (GPR[rt]);
-}
-
-001011,5.RS,5.RT,16.IMMEDIATE:NORMAL:32::SLTIU
-"sltiu r<RT>, r<RS>, <IMMEDIATE>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_sltiu (SD_, RS, RT, IMMEDIATE);
-}
-
-
-
-:function:::void:do_sltu:int rs, int rt, int rd
-{
- TRACE_ALU_INPUT2 (GPR[rs], GPR[rt]);
- GPR[rd] = ((unsigned_word) GPR[rs] < (unsigned_word) GPR[rt]);
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,5.RS,5.RT,5.RD,00000,101011:SPECIAL:32::SLTU
-"sltu r<RD>, r<RS>, r<RT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_sltu (SD_, RS, RT, RD);
-}
-
-
-:function:::void:do_sra:int rt, int rd, int shift
-{
- signed32 temp = (signed32) GPR[rt] >> shift;
- if (NotWordValue (GPR[rt]))
- Unpredictable ();
- TRACE_ALU_INPUT2 (GPR[rt], shift);
- GPR[rd] = EXTEND32 (temp);
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,00000,5.RT,5.RD,5.SHIFT,000011:SPECIAL:32::SRA
-"sra r<RD>, r<RT>, <SHIFT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_sra (SD_, RT, RD, SHIFT);
-}
-
-
-
-:function:::void:do_srav:int rs, int rt, int rd
-{
- int s = MASKED (GPR[rs], 4, 0);
- signed32 temp = (signed32) GPR[rt] >> s;
- if (NotWordValue (GPR[rt]))
- Unpredictable ();
- TRACE_ALU_INPUT2 (GPR[rt], s);
- GPR[rd] = EXTEND32 (temp);
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,5.RS,5.RT,5.RD,00000,000111:SPECIAL:32::SRAV
-"srav r<RD>, r<RT>, r<RS>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_srav (SD_, RS, RT, RD);
-}
-
-
-
-:function:::void:do_srl:int rt, int rd, int shift
-{
- unsigned32 temp = (unsigned32) GPR[rt] >> shift;
- if (NotWordValue (GPR[rt]))
- Unpredictable ();
- TRACE_ALU_INPUT2 (GPR[rt], shift);
- GPR[rd] = EXTEND32 (temp);
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,00000,5.RT,5.RD,5.SHIFT,000010:SPECIAL:32::SRL
-"srl r<RD>, r<RT>, <SHIFT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_srl (SD_, RT, RD, SHIFT);
-}
-
-
-:function:::void:do_srlv:int rs, int rt, int rd
-{
- int s = MASKED (GPR[rs], 4, 0);
- unsigned32 temp = (unsigned32) GPR[rt] >> s;
- if (NotWordValue (GPR[rt]))
- Unpredictable ();
- TRACE_ALU_INPUT2 (GPR[rt], s);
- GPR[rd] = EXTEND32 (temp);
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,5.RS,5.RT,5.RD,00000,000110:SPECIAL:32::SRLV
-"srlv r<RD>, r<RT>, r<RS>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_srlv (SD_, RS, RT, RD);
-}
-
-
-000000,5.RS,5.RT,5.RD,00000,100010:SPECIAL:32::SUB
-"sub r<RD>, r<RS>, r<RT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- if (NotWordValue (GPR[RS]) || NotWordValue (GPR[RT]))
- Unpredictable ();
- TRACE_ALU_INPUT2 (GPR[RS], GPR[RT]);
- {
- ALU32_BEGIN (GPR[RS]);
- ALU32_SUB (GPR[RT]);
- ALU32_END (GPR[RD]); /* This checks for overflow. */
- }
- TRACE_ALU_RESULT (GPR[RD]);
-}
-
-
-:function:::void:do_subu:int rs, int rt, int rd
-{
- if (NotWordValue (GPR[rs]) || NotWordValue (GPR[rt]))
- Unpredictable ();
- TRACE_ALU_INPUT2 (GPR[rs], GPR[rt]);
- GPR[rd] = EXTEND32 (GPR[rs] - GPR[rt]);
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,5.RS,5.RT,5.RD,00000,100011:SPECIAL:32::SUBU
-"subu r<RD>, r<RS>, r<RT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_subu (SD_, RS, RT, RD);
-}
-
-
-101011,5.BASE,5.RT,16.OFFSET:NORMAL:32::SW
-"sw r<RT>, <OFFSET>(r<BASE>)"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*r3900:
-*vr5000:
-{
- do_store (SD_, AccessLength_WORD, GPR[BASE], EXTEND16 (OFFSET), GPR[RT]);
-}
-
-
-1110,ZZ!0!1!3,5.BASE,5.RT,16.OFFSET:NORMAL:32::SWCz
-"swc<ZZ> r<RT>, <OFFSET>(r<BASE>)"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_store (SD_, AccessLength_WORD, GPR[BASE], EXTEND16 (OFFSET), COP_SW (ZZ, RT));
-}
-
-
-101010,5.BASE,5.RT,16.OFFSET:NORMAL:32::SWL
-"swl r<RT>, <OFFSET>(r<BASE>)"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_store_left (SD_, AccessLength_WORD, GPR[BASE], EXTEND16 (OFFSET), GPR[RT]);
-}
-
-
-101110,5.BASE,5.RT,16.OFFSET:NORMAL:32::SWR
-"swr r<RT>, <OFFSET>(r<BASE>)"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_store_right (SD_, AccessLength_WORD, GPR[BASE], EXTEND16 (OFFSET), GPR[RT]);
-}
-
-
-000000,000000000000000,5.STYPE,001111:SPECIAL:32::SYNC
-"sync":STYPE == 0
-"sync <STYPE>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- SyncOperation (STYPE);
-}
-
-
-000000,20.CODE,001100:SPECIAL:32::SYSCALL
-"syscall %#lx<CODE>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- SignalException (SystemCall, instruction_0);
-}
-
-
-000000,5.RS,5.RT,10.CODE,110100:SPECIAL:32::TEQ
-"teq r<RS>, r<RT>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- if ((signed_word) GPR[RS] == (signed_word) GPR[RT])
- SignalException (Trap, instruction_0);
-}
-
-
-000001,5.RS,01100,16.IMMEDIATE:REGIMM:32::TEQI
-"teqi r<RS>, <IMMEDIATE>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- if ((signed_word) GPR[RS] == (signed_word) EXTEND16 (IMMEDIATE))
- SignalException (Trap, instruction_0);
-}
-
-
-000000,5.RS,5.RT,10.CODE,110000:SPECIAL:32::TGE
-"tge r<RS>, r<RT>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- if ((signed_word) GPR[RS] >= (signed_word) GPR[RT])
- SignalException (Trap, instruction_0);
-}
-
-
-000001,5.RS,01000,16.IMMEDIATE:REGIMM:32::TGEI
-"tgei r<RS>, <IMMEDIATE>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- if ((signed_word) GPR[RS] >= (signed_word) EXTEND16 (IMMEDIATE))
- SignalException (Trap, instruction_0);
-}
-
-
-000001,5.RS,01001,16.IMMEDIATE:REGIMM:32::TGEIU
-"tgeiu r<RS>, <IMMEDIATE>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- if ((unsigned_word) GPR[RS] >= (unsigned_word) EXTEND16 (IMMEDIATE))
- SignalException (Trap, instruction_0);
-}
-
-
-000000,5.RS,5.RT,10.CODE,110001:SPECIAL:32::TGEU
-"tgeu r<RS>, r<RT>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- if ((unsigned_word) GPR[RS] >= (unsigned_word) GPR[RT])
- SignalException (Trap, instruction_0);
-}
-
-
-000000,5.RS,5.RT,10.CODE,110010:SPECIAL:32::TLT
-"tlt r<RS>, r<RT>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- if ((signed_word) GPR[RS] < (signed_word) GPR[RT])
- SignalException (Trap, instruction_0);
-}
-
-
-000001,5.RS,01010,16.IMMEDIATE:REGIMM:32::TLTI
-"tlti r<RS>, <IMMEDIATE>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- if ((signed_word) GPR[RS] < (signed_word) EXTEND16 (IMMEDIATE))
- SignalException (Trap, instruction_0);
-}
-
-
-000001,5.RS,01011,16.IMMEDIATE:REGIMM:32::TLTIU
-"tltiu r<RS>, <IMMEDIATE>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- if ((unsigned_word) GPR[RS] < (unsigned_word) EXTEND16 (IMMEDIATE))
- SignalException (Trap, instruction_0);
-}
-
-
-000000,5.RS,5.RT,10.CODE,110011:SPECIAL:32::TLTU
-"tltu r<RS>, r<RT>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- if ((unsigned_word) GPR[RS] < (unsigned_word) GPR[RT])
- SignalException (Trap, instruction_0);
-}
-
-
-000000,5.RS,5.RT,10.CODE,110110:SPECIAL:32::TNE
-"tne r<RS>, r<RT>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- if ((signed_word) GPR[RS] != (signed_word) GPR[RT])
- SignalException (Trap, instruction_0);
-}
-
-
-000001,5.RS,01110,16.IMMEDIATE:REGIMM:32::TNEI
-"tnei r<RS>, <IMMEDIATE>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- if ((signed_word) GPR[RS] != (signed_word) EXTEND16 (IMMEDIATE))
- SignalException (Trap, instruction_0);
-}
-
-
-:function:::void:do_xor:int rs, int rt, int rd
-{
- TRACE_ALU_INPUT2 (GPR[rs], GPR[rt]);
- GPR[rd] = GPR[rs] ^ GPR[rt];
- TRACE_ALU_RESULT (GPR[rd]);
-}
-
-000000,5.RS,5.RT,5.RD,00000,100110:SPECIAL:32::XOR
-"xor r<RD>, r<RS>, r<RT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_xor (SD_, RS, RT, RD);
-}
-
-
-:function:::void:do_xori:int rs, int rt, unsigned16 immediate
-{
- TRACE_ALU_INPUT2 (GPR[rs], immediate);
- GPR[rt] = GPR[rs] ^ immediate;
- TRACE_ALU_RESULT (GPR[rt]);
-}
-
-001110,5.RS,5.RT,16.IMMEDIATE:NORMAL:32::XORI
-"xori r<RT>, r<RS>, %#lx<IMMEDIATE>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- do_xori (SD_, RS, RT, IMMEDIATE);
-}
-
-
-//
-// MIPS Architecture:
-//
-// FPU Instruction Set (COP1 & COP1X)
-//
-
-
-:%s::::FMT:int fmt
-{
- switch (fmt)
- {
- case fmt_single: return "s";
- case fmt_double: return "d";
- case fmt_word: return "w";
- case fmt_long: return "l";
- case fmt_ps: return "ps";
- default: return "?";
- }
-}
-
-:%s::::TF:int tf
-{
- if (tf)
- return "t";
- else
- return "f";
-}
-
-:%s::::ND:int nd
-{
- if (nd)
- return "l";
- else
- return "";
-}
-
-:%s::::COND:int cond
-{
- switch (cond)
- {
- case 00: return "f";
- case 01: return "un";
- case 02: return "eq";
- case 03: return "ueq";
- case 04: return "olt";
- case 05: return "ult";
- case 06: return "ole";
- case 07: return "ule";
- case 010: return "sf";
- case 011: return "ngle";
- case 012: return "seq";
- case 013: return "ngl";
- case 014: return "lt";
- case 015: return "nge";
- case 016: return "le";
- case 017: return "ngt";
- default: return "?";
- }
-}
-
-
-// Helpers:
-//
-// Check that the given FPU format is usable, and signal a
-// ReservedInstruction exception if not.
-//
-
-// check_fmt_p checks that the format is single, double, or paired single.
-:function:::void:check_fmt_p:int fmt, instruction_word insn
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mips32:
-*mips32r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- /* None of these ISAs support Paired Single, so just fall back to
- the single/double check. */
- if ((fmt != fmt_single) && (fmt != fmt_double))
- SignalException (ReservedInstruction, insn);
-}
-
-:function:::void:check_fmt_p:int fmt, instruction_word insn
-*mipsV:
-*mips64:
-*mips64r2:
-{
- if ((fmt != fmt_single) && (fmt != fmt_double)
- && (fmt != fmt_ps || (UserMode && (SR & (status_UX|status_PX)) == 0)))
- SignalException (ReservedInstruction, insn);
-}
-
-
-// Helper:
-//
-// Check that the FPU is currently usable, and signal a CoProcessorUnusable
-// exception if not.
-//
-
-:function:::void:check_fpu:
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- if (! COP_Usable (1))
- SignalExceptionCoProcessorUnusable (1);
-}
-
-
-// Helper:
-//
-// Load a double word FP value using 2 32-bit memory cycles a la MIPS II
-// or MIPS32. do_load cannot be used instead because it returns an
-// unsigned_word, which is limited to the size of the machine's registers.
-//
-
-:function:::unsigned64:do_load_double:address_word base, address_word offset
-*mipsII:
-*mips32:
-*mips32r2:
-{
- int bigendian = (BigEndianCPU ? ! ReverseEndian : ReverseEndian);
- address_word vaddr;
- address_word paddr;
- int uncached;
- unsigned64 memval;
- unsigned64 v;
-
- vaddr = loadstore_ea (SD_, base, offset);
- if ((vaddr & AccessLength_DOUBLEWORD) != 0)
- {
- SIM_CORE_SIGNAL (SD, STATE_CPU (SD, 0), cia, read_map,
- AccessLength_DOUBLEWORD + 1, vaddr, read_transfer,
- sim_core_unaligned_signal);
- }
- AddressTranslation (vaddr, isDATA, isLOAD, &paddr, &uncached, isTARGET,
- isREAL);
- LoadMemory (&memval, NULL, uncached, AccessLength_WORD, paddr, vaddr,
- isDATA, isREAL);
- v = (unsigned64)memval;
- LoadMemory (&memval, NULL, uncached, AccessLength_WORD, paddr + 4, vaddr + 4,
- isDATA, isREAL);
- return (bigendian ? ((v << 32) | memval) : (v | (memval << 32)));
-}
-
-
-// Helper:
-//
-// Store a double word FP value using 2 32-bit memory cycles a la MIPS II
-// or MIPS32. do_load cannot be used instead because it returns an
-// unsigned_word, which is limited to the size of the machine's registers.
-//
-
-:function:::void:do_store_double:address_word base, address_word offset, unsigned64 v
-*mipsII:
-*mips32:
-*mips32r2:
-{
- int bigendian = (BigEndianCPU ? ! ReverseEndian : ReverseEndian);
- address_word vaddr;
- address_word paddr;
- int uncached;
- unsigned64 memval;
-
- vaddr = loadstore_ea (SD_, base, offset);
- if ((vaddr & AccessLength_DOUBLEWORD) != 0)
- {
- SIM_CORE_SIGNAL (SD, STATE_CPU(SD, 0), cia, read_map,
- AccessLength_DOUBLEWORD + 1, vaddr, write_transfer,
- sim_core_unaligned_signal);
- }
- AddressTranslation (vaddr, isDATA, isSTORE, &paddr, &uncached, isTARGET,
- isREAL);
- memval = (bigendian ? (v >> 32) : (v & 0xFFFFFFFF));
- StoreMemory (uncached, AccessLength_WORD, memval, 0, paddr, vaddr,
- isREAL);
- memval = (bigendian ? (v & 0xFFFFFFFF) : (v >> 32));
- StoreMemory (uncached, AccessLength_WORD, memval, 0, paddr + 4, vaddr + 4,
- isREAL);
-}
-
-
-010001,10,3.FMT!2!3!4!5!7,00000,5.FS,5.FD,000101:COP1:32,f::ABS.fmt
-"abs.%s<FMT> f<FD>, f<FS>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- check_fmt_p (SD_, fmt, instruction_0);
- StoreFPR (FD, fmt, AbsoluteValue (ValueFPR (FS, fmt), fmt));
-}
-
-
-
-010001,10,3.FMT!2!3!4!5!7,5.FT,5.FS,5.FD,000000:COP1:32,f::ADD.fmt
-"add.%s<FMT> f<FD>, f<FS>, f<FT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- check_fmt_p (SD_, fmt, instruction_0);
- StoreFPR (FD, fmt, Add (ValueFPR (FS, fmt), ValueFPR (FT, fmt), fmt));
-}
-
-
-010011,5.RS,5.FT,5.FS,5.FD,011,110:COP1X:64,f::ALNV.PS
-"alnv.ps f<FD>, f<FS>, f<FT>, r<RS>"
-*mipsV:
-*mips64:
-*mips64r2:
-{
- unsigned64 fs;
- unsigned64 ft;
- unsigned64 fd;
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- fs = ValueFPR (FS, fmt_ps);
- if ((GPR[RS] & 0x3) != 0)
- Unpredictable ();
- if ((GPR[RS] & 0x4) == 0)
- fd = fs;
- else
- {
- ft = ValueFPR (FT, fmt_ps);
- if (BigEndianCPU)
- fd = PackPS (PSLower (fs), PSUpper (ft));
- else
- fd = PackPS (PSLower (ft), PSUpper (fs));
- }
- StoreFPR (FD, fmt_ps, fd);
-}
-
-
-// BC1F
-// BC1FL
-// BC1T
-// BC1TL
-
-010001,01000,3.0,1.ND,1.TF,16.OFFSET:COP1S:32,f::BC1a
-"bc1%s<TF>%s<ND> <OFFSET>"
-*mipsI:
-*mipsII:
-*mipsIII:
-{
- check_fpu (SD_);
- TRACE_BRANCH_INPUT (PREVCOC1());
- if (PREVCOC1() == TF)
- {
- address_word dest = NIA + (EXTEND16 (OFFSET) << 2);
- TRACE_BRANCH_RESULT (dest);
- DELAY_SLOT (dest);
- }
- else if (ND)
- {
- TRACE_BRANCH_RESULT (0);
- NULLIFY_NEXT_INSTRUCTION ();
- }
- else
- {
- TRACE_BRANCH_RESULT (NIA);
- }
-}
-
-010001,01000,3.CC,1.ND,1.TF,16.OFFSET:COP1S:32,f::BC1b
-"bc1%s<TF>%s<ND> <OFFSET>":CC == 0
-"bc1%s<TF>%s<ND> <CC>, <OFFSET>"
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-#*vr4100:
-*vr5000:
-*r3900:
-{
- check_fpu (SD_);
- if (GETFCC(CC) == TF)
- {
- address_word dest = NIA + (EXTEND16 (OFFSET) << 2);
- DELAY_SLOT (dest);
- }
- else if (ND)
- {
- NULLIFY_NEXT_INSTRUCTION ();
- }
-}
-
-
-010001,10,3.FMT!2!3!4!5!6!7,5.FT,5.FS,3.0,00,11,4.COND:COP1:32,f::C.cond.fmta
-"c.%s<COND>.%s<FMT> f<FS>, f<FT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-{
- int fmt = FMT;
- check_fpu (SD_);
- Compare (ValueFPR (FS, fmt), ValueFPR (FT, fmt), fmt, COND, 0);
- TRACE_ALU_RESULT (ValueFCR (31));
-}
-
-010001,10,3.FMT!2!3!4!5!7,5.FT,5.FS,3.CC,00,11,4.COND:COP1:32,f::C.cond.fmtb
-"c.%s<COND>.%s<FMT> f<FS>, f<FT>":CC == 0
-"c.%s<COND>.%s<FMT> <CC>, f<FS>, f<FT>"
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- check_fmt_p (SD_, fmt, instruction_0);
- Compare (ValueFPR (FS, fmt), ValueFPR (FT, fmt), fmt, COND, CC);
- TRACE_ALU_RESULT (ValueFCR (31));
-}
-
-
-010001,10,3.FMT!2!3!4!5!6!7,00000,5.FS,5.FD,001010:COP1:64,f::CEIL.L.fmt
-"ceil.l.%s<FMT> f<FD>, f<FS>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- StoreFPR (FD, fmt_long, Convert (FP_RM_TOPINF, ValueFPR (FS, fmt), fmt,
- fmt_long));
-}
-
-
-010001,10,3.FMT!2!3!4!5!6!7,00000,5.FS,5.FD,001110:COP1:32,f::CEIL.W
-"ceil.w.%s<FMT> f<FD>, f<FS>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- StoreFPR (FD, fmt_word, Convert (FP_RM_TOPINF, ValueFPR (FS, fmt), fmt,
- fmt_word));
-}
-
-
-010001,00010,5.RT,5.FS,00000000000:COP1:32,f::CFC1a
-"cfc1 r<RT>, f<FS>"
-*mipsI:
-*mipsII:
-*mipsIII:
-{
- check_fpu (SD_);
- if (FS == 0)
- PENDING_FILL (RT, EXTEND32 (FCR0));
- else if (FS == 31)
- PENDING_FILL (RT, EXTEND32 (FCR31));
- /* else NOP */
-}
-
-010001,00010,5.RT,5.FS,00000000000:COP1:32,f::CFC1b
-"cfc1 r<RT>, f<FS>"
-*mipsIV:
-*vr4100:
-*vr5000:
-*r3900:
-{
- check_fpu (SD_);
- if (FS == 0 || FS == 31)
- {
- unsigned_word fcr = ValueFCR (FS);
- TRACE_ALU_INPUT1 (fcr);
- GPR[RT] = fcr;
- }
- /* else NOP */
- TRACE_ALU_RESULT (GPR[RT]);
-}
-
-010001,00010,5.RT,5.FS,00000000000:COP1:32,f::CFC1c
-"cfc1 r<RT>, f<FS>"
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-{
- check_fpu (SD_);
- if (FS == 0 || FS == 25 || FS == 26 || FS == 28 || FS == 31)
- {
- unsigned_word fcr = ValueFCR (FS);
- TRACE_ALU_INPUT1 (fcr);
- GPR[RT] = fcr;
- }
- /* else NOP */
- TRACE_ALU_RESULT (GPR[RT]);
-}
-
-010001,00110,5.RT,5.FS,00000000000:COP1:32,f::CTC1a
-"ctc1 r<RT>, f<FS>"
-*mipsI:
-*mipsII:
-*mipsIII:
-{
- check_fpu (SD_);
- if (FS == 31)
- PENDING_FILL (FCRCS_REGNUM, VL4_8 (GPR[RT]));
- /* else NOP */
-}
-
-010001,00110,5.RT,5.FS,00000000000:COP1:32,f::CTC1b
-"ctc1 r<RT>, f<FS>"
-*mipsIV:
-*vr4100:
-*vr5000:
-*r3900:
-{
- check_fpu (SD_);
- TRACE_ALU_INPUT1 (GPR[RT]);
- if (FS == 31)
- StoreFCR (FS, GPR[RT]);
- /* else NOP */
-}
-
-010001,00110,5.RT,5.FS,00000000000:COP1:32,f::CTC1c
-"ctc1 r<RT>, f<FS>"
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-{
- check_fpu (SD_);
- TRACE_ALU_INPUT1 (GPR[RT]);
- if (FS == 25 || FS == 26 || FS == 28 || FS == 31)
- StoreFCR (FS, GPR[RT]);
- /* else NOP */
-}
-
-
-//
-// FIXME: Does not correctly differentiate between mips*
-//
-010001,10,3.FMT!1!2!3!6!7,00000,5.FS,5.FD,100001:COP1:32,f::CVT.D.fmt
-"cvt.d.%s<FMT> f<FD>, f<FS>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- if ((fmt == fmt_double) | 0)
- SignalException (ReservedInstruction, instruction_0);
- StoreFPR (FD, fmt_double, Convert (GETRM (), ValueFPR (FS, fmt), fmt,
- fmt_double));
-}
-
-
-010001,10,3.FMT!2!3!4!5!6!7,00000,5.FS,5.FD,100101:COP1:64,f::CVT.L.fmt
-"cvt.l.%s<FMT> f<FD>, f<FS>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- if ((fmt == fmt_long) | ((fmt == fmt_long) || (fmt == fmt_word)))
- SignalException (ReservedInstruction, instruction_0);
- StoreFPR (FD, fmt_long, Convert (GETRM (), ValueFPR (FS, fmt), fmt,
- fmt_long));
-}
-
-
-010001,10,000,5.FT,5.FS,5.FD,100110:COP1:64,f::CVT.PS.S
-"cvt.ps.s f<FD>, f<FS>, f<FT>"
-*mipsV:
-*mips64:
-*mips64r2:
-{
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- StoreFPR (FD, fmt_ps, PackPS (ValueFPR (FS, fmt_single),
- ValueFPR (FT, fmt_single)));
-}
-
-
-//
-// FIXME: Does not correctly differentiate between mips*
-//
-010001,10,3.FMT!0!2!3!6!7,00000,5.FS,5.FD,100000:COP1:32,f::CVT.S.fmt
-"cvt.s.%s<FMT> f<FD>, f<FS>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- if ((fmt == fmt_single) | 0)
- SignalException (ReservedInstruction, instruction_0);
- StoreFPR (FD, fmt_single, Convert (GETRM (), ValueFPR (FS, fmt), fmt,
- fmt_single));
-}
-
-
-010001,10,110,00000,5.FS,5.FD,101000:COP1:64,f::CVT.S.PL
-"cvt.s.pl f<FD>, f<FS>"
-*mipsV:
-*mips64:
-*mips64r2:
-{
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- StoreFPR (FD, fmt_single, PSLower (ValueFPR (FS, fmt_ps)));
-}
-
-
-010001,10,110,00000,5.FS,5.FD,100000:COP1:64,f::CVT.S.PU
-"cvt.s.pu f<FD>, f<FS>"
-*mipsV:
-*mips64:
-*mips64r2:
-{
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- StoreFPR (FD, fmt_single, PSUpper (ValueFPR (FS, fmt_ps)));
-}
-
-
-010001,10,3.FMT!2!3!4!5!6!7,00000,5.FS,5.FD,100100:COP1:32,f::CVT.W.fmt
-"cvt.w.%s<FMT> f<FD>, f<FS>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- if ((fmt == fmt_word) | ((fmt == fmt_long) || (fmt == fmt_word)))
- SignalException (ReservedInstruction, instruction_0);
- StoreFPR (FD, fmt_word, Convert (GETRM (), ValueFPR (FS, fmt), fmt,
- fmt_word));
-}
-
-
-010001,10,3.FMT!2!3!4!5!6!7,5.FT,5.FS,5.FD,000011:COP1:32,f::DIV.fmt
-"div.%s<FMT> f<FD>, f<FS>, f<FT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- StoreFPR (FD, fmt, Divide (ValueFPR (FS, fmt), ValueFPR (FT, fmt), fmt));
-}
-
-
-010001,00001,5.RT,5.FS,00000000000:COP1:64,f::DMFC1a
-"dmfc1 r<RT>, f<FS>"
-*mipsIII:
-{
- unsigned64 v;
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- if (SizeFGR () == 64)
- v = FGR[FS];
- else if ((FS & 0x1) == 0)
- v = SET64HI (FGR[FS+1]) | FGR[FS];
- else
- v = SET64HI (0xDEADC0DE) | 0xBAD0BAD0;
- PENDING_FILL (RT, v);
- TRACE_ALU_RESULT (v);
-}
-
-010001,00001,5.RT,5.FS,00000000000:COP1:64,f::DMFC1b
-"dmfc1 r<RT>, f<FS>"
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- if (SizeFGR () == 64)
- GPR[RT] = FGR[FS];
- else if ((FS & 0x1) == 0)
- GPR[RT] = SET64HI (FGR[FS+1]) | FGR[FS];
- else
- GPR[RT] = SET64HI (0xDEADC0DE) | 0xBAD0BAD0;
- TRACE_ALU_RESULT (GPR[RT]);
-}
-
-
-010001,00101,5.RT,5.FS,00000000000:COP1:64,f::DMTC1a
-"dmtc1 r<RT>, f<FS>"
-*mipsIII:
-{
- unsigned64 v;
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- if (SizeFGR () == 64)
- PENDING_FILL ((FS + FGR_BASE), GPR[RT]);
- else if ((FS & 0x1) == 0)
- {
- PENDING_FILL (((FS + 1) + FGR_BASE), VH4_8 (GPR[RT]));
- PENDING_FILL ((FS + FGR_BASE), VL4_8 (GPR[RT]));
- }
- else
- Unpredictable ();
- TRACE_FP_RESULT (GPR[RT]);
-}
-
-010001,00101,5.RT,5.FS,00000000000:COP1:64,f::DMTC1b
-"dmtc1 r<RT>, f<FS>"
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- if (SizeFGR () == 64)
- StoreFPR (FS, fmt_uninterpreted_64, GPR[RT]);
- else if ((FS & 0x1) == 0)
- StoreFPR (FS, fmt_uninterpreted_64, GPR[RT]);
- else
- Unpredictable ();
-}
-
-
-010001,10,3.FMT!2!3!4!5!6!7,00000,5.FS,5.FD,001011:COP1:64,f::FLOOR.L.fmt
-"floor.l.%s<FMT> f<FD>, f<FS>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- StoreFPR (FD, fmt_long, Convert (FP_RM_TOMINF, ValueFPR (FS, fmt), fmt,
- fmt_long));
-}
-
-
-010001,10,3.FMT!2!3!4!5!6!7,00000,5.FS,5.FD,001111:COP1:32,f::FLOOR.W.fmt
-"floor.w.%s<FMT> f<FD>, f<FS>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- StoreFPR (FD, fmt_word, Convert (FP_RM_TOMINF, ValueFPR (FS, fmt), fmt,
- fmt_word));
-}
-
-
-110101,5.BASE,5.FT,16.OFFSET:COP1:32,f::LDC1a
-"ldc1 f<FT>, <OFFSET>(r<BASE>)"
-*mipsII:
-*mips32:
-*mips32r2:
-{
- check_fpu (SD_);
- COP_LD (1, FT, do_load_double (SD_, GPR[BASE], EXTEND16 (OFFSET)));
-}
-
-
-110101,5.BASE,5.FT,16.OFFSET:COP1:32,f::LDC1b
-"ldc1 f<FT>, <OFFSET>(r<BASE>)"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- check_fpu (SD_);
- COP_LD (1, FT, do_load (SD_, AccessLength_DOUBLEWORD, GPR[BASE], EXTEND16 (OFFSET)));
-}
-
-
-010011,5.BASE,5.INDEX,5.0,5.FD,000001:COP1X:64,f::LDXC1
-"ldxc1 f<FD>, r<INDEX>(r<BASE>)"
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr5000:
-{
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- COP_LD (1, FD, do_load (SD_, AccessLength_DOUBLEWORD, GPR[BASE], GPR[INDEX]));
-}
-
-
-010011,5.BASE,5.INDEX,5.0,5.FD,000101:COP1X:64,f::LUXC1
-"luxc1 f<FD>, r<INDEX>(r<BASE>)"
-*mipsV:
-*mips64:
-*mips64r2:
-{
- address_word base = GPR[BASE];
- address_word index = GPR[INDEX];
- address_word vaddr = base + index;
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- /* Arrange for the bottom 3 bits of (base + index) to be 0. */
- if ((vaddr & 0x7) != 0)
- index -= (vaddr & 0x7);
- COP_LD (1, FD, do_load (SD_, AccessLength_DOUBLEWORD, base, index));
-}
-
-
-110001,5.BASE,5.FT,16.OFFSET:COP1:32,f::LWC1
-"lwc1 f<FT>, <OFFSET>(r<BASE>)"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- check_fpu (SD_);
- COP_LW (1, FT, do_load (SD_, AccessLength_WORD, GPR[BASE], EXTEND16 (OFFSET)));
-}
-
-
-010011,5.BASE,5.INDEX,5.0,5.FD,000000:COP1X:64,f::LWXC1
-"lwxc1 f<FD>, r<INDEX>(r<BASE>)"
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr5000:
-{
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- COP_LW (1, FD, do_load (SD_, AccessLength_WORD, GPR[BASE], GPR[INDEX]));
-}
-
-
-
-010011,5.FR,5.FT,5.FS,5.FD,100,3.FMT!2!3!4!5!7:COP1X:64,f::MADD.fmt
-"madd.%s<FMT> f<FD>, f<FR>, f<FS>, f<FT>"
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr5000:
-{
- int fmt = FMT;
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- check_fmt_p (SD_, fmt, instruction_0);
- StoreFPR (FD, fmt, MultiplyAdd (ValueFPR (FS, fmt), ValueFPR (FT, fmt),
- ValueFPR (FR, fmt), fmt));
-}
-
-
-010001,00000,5.RT,5.FS,00000000000:COP1:32,f::MFC1a
-"mfc1 r<RT>, f<FS>"
-*mipsI:
-*mipsII:
-*mipsIII:
-{
- unsigned64 v;
- check_fpu (SD_);
- v = EXTEND32 (FGR[FS]);
- PENDING_FILL (RT, v);
- TRACE_ALU_RESULT (v);
-}
-
-010001,00000,5.RT,5.FS,00000000000:COP1:32,f::MFC1b
-"mfc1 r<RT>, f<FS>"
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- check_fpu (SD_);
- GPR[RT] = EXTEND32 (FGR[FS]);
- TRACE_ALU_RESULT (GPR[RT]);
-}
-
-
-010001,10,3.FMT!2!3!4!5!7,00000,5.FS,5.FD,000110:COP1:32,f::MOV.fmt
-"mov.%s<FMT> f<FD>, f<FS>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- check_fmt_p (SD_, fmt, instruction_0);
- StoreFPR (FD, fmt, ValueFPR (FS, fmt));
-}
-
-
-// MOVF
-// MOVT
-000000,5.RS,3.CC,0,1.TF,5.RD,00000,000001:SPECIAL:32,f::MOVtf
-"mov%s<TF> r<RD>, r<RS>, <CC>"
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr5000:
-{
- check_fpu (SD_);
- if (GETFCC(CC) == TF)
- GPR[RD] = GPR[RS];
-}
-
-
-// MOVF.fmt
-// MOVT.fmt
-010001,10,3.FMT!2!3!4!5!7,3.CC,0,1.TF,5.FS,5.FD,010001:COP1:32,f::MOVtf.fmt
-"mov%s<TF>.%s<FMT> f<FD>, f<FS>, <CC>"
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr5000:
-{
- int fmt = FMT;
- check_fpu (SD_);
- if (fmt != fmt_ps)
- {
- if (GETFCC(CC) == TF)
- StoreFPR (FD, fmt, ValueFPR (FS, fmt));
- else
- StoreFPR (FD, fmt, ValueFPR (FD, fmt)); /* set fmt */
- }
- else
- {
- unsigned64 fd;
- fd = PackPS (PSUpper (ValueFPR ((GETFCC (CC+1) == TF) ? FS : FD,
- fmt_ps)),
- PSLower (ValueFPR ((GETFCC (CC+0) == TF) ? FS : FD,
- fmt_ps)));
- StoreFPR (FD, fmt_ps, fd);
- }
-}
-
-
-010001,10,3.FMT!2!3!4!5!7,5.RT,5.FS,5.FD,010011:COP1:32,f::MOVN.fmt
-"movn.%s<FMT> f<FD>, f<FS>, r<RT>"
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr5000:
-{
- check_fpu (SD_);
- if (GPR[RT] != 0)
- StoreFPR (FD, FMT, ValueFPR (FS, FMT));
- else
- StoreFPR (FD, FMT, ValueFPR (FD, FMT));
-}
-
-
-// MOVT see MOVtf
-
-
-// MOVT.fmt see MOVtf.fmt
-
-
-
-010001,10,3.FMT!2!3!4!5!7,5.RT,5.FS,5.FD,010010:COP1:32,f::MOVZ.fmt
-"movz.%s<FMT> f<FD>, f<FS>, r<RT>"
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr5000:
-{
- check_fpu (SD_);
- if (GPR[RT] == 0)
- StoreFPR (FD, FMT, ValueFPR (FS, FMT));
- else
- StoreFPR (FD, FMT, ValueFPR (FD, FMT));
-}
-
-
-010011,5.FR,5.FT,5.FS,5.FD,101,3.FMT!2!3!4!5!7:COP1X:64,f::MSUB.fmt
-"msub.%s<FMT> f<FD>, f<FR>, f<FS>, f<FT>"
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr5000:
-{
- int fmt = FMT;
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- check_fmt_p (SD_, fmt, instruction_0);
- StoreFPR (FD, fmt, MultiplySub (ValueFPR (FS, fmt), ValueFPR (FT, fmt),
- ValueFPR (FR, fmt), fmt));
-}
-
-
-010001,00100,5.RT,5.FS,00000000000:COP1:32,f::MTC1a
-"mtc1 r<RT>, f<FS>"
-*mipsI:
-*mipsII:
-*mipsIII:
-{
- check_fpu (SD_);
- if (SizeFGR () == 64)
- PENDING_FILL ((FS + FGR_BASE), (SET64HI (0xDEADC0DE) | VL4_8 (GPR[RT])));
- else
- PENDING_FILL ((FS + FGR_BASE), VL4_8 (GPR[RT]));
- TRACE_FP_RESULT (GPR[RT]);
-}
-
-010001,00100,5.RT,5.FS,00000000000:COP1:32,f::MTC1b
-"mtc1 r<RT>, f<FS>"
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- check_fpu (SD_);
- StoreFPR (FS, fmt_uninterpreted_32, VL4_8 (GPR[RT]));
-}
-
-
-010001,10,3.FMT!2!3!4!5!7,5.FT,5.FS,5.FD,000010:COP1:32,f::MUL.fmt
-"mul.%s<FMT> f<FD>, f<FS>, f<FT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- check_fmt_p (SD_, fmt, instruction_0);
- StoreFPR (FD, fmt, Multiply (ValueFPR (FS, fmt), ValueFPR (FT, fmt), fmt));
-}
-
-
-010001,10,3.FMT!2!3!4!5!7,00000,5.FS,5.FD,000111:COP1:32,f::NEG.fmt
-"neg.%s<FMT> f<FD>, f<FS>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- check_fmt_p (SD_, fmt, instruction_0);
- StoreFPR (FD, fmt, Negate (ValueFPR (FS, fmt), fmt));
-}
-
-
-010011,5.FR,5.FT,5.FS,5.FD,110,3.FMT!2!3!4!5!7:COP1X:64,f::NMADD.fmt
-"nmadd.%s<FMT> f<FD>, f<FR>, f<FS>, f<FT>"
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr5000:
-{
- int fmt = FMT;
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- check_fmt_p (SD_, fmt, instruction_0);
- StoreFPR (FD, fmt, NegMultiplyAdd (ValueFPR (FS, fmt), ValueFPR (FT, fmt),
- ValueFPR (FR, fmt), fmt));
-}
-
-
-010011,5.FR,5.FT,5.FS,5.FD,111,3.FMT!2!3!4!5!7:COP1X:64,f::NMSUB.fmt
-"nmsub.%s<FMT> f<FD>, f<FR>, f<FS>, f<FT>"
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr5000:
-{
- int fmt = FMT;
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- check_fmt_p (SD_, fmt, instruction_0);
- StoreFPR (FD, fmt, NegMultiplySub (ValueFPR (FS, fmt), ValueFPR (FT, fmt),
- ValueFPR (FR, fmt), fmt));
-}
-
-
-010001,10,110,5.FT,5.FS,5.FD,101100:COP1:64,f::PLL.PS
-"pll.ps f<FD>, f<FS>, f<FT>"
-*mipsV:
-*mips64:
-*mips64r2:
-{
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- StoreFPR (FD, fmt_ps, PackPS (PSLower (ValueFPR (FS, fmt_ps)),
- PSLower (ValueFPR (FT, fmt_ps))));
-}
-
-
-010001,10,110,5.FT,5.FS,5.FD,101101:COP1:64,f::PLU.PS
-"plu.ps f<FD>, f<FS>, f<FT>"
-*mipsV:
-*mips64:
-*mips64r2:
-{
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- StoreFPR (FD, fmt_ps, PackPS (PSLower (ValueFPR (FS, fmt_ps)),
- PSUpper (ValueFPR (FT, fmt_ps))));
-}
-
-
-010011,5.BASE,5.INDEX,5.HINT,00000,001111:COP1X:64::PREFX
-"prefx <HINT>, r<INDEX>(r<BASE>)"
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr5000:
-{
- address_word base = GPR[BASE];
- address_word index = GPR[INDEX];
- {
- address_word vaddr = loadstore_ea (SD_, base, index);
- address_word paddr;
- int uncached;
- if (AddressTranslation(vaddr,isDATA,isLOAD,&paddr,&uncached,isTARGET,isREAL))
- Prefetch(uncached,paddr,vaddr,isDATA,HINT);
- }
-}
-
-
-010001,10,110,5.FT,5.FS,5.FD,101110:COP1:64,f::PUL.PS
-"pul.ps f<FD>, f<FS>, f<FT>"
-*mipsV:
-*mips64:
-*mips64r2:
-{
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- StoreFPR (FD, fmt_ps, PackPS (PSUpper (ValueFPR (FS, fmt_ps)),
- PSLower (ValueFPR (FT, fmt_ps))));
-}
-
-
-010001,10,110,5.FT,5.FS,5.FD,101111:COP1:64,f::PUU.PS
-"puu.ps f<FD>, f<FS>, f<FT>"
-*mipsV:
-*mips64:
-*mips64r2:
-{
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- StoreFPR (FD, fmt_ps, PackPS (PSUpper (ValueFPR (FS, fmt_ps)),
- PSUpper (ValueFPR (FT, fmt_ps))));
-}
-
-
-010001,10,3.FMT!2!3!4!5!6!7,00000,5.FS,5.FD,010101:COP1:32,f::RECIP.fmt
-"recip.%s<FMT> f<FD>, f<FS>"
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr5000:
-{
- int fmt = FMT;
- check_fpu (SD_);
- StoreFPR (FD, fmt, Recip (ValueFPR (FS, fmt), fmt));
-}
-
-
-010001,10,3.FMT!2!3!4!5!6!7,00000,5.FS,5.FD,001000:COP1:64,f::ROUND.L.fmt
-"round.l.%s<FMT> f<FD>, f<FS>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- StoreFPR (FD, fmt_long, Convert (FP_RM_NEAREST, ValueFPR (FS, fmt), fmt,
- fmt_long));
-}
-
-
-010001,10,3.FMT!2!3!4!5!6!7,00000,5.FS,5.FD,001100:COP1:32,f::ROUND.W.fmt
-"round.w.%s<FMT> f<FD>, f<FS>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- StoreFPR (FD, fmt_word, Convert (FP_RM_NEAREST, ValueFPR (FS, fmt), fmt,
- fmt_word));
-}
-
-
-010001,10,3.FMT!2!3!4!5!6!7,00000,5.FS,5.FD,010110:COP1:32,f::RSQRT.fmt
-"rsqrt.%s<FMT> f<FD>, f<FS>"
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr5000:
-{
- int fmt = FMT;
- check_fpu (SD_);
- StoreFPR (FD, fmt, RSquareRoot (ValueFPR (FS, fmt), fmt));
-}
-
-
-111101,5.BASE,5.FT,16.OFFSET:COP1:32,f::SDC1a
-"sdc1 f<FT>, <OFFSET>(r<BASE>)"
-*mipsII:
-*mips32:
-*mips32r2:
-{
- check_fpu (SD_);
- do_store_double (SD_, GPR[BASE], EXTEND16 (OFFSET), COP_SD (1, FT));
-}
-
-
-111101,5.BASE,5.FT,16.OFFSET:COP1:32,f::SDC1b
-"sdc1 f<FT>, <OFFSET>(r<BASE>)"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- check_fpu (SD_);
- do_store (SD_, AccessLength_DOUBLEWORD, GPR[BASE], EXTEND16 (OFFSET), COP_SD (1, FT));
-}
-
-
-010011,5.BASE,5.INDEX,5.FS,00000001001:COP1X:64,f::SDXC1
-"sdxc1 f<FS>, r<INDEX>(r<BASE>)"
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr5000:
-{
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- do_store (SD_, AccessLength_DOUBLEWORD, GPR[BASE], GPR[INDEX], COP_SD (1, FS));
-}
-
-
-010011,5.BASE,5.INDEX,5.FS,00000,001101:COP1X:64,f::SUXC1
-"suxc1 f<FS>, r<INDEX>(r<BASE>)"
-*mipsV:
-*mips64:
-*mips64r2:
-{
- unsigned64 v;
- address_word base = GPR[BASE];
- address_word index = GPR[INDEX];
- address_word vaddr = base + index;
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- /* Arrange for the bottom 3 bits of (base + index) to be 0. */
- if ((vaddr & 0x7) != 0)
- index -= (vaddr & 0x7);
- do_store (SD_, AccessLength_DOUBLEWORD, base, index, COP_SD (1, FS));
-}
-
-
-010001,10,3.FMT!2!3!4!5!6!7,00000,5.FS,5.FD,000100:COP1:32,f::SQRT.fmt
-"sqrt.%s<FMT> f<FD>, f<FS>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- StoreFPR (FD, fmt, (SquareRoot (ValueFPR (FS, fmt), fmt)));
-}
-
-
-010001,10,3.FMT!2!3!4!5!7,5.FT,5.FS,5.FD,000001:COP1:32,f::SUB.fmt
-"sub.%s<FMT> f<FD>, f<FS>, f<FT>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- check_fmt_p (SD_, fmt, instruction_0);
- StoreFPR (FD, fmt, Sub (ValueFPR (FS, fmt), ValueFPR (FT, fmt), fmt));
-}
-
-
-
-111001,5.BASE,5.FT,16.OFFSET:COP1:32,f::SWC1
-"swc1 f<FT>, <OFFSET>(r<BASE>)"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- address_word base = GPR[BASE];
- address_word offset = EXTEND16 (OFFSET);
- check_fpu (SD_);
- {
- address_word vaddr = loadstore_ea (SD_, base, offset);
- address_word paddr;
- int uncached;
- if ((vaddr & 3) != 0)
- {
- SIM_CORE_SIGNAL (SD, CPU, cia, read_map, AccessLength_WORD+1, vaddr, write_transfer, sim_core_unaligned_signal);
- }
- else
- {
- if (AddressTranslation(vaddr,isDATA,isSTORE,&paddr,&uncached,isTARGET,isREAL))
- {
- uword64 memval = 0;
- uword64 memval1 = 0;
- uword64 mask = (WITH_TARGET_WORD_BITSIZE == 64 ? 0x7 : 0x3);
- address_word reverseendian = (ReverseEndian ?(mask ^ AccessLength_WORD): 0);
- address_word bigendiancpu = (BigEndianCPU ?(mask ^ AccessLength_WORD): 0);
- unsigned int byte;
- paddr = ((paddr & ~mask) | ((paddr & mask) ^ reverseendian));
- byte = ((vaddr & mask) ^ bigendiancpu);
- memval = (((uword64)COP_SW(((instruction_0 >> 26) & 0x3),FT)) << (8 * byte));
- StoreMemory(uncached,AccessLength_WORD,memval,memval1,paddr,vaddr,isREAL);
- }
- }
- }
-}
-
-
-010011,5.BASE,5.INDEX,5.FS,00000,001000:COP1X:32,f::SWXC1
-"swxc1 f<FS>, r<INDEX>(r<BASE>)"
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr5000:
-{
-
- address_word base = GPR[BASE];
- address_word index = GPR[INDEX];
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- {
- address_word vaddr = loadstore_ea (SD_, base, index);
- address_word paddr;
- int uncached;
- if ((vaddr & 3) != 0)
- {
- SIM_CORE_SIGNAL (SD, CPU, cia, read_map, 4, vaddr, write_transfer, sim_core_unaligned_signal);
- }
- else
- {
- if (AddressTranslation(vaddr,isDATA,isSTORE,&paddr,&uncached,isTARGET,isREAL))
- {
- unsigned64 memval = 0;
- unsigned64 memval1 = 0;
- unsigned64 mask = 0x7;
- unsigned int byte;
- paddr = ((paddr & ~mask) | ((paddr & mask) ^ (ReverseEndian << 2)));
- byte = ((vaddr & mask) ^ (BigEndianCPU << 2));
- memval = (((unsigned64)COP_SW(1,FS)) << (8 * byte));
- {
- StoreMemory(uncached,AccessLength_WORD,memval,memval1,paddr,vaddr,isREAL);
- }
- }
- }
- }
-}
-
-
-010001,10,3.FMT!2!3!4!5!6!7,00000,5.FS,5.FD,001001:COP1:64,f::TRUNC.L.fmt
-"trunc.l.%s<FMT> f<FD>, f<FS>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- StoreFPR (FD, fmt_long, Convert (FP_RM_TOZERO, ValueFPR (FS, fmt), fmt,
- fmt_long));
-}
-
-
-010001,10,3.FMT!2!3!4!5!6!7,00000,5.FS,5.FD,001101:COP1:32,f::TRUNC.W
-"trunc.w.%s<FMT> f<FD>, f<FS>"
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- int fmt = FMT;
- check_fpu (SD_);
- StoreFPR (FD, fmt_word, Convert (FP_RM_TOZERO, ValueFPR (FS, fmt), fmt,
- fmt_word));
-}
-
-
-//
-// MIPS Architecture:
-//
-// System Control Instruction Set (COP0)
-//
-
-
-010000,01000,00000,16.OFFSET:COP0:32::BC0F
-"bc0f <OFFSET>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-
-010000,01000,00000,16.OFFSET:COP0:32::BC0F
-"bc0f <OFFSET>"
-// stub needed for eCos as tx39 hardware bug workaround
-*r3900:
-{
- /* do nothing */
-}
-
-
-010000,01000,00010,16.OFFSET:COP0:32::BC0FL
-"bc0fl <OFFSET>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-
-
-010000,01000,00001,16.OFFSET:COP0:32::BC0T
-"bc0t <OFFSET>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-
-
-010000,01000,00011,16.OFFSET:COP0:32::BC0TL
-"bc0tl <OFFSET>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-
-
-101111,5.BASE,5.OP,16.OFFSET:NORMAL:32::CACHE
-"cache <OP>, <OFFSET>(r<BASE>)"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- address_word base = GPR[BASE];
- address_word offset = EXTEND16 (OFFSET);
- {
- address_word vaddr = loadstore_ea (SD_, base, offset);
- address_word paddr;
- int uncached;
- if (AddressTranslation(vaddr,isDATA,isLOAD,&paddr,&uncached,isTARGET,isREAL))
- CacheOp(OP,vaddr,paddr,instruction_0);
- }
-}
-
-
-010000,00001,5.RT,5.RD,00000000000:COP0:64::DMFC0
-"dmfc0 r<RT>, r<RD>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-{
- check_u64 (SD_, instruction_0);
- DecodeCoproc (instruction_0);
-}
-
-
-010000,00101,5.RT,5.RD,00000000000:COP0:64::DMTC0
-"dmtc0 r<RT>, r<RD>"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips64:
-*mips64r2:
-{
- check_u64 (SD_, instruction_0);
- DecodeCoproc (instruction_0);
-}
-
-
-010000,1,0000000000000000000,011000:COP0:32::ERET
-"eret"
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-{
- if (SR & status_ERL)
- {
- /* Oops, not yet available */
- sim_io_printf (SD, "Warning: ERET when SR[ERL] set not supported");
- NIA = EPC;
- SR &= ~status_ERL;
- }
- else
- {
- NIA = EPC;
- SR &= ~status_EXL;
- }
-}
-
-
-010000,00000,5.RT,5.RD,00000,6.REGX:COP0:32::MFC0
-"mfc0 r<RT>, r<RD> # <REGX>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- TRACE_ALU_INPUT0 ();
- DecodeCoproc (instruction_0);
- TRACE_ALU_RESULT (GPR[RT]);
-}
-
-010000,00100,5.RT,5.RD,00000,6.REGX:COP0:32::MTC0
-"mtc0 r<RT>, r<RD> # <REGX>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-*r3900:
-{
- DecodeCoproc (instruction_0);
-}
-
-
-010000,1,0000000000000000000,010000:COP0:32::RFE
-"rfe"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*vr4100:
-*vr5000:
-*r3900:
-{
- DecodeCoproc (instruction_0);
-}
-
-
-0100,ZZ!0!1!3,5.COP_FUN0!8,5.COP_FUN1,16.COP_FUN2:NORMAL:32::COPz
-"cop<ZZ> <COP_FUN0><COP_FUN1><COP_FUN2>"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*r3900:
-{
- DecodeCoproc (instruction_0);
-}
-
-
-
-010000,1,0000000000000000000,001000:COP0:32::TLBP
-"tlbp"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-
-
-010000,1,0000000000000000000,000001:COP0:32::TLBR
-"tlbr"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-
-
-010000,1,0000000000000000000,000010:COP0:32::TLBWI
-"tlbwi"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-
-
-010000,1,0000000000000000000,000110:COP0:32::TLBWR
-"tlbwr"
-*mipsI:
-*mipsII:
-*mipsIII:
-*mipsIV:
-*mipsV:
-*mips32:
-*mips32r2:
-*mips64:
-*mips64r2:
-*vr4100:
-*vr5000:
-
-
-:include:::mips3264r2.igen
-:include:::m16.igen
-:include:::m16e.igen
-:include:::mdmx.igen
-:include:::mips3d.igen
-:include:::sb1.igen
-:include:::tx.igen
-:include:::vr.igen
-:include:::dsp.igen
-
diff --git a/sim/mips/mips3264r2.igen b/sim/mips/mips3264r2.igen
deleted file mode 100644
index e0d1326..0000000
--- a/sim/mips/mips3264r2.igen
+++ /dev/null
@@ -1,260 +0,0 @@
-// -*- C -*-
-
-// Simulator definition for the MIPS 32/64 revision 2 instructions.
-// Copyright (C) 2004 Free Software Foundation, Inc.
-// Contributed by David Ung, of MIPS Technologies.
-//
-// This file is part of GDB, the GNU debugger.
-//
-// This program 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 2, or (at your option)
-// any later version.
-//
-// This program 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 this program; if not, write to the Free Software Foundation, Inc.,
-// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-
-011111,5.RS,5.RT,5.SIZE,5.LSB,000011::64::DEXT
-"dext r<RT>, r<RS>, <LSB>, <SIZE+1>"
-*mips64r2:
-{
- check_u64 (SD_, instruction_0);
- TRACE_ALU_INPUT3 (GPR[RS], LSB, SIZE);
- GPR[RT] = EXTRACTED64 (GPR[RS], LSB + SIZE, LSB);
- TRACE_ALU_RESULT1 (GPR[RT]);
-}
-
-011111,5.RS,5.RT,5.SIZE,5.LSB,000001::64::DEXTM
-"dextm r<RT>, r<RS>, <LSB>, <SIZE+33>"
-*mips64r2:
-{
- check_u64 (SD_, instruction_0);
- TRACE_ALU_INPUT3 (GPR[RS], LSB, SIZE);
- GPR[RT] = EXTRACTED64 (GPR[RS], LSB + SIZE + 32, LSB);
- TRACE_ALU_RESULT1 (GPR[RT]);
-}
-
-011111,5.RS,5.RT,5.SIZE,5.LSB,000010::64::DEXTU
-"dextu r<RT>, r<RS>, <LSB+32>, <SIZE+1>"
-*mips64r2:
-{
- check_u64 (SD_, instruction_0);
- TRACE_ALU_INPUT3 (GPR[RS], LSB, SIZE);
- GPR[RT] = EXTRACTED64 (GPR[RS], LSB + 32 + SIZE, LSB + 32);
- TRACE_ALU_RESULT1 (GPR[RT]);
-}
-
-
-010000,01011,5.RT,01100,00000,0,00,000::32::DI
-"di":RT == 0
-"di r<RT>"
-*mips32r2:
-*mips64r2:
-{
- TRACE_ALU_INPUT0 ();
- GPR[RT] = EXTEND32 (SR);
- SR &= ~status_IE;
- TRACE_ALU_RESULT1 (GPR[RT]);
-}
-
-
-011111,5.RS,5.RT,5.MSB,5.LSB,000111::64::DINS
-"dins r<RT>, r<RS>, <LSB>, <MSB-LSB+1>"
-*mips64r2:
-{
- check_u64 (SD_, instruction_0);
- TRACE_ALU_INPUT4 (GPR[RT], GPR[RS], LSB, MSB);
- if (LSB <= MSB)
- GPR[RT] ^= (GPR[RT] ^ (GPR[RS] << LSB)) & MASK64 (MSB, LSB);
- TRACE_ALU_RESULT1 (GPR[RT]);
-}
-
-011111,5.RS,5.RT,5.MSB,5.LSB,000101::64::DINSM
-"dinsm r<RT>, r<RS>, <LSB>, <MSB+32-LSB+1>"
-*mips64r2:
-{
- check_u64 (SD_, instruction_0);
- TRACE_ALU_INPUT4 (GPR[RT], GPR[RS], LSB, MSB);
- if (LSB <= MSB + 32)
- GPR[RT] ^= (GPR[RT] ^ (GPR[RS] << LSB)) & MASK64 (MSB + 32, LSB);
- TRACE_ALU_RESULT1 (GPR[RT]);
-}
-
-011111,5.RS,5.RT,5.MSB,5.LSB,000110::64::DINSU
-"dinsu r<RT>, r<RS>, <LSB+32>, <MSB-LSB+1>"
-*mips64r2:
-{
- check_u64 (SD_, instruction_0);
- TRACE_ALU_INPUT4 (GPR[RT], GPR[RS], LSB, MSB);
- if (LSB <= MSB)
- GPR[RT] ^= (GPR[RT] ^ (GPR[RS] << (LSB + 32)))
- & MASK64 (MSB + 32, LSB + 32);
- TRACE_ALU_RESULT1 (GPR[RT]);
-}
-
-
-011111,00000,5.RT,5.RD,00010,100100::64::DSBH
-"dsbh r<RD>, r<RT>"
-*mips64r2:
-{
- union { unsigned64 d; unsigned16 h[4]; } u;
- check_u64 (SD_, instruction_0);
- TRACE_ALU_INPUT1 (GPR[RT]);
- u.d = GPR[RT];
- u.h[0] = SWAP_2 (u.h[0]);
- u.h[1] = SWAP_2 (u.h[1]);
- u.h[2] = SWAP_2 (u.h[2]);
- u.h[3] = SWAP_2 (u.h[3]);
- GPR[RD] = u.d;
- TRACE_ALU_RESULT1 (GPR[RD]);
-}
-
-011111,00000,5.RT,5.RD,00101,100100::64::DSHD
-"dshd r<RD>, r<RT>"
-*mips64r2:
-{
- unsigned64 d;
- check_u64 (SD_, instruction_0);
- TRACE_ALU_INPUT1 (GPR[RT]);
- d = GPR[RT];
- GPR[RD] = ((d >> 48)
- | (d << 48)
- | ((d & 0x0000ffff00000000) >> 16)
- | ((d & 0x00000000ffff0000) << 16));
- TRACE_ALU_RESULT1 (GPR[RD]);
-}
-
-
-010000,01011,5.RT,01100,00000,1,00,000::32::EI
-"ei":RT == 0
-"ei r<RT>"
-*mips32r2:
-*mips64r2:
-{
- TRACE_ALU_INPUT0 ();
- GPR[RT] = EXTEND32 (SR);
- SR |= status_IE;
- TRACE_ALU_RESULT1 (GPR[RT]);
-}
-
-
-011111,5.RS,5.RT,5.SIZE,5.LSB,000000::32::EXT
-"ext r<RT>, r<RS>, <LSB>, <SIZE+1>"
-*mips32r2:
-*mips64r2:
-{
- TRACE_ALU_INPUT3 (GPR[RS], LSB, SIZE);
- GPR[RT] = EXTEND32 (EXTRACTED32 (GPR[RS], LSB + SIZE, LSB));
- TRACE_ALU_RESULT1 (GPR[RT]);
-}
-
-
-010001,00011,5.RT,5.FS,00000000000:COP1Sa:32,f::MFHC1
-"mfhc1 r<RT>, f<FS>"
-*mips32r2:
-*mips64r2:
-{
- check_fpu (SD_);
- if (SizeFGR() == 64)
- GPR[RT] = EXTEND32 (WORD64HI (FGR[FS]));
- else if ((FS & 0x1) == 0)
- GPR[RT] = EXTEND32 (FGR[FS + 1]);
- else
- {
- if (STATE_VERBOSE_P(SD))
- sim_io_eprintf (SD,
- "Warning: PC 0x%lx: MFHC1 32-bit use of odd FPR number\n",
- (long) CIA);
- GPR[RT] = EXTEND32 (0xBADF00D);
- }
- TRACE_ALU_RESULT (GPR[RT]);
-}
-
-010001,00111,5.RT,5.FS,00000000000:COP1Sa:32,f::MTHC1
-"mthc1 r<RT>, f<FS>"
-*mips32r2:
-*mips64r2:
-{
- check_fpu (SD_);
- if (SizeFGR() == 64)
- StoreFPR (FS, fmt_uninterpreted_64, SET64HI (GPR[RT]) | VL4_8 (FGR[FS]));
- else if ((FS & 0x1) == 0)
- StoreFPR (FS + 1, fmt_uninterpreted_32, VL4_8 (GPR[RT]));
- else
- {
- if (STATE_VERBOSE_P(SD))
- sim_io_eprintf (SD,
- "Warning: PC 0x%lx: MTHC1 32-bit use of odd FPR number\n",
- (long) CIA);
- StoreFPR (FS, fmt_uninterpreted_32, 0xDEADC0DE);
- }
- TRACE_FP_RESULT (GPR[RT]);
-}
-
-
-011111,5.RS,5.RT,5.MSB,5.LSB,000100::32::INS
-"ins r<RT>, r<RS>, <LSB>, <MSB-LSB+1>"
-*mips32r2:
-*mips64r2:
-{
- TRACE_ALU_INPUT4 (GPR[RT], GPR[RS], LSB, MSB);
- if (LSB <= MSB)
- GPR[RT] = EXTEND32 (GPR[RT] ^
- ((GPR[RT] ^ (GPR[RS] << LSB)) & MASK32 (MSB, LSB)));
- TRACE_ALU_RESULT1 (GPR[RT]);
-}
-
-
-011111,00000,5.RT,5.RD,10000,100000::32::SEB
-"seb r<RD>, r<RT>"
-*mips32r2:
-*mips64r2:
-{
- TRACE_ALU_INPUT1 (GPR[RT]);
- GPR[RD] = EXTEND8 (GPR[RT]);
- TRACE_ALU_RESULT1 (GPR[RD]);
-}
-
-011111,00000,5.RT,5.RD,11000,100000::32::SEH
-"seh r<RD>, r<RT>"
-*mips32r2:
-*mips64r2:
-{
- TRACE_ALU_INPUT1 (GPR[RT]);
- GPR[RD] = EXTEND16 (GPR[RT]);
- TRACE_ALU_RESULT1 (GPR[RD]);
-}
-
-
-000001,5.BASE,11111,16.OFFSET::32::SYNCI
-"synci <OFFSET>(r<BASE>)"
-*mips32r2:
-*mips64r2:
-{
- // sync i-cache - nothing to do currently
-}
-
-
-011111,00000,5.RT,5.RD,00010,100000::32::WSBH
-"wsbh r<RD>, r<RT>"
-*mips32r2:
-*mips64r2:
-{
- union { unsigned32 w; unsigned16 h[2]; } u;
- TRACE_ALU_INPUT1 (GPR[RT]);
- u.w = GPR[RT];
- u.h[0] = SWAP_2 (u.h[0]);
- u.h[1] = SWAP_2 (u.h[1]);
- GPR[RD] = EXTEND32 (u.w);
- TRACE_ALU_RESULT1 (GPR[RD]);
-}
-
-
-
diff --git a/sim/mips/mips3d.igen b/sim/mips/mips3d.igen
deleted file mode 100644
index d24a06c..0000000
--- a/sim/mips/mips3d.igen
+++ /dev/null
@@ -1,177 +0,0 @@
-// -*- C -*-
-
-// Simulator definition for the MIPS MIPS-3D ASE.
-// Copyright (C) 2002 Free Software Foundation, Inc.
-// Contributed by Ed Satterthwaite and Chris Demetriou, of Broadcom
-// Corporation (SiByte).
-//
-// This file is part of GDB, the GNU debugger.
-//
-// This program 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 2, or (at your option)
-// any later version.
-//
-// This program 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 this program; if not, write to the Free Software Foundation, Inc.,
-// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-// Reference: MIPS64 Architecture for Programmers Volume IV-c:
-// The MIPS-3D Application-Specific Extension to the
-// MIPS64 Architecture. (MIPS Document MD00099)
-
-
-010001,10,110,5.FT,5.FS,5.FD,011000:COP1:64,f::ADDR.PS
-"addr.ps f<FD>, f<FS>, f<FT>"
-*mips3d:
-{
- /* fd.PL = ft.PU + ft.PL; fd.PU = fs.PU + fs.PL; */
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- StoreFPR (FD, fmt_ps, AddR (ValueFPR (FS, fmt_ps),
- ValueFPR (FT, fmt_ps), fmt_ps));
-}
-
-
-010001,01001,3.CC,0,1.TF,16.OFFSET:COP1:64,f::BC1ANY2tf
-"bc1any2%s<TF> <CC>, %#lx<OFFSET>"
-*mips3d:
-{
- address_word offset;
- int cc = CC;
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- if ((cc & 0x1) != 0)
- Unpredictable ();
- if ((GETFCC (cc) == TF) || (GETFCC (cc + 1) == TF))
- {
- offset = (EXTEND16 (OFFSET) << 2);
- DELAY_SLOT (NIA + offset);
- }
-}
-
-
-010001,01010,3.CC,0,1.TF,16.OFFSET:COP1:64,f::BC1ANY4tf
-"bc1any4%s<TF> <CC>, %#lx<OFFSET>"
-*mips3d:
-{
- address_word offset;
- int cc = CC;
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- if ((cc & 0x3) != 0)
- Unpredictable ();
- if ((GETFCC (cc) == TF)
- || (GETFCC (cc + 1) == TF)
- || (GETFCC (cc + 2) == TF)
- || (GETFCC (cc + 3) == TF))
- {
- offset = (EXTEND16 (OFFSET) << 2);
- DELAY_SLOT (NIA + offset);
- }
-}
-
-
-010001,10,3.FMT,5.FT,5.FS,3.CC,01,11,4.COND:COP1:64,f::CABS.cond.fmt
-"cabs.%s<COND>.%s<FMT> <CC>, f<FS>, f<FT>"
-*mips3d:
-{
- int fmt = FMT;
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- check_fmt_p (SD_, fmt, instruction_0);
- CompareAbs (ValueFPR (FS, fmt), ValueFPR (FT, fmt), fmt, COND, CC);
- TRACE_ALU_RESULT (ValueFCR (31));
-}
-
-
-010001,10,110,00000,5.FS,5.FD,100100:COP1:64,f::CVT.PW.PS
-"cvt.pw.ps f<FD>, f<FS>"
-*mips3d:
-{
- /* fd.pu = cvt_rnd (fs.pu); fd.pl = cvt_rnd (fs.pl); */
- /* fmt_pw is fmt_long for 64 bit transfers, but cvt encoding is fmt_word. */
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- StoreFPR (FD, fmt_pw, ConvertPS (GETRM (), ValueFPR (FS, fmt_ps),
- fmt_ps, fmt_word));
-}
-
-
-010001,10,100,00000,5.FS,5.FD,100110:COP1:64,f::CVT.PS.PW
-"cvt.ps.pw f<FD>, f<FS>"
-*mips3d:
-{
- /* fd.pl = cvt_rnd (fs.pl); fd.pu = cvt_rnd (fs.pu); */
- /* fmt_pw is fmt_long for 64 bit transfers, but cvt encoding is fmt_word. */
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- StoreFPR (FD, fmt_ps, ConvertPS (GETRM (), ValueFPR (FS, fmt_pw),
- fmt_word, fmt_ps));
-}
-
-
-010001,10,110,5.FT,5.FS,5.FD,011010:COP1:64,f::MULR.PS
-"mulr.ps f<FD>, f<FS>, f<FT>"
-*mips3d:
-{
- /* fd.PL = ft.PU * ft.PL; fd.PU = fs.PU * fs.PL; */
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- StoreFPR (FD, fmt_ps, MultiplyR (ValueFPR (FS, fmt_ps),
- ValueFPR (FT, fmt_ps), fmt_ps));
-}
-
-
-010001,10,3.FMT,00000,5.FS,5.FD,011101:COP1:64,f::RECIP1.fmt
-"recip1.%s<FMT> f<FD>, f<FS>"
-*mips3d:
-{
- int fmt = FMT;
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- check_fmt_p (SD_, fmt, instruction_0);
- StoreFPR (FD, fmt, Recip1 (ValueFPR (FS, fmt), fmt));
-}
-
-
-010001,10,3.FMT,5.FT,5.FS,5.FD,011100:COP1:64,f::RECIP2.fmt
-"recip2.%s<FMT> f<FD>, f<FS>, f<FT>"
-*mips3d:
-{
- int fmt = FMT;
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- check_fmt_p (SD_, fmt, instruction_0);
- StoreFPR (FD, fmt, Recip2 (ValueFPR (FS, fmt), ValueFPR (FT, fmt), fmt));
-}
-
-
-010001,10,3.FMT,00000,5.FS,5.FD,011110:COP1:64,f::RSQRT1.fmt
-"rsqrt1.%s<FMT> f<FD>, f<FS>"
-*mips3d:
-{
- int fmt = FMT;
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- check_fmt_p (SD_, fmt, instruction_0);
- StoreFPR (FD, fmt, RSquareRoot1 (ValueFPR (FS, fmt), fmt));
-}
-
-
-010001,10,3.FMT,5.FT,5.FS,5.FD,011111:COP1:64,f::RSQRT2.fmt
-"rsqrt2.%s<FMT> f<FD>, f<FS>, f<FT>"
-*mips3d:
-{
- int fmt = FMT;
- check_fpu (SD_);
- check_u64 (SD_, instruction_0);
- check_fmt_p (SD_, fmt, instruction_0);
- StoreFPR (FD, fmt, RSquareRoot2 (ValueFPR (FS, fmt),
- ValueFPR (FT, fmt), fmt));
-}
diff --git a/sim/mips/sb1.igen b/sim/mips/sb1.igen
deleted file mode 100644
index b6534cb..0000000
--- a/sim/mips/sb1.igen
+++ /dev/null
@@ -1,244 +0,0 @@
-// -*- C -*-
-
-// Simulator definition for the Broadcom SiByte SB-1 CPU extensions.
-// Copyright (C) 2002 Free Software Foundation, Inc.
-// Contributed by Ed Satterthwaite and Chris Demetriou, of Broadcom
-// Corporation (SiByte).
-//
-// This file is part of GDB, the GNU debugger.
-//
-// This program 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 2, or (at your option)
-// any later version.
-//
-// This program 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 this program; if not, write to the Free Software Foundation, Inc.,
-// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-
-// Helper:
-//
-// Check that the SB-1 extension instruction can currently be used, and
-// signal a ReservedInstruction exception if not.
-//
-
-:function:::void:check_sbx:instruction_word insn
-*sb1:
-{
- if ((SR & status_SBX) == 0)
- SignalException(ReservedInstruction, insn);
-}
-
-
-// MDMX ASE Instructions
-// ---------------------
-//
-// The SB-1 implements the format OB subset of MDMX
-// and has three additions (pavg, pabsdiff, pabsdifc).
-// In addition, there are a couple of partial-decoding
-// issues for the read/write accumulator instructions.
-//
-// This code is structured so that mdmx.igen can be used by
-// selecting the allowed instructions either via model, or by
-// using check_mdmx_fmtsel and check_mdmx_fmtop to cause an
-// exception if the instruction is not allowed.
-
-
-:function:::void:check_mdmx:instruction_word insn
-*sb1:
-{
- if (!COP_Usable(1))
- SignalExceptionCoProcessorUnusable(1);
- if ((SR & status_MX) == 0)
- SignalExceptionMDMX();
- check_u64 (SD_, insn);
-}
-
-:function:::int:check_mdmx_fmtsel:instruction_word insn, int fmtsel
-*sb1:
-{
- switch (fmtsel & 0x03)
- {
- case 0x00: /* ob */
- case 0x02:
- return 1;
- case 0x01: /* qh */
- case 0x03: /* UNPREDICTABLE */
- SignalException (ReservedInstruction, insn);
- return 0;
- }
- return 0;
-}
-
-:function:::int:check_mdmx_fmtop:instruction_word insn, int fmtop
-*sb1:
-{
- switch (fmtop & 0x01)
- {
- case 0x00: /* ob */
- return 1;
- case 0x01: /* qh */
- SignalException (ReservedInstruction, insn);
- return 0;
- }
- return 0;
-}
-
-
-011110,10,2.X!0,1.FMTOP,00000,00000,5.VD,111111:MDMX:64::RACH.sb1.fmt
-"rach.?<X>.%s<FMTOP> v<VD>"
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- check_mdmx_fmtop (SD_, instruction_0, FMTOP);
- /* No op. */
-}
-
-
-011110,00,2.X!0,1.FMTOP,00000,00000,5.VD,111111:MDMX:64::RACL.sb1.fmt
-"racl.?<X>.%s<FMTOP> v<VD>"
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- check_mdmx_fmtop (SD_, instruction_0, FMTOP);
- /* No op. */
-}
-
-
-011110,01,2.X!0,1.FMTOP,00000,00000,5.VD,111111:MDMX:64::RACM.sb1.fmt
-"racm.?<X>.%s<FMTOP> v<VD>"
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- check_mdmx_fmtop (SD_, instruction_0, FMTOP);
- /* No op. */
-}
-
-
-011110,2.X1!0!1!2,2.X2,1.FMTOP,00000,00000,5.VD,111111:MDMX:64::RAC.sb1.fmt
-"rac?<X1>.?<X2> v<VD>"
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- check_mdmx_fmtop (SD_, instruction_0, FMTOP);
- /* No op. */
-}
-
-
-011110,10,2.X!0,1.FMTOP,00000,5.VS,00000,111110:MDMX:64::WACH.sb1.fmt
-"wach.?<X>.%s<FMTOP> v<VS>"
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- check_mdmx_fmtop (SD_, instruction_0, FMTOP);
- /* No op. */
-}
-
-
-011110,00,2.X!0,1.FMTOP,5.VT,5.VS,00000,111110:MDMX:64::WACL.sb1.fmt
-"wacl.?<X>.%s<FMTOP> v<VS>,v<VT>"
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- check_mdmx_fmtop (SD_, instruction_0, FMTOP);
- /* No op. */
-}
-
-
-011110,2.X1!0!2,2.X2,1.FMTOP,5.VT,5.VS,00000,111110:MDMX:64::WAC.sb1.fmt
-"wacl?<X1>.?<X2>.%s<FMTOP> v<VS>,v<VT>"
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- check_mdmx_fmtop (SD_, instruction_0, FMTOP);
- /* No op. */
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,5.VD,001001:MDMX:64::PABSDIFF.fmt
-"pabsdiff.%s<FMTSEL> v<VD>,v<VS>,v<VT>"
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- check_sbx (SD_, instruction_0);
- check_mdmx_fmtsel (SD_, instruction_0, FMTSEL);
- StoreFPR(VD,fmt_mdmx,MX_AbsDiff(ValueFPR(VS,fmt_mdmx),VT,FMTSEL));
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,00000,110101:MDMX:64::PABSDIFC.fmt
-"pabsdifc.%<FMTSEL> v<VS>,v<VT>"
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- check_sbx (SD_, instruction_0);
- check_mdmx_fmtsel (SD_, instruction_0, FMTSEL);
- MX_AbsDiffC(ValueFPR(VS,fmt_mdmx),VT,FMTSEL);
-}
-
-
-011110,5.FMTSEL,5.VT,5.VS,5.VD,001000:MDMX:64::PAVG.fmt
-"pavg.%s<FMTSEL> v<VD>,v<VS>,v<VT>"
-*sb1:
-{
- check_mdmx (SD_, instruction_0);
- check_sbx (SD_, instruction_0);
- check_mdmx_fmtsel (SD_, instruction_0, FMTSEL);
- StoreFPR(VD,fmt_mdmx,MX_Avg(ValueFPR(VS,fmt_mdmx),VT,FMTSEL));
-}
-
-
-// Paired-Single Extension Instructions
-// ------------------------------------
-//
-// The SB-1 implements several .PS format instructions that are
-// extensions to the MIPS64 architecture.
-
-010001,10,3.FMT=6,5.FT,5.FS,5.FD,000011:COP1:32,f::DIV.PS
-"div.%s<FMT> f<FD>, f<FS>, f<FT>"
-*sb1:
-{
- int fmt = FMT;
- check_fpu (SD_);
- check_sbx (SD_, instruction_0);
- StoreFPR (FD, fmt, Divide (ValueFPR (FS, fmt), ValueFPR (FT, fmt), fmt));
-}
-
-
-010001,10,3.FMT=6,00000,5.FS,5.FD,010101:COP1:32,f::RECIP.PS
-"recip.%s<FMT> f<FD>, f<FS>"
-*sb1:
-{
- int fmt = FMT;
- check_fpu (SD_);
- check_sbx (SD_, instruction_0);
- StoreFPR (FD, fmt, Recip (ValueFPR (FS, fmt), fmt));
-}
-
-
-010001,10,3.FMT=6,00000,5.FS,5.FD,010110:COP1:32,f::RSQRT.PS
-"rsqrt.%s<FMT> f<FD>, f<FS>"
-*sb1:
-{
- int fmt = FMT;
- check_fpu (SD_);
- check_sbx (SD_, instruction_0);
- StoreFPR (FD, fmt, RSquareRoot (ValueFPR (FS, fmt), fmt));
-}
-
-
-010001,10,3.FMT=6,00000,5.FS,5.FD,000100:COP1:32,f::SQRT.PS
-"sqrt.%s<FMT> f<FD>, f<FS>"
-*sb1:
-{
- int fmt = FMT;
- check_fpu (SD_);
- check_sbx (SD_, instruction_0);
- StoreFPR (FD, fmt, (SquareRoot (ValueFPR (FS, fmt), fmt)));
-}
diff --git a/sim/mips/sim-main.c b/sim/mips/sim-main.c
deleted file mode 100644
index edee498..0000000
--- a/sim/mips/sim-main.c
+++ /dev/null
@@ -1,564 +0,0 @@
-/* Copyright (C) 1998, Cygnus Solutions
-
- This program 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 2 of the License, or
- (at your option) any later version.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- */
-
-
-#ifndef SIM_MAIN_C
-#define SIM_MAIN_C
-
-#include "sim-main.h"
-#include "sim-assert.h"
-
-
-/*---------------------------------------------------------------------------*/
-/*-- simulator engine -------------------------------------------------------*/
-/*---------------------------------------------------------------------------*/
-
-
-/* Description from page A-22 of the "MIPS IV Instruction Set" manual
- (revision 3.1) */
-/* Translate a virtual address to a physical address and cache
- coherence algorithm describing the mechanism used to resolve the
- memory reference. Given the virtual address vAddr, and whether the
- reference is to Instructions ot Data (IorD), find the corresponding
- physical address (pAddr) and the cache coherence algorithm (CCA)
- used to resolve the reference. If the virtual address is in one of
- the unmapped address spaces the physical address and the CCA are
- determined directly by the virtual address. If the virtual address
- is in one of the mapped address spaces then the TLB is used to
- determine the physical address and access type; if the required
- translation is not present in the TLB or the desired access is not
- permitted the function fails and an exception is taken.
-
- NOTE: Normally (RAW == 0), when address translation fails, this
- function raises an exception and does not return. */
-
-INLINE_SIM_MAIN
-(int)
-address_translation (SIM_DESC sd,
- sim_cpu * cpu,
- address_word cia,
- address_word vAddr,
- int IorD,
- int LorS,
- address_word * pAddr,
- int *CCA,
- int raw)
-{
- int res = -1; /* TRUE : Assume good return */
-
-#ifdef DEBUG
- sim_io_printf (sd, "AddressTranslation(0x%s,%s,%s,...);\n", pr_addr (vAddr), (IorD ? "isDATA" : "isINSTRUCTION"), (LorS ? "iSTORE" : "isLOAD"));
-#endif
-
- /* Check that the address is valid for this memory model */
-
- /* For a simple (flat) memory model, we simply pass virtual
- addressess through (mostly) unchanged. */
- vAddr &= 0xFFFFFFFF;
-
- *pAddr = vAddr; /* default for isTARGET */
- *CCA = Uncached; /* not used for isHOST */
-
- return (res);
-}
-
-
-
-/* Description from page A-23 of the "MIPS IV Instruction Set" manual
- (revision 3.1) */
-/* Prefetch data from memory. Prefetch is an advisory instruction for
- which an implementation specific action is taken. The action taken
- may increase performance, but must not change the meaning of the
- program, or alter architecturally-visible state. */
-
-INLINE_SIM_MAIN (void)
-prefetch (SIM_DESC sd,
- sim_cpu *cpu,
- address_word cia,
- int CCA,
- address_word pAddr,
- address_word vAddr,
- int DATA,
- int hint)
-{
-#ifdef DEBUG
- sim_io_printf(sd,"Prefetch(%d,0x%s,0x%s,%d,%d);\n",CCA,pr_addr(pAddr),pr_addr(vAddr),DATA,hint);
-#endif /* DEBUG */
-
- /* For our simple memory model we do nothing */
- return;
-}
-
-/* Description from page A-22 of the "MIPS IV Instruction Set" manual
- (revision 3.1) */
-/* Load a value from memory. Use the cache and main memory as
- specified in the Cache Coherence Algorithm (CCA) and the sort of
- access (IorD) to find the contents of AccessLength memory bytes
- starting at physical location pAddr. The data is returned in the
- fixed width naturally-aligned memory element (MemElem). The
- low-order two (or three) bits of the address and the AccessLength
- indicate which of the bytes within MemElem needs to be given to the
- processor. If the memory access type of the reference is uncached
- then only the referenced bytes are read from memory and valid
- within the memory element. If the access type is cached, and the
- data is not present in cache, an implementation specific size and
- alignment block of memory is read and loaded into the cache to
- satisfy a load reference. At a minimum, the block is the entire
- memory element. */
-INLINE_SIM_MAIN (void)
-load_memory (SIM_DESC SD,
- sim_cpu *CPU,
- address_word cia,
- uword64* memvalp,
- uword64* memval1p,
- int CCA,
- unsigned int AccessLength,
- address_word pAddr,
- address_word vAddr,
- int IorD)
-{
- uword64 value = 0;
- uword64 value1 = 0;
-
-#ifdef DEBUG
- sim_io_printf(sd,"DBG: LoadMemory(%p,%p,%d,%d,0x%s,0x%s,%s)\n",memvalp,memval1p,CCA,AccessLength,pr_addr(pAddr),pr_addr(vAddr),(IorD ? "isDATA" : "isINSTRUCTION"));
-#endif /* DEBUG */
-
-#if defined(WARN_MEM)
- if (CCA != uncached)
- sim_io_eprintf(sd,"LoadMemory CCA (%d) is not uncached (currently all accesses treated as cached)\n",CCA);
-#endif /* WARN_MEM */
-
- if (((pAddr & LOADDRMASK) + AccessLength) > LOADDRMASK)
- {
- /* In reality this should be a Bus Error */
- sim_io_error (SD, "LOAD AccessLength of %d would extend over %d bit aligned boundary for physical address 0x%s\n",
- AccessLength,
- (LOADDRMASK + 1) << 3,
- pr_addr (pAddr));
- }
-
-#if defined(TRACE)
- dotrace (SD, CPU, tracefh,((IorD == isDATA) ? 0 : 2),(unsigned int)(pAddr&0xFFFFFFFF),(AccessLength + 1),"load%s",((IorD == isDATA) ? "" : " instruction"));
-#endif /* TRACE */
-
- /* Read the specified number of bytes from memory. Adjust for
- host/target byte ordering/ Align the least significant byte
- read. */
-
- switch (AccessLength)
- {
- case AccessLength_QUADWORD:
- {
- unsigned_16 val = sim_core_read_aligned_16 (CPU, cia, read_map, pAddr);
- value1 = VH8_16 (val);
- value = VL8_16 (val);
- break;
- }
- case AccessLength_DOUBLEWORD:
- value = sim_core_read_aligned_8 (CPU, cia, read_map, pAddr);
- break;
- case AccessLength_SEPTIBYTE:
- value = sim_core_read_misaligned_7 (CPU, cia, read_map, pAddr);
- break;
- case AccessLength_SEXTIBYTE:
- value = sim_core_read_misaligned_6 (CPU, cia, read_map, pAddr);
- break;
- case AccessLength_QUINTIBYTE:
- value = sim_core_read_misaligned_5 (CPU, cia, read_map, pAddr);
- break;
- case AccessLength_WORD:
- value = sim_core_read_aligned_4 (CPU, cia, read_map, pAddr);
- break;
- case AccessLength_TRIPLEBYTE:
- value = sim_core_read_misaligned_3 (CPU, cia, read_map, pAddr);
- break;
- case AccessLength_HALFWORD:
- value = sim_core_read_aligned_2 (CPU, cia, read_map, pAddr);
- break;
- case AccessLength_BYTE:
- value = sim_core_read_aligned_1 (CPU, cia, read_map, pAddr);
- break;
- default:
- abort ();
- }
-
-#ifdef DEBUG
- printf("DBG: LoadMemory() : (offset %d) : value = 0x%s%s\n",
- (int)(pAddr & LOADDRMASK),pr_uword64(value1),pr_uword64(value));
-#endif /* DEBUG */
-
- /* See also store_memory. Position data in correct byte lanes. */
- if (AccessLength <= LOADDRMASK)
- {
- if (BigEndianMem)
- /* for big endian target, byte (pAddr&LOADDRMASK == 0) is
- shifted to the most significant byte position. */
- value <<= (((LOADDRMASK - (pAddr & LOADDRMASK)) - AccessLength) * 8);
- else
- /* For little endian target, byte (pAddr&LOADDRMASK == 0)
- is already in the correct postition. */
- value <<= ((pAddr & LOADDRMASK) * 8);
- }
-
-#ifdef DEBUG
- printf("DBG: LoadMemory() : shifted value = 0x%s%s\n",
- pr_uword64(value1),pr_uword64(value));
-#endif /* DEBUG */
-
- *memvalp = value;
- if (memval1p) *memval1p = value1;
-}
-
-
-/* Description from page A-23 of the "MIPS IV Instruction Set" manual
- (revision 3.1) */
-/* Store a value to memory. The specified data is stored into the
- physical location pAddr using the memory hierarchy (data caches and
- main memory) as specified by the Cache Coherence Algorithm
- (CCA). The MemElem contains the data for an aligned, fixed-width
- memory element (word for 32-bit processors, doubleword for 64-bit
- processors), though only the bytes that will actually be stored to
- memory need to be valid. The low-order two (or three) bits of pAddr
- and the AccessLength field indicates which of the bytes within the
- MemElem data should actually be stored; only these bytes in memory
- will be changed. */
-
-INLINE_SIM_MAIN (void)
-store_memory (SIM_DESC SD,
- sim_cpu *CPU,
- address_word cia,
- int CCA,
- unsigned int AccessLength,
- uword64 MemElem,
- uword64 MemElem1, /* High order 64 bits */
- address_word pAddr,
- address_word vAddr)
-{
-#ifdef DEBUG
- sim_io_printf(sd,"DBG: StoreMemory(%d,%d,0x%s,0x%s,0x%s,0x%s)\n",CCA,AccessLength,pr_uword64(MemElem),pr_uword64(MemElem1),pr_addr(pAddr),pr_addr(vAddr));
-#endif /* DEBUG */
-
-#if defined(WARN_MEM)
- if (CCA != uncached)
- sim_io_eprintf(sd,"StoreMemory CCA (%d) is not uncached (currently all accesses treated as cached)\n",CCA);
-#endif /* WARN_MEM */
-
- if (((pAddr & LOADDRMASK) + AccessLength) > LOADDRMASK)
- sim_io_error (SD, "STORE AccessLength of %d would extend over %d bit aligned boundary for physical address 0x%s\n",
- AccessLength,
- (LOADDRMASK + 1) << 3,
- pr_addr(pAddr));
-
-#if defined(TRACE)
- dotrace (SD, CPU, tracefh,1,(unsigned int)(pAddr&0xFFFFFFFF),(AccessLength + 1),"store");
-#endif /* TRACE */
-
-#ifdef DEBUG
- printf("DBG: StoreMemory: offset = %d MemElem = 0x%s%s\n",(unsigned int)(pAddr & LOADDRMASK),pr_uword64(MemElem1),pr_uword64(MemElem));
-#endif /* DEBUG */
-
- /* See also load_memory. Position data in correct byte lanes. */
- if (AccessLength <= LOADDRMASK)
- {
- if (BigEndianMem)
- /* for big endian target, byte (pAddr&LOADDRMASK == 0) is
- shifted to the most significant byte position. */
- MemElem >>= (((LOADDRMASK - (pAddr & LOADDRMASK)) - AccessLength) * 8);
- else
- /* For little endian target, byte (pAddr&LOADDRMASK == 0)
- is already in the correct postition. */
- MemElem >>= ((pAddr & LOADDRMASK) * 8);
- }
-
-#ifdef DEBUG
- printf("DBG: StoreMemory: shift = %d MemElem = 0x%s%s\n",shift,pr_uword64(MemElem1),pr_uword64(MemElem));
-#endif /* DEBUG */
-
- switch (AccessLength)
- {
- case AccessLength_QUADWORD:
- {
- unsigned_16 val = U16_8 (MemElem1, MemElem);
- sim_core_write_aligned_16 (CPU, cia, write_map, pAddr, val);
- break;
- }
- case AccessLength_DOUBLEWORD:
- sim_core_write_aligned_8 (CPU, cia, write_map, pAddr, MemElem);
- break;
- case AccessLength_SEPTIBYTE:
- sim_core_write_misaligned_7 (CPU, cia, write_map, pAddr, MemElem);
- break;
- case AccessLength_SEXTIBYTE:
- sim_core_write_misaligned_6 (CPU, cia, write_map, pAddr, MemElem);
- break;
- case AccessLength_QUINTIBYTE:
- sim_core_write_misaligned_5 (CPU, cia, write_map, pAddr, MemElem);
- break;
- case AccessLength_WORD:
- sim_core_write_aligned_4 (CPU, cia, write_map, pAddr, MemElem);
- break;
- case AccessLength_TRIPLEBYTE:
- sim_core_write_misaligned_3 (CPU, cia, write_map, pAddr, MemElem);
- break;
- case AccessLength_HALFWORD:
- sim_core_write_aligned_2 (CPU, cia, write_map, pAddr, MemElem);
- break;
- case AccessLength_BYTE:
- sim_core_write_aligned_1 (CPU, cia, write_map, pAddr, MemElem);
- break;
- default:
- abort ();
- }
-
- return;
-}
-
-
-INLINE_SIM_MAIN (unsigned32)
-ifetch32 (SIM_DESC SD,
- sim_cpu *CPU,
- address_word cia,
- address_word vaddr)
-{
- /* Copy the action of the LW instruction */
- address_word mask = LOADDRMASK;
- address_word access = AccessLength_WORD;
- address_word reverseendian = (ReverseEndian ? (mask ^ access) : 0);
- address_word bigendiancpu = (BigEndianCPU ? (mask ^ access) : 0);
- unsigned int byte;
- address_word paddr;
- int uncached;
- unsigned64 memval;
-
- if ((vaddr & access) != 0)
- SignalExceptionInstructionFetch ();
- AddressTranslation (vaddr, isINSTRUCTION, isLOAD, &paddr, &uncached, isTARGET, isREAL);
- paddr = ((paddr & ~mask) | ((paddr & mask) ^ reverseendian));
- LoadMemory (&memval, NULL, uncached, access, paddr, vaddr, isINSTRUCTION, isREAL);
- byte = ((vaddr & mask) ^ bigendiancpu);
- return (memval >> (8 * byte));
-}
-
-
-INLINE_SIM_MAIN (unsigned16)
-ifetch16 (SIM_DESC SD,
- sim_cpu *CPU,
- address_word cia,
- address_word vaddr)
-{
- /* Copy the action of the LH instruction */
- address_word mask = LOADDRMASK;
- address_word access = AccessLength_HALFWORD;
- address_word reverseendian = (ReverseEndian ? (mask ^ access) : 0);
- address_word bigendiancpu = (BigEndianCPU ? (mask ^ access) : 0);
- unsigned int byte;
- address_word paddr;
- int uncached;
- unsigned64 memval;
-
- if ((vaddr & access) != 0)
- SignalExceptionInstructionFetch ();
- AddressTranslation (vaddr, isINSTRUCTION, isLOAD, &paddr, &uncached, isTARGET, isREAL);
- paddr = ((paddr & ~mask) | ((paddr & mask) ^ reverseendian));
- LoadMemory (&memval, NULL, uncached, access, paddr, vaddr, isINSTRUCTION, isREAL);
- byte = ((vaddr & mask) ^ bigendiancpu);
- return (memval >> (8 * byte));
-}
-
-
-
-/* Description from page A-26 of the "MIPS IV Instruction Set" manual (revision 3.1) */
-/* Order loads and stores to synchronise shared memory. Perform the
- action necessary to make the effects of groups of synchronizable
- loads and stores indicated by stype occur in the same order for all
- processors. */
-INLINE_SIM_MAIN (void)
-sync_operation (SIM_DESC sd,
- sim_cpu *cpu,
- address_word cia,
- int stype)
-{
-#ifdef DEBUG
- sim_io_printf(sd,"SyncOperation(%d) : TODO\n",stype);
-#endif /* DEBUG */
- return;
-}
-
-INLINE_SIM_MAIN (void)
-cache_op (SIM_DESC SD,
- sim_cpu *CPU,
- address_word cia,
- int op,
- address_word pAddr,
- address_word vAddr,
- unsigned int instruction)
-{
-#if 1 /* stop warning message being displayed (we should really just remove the code) */
- static int icache_warning = 1;
- static int dcache_warning = 1;
-#else
- static int icache_warning = 0;
- static int dcache_warning = 0;
-#endif
-
- /* If CP0 is not useable (User or Supervisor mode) and the CP0
- enable bit in the Status Register is clear - a coprocessor
- unusable exception is taken. */
-#if 0
- sim_io_printf(SD,"TODO: Cache availability checking (PC = 0x%s)\n",pr_addr(cia));
-#endif
-
- switch (op & 0x3) {
- case 0: /* instruction cache */
- switch (op >> 2) {
- case 0: /* Index Invalidate */
- case 1: /* Index Load Tag */
- case 2: /* Index Store Tag */
- case 4: /* Hit Invalidate */
- case 5: /* Fill */
- case 6: /* Hit Writeback */
- if (!icache_warning)
- {
- sim_io_eprintf(SD,"Instruction CACHE operation %d to be coded\n",(op >> 2));
- icache_warning = 1;
- }
- break;
-
- default:
- SignalException(ReservedInstruction,instruction);
- break;
- }
- break;
-
- case 1: /* data cache */
- case 3: /* secondary data cache */
- switch (op >> 2) {
- case 0: /* Index Writeback Invalidate */
- case 1: /* Index Load Tag */
- case 2: /* Index Store Tag */
- case 3: /* Create Dirty */
- case 4: /* Hit Invalidate */
- case 5: /* Hit Writeback Invalidate */
- case 6: /* Hit Writeback */
- if (!dcache_warning)
- {
- sim_io_eprintf(SD,"Data CACHE operation %d to be coded\n",(op >> 2));
- dcache_warning = 1;
- }
- break;
-
- default:
- SignalException(ReservedInstruction,instruction);
- break;
- }
- break;
-
- default: /* unrecognised cache ID */
- SignalException(ReservedInstruction,instruction);
- break;
- }
-
- return;
-}
-
-
-INLINE_SIM_MAIN (void)
-pending_tick (SIM_DESC SD,
- sim_cpu *CPU,
- address_word cia)
-{
- if (PENDING_TRACE)
- sim_io_eprintf (SD, "PENDING_DRAIN - 0x%lx - pending_in = %d, pending_out = %d, pending_total = %d\n", (unsigned long) cia, PENDING_IN, PENDING_OUT, PENDING_TOTAL);
- if (PENDING_OUT != PENDING_IN)
- {
- int loop;
- int index = PENDING_OUT;
- int total = PENDING_TOTAL;
- if (PENDING_TOTAL == 0)
- sim_engine_abort (SD, CPU, cia, "PENDING_DRAIN - Mis-match on pending update pointers\n");
- for (loop = 0, index = PENDING_OUT;
- (loop < total);
- loop++, index = (index + 1) % PSLOTS)
- {
- if (PENDING_SLOT_DEST[index] != NULL)
- {
- PENDING_SLOT_DELAY[index] -= 1;
- if (PENDING_SLOT_DELAY[index] == 0)
- {
- if (PENDING_TRACE)
- sim_io_eprintf (SD, "PENDING_DRAIN - drained - index %d, dest 0x%lx, bit %d, val 0x%lx, size %d\n",
- index,
- (unsigned long) PENDING_SLOT_DEST[index],
- PENDING_SLOT_BIT[index],
- (unsigned long) PENDING_SLOT_VALUE[index],
- PENDING_SLOT_SIZE[index]);
- if (PENDING_SLOT_BIT[index] >= 0)
- switch (PENDING_SLOT_SIZE[index])
- {
- case 4:
- if (PENDING_SLOT_VALUE[index])
- *(unsigned32*)PENDING_SLOT_DEST[index] |=
- BIT32 (PENDING_SLOT_BIT[index]);
- else
- *(unsigned32*)PENDING_SLOT_DEST[index] &=
- BIT32 (PENDING_SLOT_BIT[index]);
- break;
- case 8:
- if (PENDING_SLOT_VALUE[index])
- *(unsigned64*)PENDING_SLOT_DEST[index] |=
- BIT64 (PENDING_SLOT_BIT[index]);
- else
- *(unsigned64*)PENDING_SLOT_DEST[index] &=
- BIT64 (PENDING_SLOT_BIT[index]);
- break;
- }
- else
- switch (PENDING_SLOT_SIZE[index])
- {
- case 4:
- *(unsigned32*)PENDING_SLOT_DEST[index] =
- PENDING_SLOT_VALUE[index];
- break;
- case 8:
- *(unsigned64*)PENDING_SLOT_DEST[index] =
- PENDING_SLOT_VALUE[index];
- break;
- }
- if (PENDING_OUT == index)
- {
- PENDING_SLOT_DEST[index] = NULL;
- PENDING_OUT = (PENDING_OUT + 1) % PSLOTS;
- PENDING_TOTAL--;
- }
- }
- else if (PENDING_TRACE && PENDING_SLOT_DELAY[index] > 0)
- sim_io_eprintf (SD, "PENDING_DRAIN - queued - index %d, delay %d, dest 0x%lx, bit %d, val 0x%lx, size %d\n",
- index, PENDING_SLOT_DELAY[index],
- (unsigned long) PENDING_SLOT_DEST[index],
- PENDING_SLOT_BIT[index],
- (unsigned long) PENDING_SLOT_VALUE[index],
- PENDING_SLOT_SIZE[index]);
-
- }
- }
- }
-}
-
-
-#endif
diff --git a/sim/mips/sim-main.h b/sim/mips/sim-main.h
deleted file mode 100644
index 76e6374..0000000
--- a/sim/mips/sim-main.h
+++ /dev/null
@@ -1,1020 +0,0 @@
-/* MIPS Simulator definition.
- Copyright (C) 1997, 1998, 2003 Free Software Foundation, Inc.
- Contributed by Cygnus Support.
-
-This file is part of GDB, the GNU debugger.
-
-This program 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 2, or (at your option)
-any later version.
-
-This program 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 this program; if not, write to the Free Software Foundation, Inc.,
-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef SIM_MAIN_H
-#define SIM_MAIN_H
-
-/* This simulator doesn't cache the Current Instruction Address */
-/* #define SIM_ENGINE_HALT_HOOK(SD, LAST_CPU, CIA) */
-/* #define SIM_ENGINE_RESUME_HOOK(SD, LAST_CPU, CIA) */
-
-#define SIM_HAVE_BIENDIAN
-
-
-/* hobble some common features for moment */
-#define WITH_WATCHPOINTS 1
-#define WITH_MODULO_MEMORY 1
-
-
-#define SIM_CORE_SIGNAL(SD,CPU,CIA,MAP,NR_BYTES,ADDR,TRANSFER,ERROR) \
-mips_core_signal ((SD), (CPU), (CIA), (MAP), (NR_BYTES), (ADDR), (TRANSFER), (ERROR))
-
-#include "sim-basics.h"
-
-typedef address_word sim_cia;
-
-#include "sim-base.h"
-#include "bfd.h"
-
-/* Deprecated macros and types for manipulating 64bit values. Use
- ../common/sim-bits.h and ../common/sim-endian.h macros instead. */
-
-typedef signed64 word64;
-typedef unsigned64 uword64;
-
-#define WORD64LO(t) (unsigned int)((t)&0xFFFFFFFF)
-#define WORD64HI(t) (unsigned int)(((uword64)(t))>>32)
-#define SET64LO(t) (((uword64)(t))&0xFFFFFFFF)
-#define SET64HI(t) (((uword64)(t))<<32)
-#define WORD64(h,l) ((word64)((SET64HI(h)|SET64LO(l))))
-#define UWORD64(h,l) (SET64HI(h)|SET64LO(l))
-
-/* Check if a value will fit within a halfword: */
-#define NOTHALFWORDVALUE(v) ((((((uword64)(v)>>16) == 0) && !((v) & ((unsigned)1 << 15))) || (((((uword64)(v)>>32) == 0xFFFFFFFF) && ((((uword64)(v)>>16) & 0xFFFF) == 0xFFFF)) && ((v) & ((unsigned)1 << 15)))) ? (1 == 0) : (1 == 1))
-
-
-
-/* Floating-point operations: */
-
-#include "sim-fpu.h"
-#include "cp1.h"
-
-/* FPU registers must be one of the following types. All other values
- are reserved (and undefined). */
-typedef enum {
- fmt_single = 0,
- fmt_double = 1,
- fmt_word = 4,
- fmt_long = 5,
- fmt_ps = 6,
- /* The following are well outside the normal acceptable format
- range, and are used in the register status vector. */
- fmt_unknown = 0x10000000,
- fmt_uninterpreted = 0x20000000,
- fmt_uninterpreted_32 = 0x40000000,
- fmt_uninterpreted_64 = 0x80000000U,
-} FP_formats;
-
-/* For paired word (pw) operations, the opcode representation is fmt_word,
- but register transfers (StoreFPR, ValueFPR, etc.) are done as fmt_long. */
-#define fmt_pw fmt_long
-
-/* This should be the COC1 value at the start of the preceding
- instruction: */
-#define PREVCOC1() ((STATE & simPCOC1) ? 1 : 0)
-
-#ifdef TARGET_ENABLE_FR
-/* FIXME: this should be enabled for all targets, but needs testing first. */
-#define SizeFGR() (((WITH_TARGET_FLOATING_POINT_BITSIZE) == 64) \
- ? ((SR & status_FR) ? 64 : 32) \
- : (WITH_TARGET_FLOATING_POINT_BITSIZE))
-#else
-#define SizeFGR() (WITH_TARGET_FLOATING_POINT_BITSIZE)
-#endif
-
-
-
-
-
-/* HI/LO register accesses */
-
-/* For some MIPS targets, the HI/LO registers have certain timing
- restrictions in that, for instance, a read of a HI register must be
- separated by at least three instructions from a preceeding read.
-
- The struct below is used to record the last access by each of A MT,
- MF or other OP instruction to a HI/LO register. See mips.igen for
- more details. */
-
-typedef struct _hilo_access {
- signed64 timestamp;
- address_word cia;
-} hilo_access;
-
-typedef struct _hilo_history {
- hilo_access mt;
- hilo_access mf;
- hilo_access op;
-} hilo_history;
-
-
-
-
-/* Integer ALU operations: */
-
-#include "sim-alu.h"
-
-#define ALU32_END(ANS) \
- if (ALU32_HAD_OVERFLOW) \
- SignalExceptionIntegerOverflow (); \
- (ANS) = (signed32) ALU32_OVERFLOW_RESULT
-
-
-#define ALU64_END(ANS) \
- if (ALU64_HAD_OVERFLOW) \
- SignalExceptionIntegerOverflow (); \
- (ANS) = ALU64_OVERFLOW_RESULT;
-
-
-
-
-
-/* The following is probably not used for MIPS IV onwards: */
-/* Slots for delayed register updates. For the moment we just have a
- fixed number of slots (rather than a more generic, dynamic
- system). This keeps the simulator fast. However, we only allow
- for the register update to be delayed for a single instruction
- cycle. */
-#define PSLOTS (8) /* Maximum number of instruction cycles */
-
-typedef struct _pending_write_queue {
- int in;
- int out;
- int total;
- int slot_delay[PSLOTS];
- int slot_size[PSLOTS];
- int slot_bit[PSLOTS];
- void *slot_dest[PSLOTS];
- unsigned64 slot_value[PSLOTS];
-} pending_write_queue;
-
-#ifndef PENDING_TRACE
-#define PENDING_TRACE 0
-#endif
-#define PENDING_IN ((CPU)->pending.in)
-#define PENDING_OUT ((CPU)->pending.out)
-#define PENDING_TOTAL ((CPU)->pending.total)
-#define PENDING_SLOT_SIZE ((CPU)->pending.slot_size)
-#define PENDING_SLOT_BIT ((CPU)->pending.slot_bit)
-#define PENDING_SLOT_DELAY ((CPU)->pending.slot_delay)
-#define PENDING_SLOT_DEST ((CPU)->pending.slot_dest)
-#define PENDING_SLOT_VALUE ((CPU)->pending.slot_value)
-
-/* Invalidate the pending write queue, all pending writes are
- discarded. */
-
-#define PENDING_INVALIDATE() \
-memset (&(CPU)->pending, 0, sizeof ((CPU)->pending))
-
-/* Schedule a write to DEST for N cycles time. For 64 bit
- destinations, schedule two writes. For floating point registers,
- the caller should schedule a write to both the dest register and
- the FPR_STATE register. When BIT is non-negative, only BIT of DEST
- is updated. */
-
-#define PENDING_SCHED(DEST,VAL,DELAY,BIT) \
- do { \
- if (PENDING_SLOT_DEST[PENDING_IN] != NULL) \
- sim_engine_abort (SD, CPU, cia, \
- "PENDING_SCHED - buffer overflow\n"); \
- if (PENDING_TRACE) \
- sim_io_eprintf (SD, "PENDING_SCHED - 0x%lx - dest 0x%lx, val 0x%lx, bit %d, size %d, pending_in %d, pending_out %d, pending_total %d\n", \
- (unsigned long) cia, (unsigned long) &(DEST), \
- (unsigned long) (VAL), (BIT), (int) sizeof (DEST),\
- PENDING_IN, PENDING_OUT, PENDING_TOTAL); \
- PENDING_SLOT_DELAY[PENDING_IN] = (DELAY) + 1; \
- PENDING_SLOT_DEST[PENDING_IN] = &(DEST); \
- PENDING_SLOT_VALUE[PENDING_IN] = (VAL); \
- PENDING_SLOT_SIZE[PENDING_IN] = sizeof (DEST); \
- PENDING_SLOT_BIT[PENDING_IN] = (BIT); \
- PENDING_IN = (PENDING_IN + 1) % PSLOTS; \
- PENDING_TOTAL += 1; \
- } while (0)
-
-#define PENDING_WRITE(DEST,VAL,DELAY) PENDING_SCHED(DEST,VAL,DELAY,-1)
-#define PENDING_BIT(DEST,VAL,DELAY,BIT) PENDING_SCHED(DEST,VAL,DELAY,BIT)
-
-#define PENDING_TICK() pending_tick (SD, CPU, cia)
-
-#define PENDING_FLUSH() abort () /* think about this one */
-#define PENDING_FP() abort () /* think about this one */
-
-/* For backward compatibility */
-#define PENDING_FILL(R,VAL) \
-do { \
- if ((R) >= FGR_BASE && (R) < FGR_BASE + NR_FGR) \
- { \
- PENDING_SCHED(FGR[(R) - FGR_BASE], VAL, 1, -1); \
- PENDING_SCHED(FPR_STATE[(R) - FGR_BASE], fmt_uninterpreted, 1, -1); \
- } \
- else \
- PENDING_SCHED(GPR[(R)], VAL, 1, -1); \
-} while (0)
-
-
-enum float_operation
- {
- FLOP_ADD, FLOP_SUB, FLOP_MUL, FLOP_MADD,
- FLOP_MSUB, FLOP_MAX=10, FLOP_MIN, FLOP_ABS,
- FLOP_ITOF0=14, FLOP_FTOI0=18, FLOP_NEG=23
- };
-
-
-/* The internal representation of an MDMX accumulator.
- Note that 24 and 48 bit accumulator elements are represented in
- 32 or 64 bits. Since the accumulators are 2's complement with
- overflow suppressed, high-order bits can be ignored in most contexts. */
-
-typedef signed32 signed24;
-typedef signed64 signed48;
-
-typedef union {
- signed24 ob[8];
- signed48 qh[4];
-} MDMX_accumulator;
-
-
-/* Conventional system arguments. */
-#define SIM_STATE sim_cpu *cpu, address_word cia
-#define SIM_ARGS CPU, cia
-
-struct _sim_cpu {
-
-
- /* The following are internal simulator state variables: */
-#define CIA_GET(CPU) ((CPU)->registers[PCIDX] + 0)
-#define CIA_SET(CPU,CIA) ((CPU)->registers[PCIDX] = (CIA))
- address_word dspc; /* delay-slot PC */
-#define DSPC ((CPU)->dspc)
-
-#define DELAY_SLOT(TARGET) NIA = delayslot32 (SD_, (TARGET))
-#define NULLIFY_NEXT_INSTRUCTION() NIA = nullify_next_insn32 (SD_)
-
-
- /* State of the simulator */
- unsigned int state;
- unsigned int dsstate;
-#define STATE ((CPU)->state)
-#define DSSTATE ((CPU)->dsstate)
-
-/* Flags in the "state" variable: */
-#define simHALTEX (1 << 2) /* 0 = run; 1 = halt on exception */
-#define simHALTIN (1 << 3) /* 0 = run; 1 = halt on interrupt */
-#define simTRACE (1 << 8) /* 0 = do nothing; 1 = trace address activity */
-#define simPCOC0 (1 << 17) /* COC[1] from current */
-#define simPCOC1 (1 << 18) /* COC[1] from previous */
-#define simDELAYSLOT (1 << 24) /* 0 = do nothing; 1 = delay slot entry exists */
-#define simSKIPNEXT (1 << 25) /* 0 = do nothing; 1 = skip instruction */
-#define simSIGINT (1 << 28) /* 0 = do nothing; 1 = SIGINT has occured */
-#define simJALDELAYSLOT (1 << 29) /* 1 = in jal delay slot */
-
-#ifndef ENGINE_ISSUE_PREFIX_HOOK
-#define ENGINE_ISSUE_PREFIX_HOOK() \
- { \
- /* Perform any pending writes */ \
- PENDING_TICK(); \
- /* Set previous flag, depending on current: */ \
- if (STATE & simPCOC0) \
- STATE |= simPCOC1; \
- else \
- STATE &= ~simPCOC1; \
- /* and update the current value: */ \
- if (GETFCC(0)) \
- STATE |= simPCOC0; \
- else \
- STATE &= ~simPCOC0; \
- }
-#endif /* ENGINE_ISSUE_PREFIX_HOOK */
-
-
-/* This is nasty, since we have to rely on matching the register
- numbers used by GDB. Unfortunately, depending on the MIPS target
- GDB uses different register numbers. We cannot just include the
- relevant "gdb/tm.h" link, since GDB may not be configured before
- the sim world, and also the GDB header file requires too much other
- state. */
-
-#ifndef TM_MIPS_H
-#define LAST_EMBED_REGNUM (96)
-#define NUM_REGS (LAST_EMBED_REGNUM + 1)
-
-#define FP0_REGNUM 38 /* Floating point register 0 (single float) */
-#define FCRCS_REGNUM 70 /* FP control/status */
-#define FCRIR_REGNUM 71 /* FP implementation/revision */
-#endif
-
-
-/* To keep this default simulator simple, and fast, we use a direct
- vector of registers. The internal simulator engine then uses
- manifests to access the correct slot. */
-
- unsigned_word registers[LAST_EMBED_REGNUM + 1];
-
- int register_widths[NUM_REGS];
-#define REGISTERS ((CPU)->registers)
-
-#define GPR (&REGISTERS[0])
-#define GPR_SET(N,VAL) (REGISTERS[(N)] = (VAL))
-
-#define LO (REGISTERS[33])
-#define HI (REGISTERS[34])
-#define PCIDX 37
-#define PC (REGISTERS[PCIDX])
-#define CAUSE (REGISTERS[36])
-#define SRIDX (32)
-#define SR (REGISTERS[SRIDX]) /* CPU status register */
-#define FCR0IDX (71)
-#define FCR0 (REGISTERS[FCR0IDX]) /* really a 32bit register */
-#define FCR31IDX (70)
-#define FCR31 (REGISTERS[FCR31IDX]) /* really a 32bit register */
-#define FCSR (FCR31)
-#define Debug (REGISTERS[86])
-#define DEPC (REGISTERS[87])
-#define EPC (REGISTERS[88])
-
-#define AC0LOIDX (33) /* Must be the same register as LO */
-#define AC0HIIDX (34) /* Must be the same register as HI */
-#define AC1LOIDX (90)
-#define AC1HIIDX (91)
-#define AC2LOIDX (92)
-#define AC2HIIDX (93)
-#define AC3LOIDX (94)
-#define AC3HIIDX (95)
-
-#define DSPLO(N) (REGISTERS[DSPLO_REGNUM[N]])
-#define DSPHI(N) (REGISTERS[DSPHI_REGNUM[N]])
-
-#define DSPCRIDX (96) /* DSP control register */
-#define DSPCR (REGISTERS[DSPCRIDX])
-
-#define DSPCR_POS_SHIFT (0)
-#define DSPCR_POS_MASK (0x3f)
-#define DSPCR_POS_SMASK (DSPCR_POS_MASK << DSPCR_POS_SHIFT)
-
-#define DSPCR_SCOUNT_SHIFT (7)
-#define DSPCR_SCOUNT_MASK (0x3f)
-#define DSPCR_SCOUNT_SMASK (DSPCR_SCOUNT_MASK << DSPCR_SCOUNT_SHIFT)
-
-#define DSPCR_CARRY_SHIFT (13)
-#define DSPCR_CARRY_MASK (1)
-#define DSPCR_CARRY_SMASK (DSPCR_CARRY_MASK << DSPCR_CARRY_SHIFT)
-#define DSPCR_CARRY (1 << DSPCR_CARRY_SHIFT)
-
-#define DSPCR_EFI_SHIFT (14)
-#define DSPCR_EFI_MASK (1)
-#define DSPCR_EFI_SMASK (DSPCR_EFI_MASK << DSPCR_EFI_SHIFT)
-#define DSPCR_EFI (1 << DSPCR_EFI_MASK)
-
-#define DSPCR_OUFLAG_SHIFT (16)
-#define DSPCR_OUFLAG_MASK (0xff)
-#define DSPCR_OUFLAG_SMASK (DSPCR_OUFLAG_MASK << DSPCR_OUFLAG_SHIFT)
-#define DSPCR_OUFLAG4 (1 << (DSPCR_OUFLAG_SHIFT + 4))
-#define DSPCR_OUFLAG5 (1 << (DSPCR_OUFLAG_SHIFT + 5))
-#define DSPCR_OUFLAG6 (1 << (DSPCR_OUFLAG_SHIFT + 6))
-#define DSPCR_OUFLAG7 (1 << (DSPCR_OUFLAG_SHIFT + 7))
-
-#define DSPCR_CCOND_SHIFT (24)
-#define DSPCR_CCOND_MASK (0xf)
-#define DSPCR_CCOND_SMASK (DSPCR_CCOND_MASK << DSPCR_CCOND_SHIFT)
-
- /* All internal state modified by signal_exception() that may need to be
- rolled back for passing moment-of-exception image back to gdb. */
- unsigned_word exc_trigger_registers[LAST_EMBED_REGNUM + 1];
- unsigned_word exc_suspend_registers[LAST_EMBED_REGNUM + 1];
- int exc_suspended;
-
-#define SIM_CPU_EXCEPTION_TRIGGER(SD,CPU,CIA) mips_cpu_exception_trigger(SD,CPU,CIA)
-#define SIM_CPU_EXCEPTION_SUSPEND(SD,CPU,EXC) mips_cpu_exception_suspend(SD,CPU,EXC)
-#define SIM_CPU_EXCEPTION_RESUME(SD,CPU,EXC) mips_cpu_exception_resume(SD,CPU,EXC)
-
- unsigned_word c0_config_reg;
-#define C0_CONFIG ((CPU)->c0_config_reg)
-
-/* The following are pseudonyms for standard registers */
-#define ZERO (REGISTERS[0])
-#define V0 (REGISTERS[2])
-#define A0 (REGISTERS[4])
-#define A1 (REGISTERS[5])
-#define A2 (REGISTERS[6])
-#define A3 (REGISTERS[7])
-#define T8IDX 24
-#define T8 (REGISTERS[T8IDX])
-#define SPIDX 29
-#define SP (REGISTERS[SPIDX])
-#define RAIDX 31
-#define RA (REGISTERS[RAIDX])
-
- /* While space is allocated in the main registers arrray for some of
- the COP0 registers, that space isn't sufficient. Unknown COP0
- registers overflow into the array below */
-
-#define NR_COP0_GPR 32
- unsigned_word cop0_gpr[NR_COP0_GPR];
-#define COP0_GPR ((CPU)->cop0_gpr)
-#define COP0_BADVADDR (COP0_GPR[8])
-
- /* While space is allocated for the floating point registers in the
- main registers array, they are stored separatly. This is because
- their size may not necessarily match the size of either the
- general-purpose or system specific registers. */
-#define NR_FGR (32)
-#define FGR_BASE FP0_REGNUM
- fp_word fgr[NR_FGR];
-#define FGR ((CPU)->fgr)
-
- /* Keep the current format state for each register: */
- FP_formats fpr_state[32];
-#define FPR_STATE ((CPU)->fpr_state)
-
- pending_write_queue pending;
-
- /* The MDMX accumulator (used only for MDMX ASE). */
- MDMX_accumulator acc;
-#define ACC ((CPU)->acc)
-
- /* LLBIT = Load-Linked bit. A bit of "virtual" state used by atomic
- read-write instructions. It is set when a linked load occurs. It
- is tested and cleared by the conditional store. It is cleared
- (during other CPU operations) when a store to the location would
- no longer be atomic. In particular, it is cleared by exception
- return instructions. */
- int llbit;
-#define LLBIT ((CPU)->llbit)
-
-
-/* The HIHISTORY and LOHISTORY timestamps are used to ensure that
- corruptions caused by using the HI or LO register too close to a
- following operation is spotted. See mips.igen for more details. */
-
- hilo_history hi_history;
-#define HIHISTORY (&(CPU)->hi_history)
- hilo_history lo_history;
-#define LOHISTORY (&(CPU)->lo_history)
-
-
- sim_cpu_base base;
-};
-
-
-/* MIPS specific simulator watch config */
-
-void watch_options_install PARAMS ((SIM_DESC sd));
-
-struct swatch {
- sim_event *pc;
- sim_event *clock;
- sim_event *cycles;
-};
-
-
-/* FIXME: At present much of the simulator is still static */
-struct sim_state {
-
- struct swatch watch;
-
- sim_cpu cpu[MAX_NR_PROCESSORS];
-#if (WITH_SMP)
-#define STATE_CPU(sd,n) (&(sd)->cpu[n])
-#else
-#define STATE_CPU(sd,n) (&(sd)->cpu[0])
-#endif
-
-
- sim_state_base base;
-};
-
-
-
-/* Status information: */
-
-/* TODO : these should be the bitmasks for these bits within the
- status register. At the moment the following are VR4300
- bit-positions: */
-#define status_KSU_mask (0x18) /* mask for KSU bits */
-#define status_KSU_shift (3) /* shift for field */
-#define ksu_kernel (0x0)
-#define ksu_supervisor (0x1)
-#define ksu_user (0x2)
-#define ksu_unknown (0x3)
-
-#define SR_KSU ((SR & status_KSU_mask) >> status_KSU_shift)
-
-#define status_IE (1 << 0) /* Interrupt enable */
-#define status_EIE (1 << 16) /* Enable Interrupt Enable */
-#define status_EXL (1 << 1) /* Exception level */
-#define status_RE (1 << 25) /* Reverse Endian in user mode */
-#define status_FR (1 << 26) /* enables MIPS III additional FP registers */
-#define status_SR (1 << 20) /* soft reset or NMI */
-#define status_BEV (1 << 22) /* Location of general exception vectors */
-#define status_TS (1 << 21) /* TLB shutdown has occurred */
-#define status_ERL (1 << 2) /* Error level */
-#define status_IM7 (1 << 15) /* Timer Interrupt Mask */
-#define status_RP (1 << 27) /* Reduced Power mode */
-
-/* Specializations for TX39 family */
-#define status_IEc (1 << 0) /* Interrupt enable (current) */
-#define status_KUc (1 << 1) /* Kernel/User mode */
-#define status_IEp (1 << 2) /* Interrupt enable (previous) */
-#define status_KUp (1 << 3) /* Kernel/User mode */
-#define status_IEo (1 << 4) /* Interrupt enable (old) */
-#define status_KUo (1 << 5) /* Kernel/User mode */
-#define status_IM_mask (0xff) /* Interrupt mask */
-#define status_IM_shift (8)
-#define status_NMI (1 << 20) /* NMI */
-#define status_NMI (1 << 20) /* NMI */
-
-/* Status bits used by MIPS32/MIPS64. */
-#define status_UX (1 << 5) /* 64-bit user addrs */
-#define status_SX (1 << 6) /* 64-bit supervisor addrs */
-#define status_KX (1 << 7) /* 64-bit kernel addrs */
-#define status_TS (1 << 21) /* TLB shutdown has occurred */
-#define status_PX (1 << 23) /* Enable 64 bit operations */
-#define status_MX (1 << 24) /* Enable MDMX resources */
-#define status_CU0 (1 << 28) /* Coprocessor 0 usable */
-#define status_CU1 (1 << 29) /* Coprocessor 1 usable */
-#define status_CU2 (1 << 30) /* Coprocessor 2 usable */
-#define status_CU3 (1 << 31) /* Coprocessor 3 usable */
-/* Bits reserved for implementations: */
-#define status_SBX (1 << 16) /* Enable SiByte SB-1 extensions. */
-
-#define cause_BD ((unsigned)1 << 31) /* L1 Exception in branch delay slot */
-#define cause_BD2 (1 << 30) /* L2 Exception in branch delay slot */
-#define cause_CE_mask 0x30000000 /* Coprocessor exception */
-#define cause_CE_shift 28
-#define cause_EXC2_mask 0x00070000
-#define cause_EXC2_shift 16
-#define cause_IP7 (1 << 15) /* Interrupt pending */
-#define cause_SIOP (1 << 12) /* SIO pending */
-#define cause_IP3 (1 << 11) /* Int 0 pending */
-#define cause_IP2 (1 << 10) /* Int 1 pending */
-
-#define cause_EXC_mask (0x1c) /* Exception code */
-#define cause_EXC_shift (2)
-
-#define cause_SW0 (1 << 8) /* Software interrupt 0 */
-#define cause_SW1 (1 << 9) /* Software interrupt 1 */
-#define cause_IP_mask (0x3f) /* Interrupt pending field */
-#define cause_IP_shift (10)
-
-#define cause_set_EXC(x) CAUSE = (CAUSE & ~cause_EXC_mask) | ((x << cause_EXC_shift) & cause_EXC_mask)
-#define cause_set_EXC2(x) CAUSE = (CAUSE & ~cause_EXC2_mask) | ((x << cause_EXC2_shift) & cause_EXC2_mask)
-
-
-/* NOTE: We keep the following status flags as bit values (1 for true,
- 0 for false). This allows them to be used in binary boolean
- operations without worrying about what exactly the non-zero true
- value is. */
-
-/* UserMode */
-#ifdef SUBTARGET_R3900
-#define UserMode ((SR & status_KUc) ? 1 : 0)
-#else
-#define UserMode ((((SR & status_KSU_mask) >> status_KSU_shift) == ksu_user) ? 1 : 0)
-#endif /* SUBTARGET_R3900 */
-
-/* BigEndianMem */
-/* Hardware configuration. Affects endianness of LoadMemory and
- StoreMemory and the endianness of Kernel and Supervisor mode
- execution. The value is 0 for little-endian; 1 for big-endian. */
-#define BigEndianMem (CURRENT_TARGET_BYTE_ORDER == BIG_ENDIAN)
-/*(state & simBE) ? 1 : 0)*/
-
-/* ReverseEndian */
-/* This mode is selected if in User mode with the RE bit being set in
- SR (Status Register). It reverses the endianness of load and store
- instructions. */
-#define ReverseEndian (((SR & status_RE) && UserMode) ? 1 : 0)
-
-/* BigEndianCPU */
-/* The endianness for load and store instructions (0=little;1=big). In
- User mode this endianness may be switched by setting the state_RE
- bit in the SR register. Thus, BigEndianCPU may be computed as
- (BigEndianMem EOR ReverseEndian). */
-#define BigEndianCPU (BigEndianMem ^ ReverseEndian) /* Already bits */
-
-
-
-/* Exceptions: */
-
-/* NOTE: These numbers depend on the processor architecture being
- simulated: */
-enum ExceptionCause {
- Interrupt = 0,
- TLBModification = 1,
- TLBLoad = 2,
- TLBStore = 3,
- AddressLoad = 4,
- AddressStore = 5,
- InstructionFetch = 6,
- DataReference = 7,
- SystemCall = 8,
- BreakPoint = 9,
- ReservedInstruction = 10,
- CoProcessorUnusable = 11,
- IntegerOverflow = 12, /* Arithmetic overflow (IDT monitor raises SIGFPE) */
- Trap = 13,
- FPE = 15,
- DebugBreakPoint = 16, /* Impl. dep. in MIPS32/MIPS64. */
- MDMX = 22,
- Watch = 23,
- MCheck = 24,
- CacheErr = 30,
- NMIReset = 31, /* Reserved in MIPS32/MIPS64. */
-
-
-/* The following exception code is actually private to the simulator
- world. It is *NOT* a processor feature, and is used to signal
- run-time errors in the simulator. */
- SimulatorFault = 0xFFFFFFFF
-};
-
-#define TLB_REFILL (0)
-#define TLB_INVALID (1)
-
-
-/* The following break instructions are reserved for use by the
- simulator. The first is used to halt the simulation. The second
- is used by gdb for break-points. NOTE: Care must be taken, since
- this value may be used in later revisions of the MIPS ISA. */
-#define HALT_INSTRUCTION_MASK (0x03FFFFC0)
-
-#define HALT_INSTRUCTION (0x03ff000d)
-#define HALT_INSTRUCTION2 (0x0000ffcd)
-
-
-#define BREAKPOINT_INSTRUCTION (0x0005000d)
-#define BREAKPOINT_INSTRUCTION2 (0x0000014d)
-
-
-
-void interrupt_event (SIM_DESC sd, void *data);
-
-void signal_exception (SIM_DESC sd, sim_cpu *cpu, address_word cia, int exception, ...);
-#define SignalException(exc,instruction) signal_exception (SD, CPU, cia, (exc), (instruction))
-#define SignalExceptionInterrupt(level) signal_exception (SD, CPU, cia, Interrupt, level)
-#define SignalExceptionInstructionFetch() signal_exception (SD, CPU, cia, InstructionFetch)
-#define SignalExceptionAddressStore() signal_exception (SD, CPU, cia, AddressStore)
-#define SignalExceptionAddressLoad() signal_exception (SD, CPU, cia, AddressLoad)
-#define SignalExceptionDataReference() signal_exception (SD, CPU, cia, DataReference)
-#define SignalExceptionSimulatorFault(buf) signal_exception (SD, CPU, cia, SimulatorFault, buf)
-#define SignalExceptionFPE() signal_exception (SD, CPU, cia, FPE)
-#define SignalExceptionIntegerOverflow() signal_exception (SD, CPU, cia, IntegerOverflow)
-#define SignalExceptionCoProcessorUnusable(cop) signal_exception (SD, CPU, cia, CoProcessorUnusable)
-#define SignalExceptionNMIReset() signal_exception (SD, CPU, cia, NMIReset)
-#define SignalExceptionTLBRefillStore() signal_exception (SD, CPU, cia, TLBStore, TLB_REFILL)
-#define SignalExceptionTLBRefillLoad() signal_exception (SD, CPU, cia, TLBLoad, TLB_REFILL)
-#define SignalExceptionTLBInvalidStore() signal_exception (SD, CPU, cia, TLBStore, TLB_INVALID)
-#define SignalExceptionTLBInvalidLoad() signal_exception (SD, CPU, cia, TLBLoad, TLB_INVALID)
-#define SignalExceptionTLBModification() signal_exception (SD, CPU, cia, TLBModification)
-#define SignalExceptionMDMX() signal_exception (SD, CPU, cia, MDMX)
-#define SignalExceptionWatch() signal_exception (SD, CPU, cia, Watch)
-#define SignalExceptionMCheck() signal_exception (SD, CPU, cia, MCheck)
-#define SignalExceptionCacheErr() signal_exception (SD, CPU, cia, CacheErr)
-
-/* Co-processor accesses */
-
-/* XXX FIXME: For now, assume that FPU (cp1) is always usable. */
-#define COP_Usable(coproc_num) (coproc_num == 1)
-
-void cop_lw PARAMS ((SIM_DESC sd, sim_cpu *cpu, address_word cia, int coproc_num, int coproc_reg, unsigned int memword));
-void cop_ld PARAMS ((SIM_DESC sd, sim_cpu *cpu, address_word cia, int coproc_num, int coproc_reg, uword64 memword));
-unsigned int cop_sw PARAMS ((SIM_DESC sd, sim_cpu *cpu, address_word cia, int coproc_num, int coproc_reg));
-uword64 cop_sd PARAMS ((SIM_DESC sd, sim_cpu *cpu, address_word cia, int coproc_num, int coproc_reg));
-
-#define COP_LW(coproc_num,coproc_reg,memword) \
-cop_lw (SD, CPU, cia, coproc_num, coproc_reg, memword)
-#define COP_LD(coproc_num,coproc_reg,memword) \
-cop_ld (SD, CPU, cia, coproc_num, coproc_reg, memword)
-#define COP_SW(coproc_num,coproc_reg) \
-cop_sw (SD, CPU, cia, coproc_num, coproc_reg)
-#define COP_SD(coproc_num,coproc_reg) \
-cop_sd (SD, CPU, cia, coproc_num, coproc_reg)
-
-
-void decode_coproc PARAMS ((SIM_DESC sd, sim_cpu *cpu, address_word cia, unsigned int instruction));
-#define DecodeCoproc(instruction) \
-decode_coproc (SD, CPU, cia, (instruction))
-
-int sim_monitor (SIM_DESC sd, sim_cpu *cpu, address_word cia, unsigned int arg);
-
-
-/* FPR access. */
-unsigned64 value_fpr (SIM_STATE, int fpr, FP_formats);
-#define ValueFPR(FPR,FMT) value_fpr (SIM_ARGS, (FPR), (FMT))
-void store_fpr (SIM_STATE, int fpr, FP_formats fmt, unsigned64 value);
-#define StoreFPR(FPR,FMT,VALUE) store_fpr (SIM_ARGS, (FPR), (FMT), (VALUE))
-unsigned64 ps_lower (SIM_STATE, unsigned64 op);
-#define PSLower(op) ps_lower (SIM_ARGS, op)
-unsigned64 ps_upper (SIM_STATE, unsigned64 op);
-#define PSUpper(op) ps_upper (SIM_ARGS, op)
-unsigned64 pack_ps (SIM_STATE, unsigned64 op1, unsigned64 op2, FP_formats from);
-#define PackPS(op1,op2) pack_ps (SIM_ARGS, op1, op2, fmt_single)
-
-
-/* FCR access. */
-unsigned_word value_fcr (SIM_STATE, int fcr);
-#define ValueFCR(FCR) value_fcr (SIM_ARGS, (FCR))
-void store_fcr (SIM_STATE, int fcr, unsigned_word value);
-#define StoreFCR(FCR,VALUE) store_fcr (SIM_ARGS, (FCR), (VALUE))
-void test_fcsr (SIM_STATE);
-#define TestFCSR() test_fcsr (SIM_ARGS)
-
-
-/* FPU operations. */
-void fp_cmp (SIM_STATE, unsigned64 op1, unsigned64 op2, FP_formats fmt, int abs, int cond, int cc);
-#define Compare(op1,op2,fmt,cond,cc) fp_cmp(SIM_ARGS, op1, op2, fmt, 0, cond, cc)
-unsigned64 fp_abs (SIM_STATE, unsigned64 op, FP_formats fmt);
-#define AbsoluteValue(op,fmt) fp_abs(SIM_ARGS, op, fmt)
-unsigned64 fp_neg (SIM_STATE, unsigned64 op, FP_formats fmt);
-#define Negate(op,fmt) fp_neg(SIM_ARGS, op, fmt)
-unsigned64 fp_add (SIM_STATE, unsigned64 op1, unsigned64 op2, FP_formats fmt);
-#define Add(op1,op2,fmt) fp_add(SIM_ARGS, op1, op2, fmt)
-unsigned64 fp_sub (SIM_STATE, unsigned64 op1, unsigned64 op2, FP_formats fmt);
-#define Sub(op1,op2,fmt) fp_sub(SIM_ARGS, op1, op2, fmt)
-unsigned64 fp_mul (SIM_STATE, unsigned64 op1, unsigned64 op2, FP_formats fmt);
-#define Multiply(op1,op2,fmt) fp_mul(SIM_ARGS, op1, op2, fmt)
-unsigned64 fp_div (SIM_STATE, unsigned64 op1, unsigned64 op2, FP_formats fmt);
-#define Divide(op1,op2,fmt) fp_div(SIM_ARGS, op1, op2, fmt)
-unsigned64 fp_recip (SIM_STATE, unsigned64 op, FP_formats fmt);
-#define Recip(op,fmt) fp_recip(SIM_ARGS, op, fmt)
-unsigned64 fp_sqrt (SIM_STATE, unsigned64 op, FP_formats fmt);
-#define SquareRoot(op,fmt) fp_sqrt(SIM_ARGS, op, fmt)
-unsigned64 fp_rsqrt (SIM_STATE, unsigned64 op, FP_formats fmt);
-#define RSquareRoot(op,fmt) fp_rsqrt(SIM_ARGS, op, fmt)
-unsigned64 fp_madd (SIM_STATE, unsigned64 op1, unsigned64 op2,
- unsigned64 op3, FP_formats fmt);
-#define MultiplyAdd(op1,op2,op3,fmt) fp_madd(SIM_ARGS, op1, op2, op3, fmt)
-unsigned64 fp_msub (SIM_STATE, unsigned64 op1, unsigned64 op2,
- unsigned64 op3, FP_formats fmt);
-#define MultiplySub(op1,op2,op3,fmt) fp_msub(SIM_ARGS, op1, op2, op3, fmt)
-unsigned64 fp_nmadd (SIM_STATE, unsigned64 op1, unsigned64 op2,
- unsigned64 op3, FP_formats fmt);
-#define NegMultiplyAdd(op1,op2,op3,fmt) fp_nmadd(SIM_ARGS, op1, op2, op3, fmt)
-unsigned64 fp_nmsub (SIM_STATE, unsigned64 op1, unsigned64 op2,
- unsigned64 op3, FP_formats fmt);
-#define NegMultiplySub(op1,op2,op3,fmt) fp_nmsub(SIM_ARGS, op1, op2, op3, fmt)
-unsigned64 convert (SIM_STATE, int rm, unsigned64 op, FP_formats from, FP_formats to);
-#define Convert(rm,op,from,to) convert (SIM_ARGS, rm, op, from, to)
-unsigned64 convert_ps (SIM_STATE, int rm, unsigned64 op, FP_formats from,
- FP_formats to);
-#define ConvertPS(rm,op,from,to) convert_ps (SIM_ARGS, rm, op, from, to)
-
-
-/* MIPS-3D ASE operations. */
-#define CompareAbs(op1,op2,fmt,cond,cc) \
-fp_cmp(SIM_ARGS, op1, op2, fmt, 1, cond, cc)
-unsigned64 fp_add_r (SIM_STATE, unsigned64 op1, unsigned64 op2, FP_formats fmt);
-#define AddR(op1,op2,fmt) fp_add_r(SIM_ARGS, op1, op2, fmt)
-unsigned64 fp_mul_r (SIM_STATE, unsigned64 op1, unsigned64 op2, FP_formats fmt);
-#define MultiplyR(op1,op2,fmt) fp_mul_r(SIM_ARGS, op1, op2, fmt)
-unsigned64 fp_recip1 (SIM_STATE, unsigned64 op, FP_formats fmt);
-#define Recip1(op,fmt) fp_recip1(SIM_ARGS, op, fmt)
-unsigned64 fp_recip2 (SIM_STATE, unsigned64 op1, unsigned64 op2, FP_formats fmt);
-#define Recip2(op1,op2,fmt) fp_recip2(SIM_ARGS, op1, op2, fmt)
-unsigned64 fp_rsqrt1 (SIM_STATE, unsigned64 op, FP_formats fmt);
-#define RSquareRoot1(op,fmt) fp_rsqrt1(SIM_ARGS, op, fmt)
-unsigned64 fp_rsqrt2 (SIM_STATE, unsigned64 op1, unsigned64 op2, FP_formats fmt);
-#define RSquareRoot2(op1,op2,fmt) fp_rsqrt2(SIM_ARGS, op1, op2, fmt)
-
-
-/* MDMX access. */
-
-typedef unsigned int MX_fmtsel; /* MDMX format select field (5 bits). */
-#define ob_fmtsel(sel) (((sel)<<1)|0x0)
-#define qh_fmtsel(sel) (((sel)<<2)|0x1)
-
-#define fmt_mdmx fmt_uninterpreted
-
-#define MX_VECT_AND (0)
-#define MX_VECT_NOR (1)
-#define MX_VECT_OR (2)
-#define MX_VECT_XOR (3)
-#define MX_VECT_SLL (4)
-#define MX_VECT_SRL (5)
-#define MX_VECT_ADD (6)
-#define MX_VECT_SUB (7)
-#define MX_VECT_MIN (8)
-#define MX_VECT_MAX (9)
-#define MX_VECT_MUL (10)
-#define MX_VECT_MSGN (11)
-#define MX_VECT_SRA (12)
-#define MX_VECT_ABSD (13) /* SB-1 only. */
-#define MX_VECT_AVG (14) /* SB-1 only. */
-
-unsigned64 mdmx_cpr_op (SIM_STATE, int op, unsigned64 op1, int vt, MX_fmtsel fmtsel);
-#define MX_Add(op1,vt,fmtsel) mdmx_cpr_op(SIM_ARGS, MX_VECT_ADD, op1, vt, fmtsel)
-#define MX_And(op1,vt,fmtsel) mdmx_cpr_op(SIM_ARGS, MX_VECT_AND, op1, vt, fmtsel)
-#define MX_Max(op1,vt,fmtsel) mdmx_cpr_op(SIM_ARGS, MX_VECT_MAX, op1, vt, fmtsel)
-#define MX_Min(op1,vt,fmtsel) mdmx_cpr_op(SIM_ARGS, MX_VECT_MIN, op1, vt, fmtsel)
-#define MX_Msgn(op1,vt,fmtsel) mdmx_cpr_op(SIM_ARGS, MX_VECT_MSGN, op1, vt, fmtsel)
-#define MX_Mul(op1,vt,fmtsel) mdmx_cpr_op(SIM_ARGS, MX_VECT_MUL, op1, vt, fmtsel)
-#define MX_Nor(op1,vt,fmtsel) mdmx_cpr_op(SIM_ARGS, MX_VECT_NOR, op1, vt, fmtsel)
-#define MX_Or(op1,vt,fmtsel) mdmx_cpr_op(SIM_ARGS, MX_VECT_OR, op1, vt, fmtsel)
-#define MX_ShiftLeftLogical(op1,vt,fmtsel) mdmx_cpr_op(SIM_ARGS, MX_VECT_SLL, op1, vt, fmtsel)
-#define MX_ShiftRightArith(op1,vt,fmtsel) mdmx_cpr_op(SIM_ARGS, MX_VECT_SRA, op1, vt, fmtsel)
-#define MX_ShiftRightLogical(op1,vt,fmtsel) mdmx_cpr_op(SIM_ARGS, MX_VECT_SRL, op1, vt, fmtsel)
-#define MX_Sub(op1,vt,fmtsel) mdmx_cpr_op(SIM_ARGS, MX_VECT_SUB, op1, vt, fmtsel)
-#define MX_Xor(op1,vt,fmtsel) mdmx_cpr_op(SIM_ARGS, MX_VECT_XOR, op1, vt, fmtsel)
-#define MX_AbsDiff(op1,vt,fmtsel) mdmx_cpr_op(SIM_ARGS, MX_VECT_ABSD, op1, vt, fmtsel)
-#define MX_Avg(op1,vt,fmtsel) mdmx_cpr_op(SIM_ARGS, MX_VECT_AVG, op1, vt, fmtsel)
-
-#define MX_C_EQ 0x1
-#define MX_C_LT 0x4
-
-void mdmx_cc_op (SIM_STATE, int cond, unsigned64 op1, int vt, MX_fmtsel fmtsel);
-#define MX_Comp(op1,cond,vt,fmtsel) mdmx_cc_op(SIM_ARGS, cond, op1, vt, fmtsel)
-
-unsigned64 mdmx_pick_op (SIM_STATE, int tf, unsigned64 op1, int vt, MX_fmtsel fmtsel);
-#define MX_Pick(tf,op1,vt,fmtsel) mdmx_pick_op(SIM_ARGS, tf, op1, vt, fmtsel)
-
-#define MX_VECT_ADDA (0)
-#define MX_VECT_ADDL (1)
-#define MX_VECT_MULA (2)
-#define MX_VECT_MULL (3)
-#define MX_VECT_MULS (4)
-#define MX_VECT_MULSL (5)
-#define MX_VECT_SUBA (6)
-#define MX_VECT_SUBL (7)
-#define MX_VECT_ABSDA (8) /* SB-1 only. */
-
-void mdmx_acc_op (SIM_STATE, int op, unsigned64 op1, int vt, MX_fmtsel fmtsel);
-#define MX_AddA(op1,vt,fmtsel) mdmx_acc_op(SIM_ARGS, MX_VECT_ADDA, op1, vt, fmtsel)
-#define MX_AddL(op1,vt,fmtsel) mdmx_acc_op(SIM_ARGS, MX_VECT_ADDL, op1, vt, fmtsel)
-#define MX_MulA(op1,vt,fmtsel) mdmx_acc_op(SIM_ARGS, MX_VECT_MULA, op1, vt, fmtsel)
-#define MX_MulL(op1,vt,fmtsel) mdmx_acc_op(SIM_ARGS, MX_VECT_MULL, op1, vt, fmtsel)
-#define MX_MulS(op1,vt,fmtsel) mdmx_acc_op(SIM_ARGS, MX_VECT_MULS, op1, vt, fmtsel)
-#define MX_MulSL(op1,vt,fmtsel) mdmx_acc_op(SIM_ARGS, MX_VECT_MULSL, op1, vt, fmtsel)
-#define MX_SubA(op1,vt,fmtsel) mdmx_acc_op(SIM_ARGS, MX_VECT_SUBA, op1, vt, fmtsel)
-#define MX_SubL(op1,vt,fmtsel) mdmx_acc_op(SIM_ARGS, MX_VECT_SUBL, op1, vt, fmtsel)
-#define MX_AbsDiffC(op1,vt,fmtsel) mdmx_acc_op(SIM_ARGS, MX_VECT_ABSDA, op1, vt, fmtsel)
-
-#define MX_FMT_OB (0)
-#define MX_FMT_QH (1)
-
-/* The following codes chosen to indicate the units of shift. */
-#define MX_RAC_L (0)
-#define MX_RAC_M (1)
-#define MX_RAC_H (2)
-
-unsigned64 mdmx_rac_op (SIM_STATE, int, int);
-#define MX_RAC(op,fmt) mdmx_rac_op(SIM_ARGS, op, fmt)
-
-void mdmx_wacl (SIM_STATE, int, unsigned64, unsigned64);
-#define MX_WACL(fmt,vs,vt) mdmx_wacl(SIM_ARGS, fmt, vs, vt)
-void mdmx_wach (SIM_STATE, int, unsigned64);
-#define MX_WACH(fmt,vs) mdmx_wach(SIM_ARGS, fmt, vs)
-
-#define MX_RND_AS (0)
-#define MX_RND_AU (1)
-#define MX_RND_ES (2)
-#define MX_RND_EU (3)
-#define MX_RND_ZS (4)
-#define MX_RND_ZU (5)
-
-unsigned64 mdmx_round_op (SIM_STATE, int, int, MX_fmtsel);
-#define MX_RNAS(vt,fmt) mdmx_round_op(SIM_ARGS, MX_RND_AS, vt, fmt)
-#define MX_RNAU(vt,fmt) mdmx_round_op(SIM_ARGS, MX_RND_AU, vt, fmt)
-#define MX_RNES(vt,fmt) mdmx_round_op(SIM_ARGS, MX_RND_ES, vt, fmt)
-#define MX_RNEU(vt,fmt) mdmx_round_op(SIM_ARGS, MX_RND_EU, vt, fmt)
-#define MX_RZS(vt,fmt) mdmx_round_op(SIM_ARGS, MX_RND_ZS, vt, fmt)
-#define MX_RZU(vt,fmt) mdmx_round_op(SIM_ARGS, MX_RND_ZU, vt, fmt)
-
-unsigned64 mdmx_shuffle (SIM_STATE, int, unsigned64, unsigned64);
-#define MX_SHFL(shop,op1,op2) mdmx_shuffle(SIM_ARGS, shop, op1, op2)
-
-
-
-/* Memory accesses */
-
-/* The following are generic to all versions of the MIPS architecture
- to date: */
-
-/* Memory Access Types (for CCA): */
-#define Uncached (0)
-#define CachedNoncoherent (1)
-#define CachedCoherent (2)
-#define Cached (3)
-
-#define isINSTRUCTION (1 == 0) /* FALSE */
-#define isDATA (1 == 1) /* TRUE */
-#define isLOAD (1 == 0) /* FALSE */
-#define isSTORE (1 == 1) /* TRUE */
-#define isREAL (1 == 0) /* FALSE */
-#define isRAW (1 == 1) /* TRUE */
-/* The parameter HOST (isTARGET / isHOST) is ignored */
-#define isTARGET (1 == 0) /* FALSE */
-/* #define isHOST (1 == 1) TRUE */
-
-/* The "AccessLength" specifications for Loads and Stores. NOTE: This
- is the number of bytes minus 1. */
-#define AccessLength_BYTE (0)
-#define AccessLength_HALFWORD (1)
-#define AccessLength_TRIPLEBYTE (2)
-#define AccessLength_WORD (3)
-#define AccessLength_QUINTIBYTE (4)
-#define AccessLength_SEXTIBYTE (5)
-#define AccessLength_SEPTIBYTE (6)
-#define AccessLength_DOUBLEWORD (7)
-#define AccessLength_QUADWORD (15)
-
-#define LOADDRMASK (WITH_TARGET_WORD_BITSIZE == 64 \
- ? AccessLength_DOUBLEWORD /*7*/ \
- : AccessLength_WORD /*3*/)
-#define PSIZE (WITH_TARGET_ADDRESS_BITSIZE)
-
-
-INLINE_SIM_MAIN (int) address_translation PARAMS ((SIM_DESC sd, sim_cpu *, address_word cia, address_word vAddr, int IorD, int LorS, address_word *pAddr, int *CCA, int raw));
-#define AddressTranslation(vAddr,IorD,LorS,pAddr,CCA,host,raw) \
-address_translation (SD, CPU, cia, vAddr, IorD, LorS, pAddr, CCA, raw)
-
-INLINE_SIM_MAIN (void) load_memory PARAMS ((SIM_DESC sd, sim_cpu *cpu, address_word cia, uword64* memvalp, uword64* memval1p, int CCA, unsigned int AccessLength, address_word pAddr, address_word vAddr, int IorD));
-#define LoadMemory(memvalp,memval1p,CCA,AccessLength,pAddr,vAddr,IorD,raw) \
-load_memory (SD, CPU, cia, memvalp, memval1p, CCA, AccessLength, pAddr, vAddr, IorD)
-
-INLINE_SIM_MAIN (void) store_memory PARAMS ((SIM_DESC sd, sim_cpu *cpu, address_word cia, int CCA, unsigned int AccessLength, uword64 MemElem, uword64 MemElem1, address_word pAddr, address_word vAddr));
-#define StoreMemory(CCA,AccessLength,MemElem,MemElem1,pAddr,vAddr,raw) \
-store_memory (SD, CPU, cia, CCA, AccessLength, MemElem, MemElem1, pAddr, vAddr)
-
-INLINE_SIM_MAIN (void) cache_op PARAMS ((SIM_DESC sd, sim_cpu *cpu, address_word cia, int op, address_word pAddr, address_word vAddr, unsigned int instruction));
-#define CacheOp(op,pAddr,vAddr,instruction) \
-cache_op (SD, CPU, cia, op, pAddr, vAddr, instruction)
-
-INLINE_SIM_MAIN (void) sync_operation PARAMS ((SIM_DESC sd, sim_cpu *cpu, address_word cia, int stype));
-#define SyncOperation(stype) \
-sync_operation (SD, CPU, cia, (stype))
-
-INLINE_SIM_MAIN (void) prefetch PARAMS ((SIM_DESC sd, sim_cpu *cpu, address_word cia, int CCA, address_word pAddr, address_word vAddr, int DATA, int hint));
-#define Prefetch(CCA,pAddr,vAddr,DATA,hint) \
-prefetch (SD, CPU, cia, CCA, pAddr, vAddr, DATA, hint)
-
-void unpredictable_action (sim_cpu *cpu, address_word cia);
-#define NotWordValue(val) not_word_value (SD_, (val))
-#define Unpredictable() unpredictable (SD_)
-#define UnpredictableResult() /* For now, do nothing. */
-
-INLINE_SIM_MAIN (unsigned32) ifetch32 PARAMS ((SIM_DESC sd, sim_cpu *cpu, address_word cia, address_word vaddr));
-#define IMEM32(CIA) ifetch32 (SD, CPU, (CIA), (CIA))
-INLINE_SIM_MAIN (unsigned16) ifetch16 PARAMS ((SIM_DESC sd, sim_cpu *cpu, address_word cia, address_word vaddr));
-#define IMEM16(CIA) ifetch16 (SD, CPU, (CIA), ((CIA) & ~1))
-#define IMEM16_IMMED(CIA,NR) ifetch16 (SD, CPU, (CIA), ((CIA) & ~1) + 2 * (NR))
-
-void dotrace PARAMS ((SIM_DESC sd, sim_cpu *cpu, FILE *tracefh, int type, SIM_ADDR address, int width, char *comment, ...));
-extern FILE *tracefh;
-
-extern int DSPLO_REGNUM[4];
-extern int DSPHI_REGNUM[4];
-
-INLINE_SIM_MAIN (void) pending_tick PARAMS ((SIM_DESC sd, sim_cpu *cpu, address_word cia));
-extern SIM_CORE_SIGNAL_FN mips_core_signal;
-
-char* pr_addr PARAMS ((SIM_ADDR addr));
-char* pr_uword64 PARAMS ((uword64 addr));
-
-
-#define GPR_CLEAR(N) do { GPR_SET((N),0); } while (0)
-
-void mips_cpu_exception_trigger(SIM_DESC sd, sim_cpu* cpu, address_word pc);
-void mips_cpu_exception_suspend(SIM_DESC sd, sim_cpu* cpu, int exception);
-void mips_cpu_exception_resume(SIM_DESC sd, sim_cpu* cpu, int exception);
-
-#ifdef MIPS_MACH_MULTI
-extern int mips_mach_multi(SIM_DESC sd);
-#define MIPS_MACH(SD) mips_mach_multi(SD)
-#else
-#define MIPS_MACH(SD) MIPS_MACH_DEFAULT
-#endif
-
-/* Macros for determining whether a MIPS IV or MIPS V part is subject
- to the hi/lo restrictions described in mips.igen. */
-
-#define MIPS_MACH_HAS_MT_HILO_HAZARD(SD) \
- (MIPS_MACH (SD) != bfd_mach_mips5500)
-
-#define MIPS_MACH_HAS_MULT_HILO_HAZARD(SD) \
- (MIPS_MACH (SD) != bfd_mach_mips5500)
-
-#define MIPS_MACH_HAS_DIV_HILO_HAZARD(SD) \
- (MIPS_MACH (SD) != bfd_mach_mips5500)
-
-#if H_REVEALS_MODULE_P (SIM_MAIN_INLINE)
-#include "sim-main.c"
-#endif
-
-#endif
diff --git a/sim/mips/tconfig.in b/sim/mips/tconfig.in
deleted file mode 100644
index 2f14ce1..0000000
--- a/sim/mips/tconfig.in
+++ /dev/null
@@ -1,36 +0,0 @@
-/* mips target configuration file. */
-
-/* See sim-hload.c. We properly handle LMA. */
-#ifdef TARGET_TX3904
-#define SIM_HANDLES_LMA 1
-
-/* FIXME: This is unnecessarily necessary: */
-#include "ansidecl.h"
-#include "gdb/callback.h"
-#include "gdb/remote-sim.h"
-#include "sim-module.h"
-
-MODULE_INSTALL_FN dv_sockser_install;
-#define MODULE_LIST dv_sockser_install,
-#else
-#define SIM_HANDLES_LMA 0
-#endif
-
-/* Define this if the simulator supports profiling.
- See the mips simulator for an example.
- This enables the `-p foo' and `-s bar' options.
- The target is required to provide sim_set_profile{,_size}. */
-#define SIM_HAVE_PROFILE
-
-/* Define this if the simulator uses an instruction cache.
- See the h8/300 simulator for an example.
- This enables the `-c size' option to set the size of the cache.
- The target is required to provide sim_set_simcache_size. */
-/* #define SIM_HAVE_SIMCACHE */
-
-/* Define this if the target cpu is bi-endian
- and the simulator supports it. */
-#define SIM_HAVE_BIENDIAN
-
-/* MIPS uses an unusual format for floating point quiet NaNs. */
-#define SIM_QUIET_NAN_NEGATED
diff --git a/sim/mips/tx.igen b/sim/mips/tx.igen
deleted file mode 100644
index cd8d76a..0000000
--- a/sim/mips/tx.igen
+++ /dev/null
@@ -1,46 +0,0 @@
-// -*- C -*-
-//
-// toshiba specific instructions.
-//
-
-011100,5.RS,5.RT,5.RD,00000000000:MMINORM:::MADD
-"madd r<RS>, r<RT>":RD == 0
-"madd r<RD>, r<RS>, r<RT>"
-*r3900
-{
- signed64 prod = (U8_4 (VL4_8 (HI), VL4_8 (LO))
- + ((signed64) EXTEND32 (GPR[RT])
- * (signed64) EXTEND32 (GPR[RS])));
- check_mult_hilo (SD_, HIHISTORY, LOHISTORY);
- TRACE_ALU_INPUT2 (GPR[RS], GPR[RT]);
- LO = EXTEND32 (prod);
- HI = EXTEND32 (VH4_8 (prod));
- TRACE_ALU_RESULT2 (HI, LO);
- if(RD != 0 )
- GPR[RD] = LO;
-}
-
-
-011100,5.RS,5.RT,5.RD,00000000001:MMINORM:::MADDU
-"maddu r<RS>, r<RT>":RD == 0
-"maddu r<RD>, r<RS>, r<RT>"
-*r3900
-{
- unsigned64 prod = (U8_4 (VL4_8 (HI), VL4_8 (LO))
- + ((unsigned64) VL4_8 (GPR[RS])
- * (unsigned64) VL4_8 (GPR[RT])));
- check_mult_hilo (SD_, HIHISTORY, LOHISTORY);
- TRACE_ALU_INPUT2 (GPR[RS], GPR[RT]);
- LO = EXTEND32 (prod);
- HI = EXTEND32 (VH4_8 (prod));
- TRACE_ALU_RESULT2 (HI, LO);
- if(RD != 0)
- GPR[RD] = LO;
-}
-
-000000,CODE.20,001110::CO1:::SDBBP
-"sdbbp"
-*r3900:
-{
- SignalException (DebugBreakPoint, instruction);
-}
diff --git a/sim/mips/vr.igen b/sim/mips/vr.igen
deleted file mode 100644
index 9266ae6..0000000
--- a/sim/mips/vr.igen
+++ /dev/null
@@ -1,257 +0,0 @@
-// -*- C -*-
-//
-// NEC specific instructions
-//
-
-:%s::::MFHI:int hi
-{
- return hi ? "hi" : "";
-}
-
-:%s::::SAT:int s
-{
- return s ? "s" : "";
-}
-
-:%s::::UNS:int u
-{
- return u ? "u" : "";
-}
-
-// Simulate the various kinds of multiply and multiply-accumulate instructions.
-// Perform an operation of the form:
-//
-// LHS (+/-) GPR[RS] * GPR[RT]
-//
-// and store it in the 64-bit accumulator. Optionally copy either LO or
-// HI into a general purpose register.
-//
-// - RD is the destination register of the LO or HI move
-// - RS are RT are the multiplication source registers
-// - ACCUMULATE_P is true if LHS should be the value of the 64-bit accumulator,
-// false if it should be 0.
-// - STORE_HI_P is true if HI should be stored in RD, false if LO should be.
-// - UNSIGNED_P is true if the operation should be unsigned.
-// - SATURATE_P is true if the result should be saturated to a 32-bit value.
-// - SUBTRACT_P is true if the right hand side should be subtraced from LHS,
-// false if it should be added.
-// - SHORT_P is true if RS and RT must be 16-bit numbers.
-// - DOUBLE_P is true if the 64-bit accumulator is in LO, false it is a
-// concatenation of the low 32 bits of HI and LO.
-:function:::void:do_vr_mul_op:int rd, int rs, int rt, int accumulate_p, int store_hi_p, int unsigned_p, int saturate_p, int subtract_p, int short_p, int double_p
-{
- unsigned64 lhs, x, y, xcut, ycut, product, result;
-
- check_mult_hilo (SD_, HIHISTORY, LOHISTORY);
-
- lhs = (!accumulate_p ? 0 : double_p ? LO : U8_4 (HI, LO));
- x = GPR[rs];
- y = GPR[rt];
-
- /* Work out the canonical form of X and Y from their significant bits. */
- if (!short_p)
- {
- /* Normal sign-extension rule for 32-bit operands. */
- xcut = EXTEND32 (x);
- ycut = EXTEND32 (y);
- }
- else if (unsigned_p)
- {
- /* Operands must be zero-extended 16-bit numbers. */
- xcut = x & 0xffff;
- ycut = y & 0xffff;
- }
- else
- {
- /* Likewise but sign-extended. */
- xcut = EXTEND16 (x);
- ycut = EXTEND16 (y);
- }
- if (x != xcut || y != ycut)
- sim_engine_abort (SD, CPU, CIA,
- "invalid multiplication operand at 0x%08lx\n",
- (long) CIA);
-
- TRACE_ALU_INPUT2 (x, y);
- product = (unsigned_p
- ? V8_4 (x, 1) * V8_4 (y, 1)
- : EXTEND32 (x) * EXTEND32 (y));
- result = (subtract_p ? lhs - product : lhs + product);
- if (saturate_p)
- {
- /* Saturate the result to 32 bits. An unsigned, unsaturated
- result is zero-extended to 64 bits, but unsigned overflow
- causes all 64 bits to be set. */
- if (!unsigned_p && (unsigned64) EXTEND32 (result) != result)
- result = ((signed64) result < 0 ? -0x7fffffff - 1 : 0x7fffffff);
- else if (unsigned_p && (result >> 32) != 0)
- result = (unsigned64) 0 - 1;
- }
- TRACE_ALU_RESULT (result);
-
- if (double_p)
- LO = result;
- else
- {
- LO = EXTEND32 (result);
- HI = EXTEND32 (VH4_8 (result));
- }
- if (rd != 0)
- GPR[rd] = store_hi_p ? HI : LO;
-}
-
-// VR4100 instructions.
-
-000000,5.RS,5.RT,00000,00000,101000::32::MADD16
-"madd16 r<RS>, r<RT>"
-*vr4100:
-{
- do_vr_mul_op (SD_, 0, RS, RT,
- 1 /* accumulate */,
- 0 /* store in LO */,
- 0 /* signed arithmetic */,
- 0 /* don't saturate */,
- 0 /* don't subtract */,
- 1 /* short */,
- 0 /* single */);
-}
-
-000000,5.RS,5.RT,00000,00000,101001::64::DMADD16
-"dmadd16 r<RS>, r<RT>"
-*vr4100:
-{
- do_vr_mul_op (SD_, 0, RS, RT,
- 1 /* accumulate */,
- 0 /* store in LO */,
- 0 /* signed arithmetic */,
- 0 /* don't saturate */,
- 0 /* don't subtract */,
- 1 /* short */,
- 1 /* double */);
-}
-
-
-
-// VR4120 and VR4130 instructions.
-
-000000,5.RS,5.RT,5.RD,1.SAT,1.MFHI,00,1.UNS,101001::64::DMACC
-"dmacc%s<MFHI>%s<UNS>%s<SAT> r<RD>, r<RS>, r<RT>"
-*vr4120:
-{
- do_vr_mul_op (SD_, RD, RS, RT,
- 1 /* accumulate */,
- MFHI, UNS, SAT,
- 0 /* don't subtract */,
- SAT /* short */,
- 1 /* double */);
-}
-
-000000,5.RS,5.RT,5.RD,1.SAT,1.MFHI,00,1.UNS,101000::32::MACC_4120
-"macc%s<MFHI>%s<UNS>%s<SAT> r<RD>, r<RS>, r<RT>"
-*vr4120:
-{
- do_vr_mul_op (SD_, RD, RS, RT,
- 1 /* accumulate */,
- MFHI, UNS, SAT,
- 0 /* don't subtract */,
- SAT /* short */,
- 0 /* single */);
-}
-
-
-// VR5400 and VR5500 instructions.
-
-000000,5.RS,5.RT,5.RD,0,1.MFHI,001,01100,1.UNS::32::MUL
-"mul%s<MFHI>%s<UNS> r<RD>, r<RS>, r<RT>"
-*vr5400:
-*vr5500:
-{
- do_vr_mul_op (SD_, RD, RS, RT,
- 0 /* don't accumulate */,
- MFHI, UNS,
- 0 /* don't saturate */,
- 0 /* don't subtract */,
- 0 /* not short */,
- 0 /* single */);
-}
-
-000000,5.RS,5.RT,5.RD,0,1.MFHI,011,01100,1.UNS::32::MULS
-"muls%s<MFHI>%s<UNS> r<RD>, r<RS>, r<RT>"
-*vr5400:
-*vr5500:
-{
- do_vr_mul_op (SD_, RD, RS, RT,
- 0 /* don't accumulate */,
- MFHI, UNS,
- 0 /* don't saturate */,
- 1 /* subtract */,
- 0 /* not short */,
- 0 /* single */);
-}
-
-000000,5.RS,5.RT,5.RD,0,1.MFHI,101,01100,1.UNS::32::MACC_5xxx
-"macc%s<MFHI>%s<UNS> r<RD>, r<RS>, r<RT>"
-*vr5400:
-*vr5500:
-{
- do_vr_mul_op (SD_, RD, RS, RT,
- 1 /* accumulate */,
- MFHI, UNS,
- 0 /* don't saturate */,
- 0 /* don't subtract */,
- 0 /* not short */,
- 0 /* single */);
-}
-
-000000,5.RS,5.RT,5.RD,0,1.MFHI,111,01100,1.UNS::32::MSAC
-"msac%s<MFHI>%s<UNS> r<RD>, r<RS>, r<RT>"
-*vr5400:
-*vr5500:
-{
- do_vr_mul_op (SD_, RD, RS, RT,
- 1 /* accumulate */,
- MFHI, UNS,
- 0 /* don't saturate */,
- 1 /* subtract */,
- 0 /* not short */,
- 0 /* single */);
-}
-
-
-010011,5.BASE,5.INDEX,5.0,5.FD,000101:COP1X:64::LUXC1
-"luxc1 f<FD>, r<INDEX>(r<BASE>)"
-*vr5500:
-{
- check_fpu (SD_);
- COP_LD (1, FD, do_load (SD_, AccessLength_DOUBLEWORD,
- (GPR[BASE] + GPR[INDEX]) & ~MASK64 (2, 0), 0));
-}
-
-010011,5.BASE,5.INDEX,5.FS,00000,001101:COP1X:64::SUXC1
-"suxc1 f<FS>, r<INDEX>(r<BASE>)"
-*vr5500:
-{
- check_fpu (SD_);
- do_store (SD_, AccessLength_DOUBLEWORD,
- (GPR[BASE] + GPR[INDEX]) & ~MASK64 (2, 0), 0,
- COP_SD (1, FS));
-}
-
-010000,1,19.*,100000:COP0:32::WAIT
-"wait"
-*vr5500:
-
-011100,00000,5.RT,5.DR,00000,111101:SPECIAL:64::MFDR
-"mfdr r<RT>, r<DR>"
-*vr5400:
-*vr5500:
-
-011100,00100,5.RT,5.DR,00000,111101:SPECIAL:64::MTDR
-"mtdr r<RT>, r<DR>"
-*vr5400:
-*vr5500:
-
-011100,00000,00000,00000,00000,111110:SPECIAL:64::DRET
-"dret"
-*vr5400:
-*vr5500: