diff options
author | nobody <> | 2006-07-25 08:39:58 +0000 |
---|---|---|
committer | nobody <> | 2006-07-25 08:39:58 +0000 |
commit | 6a79f78d93deacb72d33c5b4609ddd2ed3f8b18e (patch) | |
tree | a5dbf4af3a220e2a22012a1f7d6e867b49cb631b /sim/m32r | |
parent | 1d89b61077f10ff90ba128dde09b559e9de93cb4 (diff) | |
download | gdb-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/m32r')
44 files changed, 0 insertions, 54148 deletions
diff --git a/sim/m32r/ChangeLog b/sim/m32r/ChangeLog deleted file mode 100644 index 8a47048..0000000 --- a/sim/m32r/ChangeLog +++ /dev/null @@ -1,1514 +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. - -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-09 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> - - Committed by Kei Sakamoto. - * traps-linux.c (m32r_trap): Add entries of the following dummy system - calls: __NR_mmap2, __NR_lchown32, __NR_getuid32, __NR_getgid32, - __NR_geteuid32, __NR_getegid32, __NR_getgroups32, __NR_fchown32, - __NR_setfsuid32, __NR_setfsgid32, __NR_getresuid32, - __NR_getresgid32 and __NR_chown32. - * syscall.h: Add new definitions of system call number. - -2004-12-08 Hans-Peter Nilsson <hp@axis.com> - - * configure: Regenerate for ../common/aclocal.m4 update. - -2004-10-07 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> - - Committed by Andrew Cagney. - * traps-linux.c: Don't include linux/module.h. - (m32r_trap): Remove dummy systemcall's entry of __NR_ustat and - __NR_get_kernel_syms. - -2004-05-18 Daniel Jacobowitz <dan@debian.org> - - * Makefile.in (stamp-xmloop, stamp-2mloop): Use -outfile-suffix. - -2004-02-04 Andrew Cagney <cagney@redhat.com> - - Committed by Andrew Cagney. - * mloopx.in: Update copyright. - (xextract-pbb): Fixed trap for system calls operation in parallel. - * mloop2.in (xextract-pbb): Ditto. - -2003-12-19 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> - - * configure.in: Changed for dummy simulator of m32r-linux. - * configure: Regenerate. - * Makefile.in: Added traps-linux.o for dummy simulator of m32r-linux. - * traps-linux.c: Added for dummy simulator of m32r-linux. - * syscall.h: Ditto. - * sim-if.c (sim_create_inferior): Changed to setup SP for dummy - simulator for m32r-linux. - * sim-main.h (M32R_DEFAULT_MEM_SIZE): Changed for dummy simulator of - m32r-linux. - -2003-12-11 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> - - * Makefile.in: Add support for new machine m32r2. - * cpu2.c: New file for m32r2 support. - * cpu2.h: Likewise. - * decode2.c: Likewise. - * decode2.h: Likewise. - * m32r2.c: Likewise. - * mloop2.in: Likewise. - * model2.c: Likewise. - * sem2-switch.c: Likewise. - * arch.c: Regenerate. - * arch.h: Regenerate. - * cpu.c: Regenerate. - * arch.c: Regenerate. - * cpuall.c: Regenerate. - * cpux.c: Regenerate. - * cpux.h: Regenerate. - * decode.c: Regenerate. - * decode.h: Regenerate. - * decodex.c: Regenerate. - * decodex.h: Regenerate. - * model.c: Regenerate. - * modelx.c: Regenerate. - * sem-switch.c: Regenerate. - * sem.c: Regenerate. - * semx-switch.c: Regenerate. - * m32r-sim.h: Add EVB register support. - * sim-if.c: Likewise. - * sim-main.h: Likewise. - * traps.c: Likewise. - -2003-09-08 Dave Brolley <brolley@redhat.com> - - On behalf of Doug Evans <dje@sebabeach.org> - * Makefile.in (stamp-arch,stamp-cpu,stamp-xcpu): Pass archfile to cgen. - -2003-02-27 Andrew Cagney <cagney@redhat.com> - - * sim-if.c (sim_open, sim_create_inferior): Rename _bfd to bfd. - -2002-12-19 Doug Evans <dje@sebabeach.org> - - * arch.c,arch.h,cpuall.h: Regenerate. - * cpu.c,cpu.h,decode.c,decode.h,model.c,sem-switch.c,sem.c: Regenerate. - * cpux.c,cpux.h,decodex.c,decodex.h,modelx.c,semx-switch.c: Regenerate. - -2002-06-16 Andrew Cagney <ac131313@redhat.com> - - * configure: Regenerated to track ../common/aclocal.m4 changes. - -2001-11-14 Dave Brolley <brolley@redhat.com> - - * arch.c: Regenerate. - * arch.h: Regenerate. - * cpu.c: Regenerate. - * cpu.h: Regenerate. - * cpuall.h: Regenerate. - * cpux.c: Regenerate. - * cpux.h: Regenerate. - * decode.c: Regenerate. - * decode.h: Regenerate. - * decodex.c: Regenerate. - * decodex.h: Regenerate. - * model.c: Regenerate. - * modelx.c: Regenerate. - * sem-switch.c: Regenerate. - * sem.c: Regenerate. - * semx-switch.c: Regenerate. - -2001-07-05 Ben Elliston <bje@redhat.com> - - * Makefile.in (stamp-arch): Use $(CGEN_CPU_DIR). - (stamp-cpu): Likewise. - (stamp-xcpu): Likewise. - -2001-03-05 Dave Brolley <brolley@redhat.com> - - * arch.c: Regenerate. - * arch.h: Regenerate. - * cpu.c: Regenerate. - * cpu.h: Regenerate. - * cpuall.h: Regenerate. - * cpux.c: Regenerate. - * cpux.h: Regenerate. - * decode.c: Regenerate. - * decode.h: Regenerate. - * decodex.c: Regenerate. - * decodex.h: Regenerate. - * model.c: Regenerate. - * modelx.c: Regenerate. - * sem-switch.c: Regenerate. - * sem.c: Regenerate. - * semx-switch.c: Regenerate. - -2001-01-12 Frank Ch. Eigler <fche@redhat.com> - - * configure: Regenerated with sim_scache fix. - -2000-11-18 Greg McGary <greg@mcgary.org> - - * Makefile.in: remove `@true' commands for rules that have - $(CGEN_MAINT) as a prerequisite. - -2000-10-06 Dave Brolley <brolley@redhat.com> - - * sem.c: Regenerated. - * sem-switch.c: Regenerated. - * semx-switch.c: Regenerated. - -2000-08-28 Dave Brolley <brolley@redhat.com> - - * Makefile.in: Use of @true confuses VPATH. Remove it. - * cpu.h: Regenerated. - * cpux.h: Regenerated. - * decode.c: Regenerated. - * decodex.c: Regenerated. - * model.c: Regenerated. - * modelx.c: Regenerated. - * sem-switch.c: Regenerated. - * sem.c: Regenerated. - * semx-switch.c: Regenerated. - -2000-08-21 Frank Ch. Eigler <fche@redhat.com> - - * Makefile.in (m32r-clean): Add stamp-arch, stamp-cpu. - (stamp-arch, stamp-cpu): New targets. - -Tue May 23 21:39:23 2000 Andrew Cagney <cagney@b1.cygnus.com> - - * configure: Regenerated to track ../common/aclocal.m4 changes. - -2000-03-30 Dave Brolley <brolley@redhat.com> - - * configure: Regenerated. - -1999-10-04 Doug Evans <devans@casey.cygnus.com> - - * arch.c,arch.h,cpuall.h: Rebuild. - * cpux.h,decodex.c,decodex.h,modelx.c,semx-switch.c: Rebuild. - -1999-09-29 Doug Evans <devans@casey.cygnus.com> - - * mloop.in: Update call to sim_engine_invalid_insn. - * sem.c,sem-switch.c: Rebuild. - * traps.c (sim_engine_invalid_insn): New arg `vpc'. Change type of - result to SEM_PC. Return vpc. - * mloopx.in: Ditto. - * semx-switch.c: Rebuild. - -Wed Sep 29 14:47:20 1999 Dave Brolley <brolley@cygnus.com> - - * traps.c (sim_engine_invalid_insn): Return PC. - -Thu Sep 2 18:15:53 1999 Andrew Cagney <cagney@b1.cygnus.com> - - * configure: Regenerated to track ../common/aclocal.m4 changes. - -1999-09-01 Doug Evans <devans@casey.cygnus.com> - - * decodex.c: Rebuild. - -1999-08-28 Doug Evans <devans@casey.cygnus.com> - - * sem.c: Rebuild - - * cpux.h: Rebuild. - -1999-08-09 Doug Evans <devans@casey.cygnus.com> - - * cpu.h,decode.c,decode.h,model.c,sem-switch.c,sem.c: Rebuild. - * cpux.h,decodex.c,decodex.h,modelx.c,semx-switch.c: Rebuild. - -1999-08-04 Doug Evans <devans@casey.cygnus.com> - - * m32r-sim.h (SEM_SKIP_INSN): Delete. - * cpu.h,cpuall.h,decode.c,model.c,sem-switch.c,sem.c: Rebuild. - * cpux.h,decodex.c,modelx.c,semx-switch.c: Rebuild. - * mloopx.in (emit_parallel): Call SEM_SKIP_COMPILE. - (emit_full_parallel): Ditto. - -1999-05-08 Felix Lee <flee@cygnus.com> - - * configure: Regenerated to track ../common/aclocal.m4 changes. - -Fri Apr 16 16:47:43 1999 Doug Evans <devans@charmed.cygnus.com> - - * devices.c (device_io_read_buffer): New arg `sd'. - (device_io_write_buffer): New arg `sd'. - (device_error): Give proper arg spec. - -1999-04-10 Doug Evans <devans@casey.cygnus.com> - - * sem-switch.c,sem.c: Rebuild. - * cpux.h,semx-switch.c: Rebuild. - -1999-03-27 Doug Evans <devans@casey.cygnus.com> - - * decode.c: Rebuild. - * decodex.c: Rebuild. - -1999-03-26 Doug Evans <devans@casey.cygnus.com> - - * m32r-sim.h (M32R_DEVICE_LEN): Fix off by one error. - -1999-03-22 Doug Evans <devans@casey.cygnus.com> - - * arch.c,arch.h,model.c: Rebuild. - * modelx.c: Rebuild. - * m32r-sim.h (a_m32r_h_gr_get,a_m32r_h_gr_set): Declare. - (a_m32r_h_cr_get,a_m32r_h_cr_set): Declare. - * m32r.c (m32rbf_fetch_register): Replace calls to a_m32r_h_pc_get, - a_m32r_h_accum_get with appropriate calls to m32rbf_*. - (m32rbf_store_register): Ditto. - (a_m32r_h_gr_get,a_m32r_h_gr_set): New functions. - (a_m32r_h_cr_get,a_m32r_h_cr_set): Ditto. - * sim-if.c (sim_open): Update call to m32r_cgen_cpu_open. - * traps.c (m32r_core_signal): Replace calls to a_m32r_h_*, - with appropriate calls to m32rbf_*. - -1999-03-11 Doug Evans <devans@casey.cygnus.com> - - * arch.c,arch.h,cpu.c,cpu.h,sem.c,sem-switch.c: Rebuild. - * cpux.c,cpux.h,semx-switch.c: Rebuild. - * m32r-sim.h (GET_H_*,SET_H_*, except GET_H_SM): Delete. - * sim-if.c (sim_open): Update call to m32r_cgen_cpu_open. - -1999-02-25 Doug Evans <devans@casey.cygnus.com> - - * cpu.c,cpu.h: Rebuild. - -1999-02-09 Doug Evans <devans@casey.cygnus.com> - - * Makefile.in (SIM_EXTRA_DEPS): Add m32r-desc.h, delete cpu-opc.h. - (stamp-xmloop): s/-parallel/-parallel-write/. - * configure.in (sim_link_files,sim_link_links): Delete. - * configure: Rebuild. - * decode.c,decode.h,model.c,sem-switch.c,sem.c: Rebuild. - * decodex.c,decodex.h,modelx.c,semx-switch.c: Rebuild. - * mloop.in (execute): CGEN_INSN_ATTR renamed to CGEN_INSN_ATTR_VALUE. - * sim-if.c (sim_open): m32r_cgen_cpu_open renamed from - m32r_cgen_opcode_open. Set disassembler. - (sim_close): m32r_cgen_cpu_open renamed from m32r_cgen_opcode_open. - * sim-main.h: Don't include cpu-opc.h,cpu-sim.h. Include - m32r-desc.h,m32r-opc.h,m32r-sim.h. - -Thu Feb 4 16:04:26 1999 Doug Evans <devans@canuck.cygnus.com> - - * cpux.h,decodex.c,modelx.c,semx-switch.c: Regenerate. - -1999-01-27 Doug Evans <devans@casey.cygnus.com> - - * cpu.h,decode.c,model.c,sem-switch.c,sem.c: Rebuild. - * cpux.h,decodex.c,modelx.c,semx-switch.c: Rebuild. - -1999-01-15 Doug Evans <devans@casey.cygnus.com> - - * decode.h,model.c: Regenerate. - * decodex.h,modelx.c: Regenerate. - -1999-01-14 Doug Evans <devans@casey.cygnus.com> - - * arch.c,arch.h,cpuall.h: Regenerate. - * cpu.c,cpu.h,decode.c,decode.h,model.c,sem-switch.c,sem.c: Regenerate. - * traps.c (sim_engine_invalid_insn): PCADDR->IADDR. - * cpux.c,cpux.h,decodex.c,decodex.h,modelx.c,semx-switch.c: Regenerate. - -1999-01-11 Doug Evans <devans@casey.cygnus.com> - - * Makefile.in (m32r-clean): rm eng.h. - * sim-main.h: Delete inclusion of ansidecl.h. - * cpu.h: Regenerate. - * cpux.h: Regenerate. - -1999-01-06 Doug Evans <devans@casey.cygnus.com> - - * cpu.h: Regenerate. - * cpux.h: Regenerate. - -1999-01-05 Doug Evans <devans@casey.cygnus.com> - - * Makefile.in (MAIN_INCLUDE_DEPS): Delete. - (INCLUDE_DEPS,OPS_INCLUDE_DEPS): Delete. - (sim-if.o): Use SIM_MAIN_DEPS. - (arch.o,traps.o,devices.o): Ditto. - (M32RBF_INCLUDE_DEPS): Use CGEN_MAIN_CPU_DEPS. - (m32r.o,mloop.o,cpu.o,decode.o,sem.o,model.o): Simplify dependencies. - (m32rx.o,mloopx.o,cpux.o,decodex.o,semx.o,modelx.o): Ditto. - * cpu.c,cpu.h,decode.c,model.c,sem-switch.c,sem.c: Regenerate. - * m32r-sim.h (m32rbf_h_cr_[gs]et_handler): Declare. - ([GS]ET_H_CR): Define. - (m32rbf_h_psw_[gs]et_handler): Declare. - ([GS]ET_H_PSW): Define. - (m32rbf_h_accum_[gs]et_handler): Declare. - ([GS]ET_H_ACCUM): Define. - (m32rxf_h_{cr,psw,accum}_[gs]et_handler): Declare. - (m32rxf_h_accums_[gs]et_handler): Declare. - ([GS]ET_H_ACCUMS): Define. - * sim-if.c (sim_open): Model probing code moved to sim-model.c. - * m32r.c (WANT_CPU): Define as m32rbf. - (all register access fns): Rename to ..._handler. - * cpux.c,cpux.h,decodex.c,modelx.c,semx.c: Regenerate. - * m32rx.c (WANT_CPU): Define as m32rxf. - (all register access fns): Rename to ..._handler. - -1998-12-14 Doug Evans <devans@casey.cygnus.com> - - * configure.in: --enable-cgen-maint support moved to common/aclocal.m4. - (SIM_AC_OPTION_ALIGNMENT): Make strict. - * configure: Regenerate. - - * sem-switch.c,sem.c,semx-switch.c: Regenerate. - * sim-main.h (SIM_ENGINE_HALT_HOOK,SIM_ENGINE_RESTART_HOOK): Define. - * traps.c (m32r_core_signal): Handle --environment=operating. - -1998-12-09 Doug Evans <devans@casey.cygnus.com> - - * cpu.h,decode.c,sem-switch.c,sem.c: Regenerate. - * cpux.h,decodex.c,semx-switch.c: Regenerate. - - * sim-if.c: Include string.h or strings.h if present. - -1998-12-04 Doug Evans <devans@casey.cygnus.com> - - * configure.in: Call SIM_AC_OPTION_INLINE. - * configure: Regenerate. - * sim-main.h: Protect against multiple inclusion. - Don't include cgen-scache.h,cgen-cpu.h,cgen-trace.h,cpuall.h. - Done by cgen-sim.h now. - * tconfig.in (SIM_HAVE_MODEL): Delete, moved to cgen-types.h. - * cpuall.h: Regenerate. - * cpu.h,decode.c,sem-switch.c,sem.c: Regenerate. - * mloop.in (extract16): Make static inline again. - Simplify with call to @cpu@_fill_argbuf,@cpu@_fill_argbuf_tp. - (extract32): Ditto. - Simplify with call to @cpu@_fill_argbuf,@cpu@_fill_argbuf_tp. - (execute): Test ARGBUF_PROFILE_P before profiling. - Update calls to TRACE_INSN_INIT,TRACE_INSN_FINI. - * cpux.h,decodex.c,modelx.c,semx-switch.c: Regenerate. - * mloopx.in: Rewrite. - -1998-11-22 Doug Evans <devans@tobor.to.cygnus.com> - - * devices.c (device_io_write_buffer): Fix typo. - * sim-if.c (sim_open): Hack in call to dv_sockser_install. - * tconfig.in (HAVE_DV_SOCKSER): Add but comment out. - -1998-11-18 Doug Evans <devans@casey.cygnus.com> - - * Makefile.in (M32R_OBJS): Delete extract.o. - (extract.o): Delete. - * cpu.c,cpu.h,decode.c,decode.h,sem-switch.c,sem.c: Rebuild. - * mloop.in (extract16): Update type of `insn' arg. - Delete call to d->extract. - (extract32): Ditto. - * cpux.c,cpux.h,decodex.c,decodex.h,semx-switch.c: Rebuild. - * mloopx.in (extractx16): Update type of `insn' arg. - Delete call to d->extract. Delete arg pbb_p. All callers updated. - (extract-simple,full-exec-simple,fast-exec-simple): Delete. - (extractx32): Ditto. - -Wed Nov 4 23:55:37 1998 Doug Evans <devans@seba.cygnus.com> - - * sim-main.h: Delete inclusion of config.h, include sim-basics.h - before cgen-types.h. - * tconfig.in: Guard against multiple inclusion. - * cpu.h: Delete decls moved to genmloop.sh. - * cpux.h: Ditto. - -Mon Oct 19 14:13:05 1998 Doug Evans <devans@seba.cygnus.com> - - * sim-main.h: #include cpu-opc.h. - * arch.c,arch.h,decode.c,extract.c,model.c,sem.c: Regenerate - to get #include cleanup. - * decodex.c,extractx.c,modelx.c: Ditto. - - * Makefile.in (SIM_EXTRA_DEPS): Replace cgen headers with - CGEN_INCLUDE_DEPS. - (M32RBF_INCLUDE_DEPS): Define. - (m32r .o's): Depend on it. - (mloop.c): Update call to genmloop.sh. - * cpu.h,cpuall.h: Regenerate. - * sim-main.h: Delete inclusion of cpu.h,decode.h, moved to cpuall.h. - #include cgen-scache.h,cgen-cpu.h. - * tconfig.in (WITH_FOO semantic macros): Delete. - * Makefile.in (M32RXF_INCLUDE_DEPS): Define. - (m32rx .o's): Depend on it. - (mloopx.c): Update call to genmloop.sh. - * cpux.h: Regenerate. - -Fri Oct 16 09:15:29 1998 Doug Evans <devans@charmed.cygnus.com> - - * sim-if.c (sim_do_command): Handle "sim info reg {bbpsw,bbpc}". - -Fri Oct 9 16:11:58 1998 Doug Evans <devans@seba.cygnus.com> - - Add pseudo-basic-block execution support. - * Makefile.in (SIM_OBJS): Add sim-reg.o, cgen-run.o, sim-stop.o. - (SIM_EXTRA_DEPS): Add include/opcode/cgen.h. - (INCLUDE_DEPS): Delete cpu-sim.h, include/opcode/cgen.h. - (mloop.c): Build pseudo-basic-block version. Depend on stamp-cpu. - * arch.c,arch.h,cpuall.h: Regenerate. - * cpu.c,cpu.h,decode.c,decode.h,extract.c,model.c: Regenerate. - * sem-switch.c,sem.c: Regenerate. - * m32r-sim.h (M32R_MISC_PROFILE): New members load_regs, - load_regs_pending. - * m32r.c (m32rbf_fetch_register): Renamed from m32rb_fetch_register. - (m32rbf_store_register,m32rbf_h_cr_get,m32rbf_h_cr_set, - m32rbf_h_psw_get,m32rbf_h_psw_set,m32rbf_h_accum_get, - m32rbf_h_accum_set): Likewise. - (m32r_model_{init,update}_insn_cycles): Delete. - (m32rbf_model_insn_{before,after}): New fns. - (m32r_model_record_cti,m32r_model_record_cycles): Delete. - (m32rb_model_mark_get_h_gr,m32rb_model_mark_set_h_gr): Delete. - (m32rb_model_mark_busy_reg,m32rb_model_mark_unbusy_reg): Delete. - (check_load_stall): New fn. - (m32rbf_model_m32r_d_u_{exec,cmp,mac,cti,load,store}): New fns. - (m32rbf_model_test_u_exec): New fn. - * mloop.in: Rewrite, use pbb support. - * sim-if.c (sim_stop,sim_sync_stop,sim_resume): Delete. - (sim_fetch_register,sim_store_register): Delete. - * sim-main.h (CIA_GET,CIA_SET): Fix. - (SIM_ENGINE_HALT_HOOK,SIM_ENGINE_RESTART_HOOK): Delete. - * tconfig.in (WITH_SCACHE_PBB): Define. - (WITH_SCACHE_PBB_M32RBF): Define. - * traps.c (sim_engine_invalid_insn): Renamed from ..._illegal_.... - (m32r_trap): Pass pc to sim_engine_halt. - * configure.in (SIM_AC_OPTION_SCACHE): Change 1024 to 16384. - * configure: Regenerate. - * Makefile.in (M32RX_OBJS): Delete semx.o, add extract.o. - (mloopx.c): Build pseudo-basic-block version. - (semx.o): Delete. - (extractx.o): Add. - * cpux.c,cpux.h,decodex.c,decodex.h,modelx.c: Regenerate. - * readx.c: Delete. - * semx.c: Delete. - * extractx.c: New file. - * semx-switch.c: New file. - * m32r-sim.h (BRANCH_NEW_PC): Delete. - (SEM_SKIP_INSN): New macro. - * m32rx.c (m32rxf_fetch_register): Renamed from m32rx_fetch_register. - (m32rxf_store_register,m32rxf_h_cr_get,m32rxf_h_cr_set, - m32rxf_h_psw_get,m32rxf_h_psw_set,m32rxf_h_accum_get, - m32rxf_h_accum_set,m32rxf_h_accums_get,m32rxf_h_accums_set): Likewise. - (m32rxf_model_insn_{before,after}): New fns. - (m32rx_model_mark_get_h_gr,m32rx_model_mark_set_h_gr): Delete. - (m32rx_model_mark_busy_reg,m32rx_model_mark_unbusy_reg): Delete. - (check_load_stall): New fn. - (m32rxf_model_m32rx_u_{exec,cmp,mac,cti,load,store}): New fns. - * mloopx.in: Rewrite, use pbb support. - * tconfig.in (WITH_SCACHE_PBB_M32RXF): Define. - (WITH_SEM_SWITCH_FULL): Change from 0 to 1. - -Wed Sep 16 18:22:27 1998 Doug Evans <devans@canuck.cygnus.com> - - * m32r-sim.h ({PSW,CBR,SPI,SPU,BPC,BBPSW,BBPC}_REGNUM): New macros. - ({ACC1L,ACC1H}_REGNUM): New macros. - (m32r_decode_gdb_ctrl_regnum): Add prototype. - * m32r.c (m32r_decode_gdb_ctrl_regnum): New function. - (m32r_fetch_register,m32r_store_register): Rewrite. - * m32rx.c (m32rx_fetch_register,m32rx_store_register): Rewrite. - -Tue Sep 15 15:01:14 1998 Doug Evans <devans@canuck.cygnus.com> - - * m32r-sim.h (GET_H_SM): New macro. - (UART params): Update to msa2000. - * devices.c (device_io_read_buffer): Update to msa2000. - * m32r.c (m32rb_h_cr_get,m32rb_h_cr_set): Handle bbpc,bbpsw. - (m32rb_h_psw_get,m32rb_h_psw_set): New functions. - * arch.c,arch.h,cpu.c,cpu.h,sem-switch.c,sem.c: Regenerate. - * m32rx.c (m32rx_h_cr_get,m32rx_h_cr_set): Handle bbpc,bbpsw. - (m32rx_h_psw_get,m32rx_h_psw_set): New functions. - * cpux.c,cpux.h,readx.c,semx.c: Regenerate. - -Wed Sep 9 15:29:36 1998 Doug Evans <devans@canuck.cygnus.com> - - * m32r-sim.h (m32r_trap): Update prototype. - * traps.c (m32r_trap): New arg `pc'. - * sem.c,sem-switch.c: Regenerated. - * cpux.h,readx.c,semx.c: Regenerated. - -Mon Aug 3 12:59:17 1998 Doug Evans <devans@seba.cygnus.com> - - Rename cpu m32r to m32rb to distinguish from architecture name. - * Makefile.in (mloop.c): cpu m32r renamed to m32rb. - * sim-main.h (WANT_CPU_M32RB): Renamed from WANT_CPU_M32R. - * tconfig.in (WANT_CPU_M32RB): Ditto. - * m32r.c (WANT_CPU_M32RB): Ditto. - (*): m32r_ cpu fns renamed to m32rb_. - * sim-if.c (sim_stop,sim_sync_stop,sim_resume): Update. - * arch.h,arch.c: Regenerate. - * cpu.c,cpu.h,decode.c,decode.h,extract.c,model.c: Regenerate. - * sem-switch.c,sem.c: Regenerate. - - * sim-if.c (sim_open): Don't allocate memory on top of any user - specified memory. - (h_gr_get,h_gr_set): Delete. - * sim-main.h (h_gr_get,h_gr_set): Delete. - * traps.c (m32r_trap): Replace calls to h_gr_[gs]et with - a_m32r_h_gr_[gs]et. - - * Makefile.in (INCLUDE_DEPS): Add include/opcode/cgen.h. - - * sim-if.c (sim_open): Open opcode table. - (sim_close): Close it. - -Tue Jul 28 13:06:19 1998 Doug Evans <devans@canuck.cygnus.com> - - Add support for new versions of mulwhi,mulwlo,macwhi,macwlo that - accept an accumulator choice. - * cpux.c,decodex.c,decodex.h,modelx.c,readx.c,semx.c: Regenerate. - -Fri Jul 24 13:00:29 1998 Doug Evans <devans@canuck.cygnus.com> - - * m32r.c: Include cgen-mem.h. - * traps.c (m32r_trap): Tweak for -Wall. - * m32rx.c: Include cgen-mem.h. - * semx.c: Regenerate, get -Wall cleanups. - -Tue Jul 21 16:53:10 1998 Doug Evans <devans@seba.cygnus.com> - - * cpu.h,extract.c: Regenerate. pc-rel calcs done on f_dispNN now. - * cpux.h,readx.c,semx.c: Ditto. - -Wed Jul 1 16:51:15 1998 Doug Evans <devans@seba.cygnus.com> - - * Makefile.in: cgen_maint -> CGEN_MAINT. - * configure.in: AC_SUBST cgen,cgendir. No longer look for guile. - * configure: Regenerate. - * arch.c,arch.h,cpuall.h: Regenerate. - * cpu.c,cpu.h,decode.c,decode.h,extract.c,model.c: Regenerate. - * sem-switch.c,sem.c: Regenerate. - * cpux.c,cpux.h,decodex.c,decodex.h,modelx.c,readx.c: Regenerate. - * semx.c: Regenerate. - * mloopx.in (icount): Moved here from genmloop.sh. - -Sat Jun 13 07:49:23 1998 Doug Evans <devans@fallis.cygnus.com> - - * m32r-sim.h (M32R_MISC_PROFILE): New members insn_cycles, cti_stall, - load_stall,biggest_cycles. - * m32r.c (m32r_model_mark_get_h_gr): Update. - (m32r_model_init_insn_cycles,m32r_model_update_insn_cycles): New fns. - (m32r_model_record_cti,m32r_model_record_cycles): New functions. - * mloop.in: Call cycle init/update fns. - * model.c: Regenerate. - * m32rx.c (m32rx_model_mark_get_h_gr): Update. - * mloopx.in: Call cycle init/update fns. - * modelx.c: Regenerate. - -Wed Jun 10 17:39:29 1998 Doug Evans <devans@canuck.cygnus.com> - - * traps.c: New file. Trap support moved here from sim-if.c. - * Makefile.in (SIM_OBJS): Add traps.o - * sim-if.c: Don't include targ-vals.h. - (sim_engine_illegal_insn): Moved to traps.c - * sim-main.h (SIM_CORE_SIGNAL): Define. - (m32r_core_signal): Declare. - * m32r-sim.h (m32r_trap): Declare. - - * devices.c (device_io_read_buffer): Handle cache purging via MCCR - register. - - * m32r-sim.h (M32R_MISC_PROFILE): Move here from sim-main.h. - (PROFILE_COUNT_SHORTINSNS,PROFILE_COUNT_LONGINSNS): New macros. - (TRAP_SYSCALL,TRAP_BREAKPOINT): New macros. - - * extract.c,sem-switch.c,sem.c: Regenerate. - * cpux.h,readx.c,semx.c: Regenerate. - -Wed May 20 00:10:40 1998 Doug Evans <devans@seba.cygnus.com> - - * m32r-sim.h (PROFILE_COUNT_PARINSNS): New macro. - * mloopx.in (extract): Set abuf.addr for proper fill nop counting. - (execute): Count parallel insns. - * sim-if.c (print_m32r_misc_cpu): Print count. - * sim-main.h (M32R_MISC_PROFILE): New member parallel_count. - - Zero bottom two bits of pc in jmp,jl insns. - * sem.c,sem-switch.c: Regenerate. - * semx.c: Regenerate. - -Tue May 19 16:45:33 1998 Doug Evans <devans@seba.cygnus.com> - - * sim-if.c (do_trap): Treat traps 2-15 as hardware does. - -Sat May 16 13:04:30 1998 Doug Evans <devans@seba.cygnus.com> - - * sim-if.c (sim_stop): Update call to @cpu@_engine_stop. - (sim_sync_stop): New function. - -Fri May 15 16:43:27 1998 Doug Evans <devans@seba.cygnus.com> - - * Makefile.in (devices.o): Add dependencies. - - * arch.h,cpu.c,cpu.h,cpuall.h: Regenerate. - * sem-switch.c,sem.c: Regenerate. - * mloop.in (execute): Update calls to TRACE_INSN_{INIT,FINI}. - * cpux.c,cpux.h,modelx.c,semx.c: Regenerate. - * m32rx.c (m32rx_model_mark_{busy,unbusy}_reg): New functions. - * mloopx.in (execute): Update calls to TRACE_INSN_{INIT,FINI}. - Fix pc value passed to TRACE_INSN for second parallel insn. - -Thu May 7 02:51:35 1998 Doug Evans <devans@seba.cygnus.com> - - * Makefile.in (SIM_OBJS): Add sim-cpu.o. - -Wed May 6 14:51:39 1998 Doug Evans <devans@seba.cygnus.com> - - * arch.h,arch.c,cpu.h,cpuall.h: Regenerate, tweaks mostly. - * model.c: Ditto. Reorganize model/mach data. - * cpux.h: Ditto. - * modelx.c: Ditto. - - * Makefile.in (m32r.o,mloop.o,cpu.o,model.o): Add decode.h dependency. - (m32rx.o,mloopx.o,cpux.o,modelx.o): Add decodex.h dependency. - * decode.c,decode.h: Regenerate, introduces IDESC table. - * mloop.in (extract16,extract32): Add IDESC support. - Update names of semantic handler member names. - (execute): Ditto. Delete call to PROFILE_COUNT_INSN. - * decodex.c,decodex.h: Regenerate, introduces IDESC table. - * mloopx.in: Add IDESC support. - Update names of semantic handler member names. - Delete call to PROFILE_COUNT_INSN. - - * sem-switch.c: Regenerate. Redo computed goto label handling. - * sem.c: Regenerate. Call PROFILE_COUNT_INSN. - * readx.c: Regenerate. Redo computed goto label handling. - * semx.c: Regenerate. Call PROFILE_COUNT_INSN. Finish profiling - support. - - * m32r.c (m32r_fetch_register): Change result type and args to - conform to sim_fetch_register interface. - (m32r_store_register): Ditto for sim_store_register interface. - * m32rx.c (m32rx_fetch_register): Change result type and args to - conform to sim_fetch_register interface. - (m32rx_store_register): Ditto for sim_store_register interface. - - * sim-if.c (alloc_cpu): Delete. - (free_state): Uninstall modules here ... - (sim_open): ... and not here. Call sim_cpu_alloc_all. - Set default architecture/model if not specified. - (sim_fetch_register,sim_store_register): Rewrite. - - * sim-if.c (h_pc_get,h_pc_set): Delete. Renamed to sim_pc_[gs]et - and moved to common/sim-cpu.c. - (sim_create_inferior): Update. - (do_trap): Update. - * sim-main.h (h_pc_get,h_pc_set): Delete. - - * sim-main.h (sim_cia): Change to USI. - (sim_cpu): Move m32r_misc_profile before machine generated part. - -Tue Apr 28 18:33:31 1998 Geoffrey Noer <noer@cygnus.com> - - * configure: Regenerated to track ../common/aclocal.m4 changes. - -Tue Apr 28 18:05:53 1998 Nick Clifton <nickc@cygnus.com> - - * model.c: Rebuilt. - * modelx.c: Rebuilt. - -Mon Apr 27 15:36:30 1998 Doug Evans <devans@seba.cygnus.com> - - * cpu.h,model.c,sem-switch.c,sem.c: Regenerated. Mostly comment - and variable renaming due to macro insn additions. - * mloop.in: Update to use CGEN_INSN_NUM. - * cpux.h,modelx.c,readx.c,semx.c: Regenerated. - * mloopx.in: Update to use CGEN_INSN_NUM. - -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:05 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:26 1998 Tom Tromey <tromey@cygnus.com> - - * configure.in: Don't call sinclude. - -Mon Apr 20 16:12:35 1998 Doug Evans <devans@canuck.cygnus.com> - - * cpu.c,sem.c,sem-switch.c: Regenerate. From - - cgen/m32r.cpu (h-accum): Add attribute FUN-ACCESS. - * m32r.c (m32r_h_accum_get,m32r_h_accum_set): New functions. - #include cgen-ops.h. - * cpux.c,readx.c,semx.c: Regenerate. - * m32rx.c (m32r_h_accum_get,m32r_h_accum_set): New functions. - #include cgen-ops.h. Delete inclusion of several unnecessary headers. - (m32r_h_accums_get): Sign extend top 8 bits. - -Tue Apr 14 14:04:07 1998 Doug Evans <devans@canuck.cygnus.com> - - * semx.c: Regenerate. - -Fri Apr 10 18:22:41 1998 Doug Evans <devans@canuck.cygnus.com> - - * cpu.h,decode.c,decode.h,extract.c,sem.c,sem-switch.c: Regenerate. - * cpux.h,decodex.c,decodex.h,readx.c,semx.c: Regenerate. - -Sat Apr 4 20:36:25 1998 Andrew Cagney <cagney@b1.cygnus.com> - - * configure: Regenerated to track ../common/aclocal.m4 changes. - -Fri Mar 27 16:15:52 1998 Andrew Cagney <cagney@b1.cygnus.com> - - * configure: 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 18 12:38:12 1998 Andrew Cagney <cagney@b1.cygnus.com> - - * configure: Regenerated to track ../common/aclocal.m4 changes. - -Sat Mar 14 20:53:36 1998 Doug Evans <devans@seba.cygnus.com> - - * config.in (HAVE_FCNTL_H): Add. - * configure: Regenerate. - * Makefile.in (SIM_OBJS): Add devices.o. - * m32r-sim.h (m32r_devices): Renamed from m32r_mspr_device. - (UART_*): Define m32r serial port parameters. - (M32R_DEVICE_ADDR,M32R_DEVICE_LEN): Define. - * m32r.c (device_io_{read,write}_buffer,device_error): Move from here, - * devices.c: To here. - * sim-if.c: Don't include signal.h,sim-core.h. - (sim_open): Use M32R_DEVICE_{ADDR,LEN} in sim_core_attach call. - (sim_resume): Call sim_module_{resume,suspend}. - * m32r.c (m32r_h_cr_{get,set}): Use register number enums. - - * tconfig.in (SIM_HANDLES_LMA): Define. - - * sim-if.c (do_trap): Result is new pc. - Handle --environment=operating. - * sem-switch.c,sem.c: Regenerate. - * semx.c: Regenerate. - -Wed Mar 11 14:07:39 1998 Andrew Cagney <cagney@b1.cygnus.com> - - * sim-if.c (syscall_read_mem, syscall_write_mem): Replace - sim_core_*_map with read_map, write_map, exec_map resp. - -Wed Mar 4 11:36:51 1998 Doug Evans <devans@seba.cygnus.com> - - * Makefile.in (SIM_EXTRA_DEPS): Add cpu-opc.h. - (arch.o): Delete cpu-opc.h dependency. - (decode.o,model.o): Likewise. - (decodex.o,modelx.o): Likewise. - - * cpu.h,model.c,sem-switch.c,sem.c: Regenerate. - * cpux.h,decodex.[ch],modelx.c,readx.c,semx.c: Regenerate. - -Thu Feb 26 18:38:35 1998 Andrew Cagney <cagney@b1.cygnus.com> - - * sim-if.c (sim_open): Initialize PROFILE_INFO_CPU_CALLBACK. - - * sim-if.c (sim_info): Delete. - -Fri Feb 27 10:14:29 1998 Doug Evans <devans@canuck.cygnus.com> - - * mloopx.in: Fix handling of branch in parallel with another insn. - * semx.c: Regenerate. - -Mon Feb 23 13:30:46 1998 Doug Evans <devans@seba.cygnus.com> - - * sim-main.h: #include symcat.h. - * m32r-sim.h (BRANCH_NEW_PC): Delete current_cpu arg. - (NEW_PC_{BASE,SKIP,2,4,BRANCH_P}): New macros. - * cpu.[ch],decode.[ch],extract.c,model.c: Regenerate. - * sem.c,sem-switch.c: Regenerate. - * m32r-sim.h (SEM_NEXT_PC): Modify to handle parallel exec. - * mloopx.in: Rewrite. - * cpux.[ch],decodex.[ch],readx.c,semx.c: Regenerate. - -Mon Feb 23 12:27:52 1998 Nick Clifton <nickc@cygnus.com> - - * m32r.c (m32r_h_cr_set, m32r_h_cr_get): Shadow control register 6 - in the backup PC register. - * m32rx.c (m32r_h_cr_set, m32r_h_cr_get): Shadow control register 6 - in the backup PC register. - -Thu Feb 19 16:39:35 1998 Doug Evans <devans@canuck.cygnus.com> - - * m32r.c (do_lock,do_unlock): Delete. - * cpu.[ch],decode.[ch],extract.c,model.c: Regenerate. - * sem.c,sem-switch.c: Regenerate. - * cpux.[ch],decodex.[ch],readx.c,semx.c: Regenerate. - -Tue Feb 17 18:18:10 1998 Doug Evans <devans@seba.cygnus.com> - - * Makefile.in (M32R_OBJS): Add cpu.o. - (cpu.o): Add rule for. - (NL_TARGET): Define. - * configure.in: Add AC_CHECK_PROG(SCHEME). - * cpu.c: New file. - * cpuall.h,cpu.h,decode.c,decode.h,extract.c,model.c: Regenerate. - * sem-switch.c,sem.c: Regenerate. - * mloop.in (execute): Update call to semantic fn. - (M32RX_OBJS): Add cpux.o. - (cpux.o): Add rule for. - cpux.c: New file. - * cpux.h,decodex.c,decodex.h,modelx.c,readx.c,semx.c: Regenerate. - * m32rx.c (m32rx_h_accums_{get,set}): Rewrite. - (m32rx_h_cr_{get,set}): New functions. - (m32rx_h_accums_{get,set}): New functions. - * mloopx.in: Rewrite main loop. - - * m32r.c (do_trap): Move from here. - * sim-if.c (do_trap): To here, and rewrite to use CB_SYSCALL support. - (sim_create_inferior): Use h_pc_set. - (h_pc_{get,set}): New functions. - (h_gr_{get,set}): New functions. - (syscall_{read,write}_mem): New functions. - * sim-main.h (h_{gr,pc}_{get,set}): Declare. - -Tue Feb 17 12:44:38 1998 Andrew Cagney <cagney@b1.cygnus.com> - - * sim-if.c (sim_store_register, sim_fetch_register): Pass in - length parameter. Return -1. - (sim_create_inferior): Pass 4 sim_store_register. - -Wed Feb 11 19:53:48 1998 Doug Evans <devans@canuck.cygnus.com> - - * sim-main.h (CIA_GET,CIA_SET): Provide dummy definitions for now. - - * decode.c, decode.h, sem.c, sem-switch.c, model.c: Regenerate. - * cpux.c, decodex.c, decodex.h, readx.c, semx.c, modelx.c: Regenerate. - -Mon Feb 9 19:41:54 1998 Doug Evans <devans@canuck.cygnus.com> - - * decode.c, sem.c: Regenerate. - * cpux.h, decodex.c, readx.c, semx.c: Regenerate. - * m32rx.c (m32rx_h_accums_set): New function. - (m32rx_model_mark_[gs]et_h_gr): New function. - * mloopx.in: Rewrite. - * Makefile.in (mloopx.o): Build with -parallel. - * sim-main.h (_sim_cpu): Delete member `par_exec'. - * tconfig.in (WITH_SEM_SWITCH_FULL): Define as 0 for m32rx. - -Thu Feb 5 12:44:31 1998 Doug Evans <devans@seba.cygnus.com> - - * Makefile.in (m32r.o): Depend on cpu.h - (extract.o): Pass -DSCACHE_P. - * mloop.in (extract{16,32}): Update call to m32r_decode. - * arch.h,cpu.h,cpuall.h,decode.[ch]: Regenerate. - * extract.c,model.c,sem-switch.c,sem.c: Regenerate. - * sim-main.h: #include "ansidecl.h". - Don't include cpu-opc.h, done by arch.h. - * Makefile.in (M32RX_OBJS): Build m32rx support now. - (m32rx.o): New rule. - * m32r-sim.h (m32rx_h_cr_[gs]et): Define. - * m32rx.c (m32rx_{fetch,store}_register): Update {get,set} of PC. - (m32rx_h_accums_get): New function. - * mloopx.in: Update call to m32rx_decode. Rewrite exec loop. - * cpux.h,decodex.[ch],modelx.c,readx.c,semx.c: Regenerate. - -Sun Feb 1 16:47:51 1998 Andrew Cagney <cagney@b1.cygnus.com> - - * configure: Regenerated to track ../common/aclocal.m4 changes. - -Sat Jan 31 18:15:41 1998 Andrew Cagney <cagney@b1.cygnus.com> - - * configure: Regenerated to track ../common/aclocal.m4 changes. - -Thu Jan 29 11:22:00 1998 Doug Evans <devans@canuck.cygnus.com> - - * Makefile.in (M32RX_OBJS): Comment out until m32rx port working. - * arch.h (HAVE_CPU_M32R{,X}): Delete, moved to m32r-opc.h. - * arch.c (machs): Check ifdef HAVE_CPU_FOO for each entry. - -Tue Jan 20 14:16:02 1998 Nick Clifton <nickc@cygnus.com> - - * cpux.h: Fix duplicate definition of h_accums field for - fmt_53_sadd structure. - -Tue Jan 20 01:42:17 1998 Doug Evans <devans@seba.cygnus.com> - - * Makefile.in: Add m32rx objs, and rules to build them. - * cpux.h, decodex.h, decodex.c, readx.c, semx.c, modelx.c: New files. - * m32rx.c, mloopx.in: New files. - -Mon Jan 19 22:26:29 1998 Doug Evans <devans@seba> - - * configure: Regenerated to track ../common/aclocal.m4 changes. - -Mon Jan 19 14:13:40 1998 Doug Evans <devans@seba.cygnus.com> - - * arch.c, arch.h, cpuall.h: New files. - * arch-defs.h: Deleted. - * mloop.in: Renamed from mainloop.in. - * Makefile.in: Update. - * sem-ops.h: Deleted. - * mem-ops.h: Deleted. - (arch): Renamed from CPU. - * cpu.h: New file. - * decode.c: Redone. - * decode.h: Redone. - * extract.c: Redone. - * model.c: Redone. - * sem-switch.c: Redone. - * sem.c: Renamed from semantics.c, and redone. - * m32r-sim.h (PROFILE_COUNT_FILLNOPS): Update. - (GETTWI,SETTWI,BRANCH_NEW_PC): Define. - * m32r.c (WANT_CPU,WANT_CPU_M32R): Define. - (m32r_{fetch,store}_register): New functions. - (model_mark_{get,set}_h_gr): Prefix with m32r_. - (m32r_model_mark_{busy,unbusy}_reg): Prefix with m32r_. - (h_cr_{get,set}): Prefix with m32r_. - (do_trap): Fetch state from current_cpu, not current_state. - Call sim_engine_halt instead of engine_halt. - * sim-if.c (alloc_cpu): New function. - (free_state): New function. - (sim_open): Call sim_state_alloc, and malloc space for selected cpu - type. Call sim_analyze_program. - (sim_create_inferior): Handle selected cpu type when setting PC. - (sim_resume): Handle m32rx. - (sim_stop_reason): Deleted. - (print_m32r_misc_cpu): Update. - (sim_{fetch,store}_register): Handle m32rx. - (sim_{read,write}): Deleted. - (sim_engine_illegal_insn): New function. - * sim-main.h: Don't include arch-defs.h,sim-core.h,sim-events.h. - Include arch.h,cpuall.h. Include cpu.h,decode.h if m32r. - Include cpux.h,decodex.h if m32rx. - (_sim_cpu): Include member appropriate cpu_data member for the cpu. - (M32R_MISC_PROFILE): Renamed from M32R_PROFILE. - (sim_state): Delete members core,events,halt_jmp_buf. - Change `cpu' member to be a pointer to the cpu's struct, rather than - record inside the state struct. - * tconfig.in (WITH_DEVICES): Define here. - (WITH_FAST,WITH_SEM_SWITCH_{FULL,FAST}): Define for the cpu. - -Fri Jan 16 12:16:56 1998 Nick Clifton <nickc@cygnus.com> - - * arch-defs.h (INSN_NAME): Fix typo. - -Mon Dec 15 23:17:11 1997 Andrew Cagney <cagney@b1.cygnus.com> - - * configure: Regenerated to track ../common/aclocal.m4 changes. - * config.in: Ditto. - -Thu Dec 4 09:21:05 1997 Doug Evans <devans@canuck.cygnus.com> - - * m32r-sim.h (MSPR_ADDR): New macro. - (m32r_mspr_device): Declare. - (struct _device): Define. - * m32r.c (m32r_mspr_device): New global. - (device_{io_{read,write}_buffer,error}): New functions. - * mem-ops.h (SETMEM*): Use sim_core_write_map, not read map. - * sim-if.c: Delete redundant inclusion of cpu-sim.h. - (sim_open): Attach device to handle MSPR register. - * sim-main.h (WITH_DEVICES): Define as 1. - Include cpu-sim.h. - - * configure: Regenerated to track ../common/aclocal.m4 changes. - -Wed Dec 3 18:08:44 1997 Doug Evans <devans@canuck.cygnus.com> - - * configure.in (SIM_AC_OPTION_ENVIRONMENT): Call. - * configure: Regenerated. - -Wed Nov 19 12:17:08 1997 Doug Evans <devans@canuck.cygnus.com> - - * mem-ops.h: Rename SIM_SIG{ACCESS,ALIGN} to SIM_SIG{SEGV,BUS}. - * sim-if.c (sim_open): Call sim_config. - (sim_stop_reason): Update call to sim_signal_to_host. - -Tue Nov 18 15:33:48 1997 Doug Evans <devans@canuck.cygnus.com> - - * Makefile.in (SIM_OBJS): Use $(SIM_NEW_COMMON_OBJS). - -Fri Oct 31 18:46:46 1997 Andrew Cagney <cagney@b1.cygnus.com> - - * sim-if.c (sim_open): Delete dead call to sim_core_attach. - -Mon Oct 27 12:43:54 1997 Doug Evans <devans@canuck.cygnus.com> - - * sem-ops.h (U{DIV,MOD}[BHSD]I): Use unsigned division. - -Fri Oct 3 09:28:00 1997 Andrew Cagney <cagney@b1.cygnus.com> - - * configure: Regenerated to track ../common/aclocal.m4 changes. - -Wed Sep 24 17:38:57 1997 Andrew Cagney <cagney@b1.cygnus.com> - - * configure: Regenerated to track ../common/aclocal.m4 changes. - -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_ENDIAN, SIM_HOSTENDIAN, SIM_SCACHE, - SIM_DEFAULT_MODEL): Delete, moved to common. - (SIM_EXTRA_CFLAGS): Update. - -Mon Sep 22 11:46:20 1997 Andrew Cagney <cagney@b1.cygnus.com> - - * configure.in (sim_link_links): 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. - -Wed Sep 17 17:44:40 1997 Andrew Cagney <cagney@b1.cygnus.com> - - * sim-if.c (sim_open): Allocate memory under sim-memopt module - using sim_do_commandf. - (sim_open): Set magic-number at the start. - (sim_do_command): Implement. - - * sim-main.h (sim_engine_halt): Map onto engine_halt. - -Mon Sep 15 17:36:15 1997 Andrew Cagney <cagney@b1.cygnus.com> - - * configure: Regenerated to track ../common/aclocal.m4 changes. - -Thu Sep 4 17:21:23 1997 Doug Evans <dje@seba> - - * configure: Regenerated to track ../common/aclocal.m4 changes. - -Fri Sep 5 10:21:48 1997 Andrew Cagney <cagney@b1.cygnus.com> - - * Makefile.in (SIM_OBJS): Add sim-memopt.o module. - -Thu Sep 4 10:30:02 1997 Andrew Cagney <cagney@b1.cygnus.com> - - * sim-if.c (sim_open): Pass zero modulo arg to sim_core_attach. - -Wed Aug 27 18:13:22 1997 Andrew Cagney <cagney@b1.cygnus.com> - - * configure: Regenerated to track ../common/aclocal.m4 changes. - * config.in: Ditto. - -Tue Aug 26 10:39:42 1997 Andrew Cagney <cagney@b1.cygnus.com> - - * sim-if.c (sim_kill): Delete. - (sim_create_inferior): Add ABFD argument. - (sim_load): Move setting of PC from here. - (sim_create_inferior): To here. - (sim_load): Delete, use sim-hload.c instead. - - * 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:54:08 1997 Andrew Cagney <cagney@b1.cygnus.com> - - * sim-if.c (sim_open): Add ABFD argument. - -Tue Jul 22 10:16:16 1997 Doug Evans <dje@canuck.cygnus.com> - - * sim-main.h (M32R_DEFAULT_MEM_SIZE): New macro. - * sim-if.c (sim_open): Use it. - -Wed Jun 4 12:48:12 1997 Andrew Cagney <cagney@b1.cygnus.com> - - * sim-main.h (WITH_ENGINE): Disable the common engine for now. - -Tue May 27 14:15:44 1997 Andrew Cagney <cagney@b1.cygnus.com> - - * sim-if.c (sim_read): Pass NULL cpu to sim_core_read_buffer. - (sim_write): Ditto for write. - - * m32r.c (do_trap): Ditto for read/write. - -Tue May 20 10:18:25 1997 Andrew Cagney <cagney@b1.cygnus.com> - - * sim-if.c (sim_open): Add callback argument. - (sim_set_callbacks, sim_callback): Delete. - (sim_load): Set STATE_LOADED_P. - -Mon May 19 12:55:42 1997 Andrew Cagney <cagney@b1.cygnus.com> - - * Makefile.in (SIM_OBJS): Link in sim-abort.o as a stub for - sim_engine_abort. - -Mon May 5 12:45:28 1997 Andrew Cagney <cagney@b1.cygnus.com> - - * sim-if.c (sim_open): Update to reflect changes to core in - ../common/. - * mem-ops.h (GETMEMQI, GETMEMHI, GETMEMSI, GETMEMDI, GETMEMUQI, - GETMEMUHI, GETMEMUSI, GETMEMUDI, SETMEMQI, SETMEMHI, SETMEMSI, - SETMEMDI, SETMEMUQI, SETMEMUHI, SETMEMUSI, SETMEMUDI): Ditto. - -Sat May 3 08:38:55 1997 Doug Evans <dje@seba.cygnus.com> - - * decode.c (decode): Add computed goto support. - -Fri May 2 16:30:26 1997 Andrew Cagney <cagney@b1.cygnus.com> - - * mem-ops.h: Stub additional core read/write arguments. - - * sim-main.h: Declare sim_cia - type SI. - (struct _sim_cpu): Move base type to end per common. - (struct _sim_state): Ditto. - -Thu May 1 11:15:34 1997 Doug Evans <dje@canuck.cygnus.com> - - Merge from branch into devo. CGEN generic files moved to common - directory. K&R C support is no longer provided. - -Thu Apr 24 00:39:51 1997 Doug Evans <dje@canuck.cygnus.com> - - * configure: Regenerated to track ../common/aclocal.m4 changes. - -Sat Apr 12 12:57:33 1997 Felix Lee <flee@yin.cygnus.com> - - * Makefile.in, seman-cache.c: new file, for wingdb build. - * sim-alloca.h: fixed for wingdb. - -Mon Apr 7 13:33:29 1997 Doug Evans <dje@seba.cygnus.com> - - * decode.c (*): m32r_cgen_insn_table renamed to ..._entries. - * mainloop.in: Use CGEN_INSN_INDEX instead of CGEN_INSN_TYPE. - * simdefs.h (INSN_NAME): m32r_cgen_insn_table renamed to ..._entries. - -Fri Apr 4 19:23:12 1997 Doug Evans <dje@canuck.cygnus.com> - - * cgen-utils.in (ex_illegal): Fill in abuf->length, abuf->addr. - (exc_illegal): Likewise. - * decode.c (decode_vars): Add decode_illegal. - * genmloop.sh: #include "cpu-opc.h". - * sem-switch.c (case_INSN_ILLEGAL): Declare. - (labels): Add case_INSN_ILLEGAL. - (SWITCH): Add INSN_ILLEGAL case. - -Wed Mar 26 12:34:00 1997 Doug Evans <dje@canuck.cygnus.com> - - * model.c (model_module): Use 0 not NULL. - - * genmloop.sh (sim_main_loop): Handle k&r c. - - * sem-switch.c: Regenerate to get k&r c support. - * semantics.c: Likewise. - - * m32r.c (ADD_{OV,CA}_SI,SUB_{OV,CA}_SI): Renamed to {ADD,SUB}[OC]FSI. - (ADDCSI,SUBCSI): New functions. - * sem-switch.c (addv,addv3,addx,subv,subx): Fix carry bit handling. - * semantics.c (addv,addv3,addx,subv,subx): Fix carry bit handling. - - * simcache.c (simcache_{install,init,uninstall}): Use - DECLARE_MODULE_INSTALL_HANDLER. - (simcache_option_handler): Use DECLARE_OPTION_HANDLER. - - * utils.c: #include "semops.h". - -Tue Mar 11 14:30:26 1997 Doug Evans <dje@seba.cygnus.com> - - * profile.c (profile_print_simcache): Fix thinko in printf text. - - * simdefs.h (struct argbuf): Add member to fmt_20 so it's not empty. - -Mon Mar 10 11:06:29 1997 Doug Evans <dje@seba.cygnus.com> - - * m32r.c (h_cr_get): Rewrite. - (h_cr_set): Rewrite. - * sem-switch.c (rte): bcarry renamed to bcond. - * semantics.c (rte): Likewise. - * simdefs.h (CPU_STATE): Likewise. - - * config.in (HAVE_SYS_TIME_H): Add. - * configure.in: Check for sys/time.h. - * configure: Regenerated. - * utils.c: Include sys/time.h if present. - - * common.c (sim_parse_args): Account for NULL terminating entry - in long_options table. - - * genmloop.sh (RUN_FAST_P): Don't run fast if tracing. - Always use cache if configured in. - * mainloop.in (do_extract_insn{16,32}): New functions. - (normal,fast): Call them. Handle starting in left slot. - * simcache.c (simcache_option_handler): Disallow -c0. - * sem-switch.c (TRACE_RESULT): Redefine so no tracing. - - * profile.c (profile_print_simcache): Fix percentage calc. - - * Makefile.in (INCLUDE_DEPS): Delete simcommon.h. - -Sun Mar 9 20:42:17 1997 Doug Evans <dje@seba.cygnus.com> - - * Makefile.in (COMMON_{PRE,POST}_CONFIG_FRAG): Add delimiters for. - (M32R_INCLUDE_DEPS): Use cpu-sim.h instead of m32r-sim.h. - Add mod-list.h. - (mrun.o): Don't depend on M32R_INCLUDE_DEPS. - (sim-if.o,m32r.o,utils.o): Likewise. - (common.o): Don't explicitly depend on mod-list.h. - (mainloop.c): Pass CPU to genmloop.sh. - (stamp-modules): Depend on configure. - (decode.o): Depend on decode,h, memops.h, semops.h, cpu-opc.h. - (extract.o): Depend on decode.h, memops.h, semops.h. - (semantics.o,seman-cache.o): Likewise. - (model.o,ops.o): Depend on memops.h. - (extr-cache.o): Disable building for the moment. - - * simcommon.h: Delete, move contents into cgen-sim.h. - * cgen-sim.h: Don't include ansidecl.h,bfd.h,simfns.h. - (UINT,CGEN_CAT3): Define. - ({extract,semantic}_fn_t): Renamed to {EXTRACT,SEMANTIC}_FN. - (decode_t): Renamed to DECODE. - - * simfns.h: Delete, contents moved to memops.h,semops.h. - * memops.h: New file. - * semops.h: New file. - * decode.h: Renamed from semantics.h. - - * sim-argv.h: New file. - * Makefile.in (memory.o,trace.o,profile.o,simcache.o,common): Add - dependency of sim-argv.h. - - * sim-alloca.h: New file. - * common.c: Include it. - * Makefile.in (common.o): Add dependency. - - * config.in (HAVE_TIME_H,HAVE_SYS_RESOURCE_H): Add. - (HAVE_GETRUSAGE,HAVE_TIME): Add. - * configure.in: sinclude ../common/aclocal.m4. - Check for headers time.h, sys/resource.h. - Check for functions time, getrusage. - (sim_link_{files,links}): Add link cpu-opc.h. - (sim_profile): Add simcache. - (SIM_AC_PROFILE): Add simcache, profile.o. - (simcache module): Delete extr-cache.o for now. - (--enable-sim-cache): Allow specification of default cache size. - * configure: Regenerated. - - * decode.c: #include cgen-sim.h,memops.h,semops.h,decode.h, - cpu-sim.h,cpu-opc.h. Don't include m32r-sim.h. - Regenerate. - - * extract.c: #include cgen-sim.h,decode.h,cpu-sim.h. - Don't include m32r-sim.h. - (*): Define/Undef FLD macro. Use it to reference ARGBUF. - Simplify profiling test with PROFILE_MODEL_P. - (mvfc,mvtc): Fix access of control registers. - * semantic.c: #include cgen-sim.h,memops.h,semops.h,decode.h,cpu-sim.h. - Don't include m32r-sim.h. - (*): Define/Undef FLD macro. Use it to reference ARGBUF. - Simplify profiling test with PROFILE_MODEL_P. - (mvfc,mvtc): Fix access of control registers. - - * sem-switch.c: New file, for GCC computed goto support. - - * genmloop.sh: Add #include's of bfd.h,callback.h,cgen-sim.h, - memops.h,semops.h,trace.h,cpu-sim.h. - (RUN_FAST_P): Change default to run fast if cache size > 0 - and not profiling. - (sim_main_loop): Record execution time. - Record instruction count even in fast mode. - (init): Allow cpu to provide init code in mainloop.in. - (FAST): Define as 0 or 1 depending on fast mode. - * mainloop.in (normal): Combine with fast case. - Add support for GCC computed gotos. Count simcache hits/misses. - (init): Initialize "switch" labels if GNUC. - - * cgen-utils.in: Don't include opcode/cgen.h. - Include cgen-sim.h, cpu-opc.h. - * common.c: Don't include simcommon.h,mod-list.h. Include cgen-sim.h. - * m32r-sim.h: Don't include mod-list.h - (RUN_FAST_P): Delete. - * m32r.c: Don't include profile.h. #include ansidecl.h,cgen-sim.h, - semops.h,memory.h,trace.h - (h_cr_get,h_cr_set): New functions. - * memory.c: #include cgen-sim.h,callback.h. - * ops.c: Don't include profile.h,m32r-sim.h. - Include cgen-sim.h,memops.h,cpu-sim.h. - (MEMOPS_DEFINE_INLINE): Renamed from SIMFNS_DEFINE_INLINE. - * trace.c: Include cgen-sim.h,cpu-opc.h. - * trace.h (trace_insn_{init,fini}): Declare. - - * model.c: Don't include signal.h,stdlib.h,m32r-sim.h. - Include cgen-sim.h,cpu-sim.h,cpu-opc.h. - Regenerate to get new insn aliases. - - * mrun.c: #include "ansidecl.h". - (STATE): Use struct sim_state instead. - - * profile.c: Surround #include <stdlib.h> with HAVE_STDLIB_H. - Don't include simcommon.h. Include cgen-sim.h,cpu-opc.h. - (PROFILE_{READ,WRITE}_MASK): Replace with PROFILE_MEMORY_MASK. - (profile_print_simcache): New function. - (profile_print): Call it. Print simulator speed stats. - * profile.h (PROFILE_{READ,WRITE}_MASK): Replace with - PROFILE_MEMORY_MASK. - (MODULE_PROFILE_SIMCACHE_P): Define. - (PROFILE_SIMCACHE_MASK): Define. - (PROFILE_COUNT): New members total_insn_count,exec_time. - New members simcache_hits,simcache_misses. - (PROFILE_SIMCACHE_{HITS,MISSES}): Define. - (PROFILE_MODEL_P): New macro. - (PROFILE_COUNT_SIMCACHE_{HIT,MISS}): New macros. - - * sim-if.c: Surround #include <stdlib.h> with HAVE_STDLIB_H. - Don't include simcommon.h,m32r-sim.h. Include cgen-sim.h,cpu-sim.h. - (sim_resume): Use USING_SIMCACHE_P instead of RUN_FAST_P. - (sim_info): Pass verbose to profile_print. - - * simcache.c: Include cgen-sim.h,callback.h. - (USING_SIMCACHE_P): Replace with SIMCACHE_P. - (simcache_option_handler): Ensure cache size at least 2. - Allow config time specification of default cache size. - * simcache.h (struct simcache): Support GCC computed gotos. - (SIMCACHE_DEFAULT_CACHE_SIZE): USe CONFIG_SIM_CACHE_SIZE if defined. - (USING_SIMCACHE_P): New macro. - - * simdefs.h: Don't include m32r-opc.h. - (CGEN_MAX_SIM_INSNS): Define. - (CPU_STATE): Regenerate. - (ARGBUF): Regenerate. - (extract,semantic handler decls): Delete, moved to decode.h. - - * tconfig.in: Don't include cgen-sim.h,m32r-sim.h. - (USE_SEM_SWITCH): Define. - - * utils.c: Include bfd.h,time.h,sys/resource.h. - (sim_time_get,sim_time_elapsed): New functions. - * cgen-sim.h (SIM_TIME,sim_time_get,sim_time_elapsed): Declare. - -Fri Jan 31 20:25:06 1997 Doug Evans <dje@canuck.cygnus.com> - - * configure.in (AC_CHECK_HEADERS): Handle i386-windows. - * configure: Regenerated. - * model.c: #include <stdlib.h>. - * simcache.c: #include "libiberty.h". - * simcommon.h (alloca): Handle i386-windows. - - * common.c: #include libiberty.h. - (sim_signal_to_host): Return 5 if wingdb. - -Mon Jan 27 15:22:49 1997 Doug Evans <dje@seba.cygnus.com> - - * configure.in (sim_cache): Enabled by default now, pass default - cache size to --enable-sim-cache. - * simcache.c (simcache_option_handler): Allow -c 0. - - * simdefs.h,simfns.h: Regenerate - * decode.c,extract.c,model.c,ops.c,semantics.c: Regenerate. - -Tue Jan 21 16:21:01 1997 Doug Evans <dje@seba.cygnus.com> - - Add model profiling support. - * configure.in: Handle --enable-sim-model. - (sim_profile): Add model. - * Makefile.in (model.o): Add rule. - * cgen-sim.h (UNIT,INSN_TIMING,MACH,MODEL): New types. - * extract.c (*): Add model profiling support. - * m32r.c (model_mark_{get,set}_h_gr): New functions. - (model_mark_{busy,unbusy}_reg): New functions. - * profile.c (profile_option_handler): Recognize --profile model. - (profile_print_model): New function. - (profile_print): Call it. - * profile.h (MODULE_profile_model,MODULE_PROFILE_MODEL_P): Define. - (PROFILE_MODEL_MASK,PROFILE_LABEL_WIDTH): Define. - (PROFILE_COUNT): New members cycle_count,cti_stall_count, - load_stall_count,taken_count,untaken_count. - * semantics.c (*): Add model profiling support. - * simcommon.h (struct sim_state): New members mach,model. - * simdefs.h (CPU_PROFILE,MODEL_TYPE,UNIT_TYPE): New type. - (MAX_MODELS,MAX_UNITS): Define. - * tconfig.in (STATE_EXTRA_MEMBERS): Add cpu_profile. - - * Makefile.in (INCLUDE_DEPS): Add $(SIM_MODULES_HDRS). - (stamp-modules): Depend on genmodlist.sh. - * common.c (standard_options): Add --max-insns. - (copy_argv): New function. - * tconfig.in (SIM_HAVE_MAX_INSNS): Define. - * genmloop.sh: Allow mainloop.in to contain support code. - * mainloop.in: Move do_insn16,do_insn32 here. - * m32r.c (do_trap): Handle SYS_argvlen,SYS_argv,SYS_read. - * sim-if.c (sim_open): Don't set max insn count. - (sim_create_inferior): Save argv,envp. - * simcommon.h (struct sim_state): New members argv,envp. - * simdefs.h ([GS]ETTWI,[GS]ETTUWI,[GS]ETTAI): Define. - ([GS]ETMEMWI,[GS]ETMEMUWI,[GS]ETMEMAI): Define. - (ARGBUF): New members h_gr_get, h_gr_set. - * trace.c (trace_insn_init,trace_insn_fini): New functions. - (trace_printf): Print to buffer, output later by trace_insn_fini. - * trace.h (TRACE_INSN_{INIT,FINI}): Define. - -Thu Dec 19 16:01:59 1996 Doug Evans <dje@canuck.cygnus.com> - - * configure.in (AC_FUNC_ALLOCA): Call. - * configure: Regenerate. - * config.h (HAVE_ALLOCA_H): Add. - * simcommon.h: Add alloca support. - (DECLARE_MODULE_INSTALL_HANDLER): Define. - (DECLARE_OPTION_HANDLER): Define. - (MEM_FN): Declare using PARAMS. - (DECLARE_MEM_FN): Define. - * trace.c (trace_result): Tweak for !STDC. - * cgen-sim.h (UDI_FN_SUPPORT): Define if ! HAVE_LONGLONG. - * cgen-utils.in (disasm_sprintf): Fix va_arg call in !STDC case. - * common.c (sim_print_help_fn): Use PARAMS. - (standard_option_handler): Fix decl for !STDC systems. - * memory.c: #include <stdio.h> - (mem_flat_{install,init,uninstall}): Fix decl for !STDC systems. - (mem_flat_{read,write},mem_flat_option_handler): Likewise. - * profile.c (profile_install): Likewise. - (profile_option_handler): Likewise. - -Thu Dec 19 11:06:19 1996 Doug Evans <dje@seba.cygnus.com> - - * semantics.c (*): Don't suffix big unsigned numbers with "U". - Prefix them with 0x instead. - - * cgen-sim.h (DI_FN_SUPPORT): Define if ! HAVE_LONGLONG. - (SLADI,SRADI,CONVSIDI,CONVDISI): Delete, moved to simfns.h. - * semantics.c (machi,maclo,macwhi,macwlo,mulhi,mullo): Implement. - (mulwhi,mulwlo,mvtachi,mvtaclo,rac,rach): Implement. - * simfns.h: Add decls for functional DI,UDI,SF,DF,XF,TF support. - Add support for boolean and/or. - * utils.c: Redo naming of DI functional support. - (ANDDI,ORDI,ADDDI,MULDI,GEDI,LEDI,CONVHIDI): New functions. - -Tue Dec 17 12:57:48 1996 Doug Evans <dje@seba.cygnus.com> - - * Directory created. diff --git a/sim/m32r/Makefile.in b/sim/m32r/Makefile.in deleted file mode 100644 index e2dc82f..0000000 --- a/sim/m32r/Makefile.in +++ /dev/null @@ -1,192 +0,0 @@ -# Makefile template for Configure for the m32r simulator -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2003, 2004 -# 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 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. - -## COMMON_PRE_CONFIG_FRAG - -M32R_OBJS = m32r.o cpu.o decode.o sem.o model.o mloop.o -M32RX_OBJS = m32rx.o cpux.o decodex.o modelx.o mloopx.o -M32R2_OBJS = m32r2.o cpu2.o decode2.o model2.o mloop2.o -TRAPS_OBJ = @traps_obj@ - -CONFIG_DEVICES = dv-sockser.o -CONFIG_DEVICES = - -SIM_OBJS = \ - $(SIM_NEW_COMMON_OBJS) \ - sim-cpu.o \ - sim-hload.o \ - sim-hrw.o \ - sim-model.o \ - sim-reg.o \ - cgen-utils.o cgen-trace.o cgen-scache.o \ - cgen-run.o sim-reason.o sim-engine.o sim-stop.o \ - sim-if.o arch.o \ - $(M32R_OBJS) \ - $(M32RX_OBJS) \ - $(M32R2_OBJS) \ - $(TRAPS_OBJ) \ - devices.o \ - $(CONFIG_DEVICES) - -# Extra headers included by sim-main.h. -SIM_EXTRA_DEPS = \ - $(CGEN_INCLUDE_DEPS) \ - arch.h cpuall.h m32r-sim.h $(srcdir)/../../opcodes/m32r-desc.h - -SIM_EXTRA_CFLAGS = @sim_extra_cflags@ - -SIM_RUN_OBJS = nrun.o -SIM_EXTRA_CLEAN = m32r-clean - -# This selects the m32r newlib/libgloss syscall definitions. -NL_TARGET = -DNL_TARGET_m32r - -## COMMON_POST_CONFIG_FRAG - -arch = m32r - -sim-if.o: sim-if.c $(SIM_MAIN_DEPS) $(srcdir)/../common/sim-core.h - -arch.o: arch.c $(SIM_MAIN_DEPS) - -traps.o: traps.c targ-vals.h $(SIM_MAIN_DEPS) -traps-linux.o: traps.c syscall.h targ-vals.h $(SIM_MAIN_DEPS) -devices.o: devices.c $(SIM_MAIN_DEPS) - -# M32R objs - -M32RBF_INCLUDE_DEPS = \ - $(CGEN_MAIN_CPU_DEPS) \ - cpu.h decode.h eng.h - -m32r.o: m32r.c $(M32RBF_INCLUDE_DEPS) - -# FIXME: Use of `mono' is wip. -mloop.c eng.h: stamp-mloop -stamp-mloop: $(srcdir)/../common/genmloop.sh mloop.in Makefile - $(SHELL) $(srccom)/genmloop.sh \ - -mono -fast -pbb -switch sem-switch.c \ - -cpu m32rbf -infile $(srcdir)/mloop.in - $(SHELL) $(srcroot)/move-if-change eng.hin eng.h - $(SHELL) $(srcroot)/move-if-change mloop.cin mloop.c - touch stamp-mloop -mloop.o: mloop.c sem-switch.c $(M32RBF_INCLUDE_DEPS) - -cpu.o: cpu.c $(M32RBF_INCLUDE_DEPS) -decode.o: decode.c $(M32RBF_INCLUDE_DEPS) -sem.o: sem.c $(M32RBF_INCLUDE_DEPS) -model.o: model.c $(M32RBF_INCLUDE_DEPS) - -# M32RX objs - -M32RXF_INCLUDE_DEPS = \ - $(CGEN_MAIN_CPU_DEPS) \ - cpux.h decodex.h engx.h - -m32rx.o: m32rx.c $(M32RXF_INCLUDE_DEPS) - -# FIXME: Use of `mono' is wip. -mloopx.c engx.h: stamp-xmloop -stamp-xmloop: $(srcdir)/../common/genmloop.sh mloopx.in Makefile - $(SHELL) $(srccom)/genmloop.sh \ - -mono -no-fast -pbb -parallel-write -switch semx-switch.c \ - -cpu m32rxf -infile $(srcdir)/mloopx.in \ - -outfile-suffix x - $(SHELL) $(srcroot)/move-if-change engx.hin engx.h - $(SHELL) $(srcroot)/move-if-change mloopx.cin mloopx.c - touch stamp-xmloop -mloopx.o: mloopx.c semx-switch.c $(M32RXF_INCLUDE_DEPS) - -cpux.o: cpux.c $(M32RXF_INCLUDE_DEPS) -decodex.o: decodex.c $(M32RXF_INCLUDE_DEPS) -semx.o: semx.c $(M32RXF_INCLUDE_DEPS) -modelx.o: modelx.c $(M32RXF_INCLUDE_DEPS) - -# M32R2 objs - -M32R2F_INCLUDE_DEPS = \ - $(CGEN_MAIN_CPU_DEPS) \ - cpu2.h decode2.h eng2.h - -m32r2.o: m32r2.c $(M32R2F_INCLUDE_DEPS) - -# FIXME: Use of `mono' is wip. -mloop2.c eng2.h: stamp-2mloop -stamp-2mloop: $(srcdir)/../common/genmloop.sh mloop2.in Makefile - $(SHELL) $(srccom)/genmloop.sh \ - -mono -no-fast -pbb -parallel-write -switch sem2-switch.c \ - -cpu m32r2f -infile $(srcdir)/mloop2.in \ - -outfile-suffix 2 - $(SHELL) $(srcroot)/move-if-change eng2.hin eng2.h - $(SHELL) $(srcroot)/move-if-change mloop2.cin mloop2.c - touch stamp-2mloop - -mloop2.o: mloop2.c sem2-switch.c $(M32R2F_INCLUDE_DEPS) -cpu2.o: cpu2.c $(M32R2F_INCLUDE_DEPS) -decode2.o: decode2.c $(M32R2F_INCLUDE_DEPS) -sem2.o: sem2.c $(M32R2F_INCLUDE_DEPS) -model2.o: model2.c $(M32R2F_INCLUDE_DEPS) - -m32r-clean: - rm -f mloop.c eng.h stamp-mloop - rm -f mloopx.c engx.h stamp-xmloop - rm -f mloop2.c eng2.h stamp-2mloop - rm -f stamp-arch stamp-cpu stamp-xcpu stamp-2cpu - rm -f tmp-* - -# cgen support, enable with --enable-cgen-maint -CGEN_MAINT = ; @true -# The following line is commented in or out depending upon --enable-cgen-maint. -@CGEN_MAINT@CGEN_MAINT = - -stamp-arch: $(CGEN_READ_SCM) $(CGEN_ARCH_SCM) $(CGEN_CPU_DIR)/m32r.cpu - $(MAKE) cgen-arch $(CGEN_FLAGS_TO_PASS) mach=all \ - archfile=$(CGEN_CPU_DIR)/m32r.cpu \ - FLAGS="with-scache with-profile=fn" - touch stamp-arch -arch.h arch.c cpuall.h: $(CGEN_MAINT) stamp-arch - -stamp-cpu: $(CGEN_READ_SCM) $(CGEN_CPU_SCM) $(CGEN_DECODE_SCM) $(CGEN_CPU_DIR)/m32r.cpu - $(MAKE) cgen-cpu-decode $(CGEN_FLAGS_TO_PASS) \ - cpu=m32rbf mach=m32r SUFFIX= \ - archfile=$(CGEN_CPU_DIR)/m32r.cpu \ - FLAGS="with-scache with-profile=fn" \ - EXTRAFILES="$(CGEN_CPU_SEM) $(CGEN_CPU_SEMSW)" - touch stamp-cpu -cpu.h sem.c sem-switch.c model.c decode.c decode.h: $(CGEN_MAINT) stamp-cpu - -stamp-xcpu: $(CGEN_READ_SCM) $(CGEN_CPU_SCM) $(CGEN_DECODE_SCM) $(CGEN_CPU_DIR)/m32r.cpu - $(MAKE) cgen-cpu-decode $(CGEN_FLAGS_TO_PASS) \ - cpu=m32rxf mach=m32rx SUFFIX=x \ - archfile=$(CGEN_CPU_DIR)/m32r.cpu \ - FLAGS="with-scache with-profile=fn" \ - EXTRAFILES="$(CGEN_CPU_SEMSW)" - touch stamp-xcpu -cpux.h semx-switch.c modelx.c decodex.c decodex.h: $(CGEN_MAINT) stamp-xcpu - -stamp-2cpu: $(CGEN_READ_SCM) $(CGEN_CPU_SCM) $(CGEN_DECODE_SCM) $(CGEN_CPU_DIR)/m32r.cpu - $(MAKE) cgen-cpu-decode $(CGEN_FLAGS_TO_PASS) \ - cpu=m32r2f mach=m32r2 SUFFIX=2 \ - archfile=$(CGEN_CPU_DIR)/m32r.cpu \ - FLAGS="with-scache with-profile=fn" \ - EXTRAFILES="$(CGEN_CPU_SEMSW)" - touch stamp-2cpu -cpu2.h sem2-switch.c model2.c decode2.c decode2.h: $(CGEN_MAINT) stamp-2cpu diff --git a/sim/m32r/README b/sim/m32r/README deleted file mode 100644 index bbc3f50..0000000 --- a/sim/m32r/README +++ /dev/null @@ -1,14 +0,0 @@ -This is the m32r simulator directory. - -It is still work-in-progress. The current sources are reasonably -well tested and lots of features are in. However, there's lots -more yet to come. - -There are lots of machine generated files in the source directory! -They are only generated if you configure with --enable-cgen-maint, -similar in behaviour to Makefile.in, configure under automake/autoconf. - -For details on the generator, see ../../cgen. - -devo/cgen isn't part of the comp-tools module yet. -You'll need to check it out manually (also akin to automake/autoconf). diff --git a/sim/m32r/TODO b/sim/m32r/TODO deleted file mode 100644 index 263daac..0000000 --- a/sim/m32r/TODO +++ /dev/null @@ -1,9 +0,0 @@ -- header file dependencies revisit -- hooks cleanup -- testsuites -- FIXME's -- memory accesses still test if profiling is on even in fast mode -- fill nop counting done even in fast mode -- have semantic code use G/SET_H_FOO if not default [incl fun-access] -- have G/SET_H_FOO macros call function if fun-access -- --> can always use G/S_H_FOO macros diff --git a/sim/m32r/acconfig.h b/sim/m32r/acconfig.h deleted file mode 100644 index f9b87a1..0000000 --- a/sim/m32r/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/m32r/arch.c b/sim/m32r/arch.c deleted file mode 100644 index cbdcfba..0000000 --- a/sim/m32r/arch.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Simulator support for m32r. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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" -#include "bfd.h" - -const MACH *sim_machs[] = -{ -#ifdef HAVE_CPU_M32RBF - & m32r_mach, -#endif -#ifdef HAVE_CPU_M32RXF - & m32rx_mach, -#endif -#ifdef HAVE_CPU_M32R2F - & m32r2_mach, -#endif - 0 -}; - diff --git a/sim/m32r/arch.h b/sim/m32r/arch.h deleted file mode 100644 index a544d47..0000000 --- a/sim/m32r/arch.h +++ /dev/null @@ -1,50 +0,0 @@ -/* Simulator header for m32r. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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 M32R_ARCH_H -#define M32R_ARCH_H - -#define TARGET_BIG_ENDIAN 1 - -/* Enum declaration for model types. */ -typedef enum model_type { - MODEL_M32R_D, MODEL_TEST, MODEL_M32RX, MODEL_M32R2 - , MODEL_MAX -} MODEL_TYPE; - -#define MAX_MODELS ((int) MODEL_MAX) - -/* Enum declaration for unit types. */ -typedef enum unit_type { - UNIT_NONE, UNIT_M32R_D_U_STORE, UNIT_M32R_D_U_LOAD, UNIT_M32R_D_U_CTI - , UNIT_M32R_D_U_MAC, UNIT_M32R_D_U_CMP, UNIT_M32R_D_U_EXEC, UNIT_TEST_U_EXEC - , UNIT_M32RX_U_STORE, UNIT_M32RX_U_LOAD, UNIT_M32RX_U_CTI, UNIT_M32RX_U_MAC - , UNIT_M32RX_U_CMP, UNIT_M32RX_U_EXEC, UNIT_M32R2_U_STORE, UNIT_M32R2_U_LOAD - , UNIT_M32R2_U_CTI, UNIT_M32R2_U_MAC, UNIT_M32R2_U_CMP, UNIT_M32R2_U_EXEC - , UNIT_MAX -} UNIT_TYPE; - -#define MAX_UNITS (2) - -#endif /* M32R_ARCH_H */ diff --git a/sim/m32r/config.in b/sim/m32r/config.in deleted file mode 100644 index 9723b86..0000000 --- a/sim/m32r/config.in +++ /dev/null @@ -1,162 +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 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 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 diff --git a/sim/m32r/configure b/sim/m32r/configure deleted file mode 100755 index efc2dc6..0000000 --- a/sim/m32r/configure +++ /dev/null @@ -1,6332 +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 CGEN_MAINT cgendir cgen traps_obj sim_extra_cflags 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 - -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-endian=endian Specify target byte endian orientation. - --enable-sim-alignment=align Specify strict, nonstrict or forced alignment of memory accesses. - --enable-sim-hostendian=end Specify host byte endian orientation. - --enable-sim-scache=size Specify simulator execution cache size. - --enable-sim-default-model=model Specify default model to simulate. - --enable-sim-environment=environment Specify mixed, user, virtual or operating environment. - --enable-sim-inline=inlines Specify which functions should be inlined. - --enable-cgen-maint=DIR build cgen generated files - -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" - - - -wire_endian="BIG_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; -wire_alignment="STRICT_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; - -default_sim_scache="16384" -# Check whether --enable-sim-scache or --disable-sim-scache was given. -if test "${enable_sim_scache+set}" = set; then - enableval="$enable_sim_scache" - case "${enableval}" in - yes) sim_scache="-DWITH_SCACHE=${default_sim_scache}";; - no) sim_scache="-DWITH_SCACHE=0" ;; - [0-9]*) sim_scache="-DWITH_SCACHE=${enableval}";; - *) { { echo "$as_me:$LINENO: error: \"Bad value $enableval passed to --enable-sim-scache\"" >&5 -echo "$as_me: error: \"Bad value $enableval passed to --enable-sim-scache\"" >&2;} - { (exit 1); exit 1; }; }; - sim_scache="";; -esac -if test x"$silent" != x"yes" && test x"$sim_scache" != x""; then - echo "Setting scache size = $sim_scache" 6>&1 -fi -else - sim_scache="-DWITH_SCACHE=${default_sim_scache}" -fi; - - -default_sim_default_model="m32r/d" -# Check whether --enable-sim-default-model or --disable-sim-default-model was given. -if test "${enable_sim_default_model+set}" = set; then - enableval="$enable_sim_default_model" - case "${enableval}" in - yes|no) { { echo "$as_me:$LINENO: error: \"Missing argument to --enable-sim-default-model\"" >&5 -echo "$as_me: error: \"Missing argument to --enable-sim-default-model\"" >&2;} - { (exit 1); exit 1; }; };; - *) sim_default_model="-DWITH_DEFAULT_MODEL='\"${enableval}\"'";; -esac -if test x"$silent" != x"yes" && test x"$sim_default_model" != x""; then - echo "Setting default model = $sim_default_model" 6>&1 -fi -else - sim_default_model="-DWITH_DEFAULT_MODEL='\"${default_sim_default_model}\"'" -fi; - - -# Check whether --enable-sim-environment or --disable-sim-environment was given. -if test "${enable_sim_environment+set}" = set; then - enableval="$enable_sim_environment" - case "${enableval}" in - all | ALL) sim_environment="-DWITH_ENVIRONMENT=ALL_ENVIRONMENT";; - user | USER) sim_environment="-DWITH_ENVIRONMENT=USER_ENVIRONMENT";; - virtual | VIRTUAL) sim_environment="-DWITH_ENVIRONMENT=VIRTUAL_ENVIRONMENT";; - operating | OPERATING) sim_environment="-DWITH_ENVIRONMENT=OPERATING_ENVIRONMENT";; - *) { { echo "$as_me:$LINENO: error: \"Unknown value $enableval passed to --enable-sim-environment\"" >&5 -echo "$as_me: error: \"Unknown value $enableval passed to --enable-sim-environment\"" >&2;} - { (exit 1); exit 1; }; }; - sim_environment="";; -esac -if test x"$silent" != x"yes" && test x"$sim_environment" != x""; then - echo "Setting sim environment = $sim_environment" 6>&1 -fi -else - sim_environment="-DWITH_ENVIRONMENT=ALL_ENVIRONMENT" -fi; - -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; - -cgen_maint=no -cgen=guile -cgendir='$(srcdir)/../../cgen' -# Check whether --enable-cgen-maint or --disable-cgen-maint was given. -if test "${enable_cgen_maint+set}" = set; then - enableval="$enable_cgen_maint" - case "${enableval}" in - yes) cgen_maint=yes ;; - no) cgen_maint=no ;; - *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. - cgendir=${cgen_maint}/lib/cgen - cgen=guile - ;; -esac -fi; if test x${cgen_maint} != xno ; then - CGEN_MAINT='' -else - CGEN_MAINT='#' -fi - - - - - - case "${target_alias}" in - m32r*-linux*) - traps_obj=traps-linux.o - sim_extra_cflags="-DM32R_LINUX" - ;; - *) - traps_obj=traps.o - sim_extra_cflags="-DM32R_ELF" - ;; - esac - - - - - -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,@CGEN_MAINT@,$CGEN_MAINT,;t t -s,@cgendir@,$cgendir,;t t -s,@cgen@,$cgen,;t t -s,@traps_obj@,$traps_obj,;t t -s,@sim_extra_cflags@,$sim_extra_cflags,;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/m32r/configure.ac b/sim/m32r/configure.ac deleted file mode 100644 index 1a4307d..0000000 --- a/sim/m32r/configure.ac +++ /dev/null @@ -1,35 +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) - -SIM_AC_OPTION_ENDIAN(BIG_ENDIAN) -SIM_AC_OPTION_ALIGNMENT(STRICT_ALIGNMENT) -SIM_AC_OPTION_HOSTENDIAN -SIM_AC_OPTION_SCACHE(16384) -SIM_AC_OPTION_DEFAULT_MODEL(m32r/d) -SIM_AC_OPTION_ENVIRONMENT -SIM_AC_OPTION_INLINE() -SIM_AC_OPTION_CGEN_MAINT - - case "${target_alias}" in - m32r*-linux*) - traps_obj=traps-linux.o - sim_extra_cflags="-DM32R_LINUX" - ;; - *) - traps_obj=traps.o - sim_extra_cflags="-DM32R_ELF" - ;; - esac -AC_SUBST(traps_obj) -AC_SUBST(sim_extra_cflags) - - -SIM_AC_OUTPUT diff --git a/sim/m32r/cpu.c b/sim/m32r/cpu.c deleted file mode 100644 index 197ea43..0000000 --- a/sim/m32r/cpu.c +++ /dev/null @@ -1,181 +0,0 @@ -/* Misc. support for CPU family m32rbf. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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. - -*/ - -#define WANT_CPU m32rbf -#define WANT_CPU_M32RBF - -#include "sim-main.h" -#include "cgen-ops.h" - -/* Get the value of h-pc. */ - -USI -m32rbf_h_pc_get (SIM_CPU *current_cpu) -{ - return CPU (h_pc); -} - -/* Set a value for h-pc. */ - -void -m32rbf_h_pc_set (SIM_CPU *current_cpu, USI newval) -{ - CPU (h_pc) = newval; -} - -/* Get the value of h-gr. */ - -SI -m32rbf_h_gr_get (SIM_CPU *current_cpu, UINT regno) -{ - return CPU (h_gr[regno]); -} - -/* Set a value for h-gr. */ - -void -m32rbf_h_gr_set (SIM_CPU *current_cpu, UINT regno, SI newval) -{ - CPU (h_gr[regno]) = newval; -} - -/* Get the value of h-cr. */ - -USI -m32rbf_h_cr_get (SIM_CPU *current_cpu, UINT regno) -{ - return GET_H_CR (regno); -} - -/* Set a value for h-cr. */ - -void -m32rbf_h_cr_set (SIM_CPU *current_cpu, UINT regno, USI newval) -{ - SET_H_CR (regno, newval); -} - -/* Get the value of h-accum. */ - -DI -m32rbf_h_accum_get (SIM_CPU *current_cpu) -{ - return GET_H_ACCUM (); -} - -/* Set a value for h-accum. */ - -void -m32rbf_h_accum_set (SIM_CPU *current_cpu, DI newval) -{ - SET_H_ACCUM (newval); -} - -/* Get the value of h-cond. */ - -BI -m32rbf_h_cond_get (SIM_CPU *current_cpu) -{ - return CPU (h_cond); -} - -/* Set a value for h-cond. */ - -void -m32rbf_h_cond_set (SIM_CPU *current_cpu, BI newval) -{ - CPU (h_cond) = newval; -} - -/* Get the value of h-psw. */ - -UQI -m32rbf_h_psw_get (SIM_CPU *current_cpu) -{ - return GET_H_PSW (); -} - -/* Set a value for h-psw. */ - -void -m32rbf_h_psw_set (SIM_CPU *current_cpu, UQI newval) -{ - SET_H_PSW (newval); -} - -/* Get the value of h-bpsw. */ - -UQI -m32rbf_h_bpsw_get (SIM_CPU *current_cpu) -{ - return CPU (h_bpsw); -} - -/* Set a value for h-bpsw. */ - -void -m32rbf_h_bpsw_set (SIM_CPU *current_cpu, UQI newval) -{ - CPU (h_bpsw) = newval; -} - -/* Get the value of h-bbpsw. */ - -UQI -m32rbf_h_bbpsw_get (SIM_CPU *current_cpu) -{ - return CPU (h_bbpsw); -} - -/* Set a value for h-bbpsw. */ - -void -m32rbf_h_bbpsw_set (SIM_CPU *current_cpu, UQI newval) -{ - CPU (h_bbpsw) = newval; -} - -/* Get the value of h-lock. */ - -BI -m32rbf_h_lock_get (SIM_CPU *current_cpu) -{ - return CPU (h_lock); -} - -/* Set a value for h-lock. */ - -void -m32rbf_h_lock_set (SIM_CPU *current_cpu, BI newval) -{ - CPU (h_lock) = newval; -} - -/* Record trace results for INSN. */ - -void -m32rbf_record_trace_results (SIM_CPU *current_cpu, CGEN_INSN *insn, - int *indices, TRACE_RECORD *tr) -{ -} diff --git a/sim/m32r/cpu.h b/sim/m32r/cpu.h deleted file mode 100644 index a5ecbe3..0000000 --- a/sim/m32r/cpu.h +++ /dev/null @@ -1,691 +0,0 @@ -/* CPU family header for m32rbf. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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 CPU_M32RBF_H -#define CPU_M32RBF_H - -/* Maximum number of instructions that are fetched at a time. - This is for LIW type instructions sets (e.g. m32r). */ -#define MAX_LIW_INSNS 2 - -/* Maximum number of instructions that can be executed in parallel. */ -#define MAX_PARALLEL_INSNS 1 - -/* CPU state information. */ -typedef struct { - /* Hardware elements. */ - struct { - /* program counter */ - USI h_pc; -#define GET_H_PC() CPU (h_pc) -#define SET_H_PC(x) (CPU (h_pc) = (x)) - /* general registers */ - SI h_gr[16]; -#define GET_H_GR(a1) CPU (h_gr)[a1] -#define SET_H_GR(a1, x) (CPU (h_gr)[a1] = (x)) - /* control registers */ - USI h_cr[16]; -#define GET_H_CR(index) m32rbf_h_cr_get_handler (current_cpu, index) -#define SET_H_CR(index, x) \ -do { \ -m32rbf_h_cr_set_handler (current_cpu, (index), (x));\ -;} while (0) - /* accumulator */ - DI h_accum; -#define GET_H_ACCUM() m32rbf_h_accum_get_handler (current_cpu) -#define SET_H_ACCUM(x) \ -do { \ -m32rbf_h_accum_set_handler (current_cpu, (x));\ -;} while (0) - /* condition bit */ - BI h_cond; -#define GET_H_COND() CPU (h_cond) -#define SET_H_COND(x) (CPU (h_cond) = (x)) - /* psw part of psw */ - UQI h_psw; -#define GET_H_PSW() m32rbf_h_psw_get_handler (current_cpu) -#define SET_H_PSW(x) \ -do { \ -m32rbf_h_psw_set_handler (current_cpu, (x));\ -;} while (0) - /* backup psw */ - UQI h_bpsw; -#define GET_H_BPSW() CPU (h_bpsw) -#define SET_H_BPSW(x) (CPU (h_bpsw) = (x)) - /* backup bpsw */ - UQI h_bbpsw; -#define GET_H_BBPSW() CPU (h_bbpsw) -#define SET_H_BBPSW(x) (CPU (h_bbpsw) = (x)) - /* lock */ - BI h_lock; -#define GET_H_LOCK() CPU (h_lock) -#define SET_H_LOCK(x) (CPU (h_lock) = (x)) - } hardware; -#define CPU_CGEN_HW(cpu) (& (cpu)->cpu_data.hardware) -} M32RBF_CPU_DATA; - -/* Cover fns for register access. */ -USI m32rbf_h_pc_get (SIM_CPU *); -void m32rbf_h_pc_set (SIM_CPU *, USI); -SI m32rbf_h_gr_get (SIM_CPU *, UINT); -void m32rbf_h_gr_set (SIM_CPU *, UINT, SI); -USI m32rbf_h_cr_get (SIM_CPU *, UINT); -void m32rbf_h_cr_set (SIM_CPU *, UINT, USI); -DI m32rbf_h_accum_get (SIM_CPU *); -void m32rbf_h_accum_set (SIM_CPU *, DI); -BI m32rbf_h_cond_get (SIM_CPU *); -void m32rbf_h_cond_set (SIM_CPU *, BI); -UQI m32rbf_h_psw_get (SIM_CPU *); -void m32rbf_h_psw_set (SIM_CPU *, UQI); -UQI m32rbf_h_bpsw_get (SIM_CPU *); -void m32rbf_h_bpsw_set (SIM_CPU *, UQI); -UQI m32rbf_h_bbpsw_get (SIM_CPU *); -void m32rbf_h_bbpsw_set (SIM_CPU *, UQI); -BI m32rbf_h_lock_get (SIM_CPU *); -void m32rbf_h_lock_set (SIM_CPU *, BI); - -/* These must be hand-written. */ -extern CPUREG_FETCH_FN m32rbf_fetch_register; -extern CPUREG_STORE_FN m32rbf_store_register; - -typedef struct { - UINT h_gr; -} MODEL_M32R_D_DATA; - -typedef struct { - int empty; -} MODEL_TEST_DATA; - -/* Instruction argument buffer. */ - -union sem_fields { - struct { /* no operands */ - int empty; - } fmt_empty; - struct { /* */ - UINT f_uimm8; - } sfmt_clrpsw; - struct { /* */ - UINT f_uimm4; - } sfmt_trap; - struct { /* */ - IADDR i_disp24; - unsigned char out_h_gr_SI_14; - } sfmt_bl24; - struct { /* */ - IADDR i_disp8; - unsigned char out_h_gr_SI_14; - } sfmt_bl8; - struct { /* */ - SI* i_dr; - UINT f_hi16; - UINT f_r1; - unsigned char out_dr; - } sfmt_seth; - struct { /* */ - ADDR i_uimm24; - SI* i_dr; - UINT f_r1; - unsigned char out_dr; - } sfmt_ld24; - struct { /* */ - SI* i_sr; - UINT f_r2; - unsigned char in_sr; - unsigned char out_h_gr_SI_14; - } sfmt_jl; - struct { /* */ - SI* i_sr; - INT f_simm16; - UINT f_r2; - UINT f_uimm3; - unsigned char in_sr; - } sfmt_bset; - struct { /* */ - SI* i_dr; - UINT f_r1; - UINT f_uimm5; - unsigned char in_dr; - unsigned char out_dr; - } sfmt_slli; - struct { /* */ - SI* i_dr; - INT f_simm8; - UINT f_r1; - unsigned char in_dr; - unsigned char out_dr; - } sfmt_addi; - struct { /* */ - SI* i_src1; - SI* i_src2; - UINT f_r1; - UINT f_r2; - unsigned char in_src1; - unsigned char in_src2; - unsigned char out_src2; - } sfmt_st_plus; - struct { /* */ - SI* i_src1; - SI* i_src2; - INT f_simm16; - UINT f_r1; - UINT f_r2; - unsigned char in_src1; - unsigned char in_src2; - } sfmt_st_d; - struct { /* */ - SI* i_dr; - SI* i_sr; - UINT f_r1; - UINT f_r2; - unsigned char in_sr; - unsigned char out_dr; - unsigned char out_sr; - } sfmt_ld_plus; - struct { /* */ - IADDR i_disp16; - SI* i_src1; - SI* i_src2; - UINT f_r1; - UINT f_r2; - unsigned char in_src1; - unsigned char in_src2; - } sfmt_beq; - struct { /* */ - SI* i_dr; - SI* i_sr; - UINT f_r1; - UINT f_r2; - UINT f_uimm16; - unsigned char in_sr; - unsigned char out_dr; - } sfmt_and3; - struct { /* */ - SI* i_dr; - SI* i_sr; - INT f_simm16; - UINT f_r1; - UINT f_r2; - unsigned char in_sr; - unsigned char out_dr; - } sfmt_add3; - struct { /* */ - SI* i_dr; - SI* i_sr; - UINT f_r1; - UINT f_r2; - unsigned char in_dr; - unsigned char in_sr; - unsigned char out_dr; - } sfmt_add; -#if WITH_SCACHE_PBB - /* Writeback handler. */ - struct { - /* Pointer to argbuf entry for insn whose results need writing back. */ - const struct argbuf *abuf; - } write; - /* x-before handler */ - struct { - /*const SCACHE *insns[MAX_PARALLEL_INSNS];*/ - int first_p; - } before; - /* x-after handler */ - struct { - int empty; - } after; - /* This entry is used to terminate each pbb. */ - struct { - /* Number of insns in pbb. */ - int insn_count; - /* Next pbb to execute. */ - SCACHE *next; - SCACHE *branch_target; - } chain; -#endif -}; - -/* The ARGBUF struct. */ -struct argbuf { - /* These are the baseclass definitions. */ - IADDR addr; - const IDESC *idesc; - char trace_p; - char profile_p; - /* ??? Temporary hack for skip insns. */ - char skip_count; - char unused; - /* cpu specific data follows */ - union sem semantic; - int written; - union sem_fields fields; -}; - -/* A cached insn. - - ??? SCACHE used to contain more than just argbuf. We could delete the - type entirely and always just use ARGBUF, but for future concerns and as - a level of abstraction it is left in. */ - -struct scache { - struct argbuf argbuf; -}; - -/* Macros to simplify extraction, reading and semantic code. - These define and assign the local vars that contain the insn's fields. */ - -#define EXTRACT_IFMT_EMPTY_VARS \ - unsigned int length; -#define EXTRACT_IFMT_EMPTY_CODE \ - length = 0; \ - -#define EXTRACT_IFMT_ADD_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_ADD_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_ADD3_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_ADD3_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_AND3_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - UINT f_uimm16; \ - unsigned int length; -#define EXTRACT_IFMT_AND3_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_uimm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_OR3_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - UINT f_uimm16; \ - unsigned int length; -#define EXTRACT_IFMT_OR3_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_uimm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_ADDI_VARS \ - UINT f_op1; \ - UINT f_r1; \ - INT f_simm8; \ - unsigned int length; -#define EXTRACT_IFMT_ADDI_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_simm8 = EXTRACT_MSB0_INT (insn, 16, 8, 8); \ - -#define EXTRACT_IFMT_ADDV3_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_ADDV3_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_BC8_VARS \ - UINT f_op1; \ - UINT f_r1; \ - SI f_disp8; \ - unsigned int length; -#define EXTRACT_IFMT_BC8_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_disp8 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (2))) + (((pc) & (-4)))); \ - -#define EXTRACT_IFMT_BC24_VARS \ - UINT f_op1; \ - UINT f_r1; \ - SI f_disp24; \ - unsigned int length; -#define EXTRACT_IFMT_BC24_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_disp24 = ((((EXTRACT_MSB0_INT (insn, 32, 8, 24)) << (2))) + (pc)); \ - -#define EXTRACT_IFMT_BEQ_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - SI f_disp16; \ - unsigned int length; -#define EXTRACT_IFMT_BEQ_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_disp16 = ((((EXTRACT_MSB0_INT (insn, 32, 16, 16)) << (2))) + (pc)); \ - -#define EXTRACT_IFMT_BEQZ_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - SI f_disp16; \ - unsigned int length; -#define EXTRACT_IFMT_BEQZ_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_disp16 = ((((EXTRACT_MSB0_INT (insn, 32, 16, 16)) << (2))) + (pc)); \ - -#define EXTRACT_IFMT_CMP_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_CMP_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_CMPI_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_CMPI_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_DIV_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_DIV_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_JL_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_JL_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_LD24_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_uimm24; \ - unsigned int length; -#define EXTRACT_IFMT_LD24_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_uimm24 = EXTRACT_MSB0_UINT (insn, 32, 8, 24); \ - -#define EXTRACT_IFMT_LDI16_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_LDI16_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_MVFACHI_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_MVFACHI_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_MVFC_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_MVFC_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_MVTACHI_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_MVTACHI_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_MVTC_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_MVTC_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_NOP_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_NOP_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_SETH_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - UINT f_hi16; \ - unsigned int length; -#define EXTRACT_IFMT_SETH_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_hi16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_SLLI_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_shift_op2; \ - UINT f_uimm5; \ - unsigned int length; -#define EXTRACT_IFMT_SLLI_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_shift_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 3); \ - f_uimm5 = EXTRACT_MSB0_UINT (insn, 16, 11, 5); \ - -#define EXTRACT_IFMT_ST_D_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_ST_D_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_TRAP_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_uimm4; \ - unsigned int length; -#define EXTRACT_IFMT_TRAP_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_uimm4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_CLRPSW_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_uimm8; \ - unsigned int length; -#define EXTRACT_IFMT_CLRPSW_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_uimm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \ - -#define EXTRACT_IFMT_BSET_VARS \ - UINT f_op1; \ - UINT f_bit4; \ - UINT f_uimm3; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_BSET_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_bit4 = EXTRACT_MSB0_UINT (insn, 32, 4, 1); \ - f_uimm3 = EXTRACT_MSB0_UINT (insn, 32, 5, 3); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_BTST_VARS \ - UINT f_op1; \ - UINT f_bit4; \ - UINT f_uimm3; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_BTST_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_bit4 = EXTRACT_MSB0_UINT (insn, 16, 4, 1); \ - f_uimm3 = EXTRACT_MSB0_UINT (insn, 16, 5, 3); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -/* Collection of various things for the trace handler to use. */ - -typedef struct trace_record { - IADDR pc; - /* FIXME:wip */ -} TRACE_RECORD; - -#endif /* CPU_M32RBF_H */ diff --git a/sim/m32r/cpu2.c b/sim/m32r/cpu2.c deleted file mode 100644 index 1749880..0000000 --- a/sim/m32r/cpu2.c +++ /dev/null @@ -1,197 +0,0 @@ -/* Misc. support for CPU family m32r2f. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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. - -*/ - -#define WANT_CPU m32r2f -#define WANT_CPU_M32R2F - -#include "sim-main.h" -#include "cgen-ops.h" - -/* Get the value of h-pc. */ - -USI -m32r2f_h_pc_get (SIM_CPU *current_cpu) -{ - return CPU (h_pc); -} - -/* Set a value for h-pc. */ - -void -m32r2f_h_pc_set (SIM_CPU *current_cpu, USI newval) -{ - CPU (h_pc) = newval; -} - -/* Get the value of h-gr. */ - -SI -m32r2f_h_gr_get (SIM_CPU *current_cpu, UINT regno) -{ - return CPU (h_gr[regno]); -} - -/* Set a value for h-gr. */ - -void -m32r2f_h_gr_set (SIM_CPU *current_cpu, UINT regno, SI newval) -{ - CPU (h_gr[regno]) = newval; -} - -/* Get the value of h-cr. */ - -USI -m32r2f_h_cr_get (SIM_CPU *current_cpu, UINT regno) -{ - return GET_H_CR (regno); -} - -/* Set a value for h-cr. */ - -void -m32r2f_h_cr_set (SIM_CPU *current_cpu, UINT regno, USI newval) -{ - SET_H_CR (regno, newval); -} - -/* Get the value of h-accum. */ - -DI -m32r2f_h_accum_get (SIM_CPU *current_cpu) -{ - return GET_H_ACCUM (); -} - -/* Set a value for h-accum. */ - -void -m32r2f_h_accum_set (SIM_CPU *current_cpu, DI newval) -{ - SET_H_ACCUM (newval); -} - -/* Get the value of h-accums. */ - -DI -m32r2f_h_accums_get (SIM_CPU *current_cpu, UINT regno) -{ - return GET_H_ACCUMS (regno); -} - -/* Set a value for h-accums. */ - -void -m32r2f_h_accums_set (SIM_CPU *current_cpu, UINT regno, DI newval) -{ - SET_H_ACCUMS (regno, newval); -} - -/* Get the value of h-cond. */ - -BI -m32r2f_h_cond_get (SIM_CPU *current_cpu) -{ - return CPU (h_cond); -} - -/* Set a value for h-cond. */ - -void -m32r2f_h_cond_set (SIM_CPU *current_cpu, BI newval) -{ - CPU (h_cond) = newval; -} - -/* Get the value of h-psw. */ - -UQI -m32r2f_h_psw_get (SIM_CPU *current_cpu) -{ - return GET_H_PSW (); -} - -/* Set a value for h-psw. */ - -void -m32r2f_h_psw_set (SIM_CPU *current_cpu, UQI newval) -{ - SET_H_PSW (newval); -} - -/* Get the value of h-bpsw. */ - -UQI -m32r2f_h_bpsw_get (SIM_CPU *current_cpu) -{ - return CPU (h_bpsw); -} - -/* Set a value for h-bpsw. */ - -void -m32r2f_h_bpsw_set (SIM_CPU *current_cpu, UQI newval) -{ - CPU (h_bpsw) = newval; -} - -/* Get the value of h-bbpsw. */ - -UQI -m32r2f_h_bbpsw_get (SIM_CPU *current_cpu) -{ - return CPU (h_bbpsw); -} - -/* Set a value for h-bbpsw. */ - -void -m32r2f_h_bbpsw_set (SIM_CPU *current_cpu, UQI newval) -{ - CPU (h_bbpsw) = newval; -} - -/* Get the value of h-lock. */ - -BI -m32r2f_h_lock_get (SIM_CPU *current_cpu) -{ - return CPU (h_lock); -} - -/* Set a value for h-lock. */ - -void -m32r2f_h_lock_set (SIM_CPU *current_cpu, BI newval) -{ - CPU (h_lock) = newval; -} - -/* Record trace results for INSN. */ - -void -m32r2f_record_trace_results (SIM_CPU *current_cpu, CGEN_INSN *insn, - int *indices, TRACE_RECORD *tr) -{ -} diff --git a/sim/m32r/cpu2.h b/sim/m32r/cpu2.h deleted file mode 100644 index 8ae49e4..0000000 --- a/sim/m32r/cpu2.h +++ /dev/null @@ -1,1046 +0,0 @@ -/* CPU family header for m32r2f. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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 CPU_M32R2F_H -#define CPU_M32R2F_H - -/* Maximum number of instructions that are fetched at a time. - This is for LIW type instructions sets (e.g. m32r). */ -#define MAX_LIW_INSNS 2 - -/* Maximum number of instructions that can be executed in parallel. */ -#define MAX_PARALLEL_INSNS 2 - -/* CPU state information. */ -typedef struct { - /* Hardware elements. */ - struct { - /* program counter */ - USI h_pc; -#define GET_H_PC() CPU (h_pc) -#define SET_H_PC(x) (CPU (h_pc) = (x)) - /* general registers */ - SI h_gr[16]; -#define GET_H_GR(a1) CPU (h_gr)[a1] -#define SET_H_GR(a1, x) (CPU (h_gr)[a1] = (x)) - /* control registers */ - USI h_cr[16]; -#define GET_H_CR(index) m32r2f_h_cr_get_handler (current_cpu, index) -#define SET_H_CR(index, x) \ -do { \ -m32r2f_h_cr_set_handler (current_cpu, (index), (x));\ -;} while (0) - /* accumulator */ - DI h_accum; -#define GET_H_ACCUM() m32r2f_h_accum_get_handler (current_cpu) -#define SET_H_ACCUM(x) \ -do { \ -m32r2f_h_accum_set_handler (current_cpu, (x));\ -;} while (0) - /* accumulators */ - DI h_accums[2]; -#define GET_H_ACCUMS(index) m32r2f_h_accums_get_handler (current_cpu, index) -#define SET_H_ACCUMS(index, x) \ -do { \ -m32r2f_h_accums_set_handler (current_cpu, (index), (x));\ -;} while (0) - /* condition bit */ - BI h_cond; -#define GET_H_COND() CPU (h_cond) -#define SET_H_COND(x) (CPU (h_cond) = (x)) - /* psw part of psw */ - UQI h_psw; -#define GET_H_PSW() m32r2f_h_psw_get_handler (current_cpu) -#define SET_H_PSW(x) \ -do { \ -m32r2f_h_psw_set_handler (current_cpu, (x));\ -;} while (0) - /* backup psw */ - UQI h_bpsw; -#define GET_H_BPSW() CPU (h_bpsw) -#define SET_H_BPSW(x) (CPU (h_bpsw) = (x)) - /* backup bpsw */ - UQI h_bbpsw; -#define GET_H_BBPSW() CPU (h_bbpsw) -#define SET_H_BBPSW(x) (CPU (h_bbpsw) = (x)) - /* lock */ - BI h_lock; -#define GET_H_LOCK() CPU (h_lock) -#define SET_H_LOCK(x) (CPU (h_lock) = (x)) - } hardware; -#define CPU_CGEN_HW(cpu) (& (cpu)->cpu_data.hardware) -} M32R2F_CPU_DATA; - -/* Cover fns for register access. */ -USI m32r2f_h_pc_get (SIM_CPU *); -void m32r2f_h_pc_set (SIM_CPU *, USI); -SI m32r2f_h_gr_get (SIM_CPU *, UINT); -void m32r2f_h_gr_set (SIM_CPU *, UINT, SI); -USI m32r2f_h_cr_get (SIM_CPU *, UINT); -void m32r2f_h_cr_set (SIM_CPU *, UINT, USI); -DI m32r2f_h_accum_get (SIM_CPU *); -void m32r2f_h_accum_set (SIM_CPU *, DI); -DI m32r2f_h_accums_get (SIM_CPU *, UINT); -void m32r2f_h_accums_set (SIM_CPU *, UINT, DI); -BI m32r2f_h_cond_get (SIM_CPU *); -void m32r2f_h_cond_set (SIM_CPU *, BI); -UQI m32r2f_h_psw_get (SIM_CPU *); -void m32r2f_h_psw_set (SIM_CPU *, UQI); -UQI m32r2f_h_bpsw_get (SIM_CPU *); -void m32r2f_h_bpsw_set (SIM_CPU *, UQI); -UQI m32r2f_h_bbpsw_get (SIM_CPU *); -void m32r2f_h_bbpsw_set (SIM_CPU *, UQI); -BI m32r2f_h_lock_get (SIM_CPU *); -void m32r2f_h_lock_set (SIM_CPU *, BI); - -/* These must be hand-written. */ -extern CPUREG_FETCH_FN m32r2f_fetch_register; -extern CPUREG_STORE_FN m32r2f_store_register; - -typedef struct { - int empty; -} MODEL_M32R2_DATA; - -/* Instruction argument buffer. */ - -union sem_fields { - struct { /* no operands */ - int empty; - } fmt_empty; - struct { /* */ - UINT f_uimm8; - } sfmt_clrpsw; - struct { /* */ - UINT f_uimm4; - } sfmt_trap; - struct { /* */ - IADDR i_disp24; - unsigned char out_h_gr_SI_14; - } sfmt_bl24; - struct { /* */ - IADDR i_disp8; - unsigned char out_h_gr_SI_14; - } sfmt_bl8; - struct { /* */ - SI f_imm1; - UINT f_accd; - UINT f_accs; - } sfmt_rac_dsi; - struct { /* */ - SI* i_dr; - UINT f_hi16; - UINT f_r1; - unsigned char out_dr; - } sfmt_seth; - struct { /* */ - SI* i_src1; - UINT f_accs; - UINT f_r1; - unsigned char in_src1; - } sfmt_mvtachi_a; - struct { /* */ - SI* i_dr; - UINT f_accs; - UINT f_r1; - unsigned char out_dr; - } sfmt_mvfachi_a; - struct { /* */ - ADDR i_uimm24; - SI* i_dr; - UINT f_r1; - unsigned char out_dr; - } sfmt_ld24; - struct { /* */ - SI* i_sr; - UINT f_r2; - unsigned char in_sr; - unsigned char out_h_gr_SI_14; - } sfmt_jl; - struct { /* */ - SI* i_sr; - INT f_simm16; - UINT f_r2; - UINT f_uimm3; - unsigned char in_sr; - } sfmt_bset; - struct { /* */ - SI* i_dr; - UINT f_r1; - UINT f_uimm5; - unsigned char in_dr; - unsigned char out_dr; - } sfmt_slli; - struct { /* */ - SI* i_dr; - INT f_simm8; - UINT f_r1; - unsigned char in_dr; - unsigned char out_dr; - } sfmt_addi; - struct { /* */ - SI* i_src1; - SI* i_src2; - UINT f_r1; - UINT f_r2; - unsigned char in_src1; - unsigned char in_src2; - unsigned char out_src2; - } sfmt_st_plus; - struct { /* */ - SI* i_src1; - SI* i_src2; - INT f_simm16; - UINT f_r1; - UINT f_r2; - unsigned char in_src1; - unsigned char in_src2; - } sfmt_st_d; - struct { /* */ - SI* i_src1; - SI* i_src2; - UINT f_acc; - UINT f_r1; - UINT f_r2; - unsigned char in_src1; - unsigned char in_src2; - } sfmt_machi_a; - struct { /* */ - SI* i_dr; - SI* i_sr; - UINT f_r1; - UINT f_r2; - unsigned char in_sr; - unsigned char out_dr; - unsigned char out_sr; - } sfmt_ld_plus; - struct { /* */ - IADDR i_disp16; - SI* i_src1; - SI* i_src2; - UINT f_r1; - UINT f_r2; - unsigned char in_src1; - unsigned char in_src2; - } sfmt_beq; - struct { /* */ - SI* i_dr; - SI* i_sr; - UINT f_r1; - UINT f_r2; - UINT f_uimm16; - unsigned char in_sr; - unsigned char out_dr; - } sfmt_and3; - struct { /* */ - SI* i_dr; - SI* i_sr; - INT f_simm16; - UINT f_r1; - UINT f_r2; - unsigned char in_sr; - unsigned char out_dr; - } sfmt_add3; - struct { /* */ - SI* i_dr; - SI* i_sr; - UINT f_r1; - UINT f_r2; - unsigned char in_dr; - unsigned char in_sr; - unsigned char out_dr; - } sfmt_add; -#if WITH_SCACHE_PBB - /* Writeback handler. */ - struct { - /* Pointer to argbuf entry for insn whose results need writing back. */ - const struct argbuf *abuf; - } write; - /* x-before handler */ - struct { - /*const SCACHE *insns[MAX_PARALLEL_INSNS];*/ - int first_p; - } before; - /* x-after handler */ - struct { - int empty; - } after; - /* This entry is used to terminate each pbb. */ - struct { - /* Number of insns in pbb. */ - int insn_count; - /* Next pbb to execute. */ - SCACHE *next; - SCACHE *branch_target; - } chain; -#endif -}; - -/* The ARGBUF struct. */ -struct argbuf { - /* These are the baseclass definitions. */ - IADDR addr; - const IDESC *idesc; - char trace_p; - char profile_p; - /* ??? Temporary hack for skip insns. */ - char skip_count; - char unused; - /* cpu specific data follows */ - union sem semantic; - int written; - union sem_fields fields; -}; - -/* A cached insn. - - ??? SCACHE used to contain more than just argbuf. We could delete the - type entirely and always just use ARGBUF, but for future concerns and as - a level of abstraction it is left in. */ - -struct scache { - struct argbuf argbuf; -}; - -/* Macros to simplify extraction, reading and semantic code. - These define and assign the local vars that contain the insn's fields. */ - -#define EXTRACT_IFMT_EMPTY_VARS \ - unsigned int length; -#define EXTRACT_IFMT_EMPTY_CODE \ - length = 0; \ - -#define EXTRACT_IFMT_ADD_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_ADD_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_ADD3_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_ADD3_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_AND3_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - UINT f_uimm16; \ - unsigned int length; -#define EXTRACT_IFMT_AND3_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_uimm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_OR3_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - UINT f_uimm16; \ - unsigned int length; -#define EXTRACT_IFMT_OR3_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_uimm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_ADDI_VARS \ - UINT f_op1; \ - UINT f_r1; \ - INT f_simm8; \ - unsigned int length; -#define EXTRACT_IFMT_ADDI_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_simm8 = EXTRACT_MSB0_INT (insn, 16, 8, 8); \ - -#define EXTRACT_IFMT_ADDV3_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_ADDV3_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_BC8_VARS \ - UINT f_op1; \ - UINT f_r1; \ - SI f_disp8; \ - unsigned int length; -#define EXTRACT_IFMT_BC8_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_disp8 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (2))) + (((pc) & (-4)))); \ - -#define EXTRACT_IFMT_BC24_VARS \ - UINT f_op1; \ - UINT f_r1; \ - SI f_disp24; \ - unsigned int length; -#define EXTRACT_IFMT_BC24_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_disp24 = ((((EXTRACT_MSB0_INT (insn, 32, 8, 24)) << (2))) + (pc)); \ - -#define EXTRACT_IFMT_BEQ_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - SI f_disp16; \ - unsigned int length; -#define EXTRACT_IFMT_BEQ_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_disp16 = ((((EXTRACT_MSB0_INT (insn, 32, 16, 16)) << (2))) + (pc)); \ - -#define EXTRACT_IFMT_BEQZ_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - SI f_disp16; \ - unsigned int length; -#define EXTRACT_IFMT_BEQZ_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_disp16 = ((((EXTRACT_MSB0_INT (insn, 32, 16, 16)) << (2))) + (pc)); \ - -#define EXTRACT_IFMT_CMP_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_CMP_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_CMPI_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_CMPI_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_CMPZ_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_CMPZ_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_DIV_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_DIV_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_JC_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_JC_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_LD24_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_uimm24; \ - unsigned int length; -#define EXTRACT_IFMT_LD24_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_uimm24 = EXTRACT_MSB0_UINT (insn, 32, 8, 24); \ - -#define EXTRACT_IFMT_LDI16_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_LDI16_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_MACHI_A_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_acc; \ - UINT f_op23; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_MACHI_A_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_acc = EXTRACT_MSB0_UINT (insn, 16, 8, 1); \ - f_op23 = EXTRACT_MSB0_UINT (insn, 16, 9, 3); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_MVFACHI_A_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_accs; \ - UINT f_op3; \ - unsigned int length; -#define EXTRACT_IFMT_MVFACHI_A_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_accs = EXTRACT_MSB0_UINT (insn, 16, 12, 2); \ - f_op3 = EXTRACT_MSB0_UINT (insn, 16, 14, 2); \ - -#define EXTRACT_IFMT_MVFC_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_MVFC_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_MVTACHI_A_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_accs; \ - UINT f_op3; \ - unsigned int length; -#define EXTRACT_IFMT_MVTACHI_A_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_accs = EXTRACT_MSB0_UINT (insn, 16, 12, 2); \ - f_op3 = EXTRACT_MSB0_UINT (insn, 16, 14, 2); \ - -#define EXTRACT_IFMT_MVTC_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_MVTC_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_NOP_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_NOP_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_RAC_DSI_VARS \ - UINT f_op1; \ - UINT f_accd; \ - UINT f_bits67; \ - UINT f_op2; \ - UINT f_accs; \ - UINT f_bit14; \ - SI f_imm1; \ - unsigned int length; -#define EXTRACT_IFMT_RAC_DSI_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_accd = EXTRACT_MSB0_UINT (insn, 16, 4, 2); \ - f_bits67 = EXTRACT_MSB0_UINT (insn, 16, 6, 2); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_accs = EXTRACT_MSB0_UINT (insn, 16, 12, 2); \ - f_bit14 = EXTRACT_MSB0_UINT (insn, 16, 14, 1); \ - f_imm1 = ((EXTRACT_MSB0_UINT (insn, 16, 15, 1)) + (1)); \ - -#define EXTRACT_IFMT_SETH_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - UINT f_hi16; \ - unsigned int length; -#define EXTRACT_IFMT_SETH_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_hi16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_SLLI_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_shift_op2; \ - UINT f_uimm5; \ - unsigned int length; -#define EXTRACT_IFMT_SLLI_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_shift_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 3); \ - f_uimm5 = EXTRACT_MSB0_UINT (insn, 16, 11, 5); \ - -#define EXTRACT_IFMT_ST_D_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_ST_D_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_TRAP_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_uimm4; \ - unsigned int length; -#define EXTRACT_IFMT_TRAP_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_uimm4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_SATB_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - UINT f_uimm16; \ - unsigned int length; -#define EXTRACT_IFMT_SATB_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_uimm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_CLRPSW_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_uimm8; \ - unsigned int length; -#define EXTRACT_IFMT_CLRPSW_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_uimm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \ - -#define EXTRACT_IFMT_BSET_VARS \ - UINT f_op1; \ - UINT f_bit4; \ - UINT f_uimm3; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_BSET_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_bit4 = EXTRACT_MSB0_UINT (insn, 32, 4, 1); \ - f_uimm3 = EXTRACT_MSB0_UINT (insn, 32, 5, 3); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_BTST_VARS \ - UINT f_op1; \ - UINT f_bit4; \ - UINT f_uimm3; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_BTST_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_bit4 = EXTRACT_MSB0_UINT (insn, 16, 4, 1); \ - f_uimm3 = EXTRACT_MSB0_UINT (insn, 16, 5, 3); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -/* Queued output values of an instruction. */ - -struct parexec { - union { - struct { /* empty sformat for unspecified field list */ - int empty; - } sfmt_empty; - struct { /* e.g. add $dr,$sr */ - SI dr; - } sfmt_add; - struct { /* e.g. add3 $dr,$sr,$hash$slo16 */ - SI dr; - } sfmt_add3; - struct { /* e.g. and3 $dr,$sr,$uimm16 */ - SI dr; - } sfmt_and3; - struct { /* e.g. or3 $dr,$sr,$hash$ulo16 */ - SI dr; - } sfmt_or3; - struct { /* e.g. addi $dr,$simm8 */ - SI dr; - } sfmt_addi; - struct { /* e.g. addv $dr,$sr */ - BI condbit; - SI dr; - } sfmt_addv; - struct { /* e.g. addv3 $dr,$sr,$simm16 */ - BI condbit; - SI dr; - } sfmt_addv3; - struct { /* e.g. addx $dr,$sr */ - BI condbit; - SI dr; - } sfmt_addx; - struct { /* e.g. bc.s $disp8 */ - USI pc; - } sfmt_bc8; - struct { /* e.g. bc.l $disp24 */ - USI pc; - } sfmt_bc24; - struct { /* e.g. beq $src1,$src2,$disp16 */ - USI pc; - } sfmt_beq; - struct { /* e.g. beqz $src2,$disp16 */ - USI pc; - } sfmt_beqz; - struct { /* e.g. bl.s $disp8 */ - SI h_gr_SI_14; - USI pc; - } sfmt_bl8; - struct { /* e.g. bl.l $disp24 */ - SI h_gr_SI_14; - USI pc; - } sfmt_bl24; - struct { /* e.g. bcl.s $disp8 */ - SI h_gr_SI_14; - USI pc; - } sfmt_bcl8; - struct { /* e.g. bcl.l $disp24 */ - SI h_gr_SI_14; - USI pc; - } sfmt_bcl24; - struct { /* e.g. bra.s $disp8 */ - USI pc; - } sfmt_bra8; - struct { /* e.g. bra.l $disp24 */ - USI pc; - } sfmt_bra24; - struct { /* e.g. cmp $src1,$src2 */ - BI condbit; - } sfmt_cmp; - struct { /* e.g. cmpi $src2,$simm16 */ - BI condbit; - } sfmt_cmpi; - struct { /* e.g. cmpz $src2 */ - BI condbit; - } sfmt_cmpz; - struct { /* e.g. div $dr,$sr */ - SI dr; - } sfmt_div; - struct { /* e.g. jc $sr */ - USI pc; - } sfmt_jc; - struct { /* e.g. jl $sr */ - SI h_gr_SI_14; - USI pc; - } sfmt_jl; - struct { /* e.g. jmp $sr */ - USI pc; - } sfmt_jmp; - struct { /* e.g. ld $dr,@$sr */ - SI dr; - } sfmt_ld; - struct { /* e.g. ld $dr,@($slo16,$sr) */ - SI dr; - } sfmt_ld_d; - struct { /* e.g. ldb $dr,@$sr */ - SI dr; - } sfmt_ldb; - struct { /* e.g. ldb $dr,@($slo16,$sr) */ - SI dr; - } sfmt_ldb_d; - struct { /* e.g. ldh $dr,@$sr */ - SI dr; - } sfmt_ldh; - struct { /* e.g. ldh $dr,@($slo16,$sr) */ - SI dr; - } sfmt_ldh_d; - struct { /* e.g. ld $dr,@$sr+ */ - SI dr; - SI sr; - } sfmt_ld_plus; - struct { /* e.g. ld24 $dr,$uimm24 */ - SI dr; - } sfmt_ld24; - struct { /* e.g. ldi8 $dr,$simm8 */ - SI dr; - } sfmt_ldi8; - struct { /* e.g. ldi16 $dr,$hash$slo16 */ - SI dr; - } sfmt_ldi16; - struct { /* e.g. lock $dr,@$sr */ - SI dr; - BI h_lock_BI; - } sfmt_lock; - struct { /* e.g. machi $src1,$src2,$acc */ - DI acc; - } sfmt_machi_a; - struct { /* e.g. mulhi $src1,$src2,$acc */ - DI acc; - } sfmt_mulhi_a; - struct { /* e.g. mv $dr,$sr */ - SI dr; - } sfmt_mv; - struct { /* e.g. mvfachi $dr,$accs */ - SI dr; - } sfmt_mvfachi_a; - struct { /* e.g. mvfc $dr,$scr */ - SI dr; - } sfmt_mvfc; - struct { /* e.g. mvtachi $src1,$accs */ - DI accs; - } sfmt_mvtachi_a; - struct { /* e.g. mvtc $sr,$dcr */ - USI dcr; - } sfmt_mvtc; - struct { /* e.g. nop */ - int empty; - } sfmt_nop; - struct { /* e.g. rac $accd,$accs,$imm1 */ - DI accd; - } sfmt_rac_dsi; - struct { /* e.g. rte */ - UQI h_bpsw_UQI; - USI h_cr_USI_6; - UQI h_psw_UQI; - USI pc; - } sfmt_rte; - struct { /* e.g. seth $dr,$hash$hi16 */ - SI dr; - } sfmt_seth; - struct { /* e.g. sll3 $dr,$sr,$simm16 */ - SI dr; - } sfmt_sll3; - struct { /* e.g. slli $dr,$uimm5 */ - SI dr; - } sfmt_slli; - struct { /* e.g. st $src1,@$src2 */ - SI h_memory_SI_src2; - USI h_memory_SI_src2_idx; - } sfmt_st; - struct { /* e.g. st $src1,@($slo16,$src2) */ - SI h_memory_SI_add__DFLT_src2_slo16; - USI h_memory_SI_add__DFLT_src2_slo16_idx; - } sfmt_st_d; - struct { /* e.g. stb $src1,@$src2 */ - QI h_memory_QI_src2; - USI h_memory_QI_src2_idx; - } sfmt_stb; - struct { /* e.g. stb $src1,@($slo16,$src2) */ - QI h_memory_QI_add__DFLT_src2_slo16; - USI h_memory_QI_add__DFLT_src2_slo16_idx; - } sfmt_stb_d; - struct { /* e.g. sth $src1,@$src2 */ - HI h_memory_HI_src2; - USI h_memory_HI_src2_idx; - } sfmt_sth; - struct { /* e.g. sth $src1,@($slo16,$src2) */ - HI h_memory_HI_add__DFLT_src2_slo16; - USI h_memory_HI_add__DFLT_src2_slo16_idx; - } sfmt_sth_d; - struct { /* e.g. st $src1,@+$src2 */ - SI h_memory_SI_new_src2; - USI h_memory_SI_new_src2_idx; - SI src2; - } sfmt_st_plus; - struct { /* e.g. sth $src1,@$src2+ */ - HI h_memory_HI_new_src2; - USI h_memory_HI_new_src2_idx; - SI src2; - } sfmt_sth_plus; - struct { /* e.g. stb $src1,@$src2+ */ - QI h_memory_QI_new_src2; - USI h_memory_QI_new_src2_idx; - SI src2; - } sfmt_stb_plus; - struct { /* e.g. trap $uimm4 */ - UQI h_bbpsw_UQI; - UQI h_bpsw_UQI; - USI h_cr_USI_14; - USI h_cr_USI_6; - UQI h_psw_UQI; - SI pc; - } sfmt_trap; - struct { /* e.g. unlock $src1,@$src2 */ - BI h_lock_BI; - SI h_memory_SI_src2; - USI h_memory_SI_src2_idx; - } sfmt_unlock; - struct { /* e.g. satb $dr,$sr */ - SI dr; - } sfmt_satb; - struct { /* e.g. sat $dr,$sr */ - SI dr; - } sfmt_sat; - struct { /* e.g. sadd */ - DI h_accums_DI_0; - } sfmt_sadd; - struct { /* e.g. macwu1 $src1,$src2 */ - DI h_accums_DI_1; - } sfmt_macwu1; - struct { /* e.g. msblo $src1,$src2 */ - DI accum; - } sfmt_msblo; - struct { /* e.g. mulwu1 $src1,$src2 */ - DI h_accums_DI_1; - } sfmt_mulwu1; - struct { /* e.g. sc */ - int empty; - } sfmt_sc; - struct { /* e.g. clrpsw $uimm8 */ - USI h_cr_USI_0; - } sfmt_clrpsw; - struct { /* e.g. setpsw $uimm8 */ - USI h_cr_USI_0; - } sfmt_setpsw; - struct { /* e.g. bset $uimm3,@($slo16,$sr) */ - QI h_memory_QI_add__DFLT_sr_slo16; - USI h_memory_QI_add__DFLT_sr_slo16_idx; - } sfmt_bset; - struct { /* e.g. btst $uimm3,$sr */ - BI condbit; - } sfmt_btst; - } operands; - /* For conditionally written operands, bitmask of which ones were. */ - int written; -}; - -/* Collection of various things for the trace handler to use. */ - -typedef struct trace_record { - IADDR pc; - /* FIXME:wip */ -} TRACE_RECORD; - -#endif /* CPU_M32R2F_H */ diff --git a/sim/m32r/cpuall.h b/sim/m32r/cpuall.h deleted file mode 100644 index 1985846..0000000 --- a/sim/m32r/cpuall.h +++ /dev/null @@ -1,82 +0,0 @@ -/* Simulator CPU header for m32r. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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 M32R_CPUALL_H -#define M32R_CPUALL_H - -/* Include files for each cpu family. */ - -#ifdef WANT_CPU_M32RBF -#include "eng.h" -#include "cgen-engine.h" -#include "cpu.h" -#include "decode.h" -#endif - -#ifdef WANT_CPU_M32RXF -#include "engx.h" -#include "cgen-engine.h" -#include "cpux.h" -#include "decodex.h" -#endif - -#ifdef WANT_CPU_M32R2F -#include "eng2.h" -#include "cgen-engine.h" -#include "cpu2.h" -#include "decode2.h" -#endif - -extern const MACH m32r_mach; -extern const MACH m32rx_mach; -extern const MACH m32r2_mach; - -#ifndef WANT_CPU -/* The ARGBUF struct. */ -struct argbuf { - /* These are the baseclass definitions. */ - IADDR addr; - const IDESC *idesc; - char trace_p; - char profile_p; - /* ??? Temporary hack for skip insns. */ - char skip_count; - char unused; - /* cpu specific data follows */ -}; -#endif - -#ifndef WANT_CPU -/* A cached insn. - - ??? SCACHE used to contain more than just argbuf. We could delete the - type entirely and always just use ARGBUF, but for future concerns and as - a level of abstraction it is left in. */ - -struct scache { - struct argbuf argbuf; -}; -#endif - -#endif /* M32R_CPUALL_H */ diff --git a/sim/m32r/cpux.c b/sim/m32r/cpux.c deleted file mode 100644 index f460961..0000000 --- a/sim/m32r/cpux.c +++ /dev/null @@ -1,197 +0,0 @@ -/* Misc. support for CPU family m32rxf. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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. - -*/ - -#define WANT_CPU m32rxf -#define WANT_CPU_M32RXF - -#include "sim-main.h" -#include "cgen-ops.h" - -/* Get the value of h-pc. */ - -USI -m32rxf_h_pc_get (SIM_CPU *current_cpu) -{ - return CPU (h_pc); -} - -/* Set a value for h-pc. */ - -void -m32rxf_h_pc_set (SIM_CPU *current_cpu, USI newval) -{ - CPU (h_pc) = newval; -} - -/* Get the value of h-gr. */ - -SI -m32rxf_h_gr_get (SIM_CPU *current_cpu, UINT regno) -{ - return CPU (h_gr[regno]); -} - -/* Set a value for h-gr. */ - -void -m32rxf_h_gr_set (SIM_CPU *current_cpu, UINT regno, SI newval) -{ - CPU (h_gr[regno]) = newval; -} - -/* Get the value of h-cr. */ - -USI -m32rxf_h_cr_get (SIM_CPU *current_cpu, UINT regno) -{ - return GET_H_CR (regno); -} - -/* Set a value for h-cr. */ - -void -m32rxf_h_cr_set (SIM_CPU *current_cpu, UINT regno, USI newval) -{ - SET_H_CR (regno, newval); -} - -/* Get the value of h-accum. */ - -DI -m32rxf_h_accum_get (SIM_CPU *current_cpu) -{ - return GET_H_ACCUM (); -} - -/* Set a value for h-accum. */ - -void -m32rxf_h_accum_set (SIM_CPU *current_cpu, DI newval) -{ - SET_H_ACCUM (newval); -} - -/* Get the value of h-accums. */ - -DI -m32rxf_h_accums_get (SIM_CPU *current_cpu, UINT regno) -{ - return GET_H_ACCUMS (regno); -} - -/* Set a value for h-accums. */ - -void -m32rxf_h_accums_set (SIM_CPU *current_cpu, UINT regno, DI newval) -{ - SET_H_ACCUMS (regno, newval); -} - -/* Get the value of h-cond. */ - -BI -m32rxf_h_cond_get (SIM_CPU *current_cpu) -{ - return CPU (h_cond); -} - -/* Set a value for h-cond. */ - -void -m32rxf_h_cond_set (SIM_CPU *current_cpu, BI newval) -{ - CPU (h_cond) = newval; -} - -/* Get the value of h-psw. */ - -UQI -m32rxf_h_psw_get (SIM_CPU *current_cpu) -{ - return GET_H_PSW (); -} - -/* Set a value for h-psw. */ - -void -m32rxf_h_psw_set (SIM_CPU *current_cpu, UQI newval) -{ - SET_H_PSW (newval); -} - -/* Get the value of h-bpsw. */ - -UQI -m32rxf_h_bpsw_get (SIM_CPU *current_cpu) -{ - return CPU (h_bpsw); -} - -/* Set a value for h-bpsw. */ - -void -m32rxf_h_bpsw_set (SIM_CPU *current_cpu, UQI newval) -{ - CPU (h_bpsw) = newval; -} - -/* Get the value of h-bbpsw. */ - -UQI -m32rxf_h_bbpsw_get (SIM_CPU *current_cpu) -{ - return CPU (h_bbpsw); -} - -/* Set a value for h-bbpsw. */ - -void -m32rxf_h_bbpsw_set (SIM_CPU *current_cpu, UQI newval) -{ - CPU (h_bbpsw) = newval; -} - -/* Get the value of h-lock. */ - -BI -m32rxf_h_lock_get (SIM_CPU *current_cpu) -{ - return CPU (h_lock); -} - -/* Set a value for h-lock. */ - -void -m32rxf_h_lock_set (SIM_CPU *current_cpu, BI newval) -{ - CPU (h_lock) = newval; -} - -/* Record trace results for INSN. */ - -void -m32rxf_record_trace_results (SIM_CPU *current_cpu, CGEN_INSN *insn, - int *indices, TRACE_RECORD *tr) -{ -} diff --git a/sim/m32r/cpux.h b/sim/m32r/cpux.h deleted file mode 100644 index 1f0390c..0000000 --- a/sim/m32r/cpux.h +++ /dev/null @@ -1,1046 +0,0 @@ -/* CPU family header for m32rxf. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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 CPU_M32RXF_H -#define CPU_M32RXF_H - -/* Maximum number of instructions that are fetched at a time. - This is for LIW type instructions sets (e.g. m32r). */ -#define MAX_LIW_INSNS 2 - -/* Maximum number of instructions that can be executed in parallel. */ -#define MAX_PARALLEL_INSNS 2 - -/* CPU state information. */ -typedef struct { - /* Hardware elements. */ - struct { - /* program counter */ - USI h_pc; -#define GET_H_PC() CPU (h_pc) -#define SET_H_PC(x) (CPU (h_pc) = (x)) - /* general registers */ - SI h_gr[16]; -#define GET_H_GR(a1) CPU (h_gr)[a1] -#define SET_H_GR(a1, x) (CPU (h_gr)[a1] = (x)) - /* control registers */ - USI h_cr[16]; -#define GET_H_CR(index) m32rxf_h_cr_get_handler (current_cpu, index) -#define SET_H_CR(index, x) \ -do { \ -m32rxf_h_cr_set_handler (current_cpu, (index), (x));\ -;} while (0) - /* accumulator */ - DI h_accum; -#define GET_H_ACCUM() m32rxf_h_accum_get_handler (current_cpu) -#define SET_H_ACCUM(x) \ -do { \ -m32rxf_h_accum_set_handler (current_cpu, (x));\ -;} while (0) - /* accumulators */ - DI h_accums[2]; -#define GET_H_ACCUMS(index) m32rxf_h_accums_get_handler (current_cpu, index) -#define SET_H_ACCUMS(index, x) \ -do { \ -m32rxf_h_accums_set_handler (current_cpu, (index), (x));\ -;} while (0) - /* condition bit */ - BI h_cond; -#define GET_H_COND() CPU (h_cond) -#define SET_H_COND(x) (CPU (h_cond) = (x)) - /* psw part of psw */ - UQI h_psw; -#define GET_H_PSW() m32rxf_h_psw_get_handler (current_cpu) -#define SET_H_PSW(x) \ -do { \ -m32rxf_h_psw_set_handler (current_cpu, (x));\ -;} while (0) - /* backup psw */ - UQI h_bpsw; -#define GET_H_BPSW() CPU (h_bpsw) -#define SET_H_BPSW(x) (CPU (h_bpsw) = (x)) - /* backup bpsw */ - UQI h_bbpsw; -#define GET_H_BBPSW() CPU (h_bbpsw) -#define SET_H_BBPSW(x) (CPU (h_bbpsw) = (x)) - /* lock */ - BI h_lock; -#define GET_H_LOCK() CPU (h_lock) -#define SET_H_LOCK(x) (CPU (h_lock) = (x)) - } hardware; -#define CPU_CGEN_HW(cpu) (& (cpu)->cpu_data.hardware) -} M32RXF_CPU_DATA; - -/* Cover fns for register access. */ -USI m32rxf_h_pc_get (SIM_CPU *); -void m32rxf_h_pc_set (SIM_CPU *, USI); -SI m32rxf_h_gr_get (SIM_CPU *, UINT); -void m32rxf_h_gr_set (SIM_CPU *, UINT, SI); -USI m32rxf_h_cr_get (SIM_CPU *, UINT); -void m32rxf_h_cr_set (SIM_CPU *, UINT, USI); -DI m32rxf_h_accum_get (SIM_CPU *); -void m32rxf_h_accum_set (SIM_CPU *, DI); -DI m32rxf_h_accums_get (SIM_CPU *, UINT); -void m32rxf_h_accums_set (SIM_CPU *, UINT, DI); -BI m32rxf_h_cond_get (SIM_CPU *); -void m32rxf_h_cond_set (SIM_CPU *, BI); -UQI m32rxf_h_psw_get (SIM_CPU *); -void m32rxf_h_psw_set (SIM_CPU *, UQI); -UQI m32rxf_h_bpsw_get (SIM_CPU *); -void m32rxf_h_bpsw_set (SIM_CPU *, UQI); -UQI m32rxf_h_bbpsw_get (SIM_CPU *); -void m32rxf_h_bbpsw_set (SIM_CPU *, UQI); -BI m32rxf_h_lock_get (SIM_CPU *); -void m32rxf_h_lock_set (SIM_CPU *, BI); - -/* These must be hand-written. */ -extern CPUREG_FETCH_FN m32rxf_fetch_register; -extern CPUREG_STORE_FN m32rxf_store_register; - -typedef struct { - int empty; -} MODEL_M32RX_DATA; - -/* Instruction argument buffer. */ - -union sem_fields { - struct { /* no operands */ - int empty; - } fmt_empty; - struct { /* */ - UINT f_uimm8; - } sfmt_clrpsw; - struct { /* */ - UINT f_uimm4; - } sfmt_trap; - struct { /* */ - IADDR i_disp24; - unsigned char out_h_gr_SI_14; - } sfmt_bl24; - struct { /* */ - IADDR i_disp8; - unsigned char out_h_gr_SI_14; - } sfmt_bl8; - struct { /* */ - SI f_imm1; - UINT f_accd; - UINT f_accs; - } sfmt_rac_dsi; - struct { /* */ - SI* i_dr; - UINT f_hi16; - UINT f_r1; - unsigned char out_dr; - } sfmt_seth; - struct { /* */ - SI* i_src1; - UINT f_accs; - UINT f_r1; - unsigned char in_src1; - } sfmt_mvtachi_a; - struct { /* */ - SI* i_dr; - UINT f_accs; - UINT f_r1; - unsigned char out_dr; - } sfmt_mvfachi_a; - struct { /* */ - ADDR i_uimm24; - SI* i_dr; - UINT f_r1; - unsigned char out_dr; - } sfmt_ld24; - struct { /* */ - SI* i_sr; - UINT f_r2; - unsigned char in_sr; - unsigned char out_h_gr_SI_14; - } sfmt_jl; - struct { /* */ - SI* i_sr; - INT f_simm16; - UINT f_r2; - UINT f_uimm3; - unsigned char in_sr; - } sfmt_bset; - struct { /* */ - SI* i_dr; - UINT f_r1; - UINT f_uimm5; - unsigned char in_dr; - unsigned char out_dr; - } sfmt_slli; - struct { /* */ - SI* i_dr; - INT f_simm8; - UINT f_r1; - unsigned char in_dr; - unsigned char out_dr; - } sfmt_addi; - struct { /* */ - SI* i_src1; - SI* i_src2; - UINT f_r1; - UINT f_r2; - unsigned char in_src1; - unsigned char in_src2; - unsigned char out_src2; - } sfmt_st_plus; - struct { /* */ - SI* i_src1; - SI* i_src2; - INT f_simm16; - UINT f_r1; - UINT f_r2; - unsigned char in_src1; - unsigned char in_src2; - } sfmt_st_d; - struct { /* */ - SI* i_src1; - SI* i_src2; - UINT f_acc; - UINT f_r1; - UINT f_r2; - unsigned char in_src1; - unsigned char in_src2; - } sfmt_machi_a; - struct { /* */ - SI* i_dr; - SI* i_sr; - UINT f_r1; - UINT f_r2; - unsigned char in_sr; - unsigned char out_dr; - unsigned char out_sr; - } sfmt_ld_plus; - struct { /* */ - IADDR i_disp16; - SI* i_src1; - SI* i_src2; - UINT f_r1; - UINT f_r2; - unsigned char in_src1; - unsigned char in_src2; - } sfmt_beq; - struct { /* */ - SI* i_dr; - SI* i_sr; - UINT f_r1; - UINT f_r2; - UINT f_uimm16; - unsigned char in_sr; - unsigned char out_dr; - } sfmt_and3; - struct { /* */ - SI* i_dr; - SI* i_sr; - INT f_simm16; - UINT f_r1; - UINT f_r2; - unsigned char in_sr; - unsigned char out_dr; - } sfmt_add3; - struct { /* */ - SI* i_dr; - SI* i_sr; - UINT f_r1; - UINT f_r2; - unsigned char in_dr; - unsigned char in_sr; - unsigned char out_dr; - } sfmt_add; -#if WITH_SCACHE_PBB - /* Writeback handler. */ - struct { - /* Pointer to argbuf entry for insn whose results need writing back. */ - const struct argbuf *abuf; - } write; - /* x-before handler */ - struct { - /*const SCACHE *insns[MAX_PARALLEL_INSNS];*/ - int first_p; - } before; - /* x-after handler */ - struct { - int empty; - } after; - /* This entry is used to terminate each pbb. */ - struct { - /* Number of insns in pbb. */ - int insn_count; - /* Next pbb to execute. */ - SCACHE *next; - SCACHE *branch_target; - } chain; -#endif -}; - -/* The ARGBUF struct. */ -struct argbuf { - /* These are the baseclass definitions. */ - IADDR addr; - const IDESC *idesc; - char trace_p; - char profile_p; - /* ??? Temporary hack for skip insns. */ - char skip_count; - char unused; - /* cpu specific data follows */ - union sem semantic; - int written; - union sem_fields fields; -}; - -/* A cached insn. - - ??? SCACHE used to contain more than just argbuf. We could delete the - type entirely and always just use ARGBUF, but for future concerns and as - a level of abstraction it is left in. */ - -struct scache { - struct argbuf argbuf; -}; - -/* Macros to simplify extraction, reading and semantic code. - These define and assign the local vars that contain the insn's fields. */ - -#define EXTRACT_IFMT_EMPTY_VARS \ - unsigned int length; -#define EXTRACT_IFMT_EMPTY_CODE \ - length = 0; \ - -#define EXTRACT_IFMT_ADD_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_ADD_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_ADD3_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_ADD3_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_AND3_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - UINT f_uimm16; \ - unsigned int length; -#define EXTRACT_IFMT_AND3_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_uimm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_OR3_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - UINT f_uimm16; \ - unsigned int length; -#define EXTRACT_IFMT_OR3_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_uimm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_ADDI_VARS \ - UINT f_op1; \ - UINT f_r1; \ - INT f_simm8; \ - unsigned int length; -#define EXTRACT_IFMT_ADDI_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_simm8 = EXTRACT_MSB0_INT (insn, 16, 8, 8); \ - -#define EXTRACT_IFMT_ADDV3_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_ADDV3_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_BC8_VARS \ - UINT f_op1; \ - UINT f_r1; \ - SI f_disp8; \ - unsigned int length; -#define EXTRACT_IFMT_BC8_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_disp8 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (2))) + (((pc) & (-4)))); \ - -#define EXTRACT_IFMT_BC24_VARS \ - UINT f_op1; \ - UINT f_r1; \ - SI f_disp24; \ - unsigned int length; -#define EXTRACT_IFMT_BC24_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_disp24 = ((((EXTRACT_MSB0_INT (insn, 32, 8, 24)) << (2))) + (pc)); \ - -#define EXTRACT_IFMT_BEQ_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - SI f_disp16; \ - unsigned int length; -#define EXTRACT_IFMT_BEQ_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_disp16 = ((((EXTRACT_MSB0_INT (insn, 32, 16, 16)) << (2))) + (pc)); \ - -#define EXTRACT_IFMT_BEQZ_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - SI f_disp16; \ - unsigned int length; -#define EXTRACT_IFMT_BEQZ_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_disp16 = ((((EXTRACT_MSB0_INT (insn, 32, 16, 16)) << (2))) + (pc)); \ - -#define EXTRACT_IFMT_CMP_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_CMP_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_CMPI_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_CMPI_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_CMPZ_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_CMPZ_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_DIV_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_DIV_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_JC_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_JC_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_LD24_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_uimm24; \ - unsigned int length; -#define EXTRACT_IFMT_LD24_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_uimm24 = EXTRACT_MSB0_UINT (insn, 32, 8, 24); \ - -#define EXTRACT_IFMT_LDI16_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_LDI16_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_MACHI_A_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_acc; \ - UINT f_op23; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_MACHI_A_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_acc = EXTRACT_MSB0_UINT (insn, 16, 8, 1); \ - f_op23 = EXTRACT_MSB0_UINT (insn, 16, 9, 3); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_MVFACHI_A_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_accs; \ - UINT f_op3; \ - unsigned int length; -#define EXTRACT_IFMT_MVFACHI_A_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_accs = EXTRACT_MSB0_UINT (insn, 16, 12, 2); \ - f_op3 = EXTRACT_MSB0_UINT (insn, 16, 14, 2); \ - -#define EXTRACT_IFMT_MVFC_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_MVFC_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_MVTACHI_A_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_accs; \ - UINT f_op3; \ - unsigned int length; -#define EXTRACT_IFMT_MVTACHI_A_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_accs = EXTRACT_MSB0_UINT (insn, 16, 12, 2); \ - f_op3 = EXTRACT_MSB0_UINT (insn, 16, 14, 2); \ - -#define EXTRACT_IFMT_MVTC_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_MVTC_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_NOP_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_NOP_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_RAC_DSI_VARS \ - UINT f_op1; \ - UINT f_accd; \ - UINT f_bits67; \ - UINT f_op2; \ - UINT f_accs; \ - UINT f_bit14; \ - SI f_imm1; \ - unsigned int length; -#define EXTRACT_IFMT_RAC_DSI_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_accd = EXTRACT_MSB0_UINT (insn, 16, 4, 2); \ - f_bits67 = EXTRACT_MSB0_UINT (insn, 16, 6, 2); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_accs = EXTRACT_MSB0_UINT (insn, 16, 12, 2); \ - f_bit14 = EXTRACT_MSB0_UINT (insn, 16, 14, 1); \ - f_imm1 = ((EXTRACT_MSB0_UINT (insn, 16, 15, 1)) + (1)); \ - -#define EXTRACT_IFMT_SETH_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - UINT f_hi16; \ - unsigned int length; -#define EXTRACT_IFMT_SETH_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_hi16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_SLLI_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_shift_op2; \ - UINT f_uimm5; \ - unsigned int length; -#define EXTRACT_IFMT_SLLI_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_shift_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 3); \ - f_uimm5 = EXTRACT_MSB0_UINT (insn, 16, 11, 5); \ - -#define EXTRACT_IFMT_ST_D_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_ST_D_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_TRAP_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_uimm4; \ - unsigned int length; -#define EXTRACT_IFMT_TRAP_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_uimm4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -#define EXTRACT_IFMT_SATB_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_op2; \ - UINT f_r2; \ - UINT f_uimm16; \ - unsigned int length; -#define EXTRACT_IFMT_SATB_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_uimm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_CLRPSW_VARS \ - UINT f_op1; \ - UINT f_r1; \ - UINT f_uimm8; \ - unsigned int length; -#define EXTRACT_IFMT_CLRPSW_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ - f_uimm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \ - -#define EXTRACT_IFMT_BSET_VARS \ - UINT f_op1; \ - UINT f_bit4; \ - UINT f_uimm3; \ - UINT f_op2; \ - UINT f_r2; \ - INT f_simm16; \ - unsigned int length; -#define EXTRACT_IFMT_BSET_CODE \ - length = 4; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \ - f_bit4 = EXTRACT_MSB0_UINT (insn, 32, 4, 1); \ - f_uimm3 = EXTRACT_MSB0_UINT (insn, 32, 5, 3); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \ - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \ - -#define EXTRACT_IFMT_BTST_VARS \ - UINT f_op1; \ - UINT f_bit4; \ - UINT f_uimm3; \ - UINT f_op2; \ - UINT f_r2; \ - unsigned int length; -#define EXTRACT_IFMT_BTST_CODE \ - length = 2; \ - f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ - f_bit4 = EXTRACT_MSB0_UINT (insn, 16, 4, 1); \ - f_uimm3 = EXTRACT_MSB0_UINT (insn, 16, 5, 3); \ - f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ - -/* Queued output values of an instruction. */ - -struct parexec { - union { - struct { /* empty sformat for unspecified field list */ - int empty; - } sfmt_empty; - struct { /* e.g. add $dr,$sr */ - SI dr; - } sfmt_add; - struct { /* e.g. add3 $dr,$sr,$hash$slo16 */ - SI dr; - } sfmt_add3; - struct { /* e.g. and3 $dr,$sr,$uimm16 */ - SI dr; - } sfmt_and3; - struct { /* e.g. or3 $dr,$sr,$hash$ulo16 */ - SI dr; - } sfmt_or3; - struct { /* e.g. addi $dr,$simm8 */ - SI dr; - } sfmt_addi; - struct { /* e.g. addv $dr,$sr */ - BI condbit; - SI dr; - } sfmt_addv; - struct { /* e.g. addv3 $dr,$sr,$simm16 */ - BI condbit; - SI dr; - } sfmt_addv3; - struct { /* e.g. addx $dr,$sr */ - BI condbit; - SI dr; - } sfmt_addx; - struct { /* e.g. bc.s $disp8 */ - USI pc; - } sfmt_bc8; - struct { /* e.g. bc.l $disp24 */ - USI pc; - } sfmt_bc24; - struct { /* e.g. beq $src1,$src2,$disp16 */ - USI pc; - } sfmt_beq; - struct { /* e.g. beqz $src2,$disp16 */ - USI pc; - } sfmt_beqz; - struct { /* e.g. bl.s $disp8 */ - SI h_gr_SI_14; - USI pc; - } sfmt_bl8; - struct { /* e.g. bl.l $disp24 */ - SI h_gr_SI_14; - USI pc; - } sfmt_bl24; - struct { /* e.g. bcl.s $disp8 */ - SI h_gr_SI_14; - USI pc; - } sfmt_bcl8; - struct { /* e.g. bcl.l $disp24 */ - SI h_gr_SI_14; - USI pc; - } sfmt_bcl24; - struct { /* e.g. bra.s $disp8 */ - USI pc; - } sfmt_bra8; - struct { /* e.g. bra.l $disp24 */ - USI pc; - } sfmt_bra24; - struct { /* e.g. cmp $src1,$src2 */ - BI condbit; - } sfmt_cmp; - struct { /* e.g. cmpi $src2,$simm16 */ - BI condbit; - } sfmt_cmpi; - struct { /* e.g. cmpz $src2 */ - BI condbit; - } sfmt_cmpz; - struct { /* e.g. div $dr,$sr */ - SI dr; - } sfmt_div; - struct { /* e.g. jc $sr */ - USI pc; - } sfmt_jc; - struct { /* e.g. jl $sr */ - SI h_gr_SI_14; - USI pc; - } sfmt_jl; - struct { /* e.g. jmp $sr */ - USI pc; - } sfmt_jmp; - struct { /* e.g. ld $dr,@$sr */ - SI dr; - } sfmt_ld; - struct { /* e.g. ld $dr,@($slo16,$sr) */ - SI dr; - } sfmt_ld_d; - struct { /* e.g. ldb $dr,@$sr */ - SI dr; - } sfmt_ldb; - struct { /* e.g. ldb $dr,@($slo16,$sr) */ - SI dr; - } sfmt_ldb_d; - struct { /* e.g. ldh $dr,@$sr */ - SI dr; - } sfmt_ldh; - struct { /* e.g. ldh $dr,@($slo16,$sr) */ - SI dr; - } sfmt_ldh_d; - struct { /* e.g. ld $dr,@$sr+ */ - SI dr; - SI sr; - } sfmt_ld_plus; - struct { /* e.g. ld24 $dr,$uimm24 */ - SI dr; - } sfmt_ld24; - struct { /* e.g. ldi8 $dr,$simm8 */ - SI dr; - } sfmt_ldi8; - struct { /* e.g. ldi16 $dr,$hash$slo16 */ - SI dr; - } sfmt_ldi16; - struct { /* e.g. lock $dr,@$sr */ - SI dr; - BI h_lock_BI; - } sfmt_lock; - struct { /* e.g. machi $src1,$src2,$acc */ - DI acc; - } sfmt_machi_a; - struct { /* e.g. mulhi $src1,$src2,$acc */ - DI acc; - } sfmt_mulhi_a; - struct { /* e.g. mv $dr,$sr */ - SI dr; - } sfmt_mv; - struct { /* e.g. mvfachi $dr,$accs */ - SI dr; - } sfmt_mvfachi_a; - struct { /* e.g. mvfc $dr,$scr */ - SI dr; - } sfmt_mvfc; - struct { /* e.g. mvtachi $src1,$accs */ - DI accs; - } sfmt_mvtachi_a; - struct { /* e.g. mvtc $sr,$dcr */ - USI dcr; - } sfmt_mvtc; - struct { /* e.g. nop */ - int empty; - } sfmt_nop; - struct { /* e.g. rac $accd,$accs,$imm1 */ - DI accd; - } sfmt_rac_dsi; - struct { /* e.g. rte */ - UQI h_bpsw_UQI; - USI h_cr_USI_6; - UQI h_psw_UQI; - USI pc; - } sfmt_rte; - struct { /* e.g. seth $dr,$hash$hi16 */ - SI dr; - } sfmt_seth; - struct { /* e.g. sll3 $dr,$sr,$simm16 */ - SI dr; - } sfmt_sll3; - struct { /* e.g. slli $dr,$uimm5 */ - SI dr; - } sfmt_slli; - struct { /* e.g. st $src1,@$src2 */ - SI h_memory_SI_src2; - USI h_memory_SI_src2_idx; - } sfmt_st; - struct { /* e.g. st $src1,@($slo16,$src2) */ - SI h_memory_SI_add__DFLT_src2_slo16; - USI h_memory_SI_add__DFLT_src2_slo16_idx; - } sfmt_st_d; - struct { /* e.g. stb $src1,@$src2 */ - QI h_memory_QI_src2; - USI h_memory_QI_src2_idx; - } sfmt_stb; - struct { /* e.g. stb $src1,@($slo16,$src2) */ - QI h_memory_QI_add__DFLT_src2_slo16; - USI h_memory_QI_add__DFLT_src2_slo16_idx; - } sfmt_stb_d; - struct { /* e.g. sth $src1,@$src2 */ - HI h_memory_HI_src2; - USI h_memory_HI_src2_idx; - } sfmt_sth; - struct { /* e.g. sth $src1,@($slo16,$src2) */ - HI h_memory_HI_add__DFLT_src2_slo16; - USI h_memory_HI_add__DFLT_src2_slo16_idx; - } sfmt_sth_d; - struct { /* e.g. st $src1,@+$src2 */ - SI h_memory_SI_new_src2; - USI h_memory_SI_new_src2_idx; - SI src2; - } sfmt_st_plus; - struct { /* e.g. sth $src1,@$src2+ */ - HI h_memory_HI_new_src2; - USI h_memory_HI_new_src2_idx; - SI src2; - } sfmt_sth_plus; - struct { /* e.g. stb $src1,@$src2+ */ - QI h_memory_QI_new_src2; - USI h_memory_QI_new_src2_idx; - SI src2; - } sfmt_stb_plus; - struct { /* e.g. trap $uimm4 */ - UQI h_bbpsw_UQI; - UQI h_bpsw_UQI; - USI h_cr_USI_14; - USI h_cr_USI_6; - UQI h_psw_UQI; - SI pc; - } sfmt_trap; - struct { /* e.g. unlock $src1,@$src2 */ - BI h_lock_BI; - SI h_memory_SI_src2; - USI h_memory_SI_src2_idx; - } sfmt_unlock; - struct { /* e.g. satb $dr,$sr */ - SI dr; - } sfmt_satb; - struct { /* e.g. sat $dr,$sr */ - SI dr; - } sfmt_sat; - struct { /* e.g. sadd */ - DI h_accums_DI_0; - } sfmt_sadd; - struct { /* e.g. macwu1 $src1,$src2 */ - DI h_accums_DI_1; - } sfmt_macwu1; - struct { /* e.g. msblo $src1,$src2 */ - DI accum; - } sfmt_msblo; - struct { /* e.g. mulwu1 $src1,$src2 */ - DI h_accums_DI_1; - } sfmt_mulwu1; - struct { /* e.g. sc */ - int empty; - } sfmt_sc; - struct { /* e.g. clrpsw $uimm8 */ - USI h_cr_USI_0; - } sfmt_clrpsw; - struct { /* e.g. setpsw $uimm8 */ - USI h_cr_USI_0; - } sfmt_setpsw; - struct { /* e.g. bset $uimm3,@($slo16,$sr) */ - QI h_memory_QI_add__DFLT_sr_slo16; - USI h_memory_QI_add__DFLT_sr_slo16_idx; - } sfmt_bset; - struct { /* e.g. btst $uimm3,$sr */ - BI condbit; - } sfmt_btst; - } operands; - /* For conditionally written operands, bitmask of which ones were. */ - int written; -}; - -/* Collection of various things for the trace handler to use. */ - -typedef struct trace_record { - IADDR pc; - /* FIXME:wip */ -} TRACE_RECORD; - -#endif /* CPU_M32RXF_H */ diff --git a/sim/m32r/decode.c b/sim/m32r/decode.c deleted file mode 100644 index 0831af4..0000000 --- a/sim/m32r/decode.c +++ /dev/null @@ -1,2113 +0,0 @@ -/* Simulator instruction decoder for m32rbf. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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. - -*/ - -#define WANT_CPU m32rbf -#define WANT_CPU_M32RBF - -#include "sim-main.h" -#include "sim-assert.h" - -/* The instruction descriptor array. - This is computed at runtime. Space for it is not malloc'd to save a - teensy bit of cpu in the decoder. Moving it to malloc space is trivial - but won't be done until necessary (we don't currently support the runtime - addition of instructions nor an SMP machine with different cpus). */ -static IDESC m32rbf_insn_data[M32RBF_INSN__MAX]; - -/* Commas between elements are contained in the macros. - Some of these are conditionally compiled out. */ - -static const struct insn_sem m32rbf_insn_sem[] = -{ - { VIRTUAL_INSN_X_INVALID, M32RBF_INSN_X_INVALID, M32RBF_SFMT_EMPTY }, - { VIRTUAL_INSN_X_AFTER, M32RBF_INSN_X_AFTER, M32RBF_SFMT_EMPTY }, - { VIRTUAL_INSN_X_BEFORE, M32RBF_INSN_X_BEFORE, M32RBF_SFMT_EMPTY }, - { VIRTUAL_INSN_X_CTI_CHAIN, M32RBF_INSN_X_CTI_CHAIN, M32RBF_SFMT_EMPTY }, - { VIRTUAL_INSN_X_CHAIN, M32RBF_INSN_X_CHAIN, M32RBF_SFMT_EMPTY }, - { VIRTUAL_INSN_X_BEGIN, M32RBF_INSN_X_BEGIN, M32RBF_SFMT_EMPTY }, - { M32R_INSN_ADD, M32RBF_INSN_ADD, M32RBF_SFMT_ADD }, - { M32R_INSN_ADD3, M32RBF_INSN_ADD3, M32RBF_SFMT_ADD3 }, - { M32R_INSN_AND, M32RBF_INSN_AND, M32RBF_SFMT_ADD }, - { M32R_INSN_AND3, M32RBF_INSN_AND3, M32RBF_SFMT_AND3 }, - { M32R_INSN_OR, M32RBF_INSN_OR, M32RBF_SFMT_ADD }, - { M32R_INSN_OR3, M32RBF_INSN_OR3, M32RBF_SFMT_OR3 }, - { M32R_INSN_XOR, M32RBF_INSN_XOR, M32RBF_SFMT_ADD }, - { M32R_INSN_XOR3, M32RBF_INSN_XOR3, M32RBF_SFMT_AND3 }, - { M32R_INSN_ADDI, M32RBF_INSN_ADDI, M32RBF_SFMT_ADDI }, - { M32R_INSN_ADDV, M32RBF_INSN_ADDV, M32RBF_SFMT_ADDV }, - { M32R_INSN_ADDV3, M32RBF_INSN_ADDV3, M32RBF_SFMT_ADDV3 }, - { M32R_INSN_ADDX, M32RBF_INSN_ADDX, M32RBF_SFMT_ADDX }, - { M32R_INSN_BC8, M32RBF_INSN_BC8, M32RBF_SFMT_BC8 }, - { M32R_INSN_BC24, M32RBF_INSN_BC24, M32RBF_SFMT_BC24 }, - { M32R_INSN_BEQ, M32RBF_INSN_BEQ, M32RBF_SFMT_BEQ }, - { M32R_INSN_BEQZ, M32RBF_INSN_BEQZ, M32RBF_SFMT_BEQZ }, - { M32R_INSN_BGEZ, M32RBF_INSN_BGEZ, M32RBF_SFMT_BEQZ }, - { M32R_INSN_BGTZ, M32RBF_INSN_BGTZ, M32RBF_SFMT_BEQZ }, - { M32R_INSN_BLEZ, M32RBF_INSN_BLEZ, M32RBF_SFMT_BEQZ }, - { M32R_INSN_BLTZ, M32RBF_INSN_BLTZ, M32RBF_SFMT_BEQZ }, - { M32R_INSN_BNEZ, M32RBF_INSN_BNEZ, M32RBF_SFMT_BEQZ }, - { M32R_INSN_BL8, M32RBF_INSN_BL8, M32RBF_SFMT_BL8 }, - { M32R_INSN_BL24, M32RBF_INSN_BL24, M32RBF_SFMT_BL24 }, - { M32R_INSN_BNC8, M32RBF_INSN_BNC8, M32RBF_SFMT_BC8 }, - { M32R_INSN_BNC24, M32RBF_INSN_BNC24, M32RBF_SFMT_BC24 }, - { M32R_INSN_BNE, M32RBF_INSN_BNE, M32RBF_SFMT_BEQ }, - { M32R_INSN_BRA8, M32RBF_INSN_BRA8, M32RBF_SFMT_BRA8 }, - { M32R_INSN_BRA24, M32RBF_INSN_BRA24, M32RBF_SFMT_BRA24 }, - { M32R_INSN_CMP, M32RBF_INSN_CMP, M32RBF_SFMT_CMP }, - { M32R_INSN_CMPI, M32RBF_INSN_CMPI, M32RBF_SFMT_CMPI }, - { M32R_INSN_CMPU, M32RBF_INSN_CMPU, M32RBF_SFMT_CMP }, - { M32R_INSN_CMPUI, M32RBF_INSN_CMPUI, M32RBF_SFMT_CMPI }, - { M32R_INSN_DIV, M32RBF_INSN_DIV, M32RBF_SFMT_DIV }, - { M32R_INSN_DIVU, M32RBF_INSN_DIVU, M32RBF_SFMT_DIV }, - { M32R_INSN_REM, M32RBF_INSN_REM, M32RBF_SFMT_DIV }, - { M32R_INSN_REMU, M32RBF_INSN_REMU, M32RBF_SFMT_DIV }, - { M32R_INSN_JL, M32RBF_INSN_JL, M32RBF_SFMT_JL }, - { M32R_INSN_JMP, M32RBF_INSN_JMP, M32RBF_SFMT_JMP }, - { M32R_INSN_LD, M32RBF_INSN_LD, M32RBF_SFMT_LD }, - { M32R_INSN_LD_D, M32RBF_INSN_LD_D, M32RBF_SFMT_LD_D }, - { M32R_INSN_LDB, M32RBF_INSN_LDB, M32RBF_SFMT_LDB }, - { M32R_INSN_LDB_D, M32RBF_INSN_LDB_D, M32RBF_SFMT_LDB_D }, - { M32R_INSN_LDH, M32RBF_INSN_LDH, M32RBF_SFMT_LDH }, - { M32R_INSN_LDH_D, M32RBF_INSN_LDH_D, M32RBF_SFMT_LDH_D }, - { M32R_INSN_LDUB, M32RBF_INSN_LDUB, M32RBF_SFMT_LDB }, - { M32R_INSN_LDUB_D, M32RBF_INSN_LDUB_D, M32RBF_SFMT_LDB_D }, - { M32R_INSN_LDUH, M32RBF_INSN_LDUH, M32RBF_SFMT_LDH }, - { M32R_INSN_LDUH_D, M32RBF_INSN_LDUH_D, M32RBF_SFMT_LDH_D }, - { M32R_INSN_LD_PLUS, M32RBF_INSN_LD_PLUS, M32RBF_SFMT_LD_PLUS }, - { M32R_INSN_LD24, M32RBF_INSN_LD24, M32RBF_SFMT_LD24 }, - { M32R_INSN_LDI8, M32RBF_INSN_LDI8, M32RBF_SFMT_LDI8 }, - { M32R_INSN_LDI16, M32RBF_INSN_LDI16, M32RBF_SFMT_LDI16 }, - { M32R_INSN_LOCK, M32RBF_INSN_LOCK, M32RBF_SFMT_LOCK }, - { M32R_INSN_MACHI, M32RBF_INSN_MACHI, M32RBF_SFMT_MACHI }, - { M32R_INSN_MACLO, M32RBF_INSN_MACLO, M32RBF_SFMT_MACHI }, - { M32R_INSN_MACWHI, M32RBF_INSN_MACWHI, M32RBF_SFMT_MACHI }, - { M32R_INSN_MACWLO, M32RBF_INSN_MACWLO, M32RBF_SFMT_MACHI }, - { M32R_INSN_MUL, M32RBF_INSN_MUL, M32RBF_SFMT_ADD }, - { M32R_INSN_MULHI, M32RBF_INSN_MULHI, M32RBF_SFMT_MULHI }, - { M32R_INSN_MULLO, M32RBF_INSN_MULLO, M32RBF_SFMT_MULHI }, - { M32R_INSN_MULWHI, M32RBF_INSN_MULWHI, M32RBF_SFMT_MULHI }, - { M32R_INSN_MULWLO, M32RBF_INSN_MULWLO, M32RBF_SFMT_MULHI }, - { M32R_INSN_MV, M32RBF_INSN_MV, M32RBF_SFMT_MV }, - { M32R_INSN_MVFACHI, M32RBF_INSN_MVFACHI, M32RBF_SFMT_MVFACHI }, - { M32R_INSN_MVFACLO, M32RBF_INSN_MVFACLO, M32RBF_SFMT_MVFACHI }, - { M32R_INSN_MVFACMI, M32RBF_INSN_MVFACMI, M32RBF_SFMT_MVFACHI }, - { M32R_INSN_MVFC, M32RBF_INSN_MVFC, M32RBF_SFMT_MVFC }, - { M32R_INSN_MVTACHI, M32RBF_INSN_MVTACHI, M32RBF_SFMT_MVTACHI }, - { M32R_INSN_MVTACLO, M32RBF_INSN_MVTACLO, M32RBF_SFMT_MVTACHI }, - { M32R_INSN_MVTC, M32RBF_INSN_MVTC, M32RBF_SFMT_MVTC }, - { M32R_INSN_NEG, M32RBF_INSN_NEG, M32RBF_SFMT_MV }, - { M32R_INSN_NOP, M32RBF_INSN_NOP, M32RBF_SFMT_NOP }, - { M32R_INSN_NOT, M32RBF_INSN_NOT, M32RBF_SFMT_MV }, - { M32R_INSN_RAC, M32RBF_INSN_RAC, M32RBF_SFMT_RAC }, - { M32R_INSN_RACH, M32RBF_INSN_RACH, M32RBF_SFMT_RAC }, - { M32R_INSN_RTE, M32RBF_INSN_RTE, M32RBF_SFMT_RTE }, - { M32R_INSN_SETH, M32RBF_INSN_SETH, M32RBF_SFMT_SETH }, - { M32R_INSN_SLL, M32RBF_INSN_SLL, M32RBF_SFMT_ADD }, - { M32R_INSN_SLL3, M32RBF_INSN_SLL3, M32RBF_SFMT_SLL3 }, - { M32R_INSN_SLLI, M32RBF_INSN_SLLI, M32RBF_SFMT_SLLI }, - { M32R_INSN_SRA, M32RBF_INSN_SRA, M32RBF_SFMT_ADD }, - { M32R_INSN_SRA3, M32RBF_INSN_SRA3, M32RBF_SFMT_SLL3 }, - { M32R_INSN_SRAI, M32RBF_INSN_SRAI, M32RBF_SFMT_SLLI }, - { M32R_INSN_SRL, M32RBF_INSN_SRL, M32RBF_SFMT_ADD }, - { M32R_INSN_SRL3, M32RBF_INSN_SRL3, M32RBF_SFMT_SLL3 }, - { M32R_INSN_SRLI, M32RBF_INSN_SRLI, M32RBF_SFMT_SLLI }, - { M32R_INSN_ST, M32RBF_INSN_ST, M32RBF_SFMT_ST }, - { M32R_INSN_ST_D, M32RBF_INSN_ST_D, M32RBF_SFMT_ST_D }, - { M32R_INSN_STB, M32RBF_INSN_STB, M32RBF_SFMT_STB }, - { M32R_INSN_STB_D, M32RBF_INSN_STB_D, M32RBF_SFMT_STB_D }, - { M32R_INSN_STH, M32RBF_INSN_STH, M32RBF_SFMT_STH }, - { M32R_INSN_STH_D, M32RBF_INSN_STH_D, M32RBF_SFMT_STH_D }, - { M32R_INSN_ST_PLUS, M32RBF_INSN_ST_PLUS, M32RBF_SFMT_ST_PLUS }, - { M32R_INSN_ST_MINUS, M32RBF_INSN_ST_MINUS, M32RBF_SFMT_ST_PLUS }, - { M32R_INSN_SUB, M32RBF_INSN_SUB, M32RBF_SFMT_ADD }, - { M32R_INSN_SUBV, M32RBF_INSN_SUBV, M32RBF_SFMT_ADDV }, - { M32R_INSN_SUBX, M32RBF_INSN_SUBX, M32RBF_SFMT_ADDX }, - { M32R_INSN_TRAP, M32RBF_INSN_TRAP, M32RBF_SFMT_TRAP }, - { M32R_INSN_UNLOCK, M32RBF_INSN_UNLOCK, M32RBF_SFMT_UNLOCK }, - { M32R_INSN_CLRPSW, M32RBF_INSN_CLRPSW, M32RBF_SFMT_CLRPSW }, - { M32R_INSN_SETPSW, M32RBF_INSN_SETPSW, M32RBF_SFMT_SETPSW }, - { M32R_INSN_BSET, M32RBF_INSN_BSET, M32RBF_SFMT_BSET }, - { M32R_INSN_BCLR, M32RBF_INSN_BCLR, M32RBF_SFMT_BSET }, - { M32R_INSN_BTST, M32RBF_INSN_BTST, M32RBF_SFMT_BTST }, -}; - -static const struct insn_sem m32rbf_insn_sem_invalid = { - VIRTUAL_INSN_X_INVALID, M32RBF_INSN_X_INVALID, M32RBF_SFMT_EMPTY -}; - -/* Initialize an IDESC from the compile-time computable parts. */ - -static INLINE void -init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t) -{ - const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries; - - id->num = t->index; - id->sfmt = t->sfmt; - if ((int) t->type <= 0) - id->idata = & cgen_virtual_insn_table[- (int) t->type]; - else - id->idata = & insn_table[t->type]; - id->attrs = CGEN_INSN_ATTRS (id->idata); - /* Oh my god, a magic number. */ - id->length = CGEN_INSN_BITSIZE (id->idata) / 8; - -#if WITH_PROFILE_MODEL_P - id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index]; - { - SIM_DESC sd = CPU_STATE (cpu); - SIM_ASSERT (t->index == id->timing->num); - } -#endif - - /* Semantic pointers are initialized elsewhere. */ -} - -/* Initialize the instruction descriptor table. */ - -void -m32rbf_init_idesc_table (SIM_CPU *cpu) -{ - IDESC *id,*tabend; - const struct insn_sem *t,*tend; - int tabsize = M32RBF_INSN__MAX; - IDESC *table = m32rbf_insn_data; - - memset (table, 0, tabsize * sizeof (IDESC)); - - /* First set all entries to the `invalid insn'. */ - t = & m32rbf_insn_sem_invalid; - for (id = table, tabend = table + tabsize; id < tabend; ++id) - init_idesc (cpu, id, t); - - /* Now fill in the values for the chosen cpu. */ - for (t = m32rbf_insn_sem, tend = t + sizeof (m32rbf_insn_sem) / sizeof (*t); - t != tend; ++t) - { - init_idesc (cpu, & table[t->index], t); - } - - /* Link the IDESC table into the cpu. */ - CPU_IDESC (cpu) = table; -} - -/* Given an instruction, return a pointer to its IDESC entry. */ - -const IDESC * -m32rbf_decode (SIM_CPU *current_cpu, IADDR pc, - CGEN_INSN_INT base_insn, CGEN_INSN_INT entire_insn, - ARGBUF *abuf) -{ - /* Result of decoder. */ - M32RBF_INSN_TYPE itype; - - { - CGEN_INSN_INT insn = base_insn; - - { - unsigned int val = (((insn >> 8) & (15 << 4)) | ((insn >> 4) & (15 << 0))); - switch (val) - { - case 0 : itype = M32RBF_INSN_SUBV; goto extract_sfmt_addv; - case 1 : itype = M32RBF_INSN_SUBX; goto extract_sfmt_addx; - case 2 : itype = M32RBF_INSN_SUB; goto extract_sfmt_add; - case 3 : itype = M32RBF_INSN_NEG; goto extract_sfmt_mv; - case 4 : itype = M32RBF_INSN_CMP; goto extract_sfmt_cmp; - case 5 : itype = M32RBF_INSN_CMPU; goto extract_sfmt_cmp; - case 8 : itype = M32RBF_INSN_ADDV; goto extract_sfmt_addv; - case 9 : itype = M32RBF_INSN_ADDX; goto extract_sfmt_addx; - case 10 : itype = M32RBF_INSN_ADD; goto extract_sfmt_add; - case 11 : itype = M32RBF_INSN_NOT; goto extract_sfmt_mv; - case 12 : itype = M32RBF_INSN_AND; goto extract_sfmt_add; - case 13 : itype = M32RBF_INSN_XOR; goto extract_sfmt_add; - case 14 : itype = M32RBF_INSN_OR; goto extract_sfmt_add; - case 15 : itype = M32RBF_INSN_BTST; goto extract_sfmt_btst; - case 16 : itype = M32RBF_INSN_SRL; goto extract_sfmt_add; - case 18 : itype = M32RBF_INSN_SRA; goto extract_sfmt_add; - case 20 : itype = M32RBF_INSN_SLL; goto extract_sfmt_add; - case 22 : itype = M32RBF_INSN_MUL; goto extract_sfmt_add; - case 24 : itype = M32RBF_INSN_MV; goto extract_sfmt_mv; - case 25 : itype = M32RBF_INSN_MVFC; goto extract_sfmt_mvfc; - case 26 : itype = M32RBF_INSN_MVTC; goto extract_sfmt_mvtc; - case 28 : - { - unsigned int val = (((insn >> 8) & (1 << 0))); - switch (val) - { - case 0 : itype = M32RBF_INSN_JL; goto extract_sfmt_jl; - case 1 : itype = M32RBF_INSN_JMP; goto extract_sfmt_jmp; - default : itype = M32RBF_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 29 : itype = M32RBF_INSN_RTE; goto extract_sfmt_rte; - case 31 : itype = M32RBF_INSN_TRAP; goto extract_sfmt_trap; - case 32 : itype = M32RBF_INSN_STB; goto extract_sfmt_stb; - case 34 : itype = M32RBF_INSN_STH; goto extract_sfmt_sth; - case 36 : itype = M32RBF_INSN_ST; goto extract_sfmt_st; - case 37 : itype = M32RBF_INSN_UNLOCK; goto extract_sfmt_unlock; - case 38 : itype = M32RBF_INSN_ST_PLUS; goto extract_sfmt_st_plus; - case 39 : itype = M32RBF_INSN_ST_MINUS; goto extract_sfmt_st_plus; - case 40 : itype = M32RBF_INSN_LDB; goto extract_sfmt_ldb; - case 41 : itype = M32RBF_INSN_LDUB; goto extract_sfmt_ldb; - case 42 : itype = M32RBF_INSN_LDH; goto extract_sfmt_ldh; - case 43 : itype = M32RBF_INSN_LDUH; goto extract_sfmt_ldh; - case 44 : itype = M32RBF_INSN_LD; goto extract_sfmt_ld; - case 45 : itype = M32RBF_INSN_LOCK; goto extract_sfmt_lock; - case 46 : itype = M32RBF_INSN_LD_PLUS; goto extract_sfmt_ld_plus; - case 48 : itype = M32RBF_INSN_MULHI; goto extract_sfmt_mulhi; - case 49 : itype = M32RBF_INSN_MULLO; goto extract_sfmt_mulhi; - case 50 : itype = M32RBF_INSN_MULWHI; goto extract_sfmt_mulhi; - case 51 : itype = M32RBF_INSN_MULWLO; goto extract_sfmt_mulhi; - case 52 : itype = M32RBF_INSN_MACHI; goto extract_sfmt_machi; - case 53 : itype = M32RBF_INSN_MACLO; goto extract_sfmt_machi; - case 54 : itype = M32RBF_INSN_MACWHI; goto extract_sfmt_machi; - case 55 : itype = M32RBF_INSN_MACWLO; goto extract_sfmt_machi; - case 64 : /* fall through */ - case 65 : /* fall through */ - case 66 : /* fall through */ - case 67 : /* fall through */ - case 68 : /* fall through */ - case 69 : /* fall through */ - case 70 : /* fall through */ - case 71 : /* fall through */ - case 72 : /* fall through */ - case 73 : /* fall through */ - case 74 : /* fall through */ - case 75 : /* fall through */ - case 76 : /* fall through */ - case 77 : /* fall through */ - case 78 : /* fall through */ - case 79 : itype = M32RBF_INSN_ADDI; goto extract_sfmt_addi; - case 80 : /* fall through */ - case 81 : itype = M32RBF_INSN_SRLI; goto extract_sfmt_slli; - case 82 : /* fall through */ - case 83 : itype = M32RBF_INSN_SRAI; goto extract_sfmt_slli; - case 84 : /* fall through */ - case 85 : itype = M32RBF_INSN_SLLI; goto extract_sfmt_slli; - case 87 : - { - unsigned int val = (((insn >> 0) & (1 << 0))); - switch (val) - { - case 0 : itype = M32RBF_INSN_MVTACHI; goto extract_sfmt_mvtachi; - case 1 : itype = M32RBF_INSN_MVTACLO; goto extract_sfmt_mvtachi; - default : itype = M32RBF_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 88 : itype = M32RBF_INSN_RACH; goto extract_sfmt_rac; - case 89 : itype = M32RBF_INSN_RAC; goto extract_sfmt_rac; - case 95 : - { - unsigned int val = (((insn >> 0) & (3 << 0))); - switch (val) - { - case 0 : itype = M32RBF_INSN_MVFACHI; goto extract_sfmt_mvfachi; - case 1 : itype = M32RBF_INSN_MVFACLO; goto extract_sfmt_mvfachi; - case 2 : itype = M32RBF_INSN_MVFACMI; goto extract_sfmt_mvfachi; - default : itype = M32RBF_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 96 : /* fall through */ - case 97 : /* fall through */ - case 98 : /* fall through */ - case 99 : /* fall through */ - case 100 : /* fall through */ - case 101 : /* fall through */ - case 102 : /* fall through */ - case 103 : /* fall through */ - case 104 : /* fall through */ - case 105 : /* fall through */ - case 106 : /* fall through */ - case 107 : /* fall through */ - case 108 : /* fall through */ - case 109 : /* fall through */ - case 110 : /* fall through */ - case 111 : itype = M32RBF_INSN_LDI8; goto extract_sfmt_ldi8; - case 112 : - { - unsigned int val = (((insn >> 8) & (15 << 0))); - switch (val) - { - case 0 : itype = M32RBF_INSN_NOP; goto extract_sfmt_nop; - case 1 : itype = M32RBF_INSN_SETPSW; goto extract_sfmt_setpsw; - case 2 : itype = M32RBF_INSN_CLRPSW; goto extract_sfmt_clrpsw; - case 12 : itype = M32RBF_INSN_BC8; goto extract_sfmt_bc8; - case 13 : itype = M32RBF_INSN_BNC8; goto extract_sfmt_bc8; - case 14 : itype = M32RBF_INSN_BL8; goto extract_sfmt_bl8; - case 15 : itype = M32RBF_INSN_BRA8; goto extract_sfmt_bra8; - default : itype = M32RBF_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 113 : /* fall through */ - case 114 : /* fall through */ - case 115 : /* fall through */ - case 116 : /* fall through */ - case 117 : /* fall through */ - case 118 : /* fall through */ - case 119 : /* fall through */ - case 120 : /* fall through */ - case 121 : /* fall through */ - case 122 : /* fall through */ - case 123 : /* fall through */ - case 124 : /* fall through */ - case 125 : /* fall through */ - case 126 : /* fall through */ - case 127 : - { - unsigned int val = (((insn >> 8) & (15 << 0))); - switch (val) - { - case 1 : itype = M32RBF_INSN_SETPSW; goto extract_sfmt_setpsw; - case 2 : itype = M32RBF_INSN_CLRPSW; goto extract_sfmt_clrpsw; - case 12 : itype = M32RBF_INSN_BC8; goto extract_sfmt_bc8; - case 13 : itype = M32RBF_INSN_BNC8; goto extract_sfmt_bc8; - case 14 : itype = M32RBF_INSN_BL8; goto extract_sfmt_bl8; - case 15 : itype = M32RBF_INSN_BRA8; goto extract_sfmt_bra8; - default : itype = M32RBF_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 132 : itype = M32RBF_INSN_CMPI; goto extract_sfmt_cmpi; - case 133 : itype = M32RBF_INSN_CMPUI; goto extract_sfmt_cmpi; - case 136 : itype = M32RBF_INSN_ADDV3; goto extract_sfmt_addv3; - case 138 : itype = M32RBF_INSN_ADD3; goto extract_sfmt_add3; - case 140 : itype = M32RBF_INSN_AND3; goto extract_sfmt_and3; - case 141 : itype = M32RBF_INSN_XOR3; goto extract_sfmt_and3; - case 142 : itype = M32RBF_INSN_OR3; goto extract_sfmt_or3; - case 144 : itype = M32RBF_INSN_DIV; goto extract_sfmt_div; - case 145 : itype = M32RBF_INSN_DIVU; goto extract_sfmt_div; - case 146 : itype = M32RBF_INSN_REM; goto extract_sfmt_div; - case 147 : itype = M32RBF_INSN_REMU; goto extract_sfmt_div; - case 152 : itype = M32RBF_INSN_SRL3; goto extract_sfmt_sll3; - case 154 : itype = M32RBF_INSN_SRA3; goto extract_sfmt_sll3; - case 156 : itype = M32RBF_INSN_SLL3; goto extract_sfmt_sll3; - case 159 : itype = M32RBF_INSN_LDI16; goto extract_sfmt_ldi16; - case 160 : itype = M32RBF_INSN_STB_D; goto extract_sfmt_stb_d; - case 162 : itype = M32RBF_INSN_STH_D; goto extract_sfmt_sth_d; - case 164 : itype = M32RBF_INSN_ST_D; goto extract_sfmt_st_d; - case 166 : itype = M32RBF_INSN_BSET; goto extract_sfmt_bset; - case 167 : itype = M32RBF_INSN_BCLR; goto extract_sfmt_bset; - case 168 : itype = M32RBF_INSN_LDB_D; goto extract_sfmt_ldb_d; - case 169 : itype = M32RBF_INSN_LDUB_D; goto extract_sfmt_ldb_d; - case 170 : itype = M32RBF_INSN_LDH_D; goto extract_sfmt_ldh_d; - case 171 : itype = M32RBF_INSN_LDUH_D; goto extract_sfmt_ldh_d; - case 172 : itype = M32RBF_INSN_LD_D; goto extract_sfmt_ld_d; - case 176 : itype = M32RBF_INSN_BEQ; goto extract_sfmt_beq; - case 177 : itype = M32RBF_INSN_BNE; goto extract_sfmt_beq; - case 184 : itype = M32RBF_INSN_BEQZ; goto extract_sfmt_beqz; - case 185 : itype = M32RBF_INSN_BNEZ; goto extract_sfmt_beqz; - case 186 : itype = M32RBF_INSN_BLTZ; goto extract_sfmt_beqz; - case 187 : itype = M32RBF_INSN_BGEZ; goto extract_sfmt_beqz; - case 188 : itype = M32RBF_INSN_BLEZ; goto extract_sfmt_beqz; - case 189 : itype = M32RBF_INSN_BGTZ; goto extract_sfmt_beqz; - case 220 : itype = M32RBF_INSN_SETH; goto extract_sfmt_seth; - case 224 : /* fall through */ - case 225 : /* fall through */ - case 226 : /* fall through */ - case 227 : /* fall through */ - case 228 : /* fall through */ - case 229 : /* fall through */ - case 230 : /* fall through */ - case 231 : /* fall through */ - case 232 : /* fall through */ - case 233 : /* fall through */ - case 234 : /* fall through */ - case 235 : /* fall through */ - case 236 : /* fall through */ - case 237 : /* fall through */ - case 238 : /* fall through */ - case 239 : itype = M32RBF_INSN_LD24; goto extract_sfmt_ld24; - case 240 : /* fall through */ - case 241 : /* fall through */ - case 242 : /* fall through */ - case 243 : /* fall through */ - case 244 : /* fall through */ - case 245 : /* fall through */ - case 246 : /* fall through */ - case 247 : /* fall through */ - case 248 : /* fall through */ - case 249 : /* fall through */ - case 250 : /* fall through */ - case 251 : /* fall through */ - case 252 : /* fall through */ - case 253 : /* fall through */ - case 254 : /* fall through */ - case 255 : - { - unsigned int val = (((insn >> 8) & (3 << 0))); - switch (val) - { - case 0 : itype = M32RBF_INSN_BC24; goto extract_sfmt_bc24; - case 1 : itype = M32RBF_INSN_BNC24; goto extract_sfmt_bc24; - case 2 : itype = M32RBF_INSN_BL24; goto extract_sfmt_bl24; - case 3 : itype = M32RBF_INSN_BRA24; goto extract_sfmt_bra24; - default : itype = M32RBF_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - default : itype = M32RBF_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - } - - /* The instruction has been decoded, now extract the fields. */ - - extract_sfmt_empty: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; -#define FLD(f) abuf->fields.fmt_empty.f - - - /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0)); - -#undef FLD - return idesc; - } - - extract_sfmt_add: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_dr) = f_r1; - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_add3: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add3", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_and3: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_and3.f - UINT f_r1; - UINT f_r2; - UINT f_uimm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_uimm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_uimm16) = f_uimm16; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and3", "f_r2 0x%x", 'x', f_r2, "f_uimm16 0x%x", 'x', f_uimm16, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_or3: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_and3.f - UINT f_r1; - UINT f_r2; - UINT f_uimm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_uimm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_uimm16) = f_uimm16; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_or3", "f_r2 0x%x", 'x', f_r2, "f_uimm16 0x%x", 'x', f_uimm16, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_addi: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_addi.f - UINT f_r1; - INT f_simm8; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_simm8 = EXTRACT_MSB0_INT (insn, 16, 8, 8); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_simm8) = f_simm8; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addi", "f_r1 0x%x", 'x', f_r1, "f_simm8 0x%x", 'x', f_simm8, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_dr) = f_r1; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_addv: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addv", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_dr) = f_r1; - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_addv3: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addv3", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_addx: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addx", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_dr) = f_r1; - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bc8: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl8.f - SI f_disp8; - - f_disp8 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (2))) + (((pc) & (-4)))); - - /* Record the fields for the semantic handler. */ - FLD (i_disp8) = f_disp8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bc8", "disp8 0x%x", 'x', f_disp8, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bc24: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl24.f - SI f_disp24; - - f_disp24 = ((((EXTRACT_MSB0_INT (insn, 32, 8, 24)) << (2))) + (pc)); - - /* Record the fields for the semantic handler. */ - FLD (i_disp24) = f_disp24; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bc24", "disp24 0x%x", 'x', f_disp24, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_beq: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_beq.f - UINT f_r1; - UINT f_r2; - SI f_disp16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_disp16 = ((((EXTRACT_MSB0_INT (insn, 32, 16, 16)) << (2))) + (pc)); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_disp16) = f_disp16; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_beq", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "disp16 0x%x", 'x', f_disp16, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_beqz: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_beq.f - UINT f_r2; - SI f_disp16; - - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_disp16 = ((((EXTRACT_MSB0_INT (insn, 32, 16, 16)) << (2))) + (pc)); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (i_disp16) = f_disp16; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_beqz", "f_r2 0x%x", 'x', f_r2, "disp16 0x%x", 'x', f_disp16, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bl8: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl8.f - SI f_disp8; - - f_disp8 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (2))) + (((pc) & (-4)))); - - /* Record the fields for the semantic handler. */ - FLD (i_disp8) = f_disp8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bl8", "disp8 0x%x", 'x', f_disp8, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_h_gr_SI_14) = 14; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bl24: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl24.f - SI f_disp24; - - f_disp24 = ((((EXTRACT_MSB0_INT (insn, 32, 8, 24)) << (2))) + (pc)); - - /* Record the fields for the semantic handler. */ - FLD (i_disp24) = f_disp24; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bl24", "disp24 0x%x", 'x', f_disp24, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_h_gr_SI_14) = 14; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bra8: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl8.f - SI f_disp8; - - f_disp8 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (2))) + (((pc) & (-4)))); - - /* Record the fields for the semantic handler. */ - FLD (i_disp8) = f_disp8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bra8", "disp8 0x%x", 'x', f_disp8, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bra24: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl24.f - SI f_disp24; - - f_disp24 = ((((EXTRACT_MSB0_INT (insn, 32, 8, 24)) << (2))) + (pc)); - - /* Record the fields for the semantic handler. */ - FLD (i_disp24) = f_disp24; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bra24", "disp24 0x%x", 'x', f_disp24, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_cmp: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_cmpi: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_d.f - UINT f_r2; - INT f_simm16; - - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpi", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_div: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_dr) = f_r1; - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_jl: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_jl.f - UINT f_r2; - - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jl", "f_r2 0x%x", 'x', f_r2, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_h_gr_SI_14) = 14; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_jmp: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_jl.f - UINT f_r2; - - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jmp", "f_r2 0x%x", 'x', f_r2, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ld: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ld_d: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld_d", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ldb: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldb", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ldb_d: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldb_d", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ldh: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldh", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ldh_d: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldh_d", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ld_plus: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld_plus", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - FLD (out_sr) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ld24: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld24.f - UINT f_r1; - UINT f_uimm24; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_uimm24 = EXTRACT_MSB0_UINT (insn, 32, 8, 24); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (i_uimm24) = f_uimm24; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld24", "f_r1 0x%x", 'x', f_r1, "uimm24 0x%x", 'x', f_uimm24, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ldi8: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_addi.f - UINT f_r1; - INT f_simm8; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_simm8 = EXTRACT_MSB0_INT (insn, 16, 8, 8); - - /* Record the fields for the semantic handler. */ - FLD (f_simm8) = f_simm8; - FLD (f_r1) = f_r1; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldi8", "f_simm8 0x%x", 'x', f_simm8, "f_r1 0x%x", 'x', f_r1, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ldi16: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r1) = f_r1; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldi16", "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_lock: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lock", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_machi: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_machi", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_mulhi: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mulhi", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_mv: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mv", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_mvfachi: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_seth.f - UINT f_r1; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mvfachi", "f_r1 0x%x", 'x', f_r1, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_mvfc: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mvfc", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_mvtachi: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mvtachi", "f_r1 0x%x", 'x', f_r1, "src1 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_mvtc: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mvtc", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_nop: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; -#define FLD(f) abuf->fields.fmt_empty.f - - - /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_nop", (char *) 0)); - -#undef FLD - return idesc; - } - - extract_sfmt_rac: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; -#define FLD(f) abuf->fields.fmt_empty.f - - - /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rac", (char *) 0)); - -#undef FLD - return idesc; - } - - extract_sfmt_rte: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; -#define FLD(f) abuf->fields.fmt_empty.f - - - /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rte", (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_seth: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_seth.f - UINT f_r1; - UINT f_hi16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_hi16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_hi16) = f_hi16; - FLD (f_r1) = f_r1; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_seth", "f_hi16 0x%x", 'x', f_hi16, "f_r1 0x%x", 'x', f_r1, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_sll3: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sll3", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_slli: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_slli.f - UINT f_r1; - UINT f_uimm5; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_uimm5 = EXTRACT_MSB0_UINT (insn, 16, 11, 5); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_uimm5) = f_uimm5; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_slli", "f_r1 0x%x", 'x', f_r1, "f_uimm5 0x%x", 'x', f_uimm5, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_dr) = f_r1; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_st: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_st", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_st_d: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_d.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_st_d", "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_stb: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stb", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_stb_d: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_d.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stb_d", "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_sth: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sth", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_sth_d: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_d.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sth_d", "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_st_plus: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_st_plus", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - FLD (out_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_trap: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_trap.f - UINT f_uimm4; - - f_uimm4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_uimm4) = f_uimm4; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_trap", "f_uimm4 0x%x", 'x', f_uimm4, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_unlock: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_unlock", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_clrpsw: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_clrpsw.f - UINT f_uimm8; - - f_uimm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); - - /* Record the fields for the semantic handler. */ - FLD (f_uimm8) = f_uimm8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_clrpsw", "f_uimm8 0x%x", 'x', f_uimm8, (char *) 0)); - -#undef FLD - return idesc; - } - - extract_sfmt_setpsw: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_clrpsw.f - UINT f_uimm8; - - f_uimm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); - - /* Record the fields for the semantic handler. */ - FLD (f_uimm8) = f_uimm8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_setpsw", "f_uimm8 0x%x", 'x', f_uimm8, (char *) 0)); - -#undef FLD - return idesc; - } - - extract_sfmt_bset: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bset.f - UINT f_uimm3; - UINT f_r2; - INT f_simm16; - - f_uimm3 = EXTRACT_MSB0_UINT (insn, 32, 5, 3); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_uimm3) = f_uimm3; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bset", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_uimm3 0x%x", 'x', f_uimm3, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_btst: - { - const IDESC *idesc = &m32rbf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bset.f - UINT f_uimm3; - UINT f_r2; - - f_uimm3 = EXTRACT_MSB0_UINT (insn, 16, 5, 3); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_uimm3) = f_uimm3; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_btst", "f_r2 0x%x", 'x', f_r2, "f_uimm3 0x%x", 'x', f_uimm3, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - } -#endif -#undef FLD - return idesc; - } - -} diff --git a/sim/m32r/decode.h b/sim/m32r/decode.h deleted file mode 100644 index 00a411c..0000000 --- a/sim/m32r/decode.h +++ /dev/null @@ -1,101 +0,0 @@ -/* Decode header for m32rbf. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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 M32RBF_DECODE_H -#define M32RBF_DECODE_H - -extern const IDESC *m32rbf_decode (SIM_CPU *, IADDR, - CGEN_INSN_INT, CGEN_INSN_INT, - ARGBUF *); -extern void m32rbf_init_idesc_table (SIM_CPU *); -extern void m32rbf_sem_init_idesc_table (SIM_CPU *); -extern void m32rbf_semf_init_idesc_table (SIM_CPU *); - -/* Enum declaration for instructions in cpu family m32rbf. */ -typedef enum m32rbf_insn_type { - M32RBF_INSN_X_INVALID, M32RBF_INSN_X_AFTER, M32RBF_INSN_X_BEFORE, M32RBF_INSN_X_CTI_CHAIN - , M32RBF_INSN_X_CHAIN, M32RBF_INSN_X_BEGIN, M32RBF_INSN_ADD, M32RBF_INSN_ADD3 - , M32RBF_INSN_AND, M32RBF_INSN_AND3, M32RBF_INSN_OR, M32RBF_INSN_OR3 - , M32RBF_INSN_XOR, M32RBF_INSN_XOR3, M32RBF_INSN_ADDI, M32RBF_INSN_ADDV - , M32RBF_INSN_ADDV3, M32RBF_INSN_ADDX, M32RBF_INSN_BC8, M32RBF_INSN_BC24 - , M32RBF_INSN_BEQ, M32RBF_INSN_BEQZ, M32RBF_INSN_BGEZ, M32RBF_INSN_BGTZ - , M32RBF_INSN_BLEZ, M32RBF_INSN_BLTZ, M32RBF_INSN_BNEZ, M32RBF_INSN_BL8 - , M32RBF_INSN_BL24, M32RBF_INSN_BNC8, M32RBF_INSN_BNC24, M32RBF_INSN_BNE - , M32RBF_INSN_BRA8, M32RBF_INSN_BRA24, M32RBF_INSN_CMP, M32RBF_INSN_CMPI - , M32RBF_INSN_CMPU, M32RBF_INSN_CMPUI, M32RBF_INSN_DIV, M32RBF_INSN_DIVU - , M32RBF_INSN_REM, M32RBF_INSN_REMU, M32RBF_INSN_JL, M32RBF_INSN_JMP - , M32RBF_INSN_LD, M32RBF_INSN_LD_D, M32RBF_INSN_LDB, M32RBF_INSN_LDB_D - , M32RBF_INSN_LDH, M32RBF_INSN_LDH_D, M32RBF_INSN_LDUB, M32RBF_INSN_LDUB_D - , M32RBF_INSN_LDUH, M32RBF_INSN_LDUH_D, M32RBF_INSN_LD_PLUS, M32RBF_INSN_LD24 - , M32RBF_INSN_LDI8, M32RBF_INSN_LDI16, M32RBF_INSN_LOCK, M32RBF_INSN_MACHI - , M32RBF_INSN_MACLO, M32RBF_INSN_MACWHI, M32RBF_INSN_MACWLO, M32RBF_INSN_MUL - , M32RBF_INSN_MULHI, M32RBF_INSN_MULLO, M32RBF_INSN_MULWHI, M32RBF_INSN_MULWLO - , M32RBF_INSN_MV, M32RBF_INSN_MVFACHI, M32RBF_INSN_MVFACLO, M32RBF_INSN_MVFACMI - , M32RBF_INSN_MVFC, M32RBF_INSN_MVTACHI, M32RBF_INSN_MVTACLO, M32RBF_INSN_MVTC - , M32RBF_INSN_NEG, M32RBF_INSN_NOP, M32RBF_INSN_NOT, M32RBF_INSN_RAC - , M32RBF_INSN_RACH, M32RBF_INSN_RTE, M32RBF_INSN_SETH, M32RBF_INSN_SLL - , M32RBF_INSN_SLL3, M32RBF_INSN_SLLI, M32RBF_INSN_SRA, M32RBF_INSN_SRA3 - , M32RBF_INSN_SRAI, M32RBF_INSN_SRL, M32RBF_INSN_SRL3, M32RBF_INSN_SRLI - , M32RBF_INSN_ST, M32RBF_INSN_ST_D, M32RBF_INSN_STB, M32RBF_INSN_STB_D - , M32RBF_INSN_STH, M32RBF_INSN_STH_D, M32RBF_INSN_ST_PLUS, M32RBF_INSN_ST_MINUS - , M32RBF_INSN_SUB, M32RBF_INSN_SUBV, M32RBF_INSN_SUBX, M32RBF_INSN_TRAP - , M32RBF_INSN_UNLOCK, M32RBF_INSN_CLRPSW, M32RBF_INSN_SETPSW, M32RBF_INSN_BSET - , M32RBF_INSN_BCLR, M32RBF_INSN_BTST, M32RBF_INSN__MAX -} M32RBF_INSN_TYPE; - -/* Enum declaration for semantic formats in cpu family m32rbf. */ -typedef enum m32rbf_sfmt_type { - M32RBF_SFMT_EMPTY, M32RBF_SFMT_ADD, M32RBF_SFMT_ADD3, M32RBF_SFMT_AND3 - , M32RBF_SFMT_OR3, M32RBF_SFMT_ADDI, M32RBF_SFMT_ADDV, M32RBF_SFMT_ADDV3 - , M32RBF_SFMT_ADDX, M32RBF_SFMT_BC8, M32RBF_SFMT_BC24, M32RBF_SFMT_BEQ - , M32RBF_SFMT_BEQZ, M32RBF_SFMT_BL8, M32RBF_SFMT_BL24, M32RBF_SFMT_BRA8 - , M32RBF_SFMT_BRA24, M32RBF_SFMT_CMP, M32RBF_SFMT_CMPI, M32RBF_SFMT_DIV - , M32RBF_SFMT_JL, M32RBF_SFMT_JMP, M32RBF_SFMT_LD, M32RBF_SFMT_LD_D - , M32RBF_SFMT_LDB, M32RBF_SFMT_LDB_D, M32RBF_SFMT_LDH, M32RBF_SFMT_LDH_D - , M32RBF_SFMT_LD_PLUS, M32RBF_SFMT_LD24, M32RBF_SFMT_LDI8, M32RBF_SFMT_LDI16 - , M32RBF_SFMT_LOCK, M32RBF_SFMT_MACHI, M32RBF_SFMT_MULHI, M32RBF_SFMT_MV - , M32RBF_SFMT_MVFACHI, M32RBF_SFMT_MVFC, M32RBF_SFMT_MVTACHI, M32RBF_SFMT_MVTC - , M32RBF_SFMT_NOP, M32RBF_SFMT_RAC, M32RBF_SFMT_RTE, M32RBF_SFMT_SETH - , M32RBF_SFMT_SLL3, M32RBF_SFMT_SLLI, M32RBF_SFMT_ST, M32RBF_SFMT_ST_D - , M32RBF_SFMT_STB, M32RBF_SFMT_STB_D, M32RBF_SFMT_STH, M32RBF_SFMT_STH_D - , M32RBF_SFMT_ST_PLUS, M32RBF_SFMT_TRAP, M32RBF_SFMT_UNLOCK, M32RBF_SFMT_CLRPSW - , M32RBF_SFMT_SETPSW, M32RBF_SFMT_BSET, M32RBF_SFMT_BTST -} M32RBF_SFMT_TYPE; - -/* Function unit handlers (user written). */ - -extern int m32rbf_model_m32r_d_u_store (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*src1*/, INT /*src2*/); -extern int m32rbf_model_m32r_d_u_load (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*sr*/, INT /*dr*/); -extern int m32rbf_model_m32r_d_u_cti (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*sr*/); -extern int m32rbf_model_m32r_d_u_mac (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*src1*/, INT /*src2*/); -extern int m32rbf_model_m32r_d_u_cmp (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*src1*/, INT /*src2*/); -extern int m32rbf_model_m32r_d_u_exec (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*sr*/, INT /*dr*/, INT /*dr*/); -extern int m32rbf_model_test_u_exec (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/); - -/* Profiling before/after handlers (user written) */ - -extern void m32rbf_model_insn_before (SIM_CPU *, int /*first_p*/); -extern void m32rbf_model_insn_after (SIM_CPU *, int /*last_p*/, int /*cycles*/); - -#endif /* M32RBF_DECODE_H */ diff --git a/sim/m32r/decode2.c b/sim/m32r/decode2.c deleted file mode 100644 index d98db5e..0000000 --- a/sim/m32r/decode2.c +++ /dev/null @@ -1,2609 +0,0 @@ -/* Simulator instruction decoder for m32r2f. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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. - -*/ - -#define WANT_CPU m32r2f -#define WANT_CPU_M32R2F - -#include "sim-main.h" -#include "sim-assert.h" - -/* Insn can't be executed in parallel. - Or is that "do NOt Pass to Air defense Radar"? :-) */ -#define NOPAR (-1) - -/* The instruction descriptor array. - This is computed at runtime. Space for it is not malloc'd to save a - teensy bit of cpu in the decoder. Moving it to malloc space is trivial - but won't be done until necessary (we don't currently support the runtime - addition of instructions nor an SMP machine with different cpus). */ -static IDESC m32r2f_insn_data[M32R2F_INSN__MAX]; - -/* Commas between elements are contained in the macros. - Some of these are conditionally compiled out. */ - -static const struct insn_sem m32r2f_insn_sem[] = -{ - { VIRTUAL_INSN_X_INVALID, M32R2F_INSN_X_INVALID, M32R2F_SFMT_EMPTY, NOPAR, NOPAR }, - { VIRTUAL_INSN_X_AFTER, M32R2F_INSN_X_AFTER, M32R2F_SFMT_EMPTY, NOPAR, NOPAR }, - { VIRTUAL_INSN_X_BEFORE, M32R2F_INSN_X_BEFORE, M32R2F_SFMT_EMPTY, NOPAR, NOPAR }, - { VIRTUAL_INSN_X_CTI_CHAIN, M32R2F_INSN_X_CTI_CHAIN, M32R2F_SFMT_EMPTY, NOPAR, NOPAR }, - { VIRTUAL_INSN_X_CHAIN, M32R2F_INSN_X_CHAIN, M32R2F_SFMT_EMPTY, NOPAR, NOPAR }, - { VIRTUAL_INSN_X_BEGIN, M32R2F_INSN_X_BEGIN, M32R2F_SFMT_EMPTY, NOPAR, NOPAR }, - { M32R_INSN_ADD, M32R2F_INSN_ADD, M32R2F_SFMT_ADD, M32R2F_INSN_PAR_ADD, M32R2F_INSN_WRITE_ADD }, - { M32R_INSN_ADD3, M32R2F_INSN_ADD3, M32R2F_SFMT_ADD3, NOPAR, NOPAR }, - { M32R_INSN_AND, M32R2F_INSN_AND, M32R2F_SFMT_ADD, M32R2F_INSN_PAR_AND, M32R2F_INSN_WRITE_AND }, - { M32R_INSN_AND3, M32R2F_INSN_AND3, M32R2F_SFMT_AND3, NOPAR, NOPAR }, - { M32R_INSN_OR, M32R2F_INSN_OR, M32R2F_SFMT_ADD, M32R2F_INSN_PAR_OR, M32R2F_INSN_WRITE_OR }, - { M32R_INSN_OR3, M32R2F_INSN_OR3, M32R2F_SFMT_OR3, NOPAR, NOPAR }, - { M32R_INSN_XOR, M32R2F_INSN_XOR, M32R2F_SFMT_ADD, M32R2F_INSN_PAR_XOR, M32R2F_INSN_WRITE_XOR }, - { M32R_INSN_XOR3, M32R2F_INSN_XOR3, M32R2F_SFMT_AND3, NOPAR, NOPAR }, - { M32R_INSN_ADDI, M32R2F_INSN_ADDI, M32R2F_SFMT_ADDI, M32R2F_INSN_PAR_ADDI, M32R2F_INSN_WRITE_ADDI }, - { M32R_INSN_ADDV, M32R2F_INSN_ADDV, M32R2F_SFMT_ADDV, M32R2F_INSN_PAR_ADDV, M32R2F_INSN_WRITE_ADDV }, - { M32R_INSN_ADDV3, M32R2F_INSN_ADDV3, M32R2F_SFMT_ADDV3, NOPAR, NOPAR }, - { M32R_INSN_ADDX, M32R2F_INSN_ADDX, M32R2F_SFMT_ADDX, M32R2F_INSN_PAR_ADDX, M32R2F_INSN_WRITE_ADDX }, - { M32R_INSN_BC8, M32R2F_INSN_BC8, M32R2F_SFMT_BC8, M32R2F_INSN_PAR_BC8, M32R2F_INSN_WRITE_BC8 }, - { M32R_INSN_BC24, M32R2F_INSN_BC24, M32R2F_SFMT_BC24, NOPAR, NOPAR }, - { M32R_INSN_BEQ, M32R2F_INSN_BEQ, M32R2F_SFMT_BEQ, NOPAR, NOPAR }, - { M32R_INSN_BEQZ, M32R2F_INSN_BEQZ, M32R2F_SFMT_BEQZ, NOPAR, NOPAR }, - { M32R_INSN_BGEZ, M32R2F_INSN_BGEZ, M32R2F_SFMT_BEQZ, NOPAR, NOPAR }, - { M32R_INSN_BGTZ, M32R2F_INSN_BGTZ, M32R2F_SFMT_BEQZ, NOPAR, NOPAR }, - { M32R_INSN_BLEZ, M32R2F_INSN_BLEZ, M32R2F_SFMT_BEQZ, NOPAR, NOPAR }, - { M32R_INSN_BLTZ, M32R2F_INSN_BLTZ, M32R2F_SFMT_BEQZ, NOPAR, NOPAR }, - { M32R_INSN_BNEZ, M32R2F_INSN_BNEZ, M32R2F_SFMT_BEQZ, NOPAR, NOPAR }, - { M32R_INSN_BL8, M32R2F_INSN_BL8, M32R2F_SFMT_BL8, M32R2F_INSN_PAR_BL8, M32R2F_INSN_WRITE_BL8 }, - { M32R_INSN_BL24, M32R2F_INSN_BL24, M32R2F_SFMT_BL24, NOPAR, NOPAR }, - { M32R_INSN_BCL8, M32R2F_INSN_BCL8, M32R2F_SFMT_BCL8, M32R2F_INSN_PAR_BCL8, M32R2F_INSN_WRITE_BCL8 }, - { M32R_INSN_BCL24, M32R2F_INSN_BCL24, M32R2F_SFMT_BCL24, NOPAR, NOPAR }, - { M32R_INSN_BNC8, M32R2F_INSN_BNC8, M32R2F_SFMT_BC8, M32R2F_INSN_PAR_BNC8, M32R2F_INSN_WRITE_BNC8 }, - { M32R_INSN_BNC24, M32R2F_INSN_BNC24, M32R2F_SFMT_BC24, NOPAR, NOPAR }, - { M32R_INSN_BNE, M32R2F_INSN_BNE, M32R2F_SFMT_BEQ, NOPAR, NOPAR }, - { M32R_INSN_BRA8, M32R2F_INSN_BRA8, M32R2F_SFMT_BRA8, M32R2F_INSN_PAR_BRA8, M32R2F_INSN_WRITE_BRA8 }, - { M32R_INSN_BRA24, M32R2F_INSN_BRA24, M32R2F_SFMT_BRA24, NOPAR, NOPAR }, - { M32R_INSN_BNCL8, M32R2F_INSN_BNCL8, M32R2F_SFMT_BCL8, M32R2F_INSN_PAR_BNCL8, M32R2F_INSN_WRITE_BNCL8 }, - { M32R_INSN_BNCL24, M32R2F_INSN_BNCL24, M32R2F_SFMT_BCL24, NOPAR, NOPAR }, - { M32R_INSN_CMP, M32R2F_INSN_CMP, M32R2F_SFMT_CMP, M32R2F_INSN_PAR_CMP, M32R2F_INSN_WRITE_CMP }, - { M32R_INSN_CMPI, M32R2F_INSN_CMPI, M32R2F_SFMT_CMPI, NOPAR, NOPAR }, - { M32R_INSN_CMPU, M32R2F_INSN_CMPU, M32R2F_SFMT_CMP, M32R2F_INSN_PAR_CMPU, M32R2F_INSN_WRITE_CMPU }, - { M32R_INSN_CMPUI, M32R2F_INSN_CMPUI, M32R2F_SFMT_CMPI, NOPAR, NOPAR }, - { M32R_INSN_CMPEQ, M32R2F_INSN_CMPEQ, M32R2F_SFMT_CMP, M32R2F_INSN_PAR_CMPEQ, M32R2F_INSN_WRITE_CMPEQ }, - { M32R_INSN_CMPZ, M32R2F_INSN_CMPZ, M32R2F_SFMT_CMPZ, M32R2F_INSN_PAR_CMPZ, M32R2F_INSN_WRITE_CMPZ }, - { M32R_INSN_DIV, M32R2F_INSN_DIV, M32R2F_SFMT_DIV, NOPAR, NOPAR }, - { M32R_INSN_DIVU, M32R2F_INSN_DIVU, M32R2F_SFMT_DIV, NOPAR, NOPAR }, - { M32R_INSN_REM, M32R2F_INSN_REM, M32R2F_SFMT_DIV, NOPAR, NOPAR }, - { M32R_INSN_REMU, M32R2F_INSN_REMU, M32R2F_SFMT_DIV, NOPAR, NOPAR }, - { M32R_INSN_REMH, M32R2F_INSN_REMH, M32R2F_SFMT_DIV, NOPAR, NOPAR }, - { M32R_INSN_REMUH, M32R2F_INSN_REMUH, M32R2F_SFMT_DIV, NOPAR, NOPAR }, - { M32R_INSN_REMB, M32R2F_INSN_REMB, M32R2F_SFMT_DIV, NOPAR, NOPAR }, - { M32R_INSN_REMUB, M32R2F_INSN_REMUB, M32R2F_SFMT_DIV, NOPAR, NOPAR }, - { M32R_INSN_DIVUH, M32R2F_INSN_DIVUH, M32R2F_SFMT_DIV, NOPAR, NOPAR }, - { M32R_INSN_DIVB, M32R2F_INSN_DIVB, M32R2F_SFMT_DIV, NOPAR, NOPAR }, - { M32R_INSN_DIVUB, M32R2F_INSN_DIVUB, M32R2F_SFMT_DIV, NOPAR, NOPAR }, - { M32R_INSN_DIVH, M32R2F_INSN_DIVH, M32R2F_SFMT_DIV, NOPAR, NOPAR }, - { M32R_INSN_JC, M32R2F_INSN_JC, M32R2F_SFMT_JC, M32R2F_INSN_PAR_JC, M32R2F_INSN_WRITE_JC }, - { M32R_INSN_JNC, M32R2F_INSN_JNC, M32R2F_SFMT_JC, M32R2F_INSN_PAR_JNC, M32R2F_INSN_WRITE_JNC }, - { M32R_INSN_JL, M32R2F_INSN_JL, M32R2F_SFMT_JL, M32R2F_INSN_PAR_JL, M32R2F_INSN_WRITE_JL }, - { M32R_INSN_JMP, M32R2F_INSN_JMP, M32R2F_SFMT_JMP, M32R2F_INSN_PAR_JMP, M32R2F_INSN_WRITE_JMP }, - { M32R_INSN_LD, M32R2F_INSN_LD, M32R2F_SFMT_LD, M32R2F_INSN_PAR_LD, M32R2F_INSN_WRITE_LD }, - { M32R_INSN_LD_D, M32R2F_INSN_LD_D, M32R2F_SFMT_LD_D, NOPAR, NOPAR }, - { M32R_INSN_LDB, M32R2F_INSN_LDB, M32R2F_SFMT_LDB, M32R2F_INSN_PAR_LDB, M32R2F_INSN_WRITE_LDB }, - { M32R_INSN_LDB_D, M32R2F_INSN_LDB_D, M32R2F_SFMT_LDB_D, NOPAR, NOPAR }, - { M32R_INSN_LDH, M32R2F_INSN_LDH, M32R2F_SFMT_LDH, M32R2F_INSN_PAR_LDH, M32R2F_INSN_WRITE_LDH }, - { M32R_INSN_LDH_D, M32R2F_INSN_LDH_D, M32R2F_SFMT_LDH_D, NOPAR, NOPAR }, - { M32R_INSN_LDUB, M32R2F_INSN_LDUB, M32R2F_SFMT_LDB, M32R2F_INSN_PAR_LDUB, M32R2F_INSN_WRITE_LDUB }, - { M32R_INSN_LDUB_D, M32R2F_INSN_LDUB_D, M32R2F_SFMT_LDB_D, NOPAR, NOPAR }, - { M32R_INSN_LDUH, M32R2F_INSN_LDUH, M32R2F_SFMT_LDH, M32R2F_INSN_PAR_LDUH, M32R2F_INSN_WRITE_LDUH }, - { M32R_INSN_LDUH_D, M32R2F_INSN_LDUH_D, M32R2F_SFMT_LDH_D, NOPAR, NOPAR }, - { M32R_INSN_LD_PLUS, M32R2F_INSN_LD_PLUS, M32R2F_SFMT_LD_PLUS, M32R2F_INSN_PAR_LD_PLUS, M32R2F_INSN_WRITE_LD_PLUS }, - { M32R_INSN_LD24, M32R2F_INSN_LD24, M32R2F_SFMT_LD24, NOPAR, NOPAR }, - { M32R_INSN_LDI8, M32R2F_INSN_LDI8, M32R2F_SFMT_LDI8, M32R2F_INSN_PAR_LDI8, M32R2F_INSN_WRITE_LDI8 }, - { M32R_INSN_LDI16, M32R2F_INSN_LDI16, M32R2F_SFMT_LDI16, NOPAR, NOPAR }, - { M32R_INSN_LOCK, M32R2F_INSN_LOCK, M32R2F_SFMT_LOCK, M32R2F_INSN_PAR_LOCK, M32R2F_INSN_WRITE_LOCK }, - { M32R_INSN_MACHI_A, M32R2F_INSN_MACHI_A, M32R2F_SFMT_MACHI_A, M32R2F_INSN_PAR_MACHI_A, M32R2F_INSN_WRITE_MACHI_A }, - { M32R_INSN_MACLO_A, M32R2F_INSN_MACLO_A, M32R2F_SFMT_MACHI_A, M32R2F_INSN_PAR_MACLO_A, M32R2F_INSN_WRITE_MACLO_A }, - { M32R_INSN_MACWHI_A, M32R2F_INSN_MACWHI_A, M32R2F_SFMT_MACHI_A, M32R2F_INSN_PAR_MACWHI_A, M32R2F_INSN_WRITE_MACWHI_A }, - { M32R_INSN_MACWLO_A, M32R2F_INSN_MACWLO_A, M32R2F_SFMT_MACHI_A, M32R2F_INSN_PAR_MACWLO_A, M32R2F_INSN_WRITE_MACWLO_A }, - { M32R_INSN_MUL, M32R2F_INSN_MUL, M32R2F_SFMT_ADD, M32R2F_INSN_PAR_MUL, M32R2F_INSN_WRITE_MUL }, - { M32R_INSN_MULHI_A, M32R2F_INSN_MULHI_A, M32R2F_SFMT_MULHI_A, M32R2F_INSN_PAR_MULHI_A, M32R2F_INSN_WRITE_MULHI_A }, - { M32R_INSN_MULLO_A, M32R2F_INSN_MULLO_A, M32R2F_SFMT_MULHI_A, M32R2F_INSN_PAR_MULLO_A, M32R2F_INSN_WRITE_MULLO_A }, - { M32R_INSN_MULWHI_A, M32R2F_INSN_MULWHI_A, M32R2F_SFMT_MULHI_A, M32R2F_INSN_PAR_MULWHI_A, M32R2F_INSN_WRITE_MULWHI_A }, - { M32R_INSN_MULWLO_A, M32R2F_INSN_MULWLO_A, M32R2F_SFMT_MULHI_A, M32R2F_INSN_PAR_MULWLO_A, M32R2F_INSN_WRITE_MULWLO_A }, - { M32R_INSN_MV, M32R2F_INSN_MV, M32R2F_SFMT_MV, M32R2F_INSN_PAR_MV, M32R2F_INSN_WRITE_MV }, - { M32R_INSN_MVFACHI_A, M32R2F_INSN_MVFACHI_A, M32R2F_SFMT_MVFACHI_A, M32R2F_INSN_PAR_MVFACHI_A, M32R2F_INSN_WRITE_MVFACHI_A }, - { M32R_INSN_MVFACLO_A, M32R2F_INSN_MVFACLO_A, M32R2F_SFMT_MVFACHI_A, M32R2F_INSN_PAR_MVFACLO_A, M32R2F_INSN_WRITE_MVFACLO_A }, - { M32R_INSN_MVFACMI_A, M32R2F_INSN_MVFACMI_A, M32R2F_SFMT_MVFACHI_A, M32R2F_INSN_PAR_MVFACMI_A, M32R2F_INSN_WRITE_MVFACMI_A }, - { M32R_INSN_MVFC, M32R2F_INSN_MVFC, M32R2F_SFMT_MVFC, M32R2F_INSN_PAR_MVFC, M32R2F_INSN_WRITE_MVFC }, - { M32R_INSN_MVTACHI_A, M32R2F_INSN_MVTACHI_A, M32R2F_SFMT_MVTACHI_A, M32R2F_INSN_PAR_MVTACHI_A, M32R2F_INSN_WRITE_MVTACHI_A }, - { M32R_INSN_MVTACLO_A, M32R2F_INSN_MVTACLO_A, M32R2F_SFMT_MVTACHI_A, M32R2F_INSN_PAR_MVTACLO_A, M32R2F_INSN_WRITE_MVTACLO_A }, - { M32R_INSN_MVTC, M32R2F_INSN_MVTC, M32R2F_SFMT_MVTC, M32R2F_INSN_PAR_MVTC, M32R2F_INSN_WRITE_MVTC }, - { M32R_INSN_NEG, M32R2F_INSN_NEG, M32R2F_SFMT_MV, M32R2F_INSN_PAR_NEG, M32R2F_INSN_WRITE_NEG }, - { M32R_INSN_NOP, M32R2F_INSN_NOP, M32R2F_SFMT_NOP, M32R2F_INSN_PAR_NOP, M32R2F_INSN_WRITE_NOP }, - { M32R_INSN_NOT, M32R2F_INSN_NOT, M32R2F_SFMT_MV, M32R2F_INSN_PAR_NOT, M32R2F_INSN_WRITE_NOT }, - { M32R_INSN_RAC_DSI, M32R2F_INSN_RAC_DSI, M32R2F_SFMT_RAC_DSI, M32R2F_INSN_PAR_RAC_DSI, M32R2F_INSN_WRITE_RAC_DSI }, - { M32R_INSN_RACH_DSI, M32R2F_INSN_RACH_DSI, M32R2F_SFMT_RAC_DSI, M32R2F_INSN_PAR_RACH_DSI, M32R2F_INSN_WRITE_RACH_DSI }, - { M32R_INSN_RTE, M32R2F_INSN_RTE, M32R2F_SFMT_RTE, M32R2F_INSN_PAR_RTE, M32R2F_INSN_WRITE_RTE }, - { M32R_INSN_SETH, M32R2F_INSN_SETH, M32R2F_SFMT_SETH, NOPAR, NOPAR }, - { M32R_INSN_SLL, M32R2F_INSN_SLL, M32R2F_SFMT_ADD, M32R2F_INSN_PAR_SLL, M32R2F_INSN_WRITE_SLL }, - { M32R_INSN_SLL3, M32R2F_INSN_SLL3, M32R2F_SFMT_SLL3, NOPAR, NOPAR }, - { M32R_INSN_SLLI, M32R2F_INSN_SLLI, M32R2F_SFMT_SLLI, M32R2F_INSN_PAR_SLLI, M32R2F_INSN_WRITE_SLLI }, - { M32R_INSN_SRA, M32R2F_INSN_SRA, M32R2F_SFMT_ADD, M32R2F_INSN_PAR_SRA, M32R2F_INSN_WRITE_SRA }, - { M32R_INSN_SRA3, M32R2F_INSN_SRA3, M32R2F_SFMT_SLL3, NOPAR, NOPAR }, - { M32R_INSN_SRAI, M32R2F_INSN_SRAI, M32R2F_SFMT_SLLI, M32R2F_INSN_PAR_SRAI, M32R2F_INSN_WRITE_SRAI }, - { M32R_INSN_SRL, M32R2F_INSN_SRL, M32R2F_SFMT_ADD, M32R2F_INSN_PAR_SRL, M32R2F_INSN_WRITE_SRL }, - { M32R_INSN_SRL3, M32R2F_INSN_SRL3, M32R2F_SFMT_SLL3, NOPAR, NOPAR }, - { M32R_INSN_SRLI, M32R2F_INSN_SRLI, M32R2F_SFMT_SLLI, M32R2F_INSN_PAR_SRLI, M32R2F_INSN_WRITE_SRLI }, - { M32R_INSN_ST, M32R2F_INSN_ST, M32R2F_SFMT_ST, M32R2F_INSN_PAR_ST, M32R2F_INSN_WRITE_ST }, - { M32R_INSN_ST_D, M32R2F_INSN_ST_D, M32R2F_SFMT_ST_D, NOPAR, NOPAR }, - { M32R_INSN_STB, M32R2F_INSN_STB, M32R2F_SFMT_STB, M32R2F_INSN_PAR_STB, M32R2F_INSN_WRITE_STB }, - { M32R_INSN_STB_D, M32R2F_INSN_STB_D, M32R2F_SFMT_STB_D, NOPAR, NOPAR }, - { M32R_INSN_STH, M32R2F_INSN_STH, M32R2F_SFMT_STH, M32R2F_INSN_PAR_STH, M32R2F_INSN_WRITE_STH }, - { M32R_INSN_STH_D, M32R2F_INSN_STH_D, M32R2F_SFMT_STH_D, NOPAR, NOPAR }, - { M32R_INSN_ST_PLUS, M32R2F_INSN_ST_PLUS, M32R2F_SFMT_ST_PLUS, M32R2F_INSN_PAR_ST_PLUS, M32R2F_INSN_WRITE_ST_PLUS }, - { M32R_INSN_STH_PLUS, M32R2F_INSN_STH_PLUS, M32R2F_SFMT_STH_PLUS, M32R2F_INSN_PAR_STH_PLUS, M32R2F_INSN_WRITE_STH_PLUS }, - { M32R_INSN_STB_PLUS, M32R2F_INSN_STB_PLUS, M32R2F_SFMT_STB_PLUS, M32R2F_INSN_PAR_STB_PLUS, M32R2F_INSN_WRITE_STB_PLUS }, - { M32R_INSN_ST_MINUS, M32R2F_INSN_ST_MINUS, M32R2F_SFMT_ST_PLUS, M32R2F_INSN_PAR_ST_MINUS, M32R2F_INSN_WRITE_ST_MINUS }, - { M32R_INSN_SUB, M32R2F_INSN_SUB, M32R2F_SFMT_ADD, M32R2F_INSN_PAR_SUB, M32R2F_INSN_WRITE_SUB }, - { M32R_INSN_SUBV, M32R2F_INSN_SUBV, M32R2F_SFMT_ADDV, M32R2F_INSN_PAR_SUBV, M32R2F_INSN_WRITE_SUBV }, - { M32R_INSN_SUBX, M32R2F_INSN_SUBX, M32R2F_SFMT_ADDX, M32R2F_INSN_PAR_SUBX, M32R2F_INSN_WRITE_SUBX }, - { M32R_INSN_TRAP, M32R2F_INSN_TRAP, M32R2F_SFMT_TRAP, M32R2F_INSN_PAR_TRAP, M32R2F_INSN_WRITE_TRAP }, - { M32R_INSN_UNLOCK, M32R2F_INSN_UNLOCK, M32R2F_SFMT_UNLOCK, M32R2F_INSN_PAR_UNLOCK, M32R2F_INSN_WRITE_UNLOCK }, - { M32R_INSN_SATB, M32R2F_INSN_SATB, M32R2F_SFMT_SATB, NOPAR, NOPAR }, - { M32R_INSN_SATH, M32R2F_INSN_SATH, M32R2F_SFMT_SATB, NOPAR, NOPAR }, - { M32R_INSN_SAT, M32R2F_INSN_SAT, M32R2F_SFMT_SAT, NOPAR, NOPAR }, - { M32R_INSN_PCMPBZ, M32R2F_INSN_PCMPBZ, M32R2F_SFMT_CMPZ, M32R2F_INSN_PAR_PCMPBZ, M32R2F_INSN_WRITE_PCMPBZ }, - { M32R_INSN_SADD, M32R2F_INSN_SADD, M32R2F_SFMT_SADD, M32R2F_INSN_PAR_SADD, M32R2F_INSN_WRITE_SADD }, - { M32R_INSN_MACWU1, M32R2F_INSN_MACWU1, M32R2F_SFMT_MACWU1, M32R2F_INSN_PAR_MACWU1, M32R2F_INSN_WRITE_MACWU1 }, - { M32R_INSN_MSBLO, M32R2F_INSN_MSBLO, M32R2F_SFMT_MSBLO, M32R2F_INSN_PAR_MSBLO, M32R2F_INSN_WRITE_MSBLO }, - { M32R_INSN_MULWU1, M32R2F_INSN_MULWU1, M32R2F_SFMT_MULWU1, M32R2F_INSN_PAR_MULWU1, M32R2F_INSN_WRITE_MULWU1 }, - { M32R_INSN_MACLH1, M32R2F_INSN_MACLH1, M32R2F_SFMT_MACWU1, M32R2F_INSN_PAR_MACLH1, M32R2F_INSN_WRITE_MACLH1 }, - { M32R_INSN_SC, M32R2F_INSN_SC, M32R2F_SFMT_SC, M32R2F_INSN_PAR_SC, M32R2F_INSN_WRITE_SC }, - { M32R_INSN_SNC, M32R2F_INSN_SNC, M32R2F_SFMT_SC, M32R2F_INSN_PAR_SNC, M32R2F_INSN_WRITE_SNC }, - { M32R_INSN_CLRPSW, M32R2F_INSN_CLRPSW, M32R2F_SFMT_CLRPSW, M32R2F_INSN_PAR_CLRPSW, M32R2F_INSN_WRITE_CLRPSW }, - { M32R_INSN_SETPSW, M32R2F_INSN_SETPSW, M32R2F_SFMT_SETPSW, M32R2F_INSN_PAR_SETPSW, M32R2F_INSN_WRITE_SETPSW }, - { M32R_INSN_BSET, M32R2F_INSN_BSET, M32R2F_SFMT_BSET, NOPAR, NOPAR }, - { M32R_INSN_BCLR, M32R2F_INSN_BCLR, M32R2F_SFMT_BSET, NOPAR, NOPAR }, - { M32R_INSN_BTST, M32R2F_INSN_BTST, M32R2F_SFMT_BTST, M32R2F_INSN_PAR_BTST, M32R2F_INSN_WRITE_BTST }, -}; - -static const struct insn_sem m32r2f_insn_sem_invalid = { - VIRTUAL_INSN_X_INVALID, M32R2F_INSN_X_INVALID, M32R2F_SFMT_EMPTY, NOPAR, NOPAR -}; - -/* Initialize an IDESC from the compile-time computable parts. */ - -static INLINE void -init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t) -{ - const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries; - - id->num = t->index; - id->sfmt = t->sfmt; - if ((int) t->type <= 0) - id->idata = & cgen_virtual_insn_table[- (int) t->type]; - else - id->idata = & insn_table[t->type]; - id->attrs = CGEN_INSN_ATTRS (id->idata); - /* Oh my god, a magic number. */ - id->length = CGEN_INSN_BITSIZE (id->idata) / 8; - -#if WITH_PROFILE_MODEL_P - id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index]; - { - SIM_DESC sd = CPU_STATE (cpu); - SIM_ASSERT (t->index == id->timing->num); - } -#endif - - /* Semantic pointers are initialized elsewhere. */ -} - -/* Initialize the instruction descriptor table. */ - -void -m32r2f_init_idesc_table (SIM_CPU *cpu) -{ - IDESC *id,*tabend; - const struct insn_sem *t,*tend; - int tabsize = M32R2F_INSN__MAX; - IDESC *table = m32r2f_insn_data; - - memset (table, 0, tabsize * sizeof (IDESC)); - - /* First set all entries to the `invalid insn'. */ - t = & m32r2f_insn_sem_invalid; - for (id = table, tabend = table + tabsize; id < tabend; ++id) - init_idesc (cpu, id, t); - - /* Now fill in the values for the chosen cpu. */ - for (t = m32r2f_insn_sem, tend = t + sizeof (m32r2f_insn_sem) / sizeof (*t); - t != tend; ++t) - { - init_idesc (cpu, & table[t->index], t); - if (t->par_index != NOPAR) - { - init_idesc (cpu, &table[t->par_index], t); - table[t->index].par_idesc = &table[t->par_index]; - } - if (t->par_index != NOPAR) - { - init_idesc (cpu, &table[t->write_index], t); - table[t->par_index].par_idesc = &table[t->write_index]; - } - } - - /* Link the IDESC table into the cpu. */ - CPU_IDESC (cpu) = table; -} - -/* Given an instruction, return a pointer to its IDESC entry. */ - -const IDESC * -m32r2f_decode (SIM_CPU *current_cpu, IADDR pc, - CGEN_INSN_INT base_insn, CGEN_INSN_INT entire_insn, - ARGBUF *abuf) -{ - /* Result of decoder. */ - M32R2F_INSN_TYPE itype; - - { - CGEN_INSN_INT insn = base_insn; - - { - unsigned int val = (((insn >> 8) & (15 << 4)) | ((insn >> 4) & (15 << 0))); - switch (val) - { - case 0 : itype = M32R2F_INSN_SUBV; goto extract_sfmt_addv; - case 1 : itype = M32R2F_INSN_SUBX; goto extract_sfmt_addx; - case 2 : itype = M32R2F_INSN_SUB; goto extract_sfmt_add; - case 3 : itype = M32R2F_INSN_NEG; goto extract_sfmt_mv; - case 4 : itype = M32R2F_INSN_CMP; goto extract_sfmt_cmp; - case 5 : itype = M32R2F_INSN_CMPU; goto extract_sfmt_cmp; - case 6 : itype = M32R2F_INSN_CMPEQ; goto extract_sfmt_cmp; - case 7 : - { - unsigned int val = (((insn >> 8) & (3 << 0))); - switch (val) - { - case 0 : itype = M32R2F_INSN_CMPZ; goto extract_sfmt_cmpz; - case 3 : itype = M32R2F_INSN_PCMPBZ; goto extract_sfmt_cmpz; - default : itype = M32R2F_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 8 : itype = M32R2F_INSN_ADDV; goto extract_sfmt_addv; - case 9 : itype = M32R2F_INSN_ADDX; goto extract_sfmt_addx; - case 10 : itype = M32R2F_INSN_ADD; goto extract_sfmt_add; - case 11 : itype = M32R2F_INSN_NOT; goto extract_sfmt_mv; - case 12 : itype = M32R2F_INSN_AND; goto extract_sfmt_add; - case 13 : itype = M32R2F_INSN_XOR; goto extract_sfmt_add; - case 14 : itype = M32R2F_INSN_OR; goto extract_sfmt_add; - case 15 : itype = M32R2F_INSN_BTST; goto extract_sfmt_btst; - case 16 : itype = M32R2F_INSN_SRL; goto extract_sfmt_add; - case 18 : itype = M32R2F_INSN_SRA; goto extract_sfmt_add; - case 20 : itype = M32R2F_INSN_SLL; goto extract_sfmt_add; - case 22 : itype = M32R2F_INSN_MUL; goto extract_sfmt_add; - case 24 : itype = M32R2F_INSN_MV; goto extract_sfmt_mv; - case 25 : itype = M32R2F_INSN_MVFC; goto extract_sfmt_mvfc; - case 26 : itype = M32R2F_INSN_MVTC; goto extract_sfmt_mvtc; - case 28 : - { - unsigned int val = (((insn >> 8) & (3 << 0))); - switch (val) - { - case 0 : itype = M32R2F_INSN_JC; goto extract_sfmt_jc; - case 1 : itype = M32R2F_INSN_JNC; goto extract_sfmt_jc; - case 2 : itype = M32R2F_INSN_JL; goto extract_sfmt_jl; - case 3 : itype = M32R2F_INSN_JMP; goto extract_sfmt_jmp; - default : itype = M32R2F_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 29 : itype = M32R2F_INSN_RTE; goto extract_sfmt_rte; - case 31 : itype = M32R2F_INSN_TRAP; goto extract_sfmt_trap; - case 32 : itype = M32R2F_INSN_STB; goto extract_sfmt_stb; - case 33 : itype = M32R2F_INSN_STB_PLUS; goto extract_sfmt_stb_plus; - case 34 : itype = M32R2F_INSN_STH; goto extract_sfmt_sth; - case 35 : itype = M32R2F_INSN_STH_PLUS; goto extract_sfmt_sth_plus; - case 36 : itype = M32R2F_INSN_ST; goto extract_sfmt_st; - case 37 : itype = M32R2F_INSN_UNLOCK; goto extract_sfmt_unlock; - case 38 : itype = M32R2F_INSN_ST_PLUS; goto extract_sfmt_st_plus; - case 39 : itype = M32R2F_INSN_ST_MINUS; goto extract_sfmt_st_plus; - case 40 : itype = M32R2F_INSN_LDB; goto extract_sfmt_ldb; - case 41 : itype = M32R2F_INSN_LDUB; goto extract_sfmt_ldb; - case 42 : itype = M32R2F_INSN_LDH; goto extract_sfmt_ldh; - case 43 : itype = M32R2F_INSN_LDUH; goto extract_sfmt_ldh; - case 44 : itype = M32R2F_INSN_LD; goto extract_sfmt_ld; - case 45 : itype = M32R2F_INSN_LOCK; goto extract_sfmt_lock; - case 46 : itype = M32R2F_INSN_LD_PLUS; goto extract_sfmt_ld_plus; - case 48 : /* fall through */ - case 56 : itype = M32R2F_INSN_MULHI_A; goto extract_sfmt_mulhi_a; - case 49 : /* fall through */ - case 57 : itype = M32R2F_INSN_MULLO_A; goto extract_sfmt_mulhi_a; - case 50 : /* fall through */ - case 58 : itype = M32R2F_INSN_MULWHI_A; goto extract_sfmt_mulhi_a; - case 51 : /* fall through */ - case 59 : itype = M32R2F_INSN_MULWLO_A; goto extract_sfmt_mulhi_a; - case 52 : /* fall through */ - case 60 : itype = M32R2F_INSN_MACHI_A; goto extract_sfmt_machi_a; - case 53 : /* fall through */ - case 61 : itype = M32R2F_INSN_MACLO_A; goto extract_sfmt_machi_a; - case 54 : /* fall through */ - case 62 : itype = M32R2F_INSN_MACWHI_A; goto extract_sfmt_machi_a; - case 55 : /* fall through */ - case 63 : itype = M32R2F_INSN_MACWLO_A; goto extract_sfmt_machi_a; - case 64 : /* fall through */ - case 65 : /* fall through */ - case 66 : /* fall through */ - case 67 : /* fall through */ - case 68 : /* fall through */ - case 69 : /* fall through */ - case 70 : /* fall through */ - case 71 : /* fall through */ - case 72 : /* fall through */ - case 73 : /* fall through */ - case 74 : /* fall through */ - case 75 : /* fall through */ - case 76 : /* fall through */ - case 77 : /* fall through */ - case 78 : /* fall through */ - case 79 : itype = M32R2F_INSN_ADDI; goto extract_sfmt_addi; - case 80 : /* fall through */ - case 81 : itype = M32R2F_INSN_SRLI; goto extract_sfmt_slli; - case 82 : /* fall through */ - case 83 : itype = M32R2F_INSN_SRAI; goto extract_sfmt_slli; - case 84 : /* fall through */ - case 85 : itype = M32R2F_INSN_SLLI; goto extract_sfmt_slli; - case 87 : - { - unsigned int val = (((insn >> 0) & (1 << 0))); - switch (val) - { - case 0 : itype = M32R2F_INSN_MVTACHI_A; goto extract_sfmt_mvtachi_a; - case 1 : itype = M32R2F_INSN_MVTACLO_A; goto extract_sfmt_mvtachi_a; - default : itype = M32R2F_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 88 : itype = M32R2F_INSN_RACH_DSI; goto extract_sfmt_rac_dsi; - case 89 : itype = M32R2F_INSN_RAC_DSI; goto extract_sfmt_rac_dsi; - case 90 : itype = M32R2F_INSN_MULWU1; goto extract_sfmt_mulwu1; - case 91 : itype = M32R2F_INSN_MACWU1; goto extract_sfmt_macwu1; - case 92 : itype = M32R2F_INSN_MACLH1; goto extract_sfmt_macwu1; - case 93 : itype = M32R2F_INSN_MSBLO; goto extract_sfmt_msblo; - case 94 : itype = M32R2F_INSN_SADD; goto extract_sfmt_sadd; - case 95 : - { - unsigned int val = (((insn >> 0) & (3 << 0))); - switch (val) - { - case 0 : itype = M32R2F_INSN_MVFACHI_A; goto extract_sfmt_mvfachi_a; - case 1 : itype = M32R2F_INSN_MVFACLO_A; goto extract_sfmt_mvfachi_a; - case 2 : itype = M32R2F_INSN_MVFACMI_A; goto extract_sfmt_mvfachi_a; - default : itype = M32R2F_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 96 : /* fall through */ - case 97 : /* fall through */ - case 98 : /* fall through */ - case 99 : /* fall through */ - case 100 : /* fall through */ - case 101 : /* fall through */ - case 102 : /* fall through */ - case 103 : /* fall through */ - case 104 : /* fall through */ - case 105 : /* fall through */ - case 106 : /* fall through */ - case 107 : /* fall through */ - case 108 : /* fall through */ - case 109 : /* fall through */ - case 110 : /* fall through */ - case 111 : itype = M32R2F_INSN_LDI8; goto extract_sfmt_ldi8; - case 112 : - { - unsigned int val = (((insn >> 7) & (15 << 1)) | ((insn >> 0) & (1 << 0))); - switch (val) - { - case 0 : itype = M32R2F_INSN_NOP; goto extract_sfmt_nop; - case 2 : /* fall through */ - case 3 : itype = M32R2F_INSN_SETPSW; goto extract_sfmt_setpsw; - case 4 : /* fall through */ - case 5 : itype = M32R2F_INSN_CLRPSW; goto extract_sfmt_clrpsw; - case 9 : itype = M32R2F_INSN_SC; goto extract_sfmt_sc; - case 11 : itype = M32R2F_INSN_SNC; goto extract_sfmt_sc; - case 16 : /* fall through */ - case 17 : itype = M32R2F_INSN_BCL8; goto extract_sfmt_bcl8; - case 18 : /* fall through */ - case 19 : itype = M32R2F_INSN_BNCL8; goto extract_sfmt_bcl8; - case 24 : /* fall through */ - case 25 : itype = M32R2F_INSN_BC8; goto extract_sfmt_bc8; - case 26 : /* fall through */ - case 27 : itype = M32R2F_INSN_BNC8; goto extract_sfmt_bc8; - case 28 : /* fall through */ - case 29 : itype = M32R2F_INSN_BL8; goto extract_sfmt_bl8; - case 30 : /* fall through */ - case 31 : itype = M32R2F_INSN_BRA8; goto extract_sfmt_bra8; - default : itype = M32R2F_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 113 : /* fall through */ - case 114 : /* fall through */ - case 115 : /* fall through */ - case 116 : /* fall through */ - case 117 : /* fall through */ - case 118 : /* fall through */ - case 119 : /* fall through */ - case 120 : /* fall through */ - case 121 : /* fall through */ - case 122 : /* fall through */ - case 123 : /* fall through */ - case 124 : /* fall through */ - case 125 : /* fall through */ - case 126 : /* fall through */ - case 127 : - { - unsigned int val = (((insn >> 8) & (15 << 0))); - switch (val) - { - case 1 : itype = M32R2F_INSN_SETPSW; goto extract_sfmt_setpsw; - case 2 : itype = M32R2F_INSN_CLRPSW; goto extract_sfmt_clrpsw; - case 8 : itype = M32R2F_INSN_BCL8; goto extract_sfmt_bcl8; - case 9 : itype = M32R2F_INSN_BNCL8; goto extract_sfmt_bcl8; - case 12 : itype = M32R2F_INSN_BC8; goto extract_sfmt_bc8; - case 13 : itype = M32R2F_INSN_BNC8; goto extract_sfmt_bc8; - case 14 : itype = M32R2F_INSN_BL8; goto extract_sfmt_bl8; - case 15 : itype = M32R2F_INSN_BRA8; goto extract_sfmt_bra8; - default : itype = M32R2F_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 132 : itype = M32R2F_INSN_CMPI; goto extract_sfmt_cmpi; - case 133 : itype = M32R2F_INSN_CMPUI; goto extract_sfmt_cmpi; - case 134 : - { - unsigned int val = (((insn >> -8) & (3 << 0))); - switch (val) - { - case 0 : itype = M32R2F_INSN_SAT; goto extract_sfmt_sat; - case 2 : itype = M32R2F_INSN_SATH; goto extract_sfmt_satb; - case 3 : itype = M32R2F_INSN_SATB; goto extract_sfmt_satb; - default : itype = M32R2F_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 136 : itype = M32R2F_INSN_ADDV3; goto extract_sfmt_addv3; - case 138 : itype = M32R2F_INSN_ADD3; goto extract_sfmt_add3; - case 140 : itype = M32R2F_INSN_AND3; goto extract_sfmt_and3; - case 141 : itype = M32R2F_INSN_XOR3; goto extract_sfmt_and3; - case 142 : itype = M32R2F_INSN_OR3; goto extract_sfmt_or3; - case 144 : - { - unsigned int val = (((insn >> -13) & (3 << 0))); - switch (val) - { - case 0 : itype = M32R2F_INSN_DIV; goto extract_sfmt_div; - case 2 : itype = M32R2F_INSN_DIVH; goto extract_sfmt_div; - case 3 : itype = M32R2F_INSN_DIVB; goto extract_sfmt_div; - default : itype = M32R2F_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 145 : - { - unsigned int val = (((insn >> -13) & (3 << 0))); - switch (val) - { - case 0 : itype = M32R2F_INSN_DIVU; goto extract_sfmt_div; - case 2 : itype = M32R2F_INSN_DIVUH; goto extract_sfmt_div; - case 3 : itype = M32R2F_INSN_DIVUB; goto extract_sfmt_div; - default : itype = M32R2F_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 146 : - { - unsigned int val = (((insn >> -13) & (3 << 0))); - switch (val) - { - case 0 : itype = M32R2F_INSN_REM; goto extract_sfmt_div; - case 2 : itype = M32R2F_INSN_REMH; goto extract_sfmt_div; - case 3 : itype = M32R2F_INSN_REMB; goto extract_sfmt_div; - default : itype = M32R2F_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 147 : - { - unsigned int val = (((insn >> -13) & (3 << 0))); - switch (val) - { - case 0 : itype = M32R2F_INSN_REMU; goto extract_sfmt_div; - case 2 : itype = M32R2F_INSN_REMUH; goto extract_sfmt_div; - case 3 : itype = M32R2F_INSN_REMUB; goto extract_sfmt_div; - default : itype = M32R2F_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 152 : itype = M32R2F_INSN_SRL3; goto extract_sfmt_sll3; - case 154 : itype = M32R2F_INSN_SRA3; goto extract_sfmt_sll3; - case 156 : itype = M32R2F_INSN_SLL3; goto extract_sfmt_sll3; - case 159 : itype = M32R2F_INSN_LDI16; goto extract_sfmt_ldi16; - case 160 : itype = M32R2F_INSN_STB_D; goto extract_sfmt_stb_d; - case 162 : itype = M32R2F_INSN_STH_D; goto extract_sfmt_sth_d; - case 164 : itype = M32R2F_INSN_ST_D; goto extract_sfmt_st_d; - case 166 : itype = M32R2F_INSN_BSET; goto extract_sfmt_bset; - case 167 : itype = M32R2F_INSN_BCLR; goto extract_sfmt_bset; - case 168 : itype = M32R2F_INSN_LDB_D; goto extract_sfmt_ldb_d; - case 169 : itype = M32R2F_INSN_LDUB_D; goto extract_sfmt_ldb_d; - case 170 : itype = M32R2F_INSN_LDH_D; goto extract_sfmt_ldh_d; - case 171 : itype = M32R2F_INSN_LDUH_D; goto extract_sfmt_ldh_d; - case 172 : itype = M32R2F_INSN_LD_D; goto extract_sfmt_ld_d; - case 176 : itype = M32R2F_INSN_BEQ; goto extract_sfmt_beq; - case 177 : itype = M32R2F_INSN_BNE; goto extract_sfmt_beq; - case 184 : itype = M32R2F_INSN_BEQZ; goto extract_sfmt_beqz; - case 185 : itype = M32R2F_INSN_BNEZ; goto extract_sfmt_beqz; - case 186 : itype = M32R2F_INSN_BLTZ; goto extract_sfmt_beqz; - case 187 : itype = M32R2F_INSN_BGEZ; goto extract_sfmt_beqz; - case 188 : itype = M32R2F_INSN_BLEZ; goto extract_sfmt_beqz; - case 189 : itype = M32R2F_INSN_BGTZ; goto extract_sfmt_beqz; - case 220 : itype = M32R2F_INSN_SETH; goto extract_sfmt_seth; - case 224 : /* fall through */ - case 225 : /* fall through */ - case 226 : /* fall through */ - case 227 : /* fall through */ - case 228 : /* fall through */ - case 229 : /* fall through */ - case 230 : /* fall through */ - case 231 : /* fall through */ - case 232 : /* fall through */ - case 233 : /* fall through */ - case 234 : /* fall through */ - case 235 : /* fall through */ - case 236 : /* fall through */ - case 237 : /* fall through */ - case 238 : /* fall through */ - case 239 : itype = M32R2F_INSN_LD24; goto extract_sfmt_ld24; - case 240 : /* fall through */ - case 241 : /* fall through */ - case 242 : /* fall through */ - case 243 : /* fall through */ - case 244 : /* fall through */ - case 245 : /* fall through */ - case 246 : /* fall through */ - case 247 : /* fall through */ - case 248 : /* fall through */ - case 249 : /* fall through */ - case 250 : /* fall through */ - case 251 : /* fall through */ - case 252 : /* fall through */ - case 253 : /* fall through */ - case 254 : /* fall through */ - case 255 : - { - unsigned int val = (((insn >> 8) & (7 << 0))); - switch (val) - { - case 0 : itype = M32R2F_INSN_BCL24; goto extract_sfmt_bcl24; - case 1 : itype = M32R2F_INSN_BNCL24; goto extract_sfmt_bcl24; - case 4 : itype = M32R2F_INSN_BC24; goto extract_sfmt_bc24; - case 5 : itype = M32R2F_INSN_BNC24; goto extract_sfmt_bc24; - case 6 : itype = M32R2F_INSN_BL24; goto extract_sfmt_bl24; - case 7 : itype = M32R2F_INSN_BRA24; goto extract_sfmt_bra24; - default : itype = M32R2F_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - default : itype = M32R2F_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - } - - /* The instruction has been decoded, now extract the fields. */ - - extract_sfmt_empty: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; -#define FLD(f) abuf->fields.fmt_empty.f - - - /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0)); - -#undef FLD - return idesc; - } - - extract_sfmt_add: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_dr) = f_r1; - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_add3: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add3", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_and3: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_and3.f - UINT f_r1; - UINT f_r2; - UINT f_uimm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_uimm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_uimm16) = f_uimm16; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and3", "f_r2 0x%x", 'x', f_r2, "f_uimm16 0x%x", 'x', f_uimm16, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_or3: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_and3.f - UINT f_r1; - UINT f_r2; - UINT f_uimm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_uimm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_uimm16) = f_uimm16; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_or3", "f_r2 0x%x", 'x', f_r2, "f_uimm16 0x%x", 'x', f_uimm16, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_addi: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_addi.f - UINT f_r1; - INT f_simm8; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_simm8 = EXTRACT_MSB0_INT (insn, 16, 8, 8); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_simm8) = f_simm8; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addi", "f_r1 0x%x", 'x', f_r1, "f_simm8 0x%x", 'x', f_simm8, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_dr) = f_r1; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_addv: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addv", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_dr) = f_r1; - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_addv3: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addv3", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_addx: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addx", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_dr) = f_r1; - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bc8: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl8.f - SI f_disp8; - - f_disp8 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (2))) + (((pc) & (-4)))); - - /* Record the fields for the semantic handler. */ - FLD (i_disp8) = f_disp8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bc8", "disp8 0x%x", 'x', f_disp8, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bc24: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl24.f - SI f_disp24; - - f_disp24 = ((((EXTRACT_MSB0_INT (insn, 32, 8, 24)) << (2))) + (pc)); - - /* Record the fields for the semantic handler. */ - FLD (i_disp24) = f_disp24; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bc24", "disp24 0x%x", 'x', f_disp24, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_beq: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_beq.f - UINT f_r1; - UINT f_r2; - SI f_disp16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_disp16 = ((((EXTRACT_MSB0_INT (insn, 32, 16, 16)) << (2))) + (pc)); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_disp16) = f_disp16; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_beq", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "disp16 0x%x", 'x', f_disp16, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_beqz: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_beq.f - UINT f_r2; - SI f_disp16; - - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_disp16 = ((((EXTRACT_MSB0_INT (insn, 32, 16, 16)) << (2))) + (pc)); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (i_disp16) = f_disp16; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_beqz", "f_r2 0x%x", 'x', f_r2, "disp16 0x%x", 'x', f_disp16, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bl8: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl8.f - SI f_disp8; - - f_disp8 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (2))) + (((pc) & (-4)))); - - /* Record the fields for the semantic handler. */ - FLD (i_disp8) = f_disp8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bl8", "disp8 0x%x", 'x', f_disp8, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_h_gr_SI_14) = 14; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bl24: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl24.f - SI f_disp24; - - f_disp24 = ((((EXTRACT_MSB0_INT (insn, 32, 8, 24)) << (2))) + (pc)); - - /* Record the fields for the semantic handler. */ - FLD (i_disp24) = f_disp24; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bl24", "disp24 0x%x", 'x', f_disp24, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_h_gr_SI_14) = 14; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bcl8: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl8.f - SI f_disp8; - - f_disp8 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (2))) + (((pc) & (-4)))); - - /* Record the fields for the semantic handler. */ - FLD (i_disp8) = f_disp8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bcl8", "disp8 0x%x", 'x', f_disp8, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_h_gr_SI_14) = 14; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bcl24: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl24.f - SI f_disp24; - - f_disp24 = ((((EXTRACT_MSB0_INT (insn, 32, 8, 24)) << (2))) + (pc)); - - /* Record the fields for the semantic handler. */ - FLD (i_disp24) = f_disp24; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bcl24", "disp24 0x%x", 'x', f_disp24, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_h_gr_SI_14) = 14; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bra8: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl8.f - SI f_disp8; - - f_disp8 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (2))) + (((pc) & (-4)))); - - /* Record the fields for the semantic handler. */ - FLD (i_disp8) = f_disp8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bra8", "disp8 0x%x", 'x', f_disp8, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bra24: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl24.f - SI f_disp24; - - f_disp24 = ((((EXTRACT_MSB0_INT (insn, 32, 8, 24)) << (2))) + (pc)); - - /* Record the fields for the semantic handler. */ - FLD (i_disp24) = f_disp24; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bra24", "disp24 0x%x", 'x', f_disp24, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_cmp: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_cmpi: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_d.f - UINT f_r2; - INT f_simm16; - - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpi", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_cmpz: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r2; - - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpz", "f_r2 0x%x", 'x', f_r2, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_div: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_dr) = f_r1; - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_jc: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_jl.f - UINT f_r2; - - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jc", "f_r2 0x%x", 'x', f_r2, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_jl: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_jl.f - UINT f_r2; - - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jl", "f_r2 0x%x", 'x', f_r2, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_h_gr_SI_14) = 14; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_jmp: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_jl.f - UINT f_r2; - - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jmp", "f_r2 0x%x", 'x', f_r2, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ld: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ld_d: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld_d", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ldb: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldb", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ldb_d: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldb_d", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ldh: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldh", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ldh_d: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldh_d", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ld_plus: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld_plus", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - FLD (out_sr) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ld24: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld24.f - UINT f_r1; - UINT f_uimm24; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_uimm24 = EXTRACT_MSB0_UINT (insn, 32, 8, 24); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (i_uimm24) = f_uimm24; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld24", "f_r1 0x%x", 'x', f_r1, "uimm24 0x%x", 'x', f_uimm24, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ldi8: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_addi.f - UINT f_r1; - INT f_simm8; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_simm8 = EXTRACT_MSB0_INT (insn, 16, 8, 8); - - /* Record the fields for the semantic handler. */ - FLD (f_simm8) = f_simm8; - FLD (f_r1) = f_r1; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldi8", "f_simm8 0x%x", 'x', f_simm8, "f_r1 0x%x", 'x', f_r1, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ldi16: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r1) = f_r1; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldi16", "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_lock: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lock", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_machi_a: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_machi_a.f - UINT f_r1; - UINT f_acc; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_acc = EXTRACT_MSB0_UINT (insn, 16, 8, 1); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_acc) = f_acc; - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_machi_a", "f_acc 0x%x", 'x', f_acc, "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_mulhi_a: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_machi_a.f - UINT f_r1; - UINT f_acc; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_acc = EXTRACT_MSB0_UINT (insn, 16, 8, 1); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (f_acc) = f_acc; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mulhi_a", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "f_acc 0x%x", 'x', f_acc, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_mv: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mv", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_mvfachi_a: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f - UINT f_r1; - UINT f_accs; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_accs = EXTRACT_MSB0_UINT (insn, 16, 12, 2); - - /* Record the fields for the semantic handler. */ - FLD (f_accs) = f_accs; - FLD (f_r1) = f_r1; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mvfachi_a", "f_accs 0x%x", 'x', f_accs, "f_r1 0x%x", 'x', f_r1, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_mvfc: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mvfc", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_mvtachi_a: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_mvtachi_a.f - UINT f_r1; - UINT f_accs; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_accs = EXTRACT_MSB0_UINT (insn, 16, 12, 2); - - /* Record the fields for the semantic handler. */ - FLD (f_accs) = f_accs; - FLD (f_r1) = f_r1; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mvtachi_a", "f_accs 0x%x", 'x', f_accs, "f_r1 0x%x", 'x', f_r1, "src1 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_mvtc: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mvtc", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_nop: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; -#define FLD(f) abuf->fields.fmt_empty.f - - - /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_nop", (char *) 0)); - -#undef FLD - return idesc; - } - - extract_sfmt_rac_dsi: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_rac_dsi.f - UINT f_accd; - UINT f_accs; - SI f_imm1; - - f_accd = EXTRACT_MSB0_UINT (insn, 16, 4, 2); - f_accs = EXTRACT_MSB0_UINT (insn, 16, 12, 2); - f_imm1 = ((EXTRACT_MSB0_UINT (insn, 16, 15, 1)) + (1)); - - /* Record the fields for the semantic handler. */ - FLD (f_accs) = f_accs; - FLD (f_imm1) = f_imm1; - FLD (f_accd) = f_accd; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rac_dsi", "f_accs 0x%x", 'x', f_accs, "f_imm1 0x%x", 'x', f_imm1, "f_accd 0x%x", 'x', f_accd, (char *) 0)); - -#undef FLD - return idesc; - } - - extract_sfmt_rte: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; -#define FLD(f) abuf->fields.fmt_empty.f - - - /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rte", (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_seth: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_seth.f - UINT f_r1; - UINT f_hi16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_hi16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_hi16) = f_hi16; - FLD (f_r1) = f_r1; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_seth", "f_hi16 0x%x", 'x', f_hi16, "f_r1 0x%x", 'x', f_r1, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_sll3: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sll3", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_slli: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_slli.f - UINT f_r1; - UINT f_uimm5; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_uimm5 = EXTRACT_MSB0_UINT (insn, 16, 11, 5); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_uimm5) = f_uimm5; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_slli", "f_r1 0x%x", 'x', f_r1, "f_uimm5 0x%x", 'x', f_uimm5, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_dr) = f_r1; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_st: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_st", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_st_d: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_d.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_st_d", "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_stb: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stb", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_stb_d: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_d.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stb_d", "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_sth: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sth", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_sth_d: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_d.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sth_d", "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_st_plus: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_st_plus", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - FLD (out_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_sth_plus: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sth_plus", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - FLD (out_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_stb_plus: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stb_plus", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - FLD (out_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_trap: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_trap.f - UINT f_uimm4; - - f_uimm4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_uimm4) = f_uimm4; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_trap", "f_uimm4 0x%x", 'x', f_uimm4, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_unlock: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_unlock", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_satb: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_satb", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_sat: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sat", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_sadd: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; -#define FLD(f) abuf->fields.fmt_empty.f - - - /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sadd", (char *) 0)); - -#undef FLD - return idesc; - } - - extract_sfmt_macwu1: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_macwu1", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_msblo: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_msblo", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_mulwu1: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mulwu1", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_sc: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; -#define FLD(f) abuf->fields.fmt_empty.f - - - /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sc", (char *) 0)); - -#undef FLD - return idesc; - } - - extract_sfmt_clrpsw: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_clrpsw.f - UINT f_uimm8; - - f_uimm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); - - /* Record the fields for the semantic handler. */ - FLD (f_uimm8) = f_uimm8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_clrpsw", "f_uimm8 0x%x", 'x', f_uimm8, (char *) 0)); - -#undef FLD - return idesc; - } - - extract_sfmt_setpsw: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_clrpsw.f - UINT f_uimm8; - - f_uimm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); - - /* Record the fields for the semantic handler. */ - FLD (f_uimm8) = f_uimm8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_setpsw", "f_uimm8 0x%x", 'x', f_uimm8, (char *) 0)); - -#undef FLD - return idesc; - } - - extract_sfmt_bset: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bset.f - UINT f_uimm3; - UINT f_r2; - INT f_simm16; - - f_uimm3 = EXTRACT_MSB0_UINT (insn, 32, 5, 3); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_uimm3) = f_uimm3; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bset", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_uimm3 0x%x", 'x', f_uimm3, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_btst: - { - const IDESC *idesc = &m32r2f_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bset.f - UINT f_uimm3; - UINT f_r2; - - f_uimm3 = EXTRACT_MSB0_UINT (insn, 16, 5, 3); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_uimm3) = f_uimm3; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_btst", "f_r2 0x%x", 'x', f_r2, "f_uimm3 0x%x", 'x', f_uimm3, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - } -#endif -#undef FLD - return idesc; - } - -} diff --git a/sim/m32r/decode2.h b/sim/m32r/decode2.h deleted file mode 100644 index 280247e..0000000 --- a/sim/m32r/decode2.h +++ /dev/null @@ -1,151 +0,0 @@ -/* Decode header for m32r2f. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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 M32R2F_DECODE_H -#define M32R2F_DECODE_H - -extern const IDESC *m32r2f_decode (SIM_CPU *, IADDR, - CGEN_INSN_INT, CGEN_INSN_INT, - ARGBUF *); -extern void m32r2f_init_idesc_table (SIM_CPU *); -extern void m32r2f_sem_init_idesc_table (SIM_CPU *); -extern void m32r2f_semf_init_idesc_table (SIM_CPU *); - -/* Enum declaration for instructions in cpu family m32r2f. */ -typedef enum m32r2f_insn_type { - M32R2F_INSN_X_INVALID, M32R2F_INSN_X_AFTER, M32R2F_INSN_X_BEFORE, M32R2F_INSN_X_CTI_CHAIN - , M32R2F_INSN_X_CHAIN, M32R2F_INSN_X_BEGIN, M32R2F_INSN_ADD, M32R2F_INSN_ADD3 - , M32R2F_INSN_AND, M32R2F_INSN_AND3, M32R2F_INSN_OR, M32R2F_INSN_OR3 - , M32R2F_INSN_XOR, M32R2F_INSN_XOR3, M32R2F_INSN_ADDI, M32R2F_INSN_ADDV - , M32R2F_INSN_ADDV3, M32R2F_INSN_ADDX, M32R2F_INSN_BC8, M32R2F_INSN_BC24 - , M32R2F_INSN_BEQ, M32R2F_INSN_BEQZ, M32R2F_INSN_BGEZ, M32R2F_INSN_BGTZ - , M32R2F_INSN_BLEZ, M32R2F_INSN_BLTZ, M32R2F_INSN_BNEZ, M32R2F_INSN_BL8 - , M32R2F_INSN_BL24, M32R2F_INSN_BCL8, M32R2F_INSN_BCL24, M32R2F_INSN_BNC8 - , M32R2F_INSN_BNC24, M32R2F_INSN_BNE, M32R2F_INSN_BRA8, M32R2F_INSN_BRA24 - , M32R2F_INSN_BNCL8, M32R2F_INSN_BNCL24, M32R2F_INSN_CMP, M32R2F_INSN_CMPI - , M32R2F_INSN_CMPU, M32R2F_INSN_CMPUI, M32R2F_INSN_CMPEQ, M32R2F_INSN_CMPZ - , M32R2F_INSN_DIV, M32R2F_INSN_DIVU, M32R2F_INSN_REM, M32R2F_INSN_REMU - , M32R2F_INSN_REMH, M32R2F_INSN_REMUH, M32R2F_INSN_REMB, M32R2F_INSN_REMUB - , M32R2F_INSN_DIVUH, M32R2F_INSN_DIVB, M32R2F_INSN_DIVUB, M32R2F_INSN_DIVH - , M32R2F_INSN_JC, M32R2F_INSN_JNC, M32R2F_INSN_JL, M32R2F_INSN_JMP - , M32R2F_INSN_LD, M32R2F_INSN_LD_D, M32R2F_INSN_LDB, M32R2F_INSN_LDB_D - , M32R2F_INSN_LDH, M32R2F_INSN_LDH_D, M32R2F_INSN_LDUB, M32R2F_INSN_LDUB_D - , M32R2F_INSN_LDUH, M32R2F_INSN_LDUH_D, M32R2F_INSN_LD_PLUS, M32R2F_INSN_LD24 - , M32R2F_INSN_LDI8, M32R2F_INSN_LDI16, M32R2F_INSN_LOCK, M32R2F_INSN_MACHI_A - , M32R2F_INSN_MACLO_A, M32R2F_INSN_MACWHI_A, M32R2F_INSN_MACWLO_A, M32R2F_INSN_MUL - , M32R2F_INSN_MULHI_A, M32R2F_INSN_MULLO_A, M32R2F_INSN_MULWHI_A, M32R2F_INSN_MULWLO_A - , M32R2F_INSN_MV, M32R2F_INSN_MVFACHI_A, M32R2F_INSN_MVFACLO_A, M32R2F_INSN_MVFACMI_A - , M32R2F_INSN_MVFC, M32R2F_INSN_MVTACHI_A, M32R2F_INSN_MVTACLO_A, M32R2F_INSN_MVTC - , M32R2F_INSN_NEG, M32R2F_INSN_NOP, M32R2F_INSN_NOT, M32R2F_INSN_RAC_DSI - , M32R2F_INSN_RACH_DSI, M32R2F_INSN_RTE, M32R2F_INSN_SETH, M32R2F_INSN_SLL - , M32R2F_INSN_SLL3, M32R2F_INSN_SLLI, M32R2F_INSN_SRA, M32R2F_INSN_SRA3 - , M32R2F_INSN_SRAI, M32R2F_INSN_SRL, M32R2F_INSN_SRL3, M32R2F_INSN_SRLI - , M32R2F_INSN_ST, M32R2F_INSN_ST_D, M32R2F_INSN_STB, M32R2F_INSN_STB_D - , M32R2F_INSN_STH, M32R2F_INSN_STH_D, M32R2F_INSN_ST_PLUS, M32R2F_INSN_STH_PLUS - , M32R2F_INSN_STB_PLUS, M32R2F_INSN_ST_MINUS, M32R2F_INSN_SUB, M32R2F_INSN_SUBV - , M32R2F_INSN_SUBX, M32R2F_INSN_TRAP, M32R2F_INSN_UNLOCK, M32R2F_INSN_SATB - , M32R2F_INSN_SATH, M32R2F_INSN_SAT, M32R2F_INSN_PCMPBZ, M32R2F_INSN_SADD - , M32R2F_INSN_MACWU1, M32R2F_INSN_MSBLO, M32R2F_INSN_MULWU1, M32R2F_INSN_MACLH1 - , M32R2F_INSN_SC, M32R2F_INSN_SNC, M32R2F_INSN_CLRPSW, M32R2F_INSN_SETPSW - , M32R2F_INSN_BSET, M32R2F_INSN_BCLR, M32R2F_INSN_BTST, M32R2F_INSN_PAR_ADD - , M32R2F_INSN_WRITE_ADD, M32R2F_INSN_PAR_AND, M32R2F_INSN_WRITE_AND, M32R2F_INSN_PAR_OR - , M32R2F_INSN_WRITE_OR, M32R2F_INSN_PAR_XOR, M32R2F_INSN_WRITE_XOR, M32R2F_INSN_PAR_ADDI - , M32R2F_INSN_WRITE_ADDI, M32R2F_INSN_PAR_ADDV, M32R2F_INSN_WRITE_ADDV, M32R2F_INSN_PAR_ADDX - , M32R2F_INSN_WRITE_ADDX, M32R2F_INSN_PAR_BC8, M32R2F_INSN_WRITE_BC8, M32R2F_INSN_PAR_BL8 - , M32R2F_INSN_WRITE_BL8, M32R2F_INSN_PAR_BCL8, M32R2F_INSN_WRITE_BCL8, M32R2F_INSN_PAR_BNC8 - , M32R2F_INSN_WRITE_BNC8, M32R2F_INSN_PAR_BRA8, M32R2F_INSN_WRITE_BRA8, M32R2F_INSN_PAR_BNCL8 - , M32R2F_INSN_WRITE_BNCL8, M32R2F_INSN_PAR_CMP, M32R2F_INSN_WRITE_CMP, M32R2F_INSN_PAR_CMPU - , M32R2F_INSN_WRITE_CMPU, M32R2F_INSN_PAR_CMPEQ, M32R2F_INSN_WRITE_CMPEQ, M32R2F_INSN_PAR_CMPZ - , M32R2F_INSN_WRITE_CMPZ, M32R2F_INSN_PAR_JC, M32R2F_INSN_WRITE_JC, M32R2F_INSN_PAR_JNC - , M32R2F_INSN_WRITE_JNC, M32R2F_INSN_PAR_JL, M32R2F_INSN_WRITE_JL, M32R2F_INSN_PAR_JMP - , M32R2F_INSN_WRITE_JMP, M32R2F_INSN_PAR_LD, M32R2F_INSN_WRITE_LD, M32R2F_INSN_PAR_LDB - , M32R2F_INSN_WRITE_LDB, M32R2F_INSN_PAR_LDH, M32R2F_INSN_WRITE_LDH, M32R2F_INSN_PAR_LDUB - , M32R2F_INSN_WRITE_LDUB, M32R2F_INSN_PAR_LDUH, M32R2F_INSN_WRITE_LDUH, M32R2F_INSN_PAR_LD_PLUS - , M32R2F_INSN_WRITE_LD_PLUS, M32R2F_INSN_PAR_LDI8, M32R2F_INSN_WRITE_LDI8, M32R2F_INSN_PAR_LOCK - , M32R2F_INSN_WRITE_LOCK, M32R2F_INSN_PAR_MACHI_A, M32R2F_INSN_WRITE_MACHI_A, M32R2F_INSN_PAR_MACLO_A - , M32R2F_INSN_WRITE_MACLO_A, M32R2F_INSN_PAR_MACWHI_A, M32R2F_INSN_WRITE_MACWHI_A, M32R2F_INSN_PAR_MACWLO_A - , M32R2F_INSN_WRITE_MACWLO_A, M32R2F_INSN_PAR_MUL, M32R2F_INSN_WRITE_MUL, M32R2F_INSN_PAR_MULHI_A - , M32R2F_INSN_WRITE_MULHI_A, M32R2F_INSN_PAR_MULLO_A, M32R2F_INSN_WRITE_MULLO_A, M32R2F_INSN_PAR_MULWHI_A - , M32R2F_INSN_WRITE_MULWHI_A, M32R2F_INSN_PAR_MULWLO_A, M32R2F_INSN_WRITE_MULWLO_A, M32R2F_INSN_PAR_MV - , M32R2F_INSN_WRITE_MV, M32R2F_INSN_PAR_MVFACHI_A, M32R2F_INSN_WRITE_MVFACHI_A, M32R2F_INSN_PAR_MVFACLO_A - , M32R2F_INSN_WRITE_MVFACLO_A, M32R2F_INSN_PAR_MVFACMI_A, M32R2F_INSN_WRITE_MVFACMI_A, M32R2F_INSN_PAR_MVFC - , M32R2F_INSN_WRITE_MVFC, M32R2F_INSN_PAR_MVTACHI_A, M32R2F_INSN_WRITE_MVTACHI_A, M32R2F_INSN_PAR_MVTACLO_A - , M32R2F_INSN_WRITE_MVTACLO_A, M32R2F_INSN_PAR_MVTC, M32R2F_INSN_WRITE_MVTC, M32R2F_INSN_PAR_NEG - , M32R2F_INSN_WRITE_NEG, M32R2F_INSN_PAR_NOP, M32R2F_INSN_WRITE_NOP, M32R2F_INSN_PAR_NOT - , M32R2F_INSN_WRITE_NOT, M32R2F_INSN_PAR_RAC_DSI, M32R2F_INSN_WRITE_RAC_DSI, M32R2F_INSN_PAR_RACH_DSI - , M32R2F_INSN_WRITE_RACH_DSI, M32R2F_INSN_PAR_RTE, M32R2F_INSN_WRITE_RTE, M32R2F_INSN_PAR_SLL - , M32R2F_INSN_WRITE_SLL, M32R2F_INSN_PAR_SLLI, M32R2F_INSN_WRITE_SLLI, M32R2F_INSN_PAR_SRA - , M32R2F_INSN_WRITE_SRA, M32R2F_INSN_PAR_SRAI, M32R2F_INSN_WRITE_SRAI, M32R2F_INSN_PAR_SRL - , M32R2F_INSN_WRITE_SRL, M32R2F_INSN_PAR_SRLI, M32R2F_INSN_WRITE_SRLI, M32R2F_INSN_PAR_ST - , M32R2F_INSN_WRITE_ST, M32R2F_INSN_PAR_STB, M32R2F_INSN_WRITE_STB, M32R2F_INSN_PAR_STH - , M32R2F_INSN_WRITE_STH, M32R2F_INSN_PAR_ST_PLUS, M32R2F_INSN_WRITE_ST_PLUS, M32R2F_INSN_PAR_STH_PLUS - , M32R2F_INSN_WRITE_STH_PLUS, M32R2F_INSN_PAR_STB_PLUS, M32R2F_INSN_WRITE_STB_PLUS, M32R2F_INSN_PAR_ST_MINUS - , M32R2F_INSN_WRITE_ST_MINUS, M32R2F_INSN_PAR_SUB, M32R2F_INSN_WRITE_SUB, M32R2F_INSN_PAR_SUBV - , M32R2F_INSN_WRITE_SUBV, M32R2F_INSN_PAR_SUBX, M32R2F_INSN_WRITE_SUBX, M32R2F_INSN_PAR_TRAP - , M32R2F_INSN_WRITE_TRAP, M32R2F_INSN_PAR_UNLOCK, M32R2F_INSN_WRITE_UNLOCK, M32R2F_INSN_PAR_PCMPBZ - , M32R2F_INSN_WRITE_PCMPBZ, M32R2F_INSN_PAR_SADD, M32R2F_INSN_WRITE_SADD, M32R2F_INSN_PAR_MACWU1 - , M32R2F_INSN_WRITE_MACWU1, M32R2F_INSN_PAR_MSBLO, M32R2F_INSN_WRITE_MSBLO, M32R2F_INSN_PAR_MULWU1 - , M32R2F_INSN_WRITE_MULWU1, M32R2F_INSN_PAR_MACLH1, M32R2F_INSN_WRITE_MACLH1, M32R2F_INSN_PAR_SC - , M32R2F_INSN_WRITE_SC, M32R2F_INSN_PAR_SNC, M32R2F_INSN_WRITE_SNC, M32R2F_INSN_PAR_CLRPSW - , M32R2F_INSN_WRITE_CLRPSW, M32R2F_INSN_PAR_SETPSW, M32R2F_INSN_WRITE_SETPSW, M32R2F_INSN_PAR_BTST - , M32R2F_INSN_WRITE_BTST, M32R2F_INSN__MAX -} M32R2F_INSN_TYPE; - -/* Enum declaration for semantic formats in cpu family m32r2f. */ -typedef enum m32r2f_sfmt_type { - M32R2F_SFMT_EMPTY, M32R2F_SFMT_ADD, M32R2F_SFMT_ADD3, M32R2F_SFMT_AND3 - , M32R2F_SFMT_OR3, M32R2F_SFMT_ADDI, M32R2F_SFMT_ADDV, M32R2F_SFMT_ADDV3 - , M32R2F_SFMT_ADDX, M32R2F_SFMT_BC8, M32R2F_SFMT_BC24, M32R2F_SFMT_BEQ - , M32R2F_SFMT_BEQZ, M32R2F_SFMT_BL8, M32R2F_SFMT_BL24, M32R2F_SFMT_BCL8 - , M32R2F_SFMT_BCL24, M32R2F_SFMT_BRA8, M32R2F_SFMT_BRA24, M32R2F_SFMT_CMP - , M32R2F_SFMT_CMPI, M32R2F_SFMT_CMPZ, M32R2F_SFMT_DIV, M32R2F_SFMT_JC - , M32R2F_SFMT_JL, M32R2F_SFMT_JMP, M32R2F_SFMT_LD, M32R2F_SFMT_LD_D - , M32R2F_SFMT_LDB, M32R2F_SFMT_LDB_D, M32R2F_SFMT_LDH, M32R2F_SFMT_LDH_D - , M32R2F_SFMT_LD_PLUS, M32R2F_SFMT_LD24, M32R2F_SFMT_LDI8, M32R2F_SFMT_LDI16 - , M32R2F_SFMT_LOCK, M32R2F_SFMT_MACHI_A, M32R2F_SFMT_MULHI_A, M32R2F_SFMT_MV - , M32R2F_SFMT_MVFACHI_A, M32R2F_SFMT_MVFC, M32R2F_SFMT_MVTACHI_A, M32R2F_SFMT_MVTC - , M32R2F_SFMT_NOP, M32R2F_SFMT_RAC_DSI, M32R2F_SFMT_RTE, M32R2F_SFMT_SETH - , M32R2F_SFMT_SLL3, M32R2F_SFMT_SLLI, M32R2F_SFMT_ST, M32R2F_SFMT_ST_D - , M32R2F_SFMT_STB, M32R2F_SFMT_STB_D, M32R2F_SFMT_STH, M32R2F_SFMT_STH_D - , M32R2F_SFMT_ST_PLUS, M32R2F_SFMT_STH_PLUS, M32R2F_SFMT_STB_PLUS, M32R2F_SFMT_TRAP - , M32R2F_SFMT_UNLOCK, M32R2F_SFMT_SATB, M32R2F_SFMT_SAT, M32R2F_SFMT_SADD - , M32R2F_SFMT_MACWU1, M32R2F_SFMT_MSBLO, M32R2F_SFMT_MULWU1, M32R2F_SFMT_SC - , M32R2F_SFMT_CLRPSW, M32R2F_SFMT_SETPSW, M32R2F_SFMT_BSET, M32R2F_SFMT_BTST -} M32R2F_SFMT_TYPE; - -/* Function unit handlers (user written). */ - -extern int m32r2f_model_m32r2_u_store (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*src1*/, INT /*src2*/); -extern int m32r2f_model_m32r2_u_load (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*sr*/, INT /*dr*/); -extern int m32r2f_model_m32r2_u_cti (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*sr*/); -extern int m32r2f_model_m32r2_u_mac (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*src1*/, INT /*src2*/); -extern int m32r2f_model_m32r2_u_cmp (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*src1*/, INT /*src2*/); -extern int m32r2f_model_m32r2_u_exec (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*sr*/, INT /*dr*/, INT /*dr*/); - -/* Profiling before/after handlers (user written) */ - -extern void m32r2f_model_insn_before (SIM_CPU *, int /*first_p*/); -extern void m32r2f_model_insn_after (SIM_CPU *, int /*last_p*/, int /*cycles*/); - -#endif /* M32R2F_DECODE_H */ diff --git a/sim/m32r/decodex.c b/sim/m32r/decodex.c deleted file mode 100644 index 893abc9..0000000 --- a/sim/m32r/decodex.c +++ /dev/null @@ -1,2571 +0,0 @@ -/* Simulator instruction decoder for m32rxf. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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. - -*/ - -#define WANT_CPU m32rxf -#define WANT_CPU_M32RXF - -#include "sim-main.h" -#include "sim-assert.h" - -/* Insn can't be executed in parallel. - Or is that "do NOt Pass to Air defense Radar"? :-) */ -#define NOPAR (-1) - -/* The instruction descriptor array. - This is computed at runtime. Space for it is not malloc'd to save a - teensy bit of cpu in the decoder. Moving it to malloc space is trivial - but won't be done until necessary (we don't currently support the runtime - addition of instructions nor an SMP machine with different cpus). */ -static IDESC m32rxf_insn_data[M32RXF_INSN__MAX]; - -/* Commas between elements are contained in the macros. - Some of these are conditionally compiled out. */ - -static const struct insn_sem m32rxf_insn_sem[] = -{ - { VIRTUAL_INSN_X_INVALID, M32RXF_INSN_X_INVALID, M32RXF_SFMT_EMPTY, NOPAR, NOPAR }, - { VIRTUAL_INSN_X_AFTER, M32RXF_INSN_X_AFTER, M32RXF_SFMT_EMPTY, NOPAR, NOPAR }, - { VIRTUAL_INSN_X_BEFORE, M32RXF_INSN_X_BEFORE, M32RXF_SFMT_EMPTY, NOPAR, NOPAR }, - { VIRTUAL_INSN_X_CTI_CHAIN, M32RXF_INSN_X_CTI_CHAIN, M32RXF_SFMT_EMPTY, NOPAR, NOPAR }, - { VIRTUAL_INSN_X_CHAIN, M32RXF_INSN_X_CHAIN, M32RXF_SFMT_EMPTY, NOPAR, NOPAR }, - { VIRTUAL_INSN_X_BEGIN, M32RXF_INSN_X_BEGIN, M32RXF_SFMT_EMPTY, NOPAR, NOPAR }, - { M32R_INSN_ADD, M32RXF_INSN_ADD, M32RXF_SFMT_ADD, M32RXF_INSN_PAR_ADD, M32RXF_INSN_WRITE_ADD }, - { M32R_INSN_ADD3, M32RXF_INSN_ADD3, M32RXF_SFMT_ADD3, NOPAR, NOPAR }, - { M32R_INSN_AND, M32RXF_INSN_AND, M32RXF_SFMT_ADD, M32RXF_INSN_PAR_AND, M32RXF_INSN_WRITE_AND }, - { M32R_INSN_AND3, M32RXF_INSN_AND3, M32RXF_SFMT_AND3, NOPAR, NOPAR }, - { M32R_INSN_OR, M32RXF_INSN_OR, M32RXF_SFMT_ADD, M32RXF_INSN_PAR_OR, M32RXF_INSN_WRITE_OR }, - { M32R_INSN_OR3, M32RXF_INSN_OR3, M32RXF_SFMT_OR3, NOPAR, NOPAR }, - { M32R_INSN_XOR, M32RXF_INSN_XOR, M32RXF_SFMT_ADD, M32RXF_INSN_PAR_XOR, M32RXF_INSN_WRITE_XOR }, - { M32R_INSN_XOR3, M32RXF_INSN_XOR3, M32RXF_SFMT_AND3, NOPAR, NOPAR }, - { M32R_INSN_ADDI, M32RXF_INSN_ADDI, M32RXF_SFMT_ADDI, M32RXF_INSN_PAR_ADDI, M32RXF_INSN_WRITE_ADDI }, - { M32R_INSN_ADDV, M32RXF_INSN_ADDV, M32RXF_SFMT_ADDV, M32RXF_INSN_PAR_ADDV, M32RXF_INSN_WRITE_ADDV }, - { M32R_INSN_ADDV3, M32RXF_INSN_ADDV3, M32RXF_SFMT_ADDV3, NOPAR, NOPAR }, - { M32R_INSN_ADDX, M32RXF_INSN_ADDX, M32RXF_SFMT_ADDX, M32RXF_INSN_PAR_ADDX, M32RXF_INSN_WRITE_ADDX }, - { M32R_INSN_BC8, M32RXF_INSN_BC8, M32RXF_SFMT_BC8, M32RXF_INSN_PAR_BC8, M32RXF_INSN_WRITE_BC8 }, - { M32R_INSN_BC24, M32RXF_INSN_BC24, M32RXF_SFMT_BC24, NOPAR, NOPAR }, - { M32R_INSN_BEQ, M32RXF_INSN_BEQ, M32RXF_SFMT_BEQ, NOPAR, NOPAR }, - { M32R_INSN_BEQZ, M32RXF_INSN_BEQZ, M32RXF_SFMT_BEQZ, NOPAR, NOPAR }, - { M32R_INSN_BGEZ, M32RXF_INSN_BGEZ, M32RXF_SFMT_BEQZ, NOPAR, NOPAR }, - { M32R_INSN_BGTZ, M32RXF_INSN_BGTZ, M32RXF_SFMT_BEQZ, NOPAR, NOPAR }, - { M32R_INSN_BLEZ, M32RXF_INSN_BLEZ, M32RXF_SFMT_BEQZ, NOPAR, NOPAR }, - { M32R_INSN_BLTZ, M32RXF_INSN_BLTZ, M32RXF_SFMT_BEQZ, NOPAR, NOPAR }, - { M32R_INSN_BNEZ, M32RXF_INSN_BNEZ, M32RXF_SFMT_BEQZ, NOPAR, NOPAR }, - { M32R_INSN_BL8, M32RXF_INSN_BL8, M32RXF_SFMT_BL8, M32RXF_INSN_PAR_BL8, M32RXF_INSN_WRITE_BL8 }, - { M32R_INSN_BL24, M32RXF_INSN_BL24, M32RXF_SFMT_BL24, NOPAR, NOPAR }, - { M32R_INSN_BCL8, M32RXF_INSN_BCL8, M32RXF_SFMT_BCL8, M32RXF_INSN_PAR_BCL8, M32RXF_INSN_WRITE_BCL8 }, - { M32R_INSN_BCL24, M32RXF_INSN_BCL24, M32RXF_SFMT_BCL24, NOPAR, NOPAR }, - { M32R_INSN_BNC8, M32RXF_INSN_BNC8, M32RXF_SFMT_BC8, M32RXF_INSN_PAR_BNC8, M32RXF_INSN_WRITE_BNC8 }, - { M32R_INSN_BNC24, M32RXF_INSN_BNC24, M32RXF_SFMT_BC24, NOPAR, NOPAR }, - { M32R_INSN_BNE, M32RXF_INSN_BNE, M32RXF_SFMT_BEQ, NOPAR, NOPAR }, - { M32R_INSN_BRA8, M32RXF_INSN_BRA8, M32RXF_SFMT_BRA8, M32RXF_INSN_PAR_BRA8, M32RXF_INSN_WRITE_BRA8 }, - { M32R_INSN_BRA24, M32RXF_INSN_BRA24, M32RXF_SFMT_BRA24, NOPAR, NOPAR }, - { M32R_INSN_BNCL8, M32RXF_INSN_BNCL8, M32RXF_SFMT_BCL8, M32RXF_INSN_PAR_BNCL8, M32RXF_INSN_WRITE_BNCL8 }, - { M32R_INSN_BNCL24, M32RXF_INSN_BNCL24, M32RXF_SFMT_BCL24, NOPAR, NOPAR }, - { M32R_INSN_CMP, M32RXF_INSN_CMP, M32RXF_SFMT_CMP, M32RXF_INSN_PAR_CMP, M32RXF_INSN_WRITE_CMP }, - { M32R_INSN_CMPI, M32RXF_INSN_CMPI, M32RXF_SFMT_CMPI, NOPAR, NOPAR }, - { M32R_INSN_CMPU, M32RXF_INSN_CMPU, M32RXF_SFMT_CMP, M32RXF_INSN_PAR_CMPU, M32RXF_INSN_WRITE_CMPU }, - { M32R_INSN_CMPUI, M32RXF_INSN_CMPUI, M32RXF_SFMT_CMPI, NOPAR, NOPAR }, - { M32R_INSN_CMPEQ, M32RXF_INSN_CMPEQ, M32RXF_SFMT_CMP, M32RXF_INSN_PAR_CMPEQ, M32RXF_INSN_WRITE_CMPEQ }, - { M32R_INSN_CMPZ, M32RXF_INSN_CMPZ, M32RXF_SFMT_CMPZ, M32RXF_INSN_PAR_CMPZ, M32RXF_INSN_WRITE_CMPZ }, - { M32R_INSN_DIV, M32RXF_INSN_DIV, M32RXF_SFMT_DIV, NOPAR, NOPAR }, - { M32R_INSN_DIVU, M32RXF_INSN_DIVU, M32RXF_SFMT_DIV, NOPAR, NOPAR }, - { M32R_INSN_REM, M32RXF_INSN_REM, M32RXF_SFMT_DIV, NOPAR, NOPAR }, - { M32R_INSN_REMU, M32RXF_INSN_REMU, M32RXF_SFMT_DIV, NOPAR, NOPAR }, - { M32R_INSN_DIVH, M32RXF_INSN_DIVH, M32RXF_SFMT_DIV, NOPAR, NOPAR }, - { M32R_INSN_JC, M32RXF_INSN_JC, M32RXF_SFMT_JC, M32RXF_INSN_PAR_JC, M32RXF_INSN_WRITE_JC }, - { M32R_INSN_JNC, M32RXF_INSN_JNC, M32RXF_SFMT_JC, M32RXF_INSN_PAR_JNC, M32RXF_INSN_WRITE_JNC }, - { M32R_INSN_JL, M32RXF_INSN_JL, M32RXF_SFMT_JL, M32RXF_INSN_PAR_JL, M32RXF_INSN_WRITE_JL }, - { M32R_INSN_JMP, M32RXF_INSN_JMP, M32RXF_SFMT_JMP, M32RXF_INSN_PAR_JMP, M32RXF_INSN_WRITE_JMP }, - { M32R_INSN_LD, M32RXF_INSN_LD, M32RXF_SFMT_LD, M32RXF_INSN_PAR_LD, M32RXF_INSN_WRITE_LD }, - { M32R_INSN_LD_D, M32RXF_INSN_LD_D, M32RXF_SFMT_LD_D, NOPAR, NOPAR }, - { M32R_INSN_LDB, M32RXF_INSN_LDB, M32RXF_SFMT_LDB, M32RXF_INSN_PAR_LDB, M32RXF_INSN_WRITE_LDB }, - { M32R_INSN_LDB_D, M32RXF_INSN_LDB_D, M32RXF_SFMT_LDB_D, NOPAR, NOPAR }, - { M32R_INSN_LDH, M32RXF_INSN_LDH, M32RXF_SFMT_LDH, M32RXF_INSN_PAR_LDH, M32RXF_INSN_WRITE_LDH }, - { M32R_INSN_LDH_D, M32RXF_INSN_LDH_D, M32RXF_SFMT_LDH_D, NOPAR, NOPAR }, - { M32R_INSN_LDUB, M32RXF_INSN_LDUB, M32RXF_SFMT_LDB, M32RXF_INSN_PAR_LDUB, M32RXF_INSN_WRITE_LDUB }, - { M32R_INSN_LDUB_D, M32RXF_INSN_LDUB_D, M32RXF_SFMT_LDB_D, NOPAR, NOPAR }, - { M32R_INSN_LDUH, M32RXF_INSN_LDUH, M32RXF_SFMT_LDH, M32RXF_INSN_PAR_LDUH, M32RXF_INSN_WRITE_LDUH }, - { M32R_INSN_LDUH_D, M32RXF_INSN_LDUH_D, M32RXF_SFMT_LDH_D, NOPAR, NOPAR }, - { M32R_INSN_LD_PLUS, M32RXF_INSN_LD_PLUS, M32RXF_SFMT_LD_PLUS, M32RXF_INSN_PAR_LD_PLUS, M32RXF_INSN_WRITE_LD_PLUS }, - { M32R_INSN_LD24, M32RXF_INSN_LD24, M32RXF_SFMT_LD24, NOPAR, NOPAR }, - { M32R_INSN_LDI8, M32RXF_INSN_LDI8, M32RXF_SFMT_LDI8, M32RXF_INSN_PAR_LDI8, M32RXF_INSN_WRITE_LDI8 }, - { M32R_INSN_LDI16, M32RXF_INSN_LDI16, M32RXF_SFMT_LDI16, NOPAR, NOPAR }, - { M32R_INSN_LOCK, M32RXF_INSN_LOCK, M32RXF_SFMT_LOCK, M32RXF_INSN_PAR_LOCK, M32RXF_INSN_WRITE_LOCK }, - { M32R_INSN_MACHI_A, M32RXF_INSN_MACHI_A, M32RXF_SFMT_MACHI_A, M32RXF_INSN_PAR_MACHI_A, M32RXF_INSN_WRITE_MACHI_A }, - { M32R_INSN_MACLO_A, M32RXF_INSN_MACLO_A, M32RXF_SFMT_MACHI_A, M32RXF_INSN_PAR_MACLO_A, M32RXF_INSN_WRITE_MACLO_A }, - { M32R_INSN_MACWHI_A, M32RXF_INSN_MACWHI_A, M32RXF_SFMT_MACHI_A, M32RXF_INSN_PAR_MACWHI_A, M32RXF_INSN_WRITE_MACWHI_A }, - { M32R_INSN_MACWLO_A, M32RXF_INSN_MACWLO_A, M32RXF_SFMT_MACHI_A, M32RXF_INSN_PAR_MACWLO_A, M32RXF_INSN_WRITE_MACWLO_A }, - { M32R_INSN_MUL, M32RXF_INSN_MUL, M32RXF_SFMT_ADD, M32RXF_INSN_PAR_MUL, M32RXF_INSN_WRITE_MUL }, - { M32R_INSN_MULHI_A, M32RXF_INSN_MULHI_A, M32RXF_SFMT_MULHI_A, M32RXF_INSN_PAR_MULHI_A, M32RXF_INSN_WRITE_MULHI_A }, - { M32R_INSN_MULLO_A, M32RXF_INSN_MULLO_A, M32RXF_SFMT_MULHI_A, M32RXF_INSN_PAR_MULLO_A, M32RXF_INSN_WRITE_MULLO_A }, - { M32R_INSN_MULWHI_A, M32RXF_INSN_MULWHI_A, M32RXF_SFMT_MULHI_A, M32RXF_INSN_PAR_MULWHI_A, M32RXF_INSN_WRITE_MULWHI_A }, - { M32R_INSN_MULWLO_A, M32RXF_INSN_MULWLO_A, M32RXF_SFMT_MULHI_A, M32RXF_INSN_PAR_MULWLO_A, M32RXF_INSN_WRITE_MULWLO_A }, - { M32R_INSN_MV, M32RXF_INSN_MV, M32RXF_SFMT_MV, M32RXF_INSN_PAR_MV, M32RXF_INSN_WRITE_MV }, - { M32R_INSN_MVFACHI_A, M32RXF_INSN_MVFACHI_A, M32RXF_SFMT_MVFACHI_A, M32RXF_INSN_PAR_MVFACHI_A, M32RXF_INSN_WRITE_MVFACHI_A }, - { M32R_INSN_MVFACLO_A, M32RXF_INSN_MVFACLO_A, M32RXF_SFMT_MVFACHI_A, M32RXF_INSN_PAR_MVFACLO_A, M32RXF_INSN_WRITE_MVFACLO_A }, - { M32R_INSN_MVFACMI_A, M32RXF_INSN_MVFACMI_A, M32RXF_SFMT_MVFACHI_A, M32RXF_INSN_PAR_MVFACMI_A, M32RXF_INSN_WRITE_MVFACMI_A }, - { M32R_INSN_MVFC, M32RXF_INSN_MVFC, M32RXF_SFMT_MVFC, M32RXF_INSN_PAR_MVFC, M32RXF_INSN_WRITE_MVFC }, - { M32R_INSN_MVTACHI_A, M32RXF_INSN_MVTACHI_A, M32RXF_SFMT_MVTACHI_A, M32RXF_INSN_PAR_MVTACHI_A, M32RXF_INSN_WRITE_MVTACHI_A }, - { M32R_INSN_MVTACLO_A, M32RXF_INSN_MVTACLO_A, M32RXF_SFMT_MVTACHI_A, M32RXF_INSN_PAR_MVTACLO_A, M32RXF_INSN_WRITE_MVTACLO_A }, - { M32R_INSN_MVTC, M32RXF_INSN_MVTC, M32RXF_SFMT_MVTC, M32RXF_INSN_PAR_MVTC, M32RXF_INSN_WRITE_MVTC }, - { M32R_INSN_NEG, M32RXF_INSN_NEG, M32RXF_SFMT_MV, M32RXF_INSN_PAR_NEG, M32RXF_INSN_WRITE_NEG }, - { M32R_INSN_NOP, M32RXF_INSN_NOP, M32RXF_SFMT_NOP, M32RXF_INSN_PAR_NOP, M32RXF_INSN_WRITE_NOP }, - { M32R_INSN_NOT, M32RXF_INSN_NOT, M32RXF_SFMT_MV, M32RXF_INSN_PAR_NOT, M32RXF_INSN_WRITE_NOT }, - { M32R_INSN_RAC_DSI, M32RXF_INSN_RAC_DSI, M32RXF_SFMT_RAC_DSI, M32RXF_INSN_PAR_RAC_DSI, M32RXF_INSN_WRITE_RAC_DSI }, - { M32R_INSN_RACH_DSI, M32RXF_INSN_RACH_DSI, M32RXF_SFMT_RAC_DSI, M32RXF_INSN_PAR_RACH_DSI, M32RXF_INSN_WRITE_RACH_DSI }, - { M32R_INSN_RTE, M32RXF_INSN_RTE, M32RXF_SFMT_RTE, M32RXF_INSN_PAR_RTE, M32RXF_INSN_WRITE_RTE }, - { M32R_INSN_SETH, M32RXF_INSN_SETH, M32RXF_SFMT_SETH, NOPAR, NOPAR }, - { M32R_INSN_SLL, M32RXF_INSN_SLL, M32RXF_SFMT_ADD, M32RXF_INSN_PAR_SLL, M32RXF_INSN_WRITE_SLL }, - { M32R_INSN_SLL3, M32RXF_INSN_SLL3, M32RXF_SFMT_SLL3, NOPAR, NOPAR }, - { M32R_INSN_SLLI, M32RXF_INSN_SLLI, M32RXF_SFMT_SLLI, M32RXF_INSN_PAR_SLLI, M32RXF_INSN_WRITE_SLLI }, - { M32R_INSN_SRA, M32RXF_INSN_SRA, M32RXF_SFMT_ADD, M32RXF_INSN_PAR_SRA, M32RXF_INSN_WRITE_SRA }, - { M32R_INSN_SRA3, M32RXF_INSN_SRA3, M32RXF_SFMT_SLL3, NOPAR, NOPAR }, - { M32R_INSN_SRAI, M32RXF_INSN_SRAI, M32RXF_SFMT_SLLI, M32RXF_INSN_PAR_SRAI, M32RXF_INSN_WRITE_SRAI }, - { M32R_INSN_SRL, M32RXF_INSN_SRL, M32RXF_SFMT_ADD, M32RXF_INSN_PAR_SRL, M32RXF_INSN_WRITE_SRL }, - { M32R_INSN_SRL3, M32RXF_INSN_SRL3, M32RXF_SFMT_SLL3, NOPAR, NOPAR }, - { M32R_INSN_SRLI, M32RXF_INSN_SRLI, M32RXF_SFMT_SLLI, M32RXF_INSN_PAR_SRLI, M32RXF_INSN_WRITE_SRLI }, - { M32R_INSN_ST, M32RXF_INSN_ST, M32RXF_SFMT_ST, M32RXF_INSN_PAR_ST, M32RXF_INSN_WRITE_ST }, - { M32R_INSN_ST_D, M32RXF_INSN_ST_D, M32RXF_SFMT_ST_D, NOPAR, NOPAR }, - { M32R_INSN_STB, M32RXF_INSN_STB, M32RXF_SFMT_STB, M32RXF_INSN_PAR_STB, M32RXF_INSN_WRITE_STB }, - { M32R_INSN_STB_D, M32RXF_INSN_STB_D, M32RXF_SFMT_STB_D, NOPAR, NOPAR }, - { M32R_INSN_STH, M32RXF_INSN_STH, M32RXF_SFMT_STH, M32RXF_INSN_PAR_STH, M32RXF_INSN_WRITE_STH }, - { M32R_INSN_STH_D, M32RXF_INSN_STH_D, M32RXF_SFMT_STH_D, NOPAR, NOPAR }, - { M32R_INSN_ST_PLUS, M32RXF_INSN_ST_PLUS, M32RXF_SFMT_ST_PLUS, M32RXF_INSN_PAR_ST_PLUS, M32RXF_INSN_WRITE_ST_PLUS }, - { M32R_INSN_STH_PLUS, M32RXF_INSN_STH_PLUS, M32RXF_SFMT_STH_PLUS, M32RXF_INSN_PAR_STH_PLUS, M32RXF_INSN_WRITE_STH_PLUS }, - { M32R_INSN_STB_PLUS, M32RXF_INSN_STB_PLUS, M32RXF_SFMT_STB_PLUS, M32RXF_INSN_PAR_STB_PLUS, M32RXF_INSN_WRITE_STB_PLUS }, - { M32R_INSN_ST_MINUS, M32RXF_INSN_ST_MINUS, M32RXF_SFMT_ST_PLUS, M32RXF_INSN_PAR_ST_MINUS, M32RXF_INSN_WRITE_ST_MINUS }, - { M32R_INSN_SUB, M32RXF_INSN_SUB, M32RXF_SFMT_ADD, M32RXF_INSN_PAR_SUB, M32RXF_INSN_WRITE_SUB }, - { M32R_INSN_SUBV, M32RXF_INSN_SUBV, M32RXF_SFMT_ADDV, M32RXF_INSN_PAR_SUBV, M32RXF_INSN_WRITE_SUBV }, - { M32R_INSN_SUBX, M32RXF_INSN_SUBX, M32RXF_SFMT_ADDX, M32RXF_INSN_PAR_SUBX, M32RXF_INSN_WRITE_SUBX }, - { M32R_INSN_TRAP, M32RXF_INSN_TRAP, M32RXF_SFMT_TRAP, M32RXF_INSN_PAR_TRAP, M32RXF_INSN_WRITE_TRAP }, - { M32R_INSN_UNLOCK, M32RXF_INSN_UNLOCK, M32RXF_SFMT_UNLOCK, M32RXF_INSN_PAR_UNLOCK, M32RXF_INSN_WRITE_UNLOCK }, - { M32R_INSN_SATB, M32RXF_INSN_SATB, M32RXF_SFMT_SATB, NOPAR, NOPAR }, - { M32R_INSN_SATH, M32RXF_INSN_SATH, M32RXF_SFMT_SATB, NOPAR, NOPAR }, - { M32R_INSN_SAT, M32RXF_INSN_SAT, M32RXF_SFMT_SAT, NOPAR, NOPAR }, - { M32R_INSN_PCMPBZ, M32RXF_INSN_PCMPBZ, M32RXF_SFMT_CMPZ, M32RXF_INSN_PAR_PCMPBZ, M32RXF_INSN_WRITE_PCMPBZ }, - { M32R_INSN_SADD, M32RXF_INSN_SADD, M32RXF_SFMT_SADD, M32RXF_INSN_PAR_SADD, M32RXF_INSN_WRITE_SADD }, - { M32R_INSN_MACWU1, M32RXF_INSN_MACWU1, M32RXF_SFMT_MACWU1, M32RXF_INSN_PAR_MACWU1, M32RXF_INSN_WRITE_MACWU1 }, - { M32R_INSN_MSBLO, M32RXF_INSN_MSBLO, M32RXF_SFMT_MSBLO, M32RXF_INSN_PAR_MSBLO, M32RXF_INSN_WRITE_MSBLO }, - { M32R_INSN_MULWU1, M32RXF_INSN_MULWU1, M32RXF_SFMT_MULWU1, M32RXF_INSN_PAR_MULWU1, M32RXF_INSN_WRITE_MULWU1 }, - { M32R_INSN_MACLH1, M32RXF_INSN_MACLH1, M32RXF_SFMT_MACWU1, M32RXF_INSN_PAR_MACLH1, M32RXF_INSN_WRITE_MACLH1 }, - { M32R_INSN_SC, M32RXF_INSN_SC, M32RXF_SFMT_SC, M32RXF_INSN_PAR_SC, M32RXF_INSN_WRITE_SC }, - { M32R_INSN_SNC, M32RXF_INSN_SNC, M32RXF_SFMT_SC, M32RXF_INSN_PAR_SNC, M32RXF_INSN_WRITE_SNC }, - { M32R_INSN_CLRPSW, M32RXF_INSN_CLRPSW, M32RXF_SFMT_CLRPSW, M32RXF_INSN_PAR_CLRPSW, M32RXF_INSN_WRITE_CLRPSW }, - { M32R_INSN_SETPSW, M32RXF_INSN_SETPSW, M32RXF_SFMT_SETPSW, M32RXF_INSN_PAR_SETPSW, M32RXF_INSN_WRITE_SETPSW }, - { M32R_INSN_BSET, M32RXF_INSN_BSET, M32RXF_SFMT_BSET, NOPAR, NOPAR }, - { M32R_INSN_BCLR, M32RXF_INSN_BCLR, M32RXF_SFMT_BSET, NOPAR, NOPAR }, - { M32R_INSN_BTST, M32RXF_INSN_BTST, M32RXF_SFMT_BTST, M32RXF_INSN_PAR_BTST, M32RXF_INSN_WRITE_BTST }, -}; - -static const struct insn_sem m32rxf_insn_sem_invalid = { - VIRTUAL_INSN_X_INVALID, M32RXF_INSN_X_INVALID, M32RXF_SFMT_EMPTY, NOPAR, NOPAR -}; - -/* Initialize an IDESC from the compile-time computable parts. */ - -static INLINE void -init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t) -{ - const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries; - - id->num = t->index; - id->sfmt = t->sfmt; - if ((int) t->type <= 0) - id->idata = & cgen_virtual_insn_table[- (int) t->type]; - else - id->idata = & insn_table[t->type]; - id->attrs = CGEN_INSN_ATTRS (id->idata); - /* Oh my god, a magic number. */ - id->length = CGEN_INSN_BITSIZE (id->idata) / 8; - -#if WITH_PROFILE_MODEL_P - id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index]; - { - SIM_DESC sd = CPU_STATE (cpu); - SIM_ASSERT (t->index == id->timing->num); - } -#endif - - /* Semantic pointers are initialized elsewhere. */ -} - -/* Initialize the instruction descriptor table. */ - -void -m32rxf_init_idesc_table (SIM_CPU *cpu) -{ - IDESC *id,*tabend; - const struct insn_sem *t,*tend; - int tabsize = M32RXF_INSN__MAX; - IDESC *table = m32rxf_insn_data; - - memset (table, 0, tabsize * sizeof (IDESC)); - - /* First set all entries to the `invalid insn'. */ - t = & m32rxf_insn_sem_invalid; - for (id = table, tabend = table + tabsize; id < tabend; ++id) - init_idesc (cpu, id, t); - - /* Now fill in the values for the chosen cpu. */ - for (t = m32rxf_insn_sem, tend = t + sizeof (m32rxf_insn_sem) / sizeof (*t); - t != tend; ++t) - { - init_idesc (cpu, & table[t->index], t); - if (t->par_index != NOPAR) - { - init_idesc (cpu, &table[t->par_index], t); - table[t->index].par_idesc = &table[t->par_index]; - } - if (t->par_index != NOPAR) - { - init_idesc (cpu, &table[t->write_index], t); - table[t->par_index].par_idesc = &table[t->write_index]; - } - } - - /* Link the IDESC table into the cpu. */ - CPU_IDESC (cpu) = table; -} - -/* Given an instruction, return a pointer to its IDESC entry. */ - -const IDESC * -m32rxf_decode (SIM_CPU *current_cpu, IADDR pc, - CGEN_INSN_INT base_insn, CGEN_INSN_INT entire_insn, - ARGBUF *abuf) -{ - /* Result of decoder. */ - M32RXF_INSN_TYPE itype; - - { - CGEN_INSN_INT insn = base_insn; - - { - unsigned int val = (((insn >> 8) & (15 << 4)) | ((insn >> 4) & (15 << 0))); - switch (val) - { - case 0 : itype = M32RXF_INSN_SUBV; goto extract_sfmt_addv; - case 1 : itype = M32RXF_INSN_SUBX; goto extract_sfmt_addx; - case 2 : itype = M32RXF_INSN_SUB; goto extract_sfmt_add; - case 3 : itype = M32RXF_INSN_NEG; goto extract_sfmt_mv; - case 4 : itype = M32RXF_INSN_CMP; goto extract_sfmt_cmp; - case 5 : itype = M32RXF_INSN_CMPU; goto extract_sfmt_cmp; - case 6 : itype = M32RXF_INSN_CMPEQ; goto extract_sfmt_cmp; - case 7 : - { - unsigned int val = (((insn >> 8) & (3 << 0))); - switch (val) - { - case 0 : itype = M32RXF_INSN_CMPZ; goto extract_sfmt_cmpz; - case 3 : itype = M32RXF_INSN_PCMPBZ; goto extract_sfmt_cmpz; - default : itype = M32RXF_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 8 : itype = M32RXF_INSN_ADDV; goto extract_sfmt_addv; - case 9 : itype = M32RXF_INSN_ADDX; goto extract_sfmt_addx; - case 10 : itype = M32RXF_INSN_ADD; goto extract_sfmt_add; - case 11 : itype = M32RXF_INSN_NOT; goto extract_sfmt_mv; - case 12 : itype = M32RXF_INSN_AND; goto extract_sfmt_add; - case 13 : itype = M32RXF_INSN_XOR; goto extract_sfmt_add; - case 14 : itype = M32RXF_INSN_OR; goto extract_sfmt_add; - case 15 : itype = M32RXF_INSN_BTST; goto extract_sfmt_btst; - case 16 : itype = M32RXF_INSN_SRL; goto extract_sfmt_add; - case 18 : itype = M32RXF_INSN_SRA; goto extract_sfmt_add; - case 20 : itype = M32RXF_INSN_SLL; goto extract_sfmt_add; - case 22 : itype = M32RXF_INSN_MUL; goto extract_sfmt_add; - case 24 : itype = M32RXF_INSN_MV; goto extract_sfmt_mv; - case 25 : itype = M32RXF_INSN_MVFC; goto extract_sfmt_mvfc; - case 26 : itype = M32RXF_INSN_MVTC; goto extract_sfmt_mvtc; - case 28 : - { - unsigned int val = (((insn >> 8) & (3 << 0))); - switch (val) - { - case 0 : itype = M32RXF_INSN_JC; goto extract_sfmt_jc; - case 1 : itype = M32RXF_INSN_JNC; goto extract_sfmt_jc; - case 2 : itype = M32RXF_INSN_JL; goto extract_sfmt_jl; - case 3 : itype = M32RXF_INSN_JMP; goto extract_sfmt_jmp; - default : itype = M32RXF_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 29 : itype = M32RXF_INSN_RTE; goto extract_sfmt_rte; - case 31 : itype = M32RXF_INSN_TRAP; goto extract_sfmt_trap; - case 32 : itype = M32RXF_INSN_STB; goto extract_sfmt_stb; - case 33 : itype = M32RXF_INSN_STB_PLUS; goto extract_sfmt_stb_plus; - case 34 : itype = M32RXF_INSN_STH; goto extract_sfmt_sth; - case 35 : itype = M32RXF_INSN_STH_PLUS; goto extract_sfmt_sth_plus; - case 36 : itype = M32RXF_INSN_ST; goto extract_sfmt_st; - case 37 : itype = M32RXF_INSN_UNLOCK; goto extract_sfmt_unlock; - case 38 : itype = M32RXF_INSN_ST_PLUS; goto extract_sfmt_st_plus; - case 39 : itype = M32RXF_INSN_ST_MINUS; goto extract_sfmt_st_plus; - case 40 : itype = M32RXF_INSN_LDB; goto extract_sfmt_ldb; - case 41 : itype = M32RXF_INSN_LDUB; goto extract_sfmt_ldb; - case 42 : itype = M32RXF_INSN_LDH; goto extract_sfmt_ldh; - case 43 : itype = M32RXF_INSN_LDUH; goto extract_sfmt_ldh; - case 44 : itype = M32RXF_INSN_LD; goto extract_sfmt_ld; - case 45 : itype = M32RXF_INSN_LOCK; goto extract_sfmt_lock; - case 46 : itype = M32RXF_INSN_LD_PLUS; goto extract_sfmt_ld_plus; - case 48 : /* fall through */ - case 56 : itype = M32RXF_INSN_MULHI_A; goto extract_sfmt_mulhi_a; - case 49 : /* fall through */ - case 57 : itype = M32RXF_INSN_MULLO_A; goto extract_sfmt_mulhi_a; - case 50 : /* fall through */ - case 58 : itype = M32RXF_INSN_MULWHI_A; goto extract_sfmt_mulhi_a; - case 51 : /* fall through */ - case 59 : itype = M32RXF_INSN_MULWLO_A; goto extract_sfmt_mulhi_a; - case 52 : /* fall through */ - case 60 : itype = M32RXF_INSN_MACHI_A; goto extract_sfmt_machi_a; - case 53 : /* fall through */ - case 61 : itype = M32RXF_INSN_MACLO_A; goto extract_sfmt_machi_a; - case 54 : /* fall through */ - case 62 : itype = M32RXF_INSN_MACWHI_A; goto extract_sfmt_machi_a; - case 55 : /* fall through */ - case 63 : itype = M32RXF_INSN_MACWLO_A; goto extract_sfmt_machi_a; - case 64 : /* fall through */ - case 65 : /* fall through */ - case 66 : /* fall through */ - case 67 : /* fall through */ - case 68 : /* fall through */ - case 69 : /* fall through */ - case 70 : /* fall through */ - case 71 : /* fall through */ - case 72 : /* fall through */ - case 73 : /* fall through */ - case 74 : /* fall through */ - case 75 : /* fall through */ - case 76 : /* fall through */ - case 77 : /* fall through */ - case 78 : /* fall through */ - case 79 : itype = M32RXF_INSN_ADDI; goto extract_sfmt_addi; - case 80 : /* fall through */ - case 81 : itype = M32RXF_INSN_SRLI; goto extract_sfmt_slli; - case 82 : /* fall through */ - case 83 : itype = M32RXF_INSN_SRAI; goto extract_sfmt_slli; - case 84 : /* fall through */ - case 85 : itype = M32RXF_INSN_SLLI; goto extract_sfmt_slli; - case 87 : - { - unsigned int val = (((insn >> 0) & (1 << 0))); - switch (val) - { - case 0 : itype = M32RXF_INSN_MVTACHI_A; goto extract_sfmt_mvtachi_a; - case 1 : itype = M32RXF_INSN_MVTACLO_A; goto extract_sfmt_mvtachi_a; - default : itype = M32RXF_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 88 : itype = M32RXF_INSN_RACH_DSI; goto extract_sfmt_rac_dsi; - case 89 : itype = M32RXF_INSN_RAC_DSI; goto extract_sfmt_rac_dsi; - case 90 : itype = M32RXF_INSN_MULWU1; goto extract_sfmt_mulwu1; - case 91 : itype = M32RXF_INSN_MACWU1; goto extract_sfmt_macwu1; - case 92 : itype = M32RXF_INSN_MACLH1; goto extract_sfmt_macwu1; - case 93 : itype = M32RXF_INSN_MSBLO; goto extract_sfmt_msblo; - case 94 : itype = M32RXF_INSN_SADD; goto extract_sfmt_sadd; - case 95 : - { - unsigned int val = (((insn >> 0) & (3 << 0))); - switch (val) - { - case 0 : itype = M32RXF_INSN_MVFACHI_A; goto extract_sfmt_mvfachi_a; - case 1 : itype = M32RXF_INSN_MVFACLO_A; goto extract_sfmt_mvfachi_a; - case 2 : itype = M32RXF_INSN_MVFACMI_A; goto extract_sfmt_mvfachi_a; - default : itype = M32RXF_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 96 : /* fall through */ - case 97 : /* fall through */ - case 98 : /* fall through */ - case 99 : /* fall through */ - case 100 : /* fall through */ - case 101 : /* fall through */ - case 102 : /* fall through */ - case 103 : /* fall through */ - case 104 : /* fall through */ - case 105 : /* fall through */ - case 106 : /* fall through */ - case 107 : /* fall through */ - case 108 : /* fall through */ - case 109 : /* fall through */ - case 110 : /* fall through */ - case 111 : itype = M32RXF_INSN_LDI8; goto extract_sfmt_ldi8; - case 112 : - { - unsigned int val = (((insn >> 7) & (15 << 1)) | ((insn >> 0) & (1 << 0))); - switch (val) - { - case 0 : itype = M32RXF_INSN_NOP; goto extract_sfmt_nop; - case 2 : /* fall through */ - case 3 : itype = M32RXF_INSN_SETPSW; goto extract_sfmt_setpsw; - case 4 : /* fall through */ - case 5 : itype = M32RXF_INSN_CLRPSW; goto extract_sfmt_clrpsw; - case 9 : itype = M32RXF_INSN_SC; goto extract_sfmt_sc; - case 11 : itype = M32RXF_INSN_SNC; goto extract_sfmt_sc; - case 16 : /* fall through */ - case 17 : itype = M32RXF_INSN_BCL8; goto extract_sfmt_bcl8; - case 18 : /* fall through */ - case 19 : itype = M32RXF_INSN_BNCL8; goto extract_sfmt_bcl8; - case 24 : /* fall through */ - case 25 : itype = M32RXF_INSN_BC8; goto extract_sfmt_bc8; - case 26 : /* fall through */ - case 27 : itype = M32RXF_INSN_BNC8; goto extract_sfmt_bc8; - case 28 : /* fall through */ - case 29 : itype = M32RXF_INSN_BL8; goto extract_sfmt_bl8; - case 30 : /* fall through */ - case 31 : itype = M32RXF_INSN_BRA8; goto extract_sfmt_bra8; - default : itype = M32RXF_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 113 : /* fall through */ - case 114 : /* fall through */ - case 115 : /* fall through */ - case 116 : /* fall through */ - case 117 : /* fall through */ - case 118 : /* fall through */ - case 119 : /* fall through */ - case 120 : /* fall through */ - case 121 : /* fall through */ - case 122 : /* fall through */ - case 123 : /* fall through */ - case 124 : /* fall through */ - case 125 : /* fall through */ - case 126 : /* fall through */ - case 127 : - { - unsigned int val = (((insn >> 8) & (15 << 0))); - switch (val) - { - case 1 : itype = M32RXF_INSN_SETPSW; goto extract_sfmt_setpsw; - case 2 : itype = M32RXF_INSN_CLRPSW; goto extract_sfmt_clrpsw; - case 8 : itype = M32RXF_INSN_BCL8; goto extract_sfmt_bcl8; - case 9 : itype = M32RXF_INSN_BNCL8; goto extract_sfmt_bcl8; - case 12 : itype = M32RXF_INSN_BC8; goto extract_sfmt_bc8; - case 13 : itype = M32RXF_INSN_BNC8; goto extract_sfmt_bc8; - case 14 : itype = M32RXF_INSN_BL8; goto extract_sfmt_bl8; - case 15 : itype = M32RXF_INSN_BRA8; goto extract_sfmt_bra8; - default : itype = M32RXF_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 132 : itype = M32RXF_INSN_CMPI; goto extract_sfmt_cmpi; - case 133 : itype = M32RXF_INSN_CMPUI; goto extract_sfmt_cmpi; - case 134 : - { - unsigned int val = (((insn >> -8) & (3 << 0))); - switch (val) - { - case 0 : itype = M32RXF_INSN_SAT; goto extract_sfmt_sat; - case 2 : itype = M32RXF_INSN_SATH; goto extract_sfmt_satb; - case 3 : itype = M32RXF_INSN_SATB; goto extract_sfmt_satb; - default : itype = M32RXF_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 136 : itype = M32RXF_INSN_ADDV3; goto extract_sfmt_addv3; - case 138 : itype = M32RXF_INSN_ADD3; goto extract_sfmt_add3; - case 140 : itype = M32RXF_INSN_AND3; goto extract_sfmt_and3; - case 141 : itype = M32RXF_INSN_XOR3; goto extract_sfmt_and3; - case 142 : itype = M32RXF_INSN_OR3; goto extract_sfmt_or3; - case 144 : - { - unsigned int val = (((insn >> -12) & (1 << 0))); - switch (val) - { - case 0 : itype = M32RXF_INSN_DIV; goto extract_sfmt_div; - case 1 : itype = M32RXF_INSN_DIVH; goto extract_sfmt_div; - default : itype = M32RXF_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - case 145 : itype = M32RXF_INSN_DIVU; goto extract_sfmt_div; - case 146 : itype = M32RXF_INSN_REM; goto extract_sfmt_div; - case 147 : itype = M32RXF_INSN_REMU; goto extract_sfmt_div; - case 152 : itype = M32RXF_INSN_SRL3; goto extract_sfmt_sll3; - case 154 : itype = M32RXF_INSN_SRA3; goto extract_sfmt_sll3; - case 156 : itype = M32RXF_INSN_SLL3; goto extract_sfmt_sll3; - case 159 : itype = M32RXF_INSN_LDI16; goto extract_sfmt_ldi16; - case 160 : itype = M32RXF_INSN_STB_D; goto extract_sfmt_stb_d; - case 162 : itype = M32RXF_INSN_STH_D; goto extract_sfmt_sth_d; - case 164 : itype = M32RXF_INSN_ST_D; goto extract_sfmt_st_d; - case 166 : itype = M32RXF_INSN_BSET; goto extract_sfmt_bset; - case 167 : itype = M32RXF_INSN_BCLR; goto extract_sfmt_bset; - case 168 : itype = M32RXF_INSN_LDB_D; goto extract_sfmt_ldb_d; - case 169 : itype = M32RXF_INSN_LDUB_D; goto extract_sfmt_ldb_d; - case 170 : itype = M32RXF_INSN_LDH_D; goto extract_sfmt_ldh_d; - case 171 : itype = M32RXF_INSN_LDUH_D; goto extract_sfmt_ldh_d; - case 172 : itype = M32RXF_INSN_LD_D; goto extract_sfmt_ld_d; - case 176 : itype = M32RXF_INSN_BEQ; goto extract_sfmt_beq; - case 177 : itype = M32RXF_INSN_BNE; goto extract_sfmt_beq; - case 184 : itype = M32RXF_INSN_BEQZ; goto extract_sfmt_beqz; - case 185 : itype = M32RXF_INSN_BNEZ; goto extract_sfmt_beqz; - case 186 : itype = M32RXF_INSN_BLTZ; goto extract_sfmt_beqz; - case 187 : itype = M32RXF_INSN_BGEZ; goto extract_sfmt_beqz; - case 188 : itype = M32RXF_INSN_BLEZ; goto extract_sfmt_beqz; - case 189 : itype = M32RXF_INSN_BGTZ; goto extract_sfmt_beqz; - case 220 : itype = M32RXF_INSN_SETH; goto extract_sfmt_seth; - case 224 : /* fall through */ - case 225 : /* fall through */ - case 226 : /* fall through */ - case 227 : /* fall through */ - case 228 : /* fall through */ - case 229 : /* fall through */ - case 230 : /* fall through */ - case 231 : /* fall through */ - case 232 : /* fall through */ - case 233 : /* fall through */ - case 234 : /* fall through */ - case 235 : /* fall through */ - case 236 : /* fall through */ - case 237 : /* fall through */ - case 238 : /* fall through */ - case 239 : itype = M32RXF_INSN_LD24; goto extract_sfmt_ld24; - case 240 : /* fall through */ - case 241 : /* fall through */ - case 242 : /* fall through */ - case 243 : /* fall through */ - case 244 : /* fall through */ - case 245 : /* fall through */ - case 246 : /* fall through */ - case 247 : /* fall through */ - case 248 : /* fall through */ - case 249 : /* fall through */ - case 250 : /* fall through */ - case 251 : /* fall through */ - case 252 : /* fall through */ - case 253 : /* fall through */ - case 254 : /* fall through */ - case 255 : - { - unsigned int val = (((insn >> 8) & (7 << 0))); - switch (val) - { - case 0 : itype = M32RXF_INSN_BCL24; goto extract_sfmt_bcl24; - case 1 : itype = M32RXF_INSN_BNCL24; goto extract_sfmt_bcl24; - case 4 : itype = M32RXF_INSN_BC24; goto extract_sfmt_bc24; - case 5 : itype = M32RXF_INSN_BNC24; goto extract_sfmt_bc24; - case 6 : itype = M32RXF_INSN_BL24; goto extract_sfmt_bl24; - case 7 : itype = M32RXF_INSN_BRA24; goto extract_sfmt_bra24; - default : itype = M32RXF_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - default : itype = M32RXF_INSN_X_INVALID; goto extract_sfmt_empty; - } - } - } - - /* The instruction has been decoded, now extract the fields. */ - - extract_sfmt_empty: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; -#define FLD(f) abuf->fields.fmt_empty.f - - - /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0)); - -#undef FLD - return idesc; - } - - extract_sfmt_add: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_dr) = f_r1; - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_add3: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add3", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_and3: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_and3.f - UINT f_r1; - UINT f_r2; - UINT f_uimm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_uimm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_uimm16) = f_uimm16; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and3", "f_r2 0x%x", 'x', f_r2, "f_uimm16 0x%x", 'x', f_uimm16, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_or3: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_and3.f - UINT f_r1; - UINT f_r2; - UINT f_uimm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_uimm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_uimm16) = f_uimm16; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_or3", "f_r2 0x%x", 'x', f_r2, "f_uimm16 0x%x", 'x', f_uimm16, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_addi: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_addi.f - UINT f_r1; - INT f_simm8; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_simm8 = EXTRACT_MSB0_INT (insn, 16, 8, 8); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_simm8) = f_simm8; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addi", "f_r1 0x%x", 'x', f_r1, "f_simm8 0x%x", 'x', f_simm8, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_dr) = f_r1; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_addv: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addv", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_dr) = f_r1; - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_addv3: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addv3", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_addx: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addx", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_dr) = f_r1; - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bc8: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl8.f - SI f_disp8; - - f_disp8 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (2))) + (((pc) & (-4)))); - - /* Record the fields for the semantic handler. */ - FLD (i_disp8) = f_disp8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bc8", "disp8 0x%x", 'x', f_disp8, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bc24: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl24.f - SI f_disp24; - - f_disp24 = ((((EXTRACT_MSB0_INT (insn, 32, 8, 24)) << (2))) + (pc)); - - /* Record the fields for the semantic handler. */ - FLD (i_disp24) = f_disp24; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bc24", "disp24 0x%x", 'x', f_disp24, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_beq: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_beq.f - UINT f_r1; - UINT f_r2; - SI f_disp16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_disp16 = ((((EXTRACT_MSB0_INT (insn, 32, 16, 16)) << (2))) + (pc)); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_disp16) = f_disp16; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_beq", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "disp16 0x%x", 'x', f_disp16, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_beqz: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_beq.f - UINT f_r2; - SI f_disp16; - - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_disp16 = ((((EXTRACT_MSB0_INT (insn, 32, 16, 16)) << (2))) + (pc)); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (i_disp16) = f_disp16; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_beqz", "f_r2 0x%x", 'x', f_r2, "disp16 0x%x", 'x', f_disp16, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bl8: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl8.f - SI f_disp8; - - f_disp8 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (2))) + (((pc) & (-4)))); - - /* Record the fields for the semantic handler. */ - FLD (i_disp8) = f_disp8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bl8", "disp8 0x%x", 'x', f_disp8, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_h_gr_SI_14) = 14; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bl24: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl24.f - SI f_disp24; - - f_disp24 = ((((EXTRACT_MSB0_INT (insn, 32, 8, 24)) << (2))) + (pc)); - - /* Record the fields for the semantic handler. */ - FLD (i_disp24) = f_disp24; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bl24", "disp24 0x%x", 'x', f_disp24, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_h_gr_SI_14) = 14; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bcl8: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl8.f - SI f_disp8; - - f_disp8 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (2))) + (((pc) & (-4)))); - - /* Record the fields for the semantic handler. */ - FLD (i_disp8) = f_disp8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bcl8", "disp8 0x%x", 'x', f_disp8, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_h_gr_SI_14) = 14; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bcl24: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl24.f - SI f_disp24; - - f_disp24 = ((((EXTRACT_MSB0_INT (insn, 32, 8, 24)) << (2))) + (pc)); - - /* Record the fields for the semantic handler. */ - FLD (i_disp24) = f_disp24; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bcl24", "disp24 0x%x", 'x', f_disp24, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_h_gr_SI_14) = 14; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bra8: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl8.f - SI f_disp8; - - f_disp8 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (2))) + (((pc) & (-4)))); - - /* Record the fields for the semantic handler. */ - FLD (i_disp8) = f_disp8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bra8", "disp8 0x%x", 'x', f_disp8, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_bra24: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bl24.f - SI f_disp24; - - f_disp24 = ((((EXTRACT_MSB0_INT (insn, 32, 8, 24)) << (2))) + (pc)); - - /* Record the fields for the semantic handler. */ - FLD (i_disp24) = f_disp24; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bra24", "disp24 0x%x", 'x', f_disp24, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_cmp: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_cmpi: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_d.f - UINT f_r2; - INT f_simm16; - - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpi", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_cmpz: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r2; - - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpz", "f_r2 0x%x", 'x', f_r2, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_div: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_dr) = f_r1; - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_jc: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_jl.f - UINT f_r2; - - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jc", "f_r2 0x%x", 'x', f_r2, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_jl: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_jl.f - UINT f_r2; - - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jl", "f_r2 0x%x", 'x', f_r2, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_h_gr_SI_14) = 14; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_jmp: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_jl.f - UINT f_r2; - - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jmp", "f_r2 0x%x", 'x', f_r2, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ld: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ld_d: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld_d", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ldb: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldb", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ldb_d: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldb_d", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ldh: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldh", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ldh_d: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldh_d", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ld_plus: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld_plus", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - FLD (out_sr) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ld24: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld24.f - UINT f_r1; - UINT f_uimm24; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_uimm24 = EXTRACT_MSB0_UINT (insn, 32, 8, 24); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (i_uimm24) = f_uimm24; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld24", "f_r1 0x%x", 'x', f_r1, "uimm24 0x%x", 'x', f_uimm24, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ldi8: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_addi.f - UINT f_r1; - INT f_simm8; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_simm8 = EXTRACT_MSB0_INT (insn, 16, 8, 8); - - /* Record the fields for the semantic handler. */ - FLD (f_simm8) = f_simm8; - FLD (f_r1) = f_r1; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldi8", "f_simm8 0x%x", 'x', f_simm8, "f_r1 0x%x", 'x', f_r1, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_ldi16: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r1) = f_r1; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldi16", "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_lock: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lock", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_machi_a: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_machi_a.f - UINT f_r1; - UINT f_acc; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_acc = EXTRACT_MSB0_UINT (insn, 16, 8, 1); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_acc) = f_acc; - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_machi_a", "f_acc 0x%x", 'x', f_acc, "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_mulhi_a: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_machi_a.f - UINT f_r1; - UINT f_acc; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_acc = EXTRACT_MSB0_UINT (insn, 16, 8, 1); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (f_acc) = f_acc; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mulhi_a", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "f_acc 0x%x", 'x', f_acc, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_mv: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mv", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_mvfachi_a: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f - UINT f_r1; - UINT f_accs; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_accs = EXTRACT_MSB0_UINT (insn, 16, 12, 2); - - /* Record the fields for the semantic handler. */ - FLD (f_accs) = f_accs; - FLD (f_r1) = f_r1; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mvfachi_a", "f_accs 0x%x", 'x', f_accs, "f_r1 0x%x", 'x', f_r1, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_mvfc: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mvfc", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_mvtachi_a: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_mvtachi_a.f - UINT f_r1; - UINT f_accs; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_accs = EXTRACT_MSB0_UINT (insn, 16, 12, 2); - - /* Record the fields for the semantic handler. */ - FLD (f_accs) = f_accs; - FLD (f_r1) = f_r1; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mvtachi_a", "f_accs 0x%x", 'x', f_accs, "f_r1 0x%x", 'x', f_r1, "src1 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_mvtc: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mvtc", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_nop: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; -#define FLD(f) abuf->fields.fmt_empty.f - - - /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_nop", (char *) 0)); - -#undef FLD - return idesc; - } - - extract_sfmt_rac_dsi: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_rac_dsi.f - UINT f_accd; - UINT f_accs; - SI f_imm1; - - f_accd = EXTRACT_MSB0_UINT (insn, 16, 4, 2); - f_accs = EXTRACT_MSB0_UINT (insn, 16, 12, 2); - f_imm1 = ((EXTRACT_MSB0_UINT (insn, 16, 15, 1)) + (1)); - - /* Record the fields for the semantic handler. */ - FLD (f_accs) = f_accs; - FLD (f_imm1) = f_imm1; - FLD (f_accd) = f_accd; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rac_dsi", "f_accs 0x%x", 'x', f_accs, "f_imm1 0x%x", 'x', f_imm1, "f_accd 0x%x", 'x', f_accd, (char *) 0)); - -#undef FLD - return idesc; - } - - extract_sfmt_rte: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; -#define FLD(f) abuf->fields.fmt_empty.f - - - /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rte", (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_seth: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_seth.f - UINT f_r1; - UINT f_hi16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_hi16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_hi16) = f_hi16; - FLD (f_r1) = f_r1; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_seth", "f_hi16 0x%x", 'x', f_hi16, "f_r1 0x%x", 'x', f_r1, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_sll3: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add3.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sll3", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_slli: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_slli.f - UINT f_r1; - UINT f_uimm5; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_uimm5 = EXTRACT_MSB0_UINT (insn, 16, 11, 5); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_uimm5) = f_uimm5; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_slli", "f_r1 0x%x", 'x', f_r1, "f_uimm5 0x%x", 'x', f_uimm5, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_dr) = f_r1; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_st: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_st", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_st_d: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_d.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_st_d", "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_stb: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stb", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_stb_d: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_d.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stb_d", "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_sth: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sth", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_sth_d: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_d.f - UINT f_r1; - UINT f_r2; - INT f_simm16; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sth_d", "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_st_plus: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_st_plus", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - FLD (out_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_sth_plus: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sth_plus", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - FLD (out_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_stb_plus: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stb_plus", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - FLD (out_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_trap: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_trap.f - UINT f_uimm4; - - f_uimm4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_uimm4) = f_uimm4; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_trap", "f_uimm4 0x%x", 'x', f_uimm4, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_unlock: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_unlock", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_satb: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_satb", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_sat: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_ld_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_r1) = f_r1; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - FLD (i_dr) = & CPU (h_gr)[f_r1]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sat", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - FLD (out_dr) = f_r1; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_sadd: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; -#define FLD(f) abuf->fields.fmt_empty.f - - - /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sadd", (char *) 0)); - -#undef FLD - return idesc; - } - - extract_sfmt_macwu1: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_macwu1", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_msblo: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_msblo", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_mulwu1: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_st_plus.f - UINT f_r1; - UINT f_r2; - - f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r1) = f_r1; - FLD (f_r2) = f_r2; - FLD (i_src1) = & CPU (h_gr)[f_r1]; - FLD (i_src2) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mulwu1", "f_r1 0x%x", 'x', f_r1, "f_r2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_src1) = f_r1; - FLD (in_src2) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_sc: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; -#define FLD(f) abuf->fields.fmt_empty.f - - - /* Record the fields for the semantic handler. */ - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sc", (char *) 0)); - -#undef FLD - return idesc; - } - - extract_sfmt_clrpsw: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_clrpsw.f - UINT f_uimm8; - - f_uimm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); - - /* Record the fields for the semantic handler. */ - FLD (f_uimm8) = f_uimm8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_clrpsw", "f_uimm8 0x%x", 'x', f_uimm8, (char *) 0)); - -#undef FLD - return idesc; - } - - extract_sfmt_setpsw: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_clrpsw.f - UINT f_uimm8; - - f_uimm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); - - /* Record the fields for the semantic handler. */ - FLD (f_uimm8) = f_uimm8; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_setpsw", "f_uimm8 0x%x", 'x', f_uimm8, (char *) 0)); - -#undef FLD - return idesc; - } - - extract_sfmt_bset: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bset.f - UINT f_uimm3; - UINT f_r2; - INT f_simm16; - - f_uimm3 = EXTRACT_MSB0_UINT (insn, 32, 5, 3); - f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); - f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); - - /* Record the fields for the semantic handler. */ - FLD (f_simm16) = f_simm16; - FLD (f_r2) = f_r2; - FLD (f_uimm3) = f_uimm3; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bset", "f_simm16 0x%x", 'x', f_simm16, "f_r2 0x%x", 'x', f_r2, "f_uimm3 0x%x", 'x', f_uimm3, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - } -#endif -#undef FLD - return idesc; - } - - extract_sfmt_btst: - { - const IDESC *idesc = &m32rxf_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_bset.f - UINT f_uimm3; - UINT f_r2; - - f_uimm3 = EXTRACT_MSB0_UINT (insn, 16, 5, 3); - f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); - - /* Record the fields for the semantic handler. */ - FLD (f_r2) = f_r2; - FLD (f_uimm3) = f_uimm3; - FLD (i_sr) = & CPU (h_gr)[f_r2]; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_btst", "f_r2 0x%x", 'x', f_r2, "f_uimm3 0x%x", 'x', f_uimm3, "sr 0x%x", 'x', f_r2, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_sr) = f_r2; - } -#endif -#undef FLD - return idesc; - } - -} diff --git a/sim/m32r/decodex.h b/sim/m32r/decodex.h deleted file mode 100644 index e8de9a8..0000000 --- a/sim/m32r/decodex.h +++ /dev/null @@ -1,149 +0,0 @@ -/* Decode header for m32rxf. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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 M32RXF_DECODE_H -#define M32RXF_DECODE_H - -extern const IDESC *m32rxf_decode (SIM_CPU *, IADDR, - CGEN_INSN_INT, CGEN_INSN_INT, - ARGBUF *); -extern void m32rxf_init_idesc_table (SIM_CPU *); -extern void m32rxf_sem_init_idesc_table (SIM_CPU *); -extern void m32rxf_semf_init_idesc_table (SIM_CPU *); - -/* Enum declaration for instructions in cpu family m32rxf. */ -typedef enum m32rxf_insn_type { - M32RXF_INSN_X_INVALID, M32RXF_INSN_X_AFTER, M32RXF_INSN_X_BEFORE, M32RXF_INSN_X_CTI_CHAIN - , M32RXF_INSN_X_CHAIN, M32RXF_INSN_X_BEGIN, M32RXF_INSN_ADD, M32RXF_INSN_ADD3 - , M32RXF_INSN_AND, M32RXF_INSN_AND3, M32RXF_INSN_OR, M32RXF_INSN_OR3 - , M32RXF_INSN_XOR, M32RXF_INSN_XOR3, M32RXF_INSN_ADDI, M32RXF_INSN_ADDV - , M32RXF_INSN_ADDV3, M32RXF_INSN_ADDX, M32RXF_INSN_BC8, M32RXF_INSN_BC24 - , M32RXF_INSN_BEQ, M32RXF_INSN_BEQZ, M32RXF_INSN_BGEZ, M32RXF_INSN_BGTZ - , M32RXF_INSN_BLEZ, M32RXF_INSN_BLTZ, M32RXF_INSN_BNEZ, M32RXF_INSN_BL8 - , M32RXF_INSN_BL24, M32RXF_INSN_BCL8, M32RXF_INSN_BCL24, M32RXF_INSN_BNC8 - , M32RXF_INSN_BNC24, M32RXF_INSN_BNE, M32RXF_INSN_BRA8, M32RXF_INSN_BRA24 - , M32RXF_INSN_BNCL8, M32RXF_INSN_BNCL24, M32RXF_INSN_CMP, M32RXF_INSN_CMPI - , M32RXF_INSN_CMPU, M32RXF_INSN_CMPUI, M32RXF_INSN_CMPEQ, M32RXF_INSN_CMPZ - , M32RXF_INSN_DIV, M32RXF_INSN_DIVU, M32RXF_INSN_REM, M32RXF_INSN_REMU - , M32RXF_INSN_DIVH, M32RXF_INSN_JC, M32RXF_INSN_JNC, M32RXF_INSN_JL - , M32RXF_INSN_JMP, M32RXF_INSN_LD, M32RXF_INSN_LD_D, M32RXF_INSN_LDB - , M32RXF_INSN_LDB_D, M32RXF_INSN_LDH, M32RXF_INSN_LDH_D, M32RXF_INSN_LDUB - , M32RXF_INSN_LDUB_D, M32RXF_INSN_LDUH, M32RXF_INSN_LDUH_D, M32RXF_INSN_LD_PLUS - , M32RXF_INSN_LD24, M32RXF_INSN_LDI8, M32RXF_INSN_LDI16, M32RXF_INSN_LOCK - , M32RXF_INSN_MACHI_A, M32RXF_INSN_MACLO_A, M32RXF_INSN_MACWHI_A, M32RXF_INSN_MACWLO_A - , M32RXF_INSN_MUL, M32RXF_INSN_MULHI_A, M32RXF_INSN_MULLO_A, M32RXF_INSN_MULWHI_A - , M32RXF_INSN_MULWLO_A, M32RXF_INSN_MV, M32RXF_INSN_MVFACHI_A, M32RXF_INSN_MVFACLO_A - , M32RXF_INSN_MVFACMI_A, M32RXF_INSN_MVFC, M32RXF_INSN_MVTACHI_A, M32RXF_INSN_MVTACLO_A - , M32RXF_INSN_MVTC, M32RXF_INSN_NEG, M32RXF_INSN_NOP, M32RXF_INSN_NOT - , M32RXF_INSN_RAC_DSI, M32RXF_INSN_RACH_DSI, M32RXF_INSN_RTE, M32RXF_INSN_SETH - , M32RXF_INSN_SLL, M32RXF_INSN_SLL3, M32RXF_INSN_SLLI, M32RXF_INSN_SRA - , M32RXF_INSN_SRA3, M32RXF_INSN_SRAI, M32RXF_INSN_SRL, M32RXF_INSN_SRL3 - , M32RXF_INSN_SRLI, M32RXF_INSN_ST, M32RXF_INSN_ST_D, M32RXF_INSN_STB - , M32RXF_INSN_STB_D, M32RXF_INSN_STH, M32RXF_INSN_STH_D, M32RXF_INSN_ST_PLUS - , M32RXF_INSN_STH_PLUS, M32RXF_INSN_STB_PLUS, M32RXF_INSN_ST_MINUS, M32RXF_INSN_SUB - , M32RXF_INSN_SUBV, M32RXF_INSN_SUBX, M32RXF_INSN_TRAP, M32RXF_INSN_UNLOCK - , M32RXF_INSN_SATB, M32RXF_INSN_SATH, M32RXF_INSN_SAT, M32RXF_INSN_PCMPBZ - , M32RXF_INSN_SADD, M32RXF_INSN_MACWU1, M32RXF_INSN_MSBLO, M32RXF_INSN_MULWU1 - , M32RXF_INSN_MACLH1, M32RXF_INSN_SC, M32RXF_INSN_SNC, M32RXF_INSN_CLRPSW - , M32RXF_INSN_SETPSW, M32RXF_INSN_BSET, M32RXF_INSN_BCLR, M32RXF_INSN_BTST - , M32RXF_INSN_PAR_ADD, M32RXF_INSN_WRITE_ADD, M32RXF_INSN_PAR_AND, M32RXF_INSN_WRITE_AND - , M32RXF_INSN_PAR_OR, M32RXF_INSN_WRITE_OR, M32RXF_INSN_PAR_XOR, M32RXF_INSN_WRITE_XOR - , M32RXF_INSN_PAR_ADDI, M32RXF_INSN_WRITE_ADDI, M32RXF_INSN_PAR_ADDV, M32RXF_INSN_WRITE_ADDV - , M32RXF_INSN_PAR_ADDX, M32RXF_INSN_WRITE_ADDX, M32RXF_INSN_PAR_BC8, M32RXF_INSN_WRITE_BC8 - , M32RXF_INSN_PAR_BL8, M32RXF_INSN_WRITE_BL8, M32RXF_INSN_PAR_BCL8, M32RXF_INSN_WRITE_BCL8 - , M32RXF_INSN_PAR_BNC8, M32RXF_INSN_WRITE_BNC8, M32RXF_INSN_PAR_BRA8, M32RXF_INSN_WRITE_BRA8 - , M32RXF_INSN_PAR_BNCL8, M32RXF_INSN_WRITE_BNCL8, M32RXF_INSN_PAR_CMP, M32RXF_INSN_WRITE_CMP - , M32RXF_INSN_PAR_CMPU, M32RXF_INSN_WRITE_CMPU, M32RXF_INSN_PAR_CMPEQ, M32RXF_INSN_WRITE_CMPEQ - , M32RXF_INSN_PAR_CMPZ, M32RXF_INSN_WRITE_CMPZ, M32RXF_INSN_PAR_JC, M32RXF_INSN_WRITE_JC - , M32RXF_INSN_PAR_JNC, M32RXF_INSN_WRITE_JNC, M32RXF_INSN_PAR_JL, M32RXF_INSN_WRITE_JL - , M32RXF_INSN_PAR_JMP, M32RXF_INSN_WRITE_JMP, M32RXF_INSN_PAR_LD, M32RXF_INSN_WRITE_LD - , M32RXF_INSN_PAR_LDB, M32RXF_INSN_WRITE_LDB, M32RXF_INSN_PAR_LDH, M32RXF_INSN_WRITE_LDH - , M32RXF_INSN_PAR_LDUB, M32RXF_INSN_WRITE_LDUB, M32RXF_INSN_PAR_LDUH, M32RXF_INSN_WRITE_LDUH - , M32RXF_INSN_PAR_LD_PLUS, M32RXF_INSN_WRITE_LD_PLUS, M32RXF_INSN_PAR_LDI8, M32RXF_INSN_WRITE_LDI8 - , M32RXF_INSN_PAR_LOCK, M32RXF_INSN_WRITE_LOCK, M32RXF_INSN_PAR_MACHI_A, M32RXF_INSN_WRITE_MACHI_A - , M32RXF_INSN_PAR_MACLO_A, M32RXF_INSN_WRITE_MACLO_A, M32RXF_INSN_PAR_MACWHI_A, M32RXF_INSN_WRITE_MACWHI_A - , M32RXF_INSN_PAR_MACWLO_A, M32RXF_INSN_WRITE_MACWLO_A, M32RXF_INSN_PAR_MUL, M32RXF_INSN_WRITE_MUL - , M32RXF_INSN_PAR_MULHI_A, M32RXF_INSN_WRITE_MULHI_A, M32RXF_INSN_PAR_MULLO_A, M32RXF_INSN_WRITE_MULLO_A - , M32RXF_INSN_PAR_MULWHI_A, M32RXF_INSN_WRITE_MULWHI_A, M32RXF_INSN_PAR_MULWLO_A, M32RXF_INSN_WRITE_MULWLO_A - , M32RXF_INSN_PAR_MV, M32RXF_INSN_WRITE_MV, M32RXF_INSN_PAR_MVFACHI_A, M32RXF_INSN_WRITE_MVFACHI_A - , M32RXF_INSN_PAR_MVFACLO_A, M32RXF_INSN_WRITE_MVFACLO_A, M32RXF_INSN_PAR_MVFACMI_A, M32RXF_INSN_WRITE_MVFACMI_A - , M32RXF_INSN_PAR_MVFC, M32RXF_INSN_WRITE_MVFC, M32RXF_INSN_PAR_MVTACHI_A, M32RXF_INSN_WRITE_MVTACHI_A - , M32RXF_INSN_PAR_MVTACLO_A, M32RXF_INSN_WRITE_MVTACLO_A, M32RXF_INSN_PAR_MVTC, M32RXF_INSN_WRITE_MVTC - , M32RXF_INSN_PAR_NEG, M32RXF_INSN_WRITE_NEG, M32RXF_INSN_PAR_NOP, M32RXF_INSN_WRITE_NOP - , M32RXF_INSN_PAR_NOT, M32RXF_INSN_WRITE_NOT, M32RXF_INSN_PAR_RAC_DSI, M32RXF_INSN_WRITE_RAC_DSI - , M32RXF_INSN_PAR_RACH_DSI, M32RXF_INSN_WRITE_RACH_DSI, M32RXF_INSN_PAR_RTE, M32RXF_INSN_WRITE_RTE - , M32RXF_INSN_PAR_SLL, M32RXF_INSN_WRITE_SLL, M32RXF_INSN_PAR_SLLI, M32RXF_INSN_WRITE_SLLI - , M32RXF_INSN_PAR_SRA, M32RXF_INSN_WRITE_SRA, M32RXF_INSN_PAR_SRAI, M32RXF_INSN_WRITE_SRAI - , M32RXF_INSN_PAR_SRL, M32RXF_INSN_WRITE_SRL, M32RXF_INSN_PAR_SRLI, M32RXF_INSN_WRITE_SRLI - , M32RXF_INSN_PAR_ST, M32RXF_INSN_WRITE_ST, M32RXF_INSN_PAR_STB, M32RXF_INSN_WRITE_STB - , M32RXF_INSN_PAR_STH, M32RXF_INSN_WRITE_STH, M32RXF_INSN_PAR_ST_PLUS, M32RXF_INSN_WRITE_ST_PLUS - , M32RXF_INSN_PAR_STH_PLUS, M32RXF_INSN_WRITE_STH_PLUS, M32RXF_INSN_PAR_STB_PLUS, M32RXF_INSN_WRITE_STB_PLUS - , M32RXF_INSN_PAR_ST_MINUS, M32RXF_INSN_WRITE_ST_MINUS, M32RXF_INSN_PAR_SUB, M32RXF_INSN_WRITE_SUB - , M32RXF_INSN_PAR_SUBV, M32RXF_INSN_WRITE_SUBV, M32RXF_INSN_PAR_SUBX, M32RXF_INSN_WRITE_SUBX - , M32RXF_INSN_PAR_TRAP, M32RXF_INSN_WRITE_TRAP, M32RXF_INSN_PAR_UNLOCK, M32RXF_INSN_WRITE_UNLOCK - , M32RXF_INSN_PAR_PCMPBZ, M32RXF_INSN_WRITE_PCMPBZ, M32RXF_INSN_PAR_SADD, M32RXF_INSN_WRITE_SADD - , M32RXF_INSN_PAR_MACWU1, M32RXF_INSN_WRITE_MACWU1, M32RXF_INSN_PAR_MSBLO, M32RXF_INSN_WRITE_MSBLO - , M32RXF_INSN_PAR_MULWU1, M32RXF_INSN_WRITE_MULWU1, M32RXF_INSN_PAR_MACLH1, M32RXF_INSN_WRITE_MACLH1 - , M32RXF_INSN_PAR_SC, M32RXF_INSN_WRITE_SC, M32RXF_INSN_PAR_SNC, M32RXF_INSN_WRITE_SNC - , M32RXF_INSN_PAR_CLRPSW, M32RXF_INSN_WRITE_CLRPSW, M32RXF_INSN_PAR_SETPSW, M32RXF_INSN_WRITE_SETPSW - , M32RXF_INSN_PAR_BTST, M32RXF_INSN_WRITE_BTST, M32RXF_INSN__MAX -} M32RXF_INSN_TYPE; - -/* Enum declaration for semantic formats in cpu family m32rxf. */ -typedef enum m32rxf_sfmt_type { - M32RXF_SFMT_EMPTY, M32RXF_SFMT_ADD, M32RXF_SFMT_ADD3, M32RXF_SFMT_AND3 - , M32RXF_SFMT_OR3, M32RXF_SFMT_ADDI, M32RXF_SFMT_ADDV, M32RXF_SFMT_ADDV3 - , M32RXF_SFMT_ADDX, M32RXF_SFMT_BC8, M32RXF_SFMT_BC24, M32RXF_SFMT_BEQ - , M32RXF_SFMT_BEQZ, M32RXF_SFMT_BL8, M32RXF_SFMT_BL24, M32RXF_SFMT_BCL8 - , M32RXF_SFMT_BCL24, M32RXF_SFMT_BRA8, M32RXF_SFMT_BRA24, M32RXF_SFMT_CMP - , M32RXF_SFMT_CMPI, M32RXF_SFMT_CMPZ, M32RXF_SFMT_DIV, M32RXF_SFMT_JC - , M32RXF_SFMT_JL, M32RXF_SFMT_JMP, M32RXF_SFMT_LD, M32RXF_SFMT_LD_D - , M32RXF_SFMT_LDB, M32RXF_SFMT_LDB_D, M32RXF_SFMT_LDH, M32RXF_SFMT_LDH_D - , M32RXF_SFMT_LD_PLUS, M32RXF_SFMT_LD24, M32RXF_SFMT_LDI8, M32RXF_SFMT_LDI16 - , M32RXF_SFMT_LOCK, M32RXF_SFMT_MACHI_A, M32RXF_SFMT_MULHI_A, M32RXF_SFMT_MV - , M32RXF_SFMT_MVFACHI_A, M32RXF_SFMT_MVFC, M32RXF_SFMT_MVTACHI_A, M32RXF_SFMT_MVTC - , M32RXF_SFMT_NOP, M32RXF_SFMT_RAC_DSI, M32RXF_SFMT_RTE, M32RXF_SFMT_SETH - , M32RXF_SFMT_SLL3, M32RXF_SFMT_SLLI, M32RXF_SFMT_ST, M32RXF_SFMT_ST_D - , M32RXF_SFMT_STB, M32RXF_SFMT_STB_D, M32RXF_SFMT_STH, M32RXF_SFMT_STH_D - , M32RXF_SFMT_ST_PLUS, M32RXF_SFMT_STH_PLUS, M32RXF_SFMT_STB_PLUS, M32RXF_SFMT_TRAP - , M32RXF_SFMT_UNLOCK, M32RXF_SFMT_SATB, M32RXF_SFMT_SAT, M32RXF_SFMT_SADD - , M32RXF_SFMT_MACWU1, M32RXF_SFMT_MSBLO, M32RXF_SFMT_MULWU1, M32RXF_SFMT_SC - , M32RXF_SFMT_CLRPSW, M32RXF_SFMT_SETPSW, M32RXF_SFMT_BSET, M32RXF_SFMT_BTST -} M32RXF_SFMT_TYPE; - -/* Function unit handlers (user written). */ - -extern int m32rxf_model_m32rx_u_store (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*src1*/, INT /*src2*/); -extern int m32rxf_model_m32rx_u_load (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*sr*/, INT /*dr*/); -extern int m32rxf_model_m32rx_u_cti (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*sr*/); -extern int m32rxf_model_m32rx_u_mac (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*src1*/, INT /*src2*/); -extern int m32rxf_model_m32rx_u_cmp (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*src1*/, INT /*src2*/); -extern int m32rxf_model_m32rx_u_exec (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*sr*/, INT /*dr*/, INT /*dr*/); - -/* Profiling before/after handlers (user written) */ - -extern void m32rxf_model_insn_before (SIM_CPU *, int /*first_p*/); -extern void m32rxf_model_insn_after (SIM_CPU *, int /*last_p*/, int /*cycles*/); - -#endif /* M32RXF_DECODE_H */ diff --git a/sim/m32r/devices.c b/sim/m32r/devices.c deleted file mode 100644 index 032c8e7..0000000 --- a/sim/m32r/devices.c +++ /dev/null @@ -1,107 +0,0 @@ -/* m32r device support - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - Contributed by Cygnus Solutions. - -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" - -#ifdef HAVE_DV_SOCKSER -#include "dv-sockser.h" -#endif - -/* Handling the MSPR register is done by creating a device in the core - mapping that winds up here. */ - -device m32r_devices; - -int -device_io_read_buffer (device *me, void *source, int space, - address_word addr, unsigned nr_bytes, - SIM_DESC sd, SIM_CPU *cpu, sim_cia cia) -{ - if (STATE_ENVIRONMENT (sd) != OPERATING_ENVIRONMENT) - return nr_bytes; - -#ifdef HAVE_DV_SOCKSER - if (addr == UART_INCHAR_ADDR) - { - int c = dv_sockser_read (sd); - if (c == -1) - return 0; - *(char *) source = c; - return 1; - } - if (addr == UART_STATUS_ADDR) - { - int status = dv_sockser_status (sd); - unsigned char *p = source; - p[0] = 0; - p[1] = (((status & DV_SOCKSER_INPUT_EMPTY) -#ifdef UART_INPUT_READY0 - ? UART_INPUT_READY : 0) -#else - ? 0 : UART_INPUT_READY) -#endif - + ((status & DV_SOCKSER_OUTPUT_EMPTY) ? UART_OUTPUT_READY : 0)); - return 2; - } -#endif - - return nr_bytes; -} - -int -device_io_write_buffer (device *me, const void *source, int space, - address_word addr, unsigned nr_bytes, - SIM_DESC sd, SIM_CPU *cpu, sim_cia cia) -{ -#if WITH_SCACHE - /* MSPR support is deprecated but is kept in for upward compatibility - with existing overlay support. */ - if (addr == MSPR_ADDR) - { - if ((*(const char *) source & MSPR_PURGE) != 0) - scache_flush (sd); - return nr_bytes; - } - if (addr == MCCR_ADDR) - { - if ((*(const char *) source & MCCR_CP) != 0) - scache_flush (sd); - return nr_bytes; - } -#endif - - if (STATE_ENVIRONMENT (sd) != OPERATING_ENVIRONMENT) - return nr_bytes; - -#ifdef HAVE_DV_SOCKSER - if (addr == UART_OUTCHAR_ADDR) - { - int rc = dv_sockser_write (sd, *(char *) source); - return rc == 1; - } -#endif - - return nr_bytes; -} - -void -device_error (device *me, char *message, ...) -{ -} diff --git a/sim/m32r/m32r-sim.h b/sim/m32r/m32r-sim.h deleted file mode 100644 index 100274d..0000000 --- a/sim/m32r/m32r-sim.h +++ /dev/null @@ -1,212 +0,0 @@ -/* collection of junk waiting time to sort out - Copyright (C) 1996, 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 M32R_SIM_H -#define M32R_SIM_H - -/* GDB register numbers. */ -#define PSW_REGNUM 16 -#define CBR_REGNUM 17 -#define SPI_REGNUM 18 -#define SPU_REGNUM 19 -#define BPC_REGNUM 20 -#define PC_REGNUM 21 -#define ACCL_REGNUM 22 -#define ACCH_REGNUM 23 -#define ACC1L_REGNUM 24 -#define ACC1H_REGNUM 25 -#define BBPSW_REGNUM 26 -#define BBPC_REGNUM 27 -#define EVB_REGNUM 28 - -extern int m32r_decode_gdb_ctrl_regnum (int); - -/* Cover macros for hardware accesses. - FIXME: Eventually move to cgen. */ -#define GET_H_SM() ((CPU (h_psw) & 0x80) != 0) - -#ifndef GET_H_CR -extern USI m32rbf_h_cr_get_handler (SIM_CPU *, UINT); -extern void m32rbf_h_cr_set_handler (SIM_CPU *, UINT, USI); - -#define GET_H_CR(regno) \ - XCONCAT2 (WANT_CPU,_h_cr_get_handler) (current_cpu, (regno)) -#define SET_H_CR(regno, val) \ - XCONCAT2 (WANT_CPU,_h_cr_set_handler) (current_cpu, (regno), (val)) -#endif - -#ifndef GET_H_PSW -extern UQI m32rbf_h_psw_get_handler (SIM_CPU *); -extern void m32rbf_h_psw_set_handler (SIM_CPU *, UQI); - -#define GET_H_PSW() \ - XCONCAT2 (WANT_CPU,_h_psw_get_handler) (current_cpu) -#define SET_H_PSW(val) \ - XCONCAT2 (WANT_CPU,_h_psw_set_handler) (current_cpu, (val)) -#endif - -#ifndef GET_H_ACCUM -extern DI m32rbf_h_accum_get_handler (SIM_CPU *); -extern void m32rbf_h_accum_set_handler (SIM_CPU *, DI); - -#define GET_H_ACCUM() \ - XCONCAT2 (WANT_CPU,_h_accum_get_handler) (current_cpu) -#define SET_H_ACCUM(val) \ - XCONCAT2 (WANT_CPU,_h_accum_set_handler) (current_cpu, (val)) -#endif - -/* Misc. profile data. */ - -typedef struct { - /* nop insn slot filler count */ - unsigned int fillnop_count; - /* number of parallel insns */ - unsigned int parallel_count; - - /* FIXME: generalize this to handle all insn lengths, move to common. */ - /* number of short insns, not including parallel ones */ - unsigned int short_count; - /* number of long insns */ - unsigned int long_count; - - /* Working area for computing cycle counts. */ - unsigned long insn_cycles; /* FIXME: delete */ - unsigned long cti_stall; - unsigned long load_stall; - unsigned long biggest_cycles; - - /* Bitmask of registers loaded by previous insn. */ - unsigned int load_regs; - /* Bitmask of registers loaded by current insn. */ - unsigned int load_regs_pending; -} M32R_MISC_PROFILE; - -/* Initialize the working area. */ -void m32r_init_insn_cycles (SIM_CPU *, int); -/* Update the totals for the insn. */ -void m32r_record_insn_cycles (SIM_CPU *, int); - -/* This is invoked by the nop pattern in the .cpu file. */ -#define PROFILE_COUNT_FILLNOPS(cpu, addr) \ -do { \ - if (PROFILE_INSN_P (cpu) \ - && (addr & 3) != 0) \ - ++ CPU_M32R_MISC_PROFILE (cpu)->fillnop_count; \ -} while (0) - -/* This is invoked by the execute section of mloop{,x}.in. */ -#define PROFILE_COUNT_PARINSNS(cpu) \ -do { \ - if (PROFILE_INSN_P (cpu)) \ - ++ CPU_M32R_MISC_PROFILE (cpu)->parallel_count; \ -} while (0) - -/* This is invoked by the execute section of mloop{,x}.in. */ -#define PROFILE_COUNT_SHORTINSNS(cpu) \ -do { \ - if (PROFILE_INSN_P (cpu)) \ - ++ CPU_M32R_MISC_PROFILE (cpu)->short_count; \ -} while (0) - -/* This is invoked by the execute section of mloop{,x}.in. */ -#define PROFILE_COUNT_LONGINSNS(cpu) \ -do { \ - if (PROFILE_INSN_P (cpu)) \ - ++ CPU_M32R_MISC_PROFILE (cpu)->long_count; \ -} while (0) - -#define GETTWI GETTSI -#define SETTWI SETTSI - -/* Additional execution support. */ - - -/* Hardware/device support. - ??? Will eventually want to move device stuff to config files. */ - -/* Exception, Interrupt, and Trap addresses */ -#define EIT_SYSBREAK_ADDR 0x10 -#define EIT_RSVD_INSN_ADDR 0x20 -#define EIT_ADDR_EXCP_ADDR 0x30 -#define EIT_TRAP_BASE_ADDR 0x40 -#define EIT_EXTERN_ADDR 0x80 -#define EIT_RESET_ADDR 0x7ffffff0 -#define EIT_WAKEUP_ADDR 0x7ffffff0 - -/* Special purpose traps. */ -#define TRAP_SYSCALL 0 -#define TRAP_BREAKPOINT 1 - -/* Support for the MSPR register (Cache Purge Control Register) - and the MCCR register (Cache Control Register) are needed in order for - overlays to work correctly with the scache. - MSPR no longer exists but is supported for upward compatibility with - early overlay support. */ - -/* Cache Purge Control (only exists on early versions of chips) */ -#define MSPR_ADDR 0xfffffff7 -#define MSPR_PURGE 1 - -/* Lock Control Register (not supported) */ -#define MLCR_ADDR 0xfffffff7 -#define MLCR_LM 1 - -/* Power Management Control Register (not supported) */ -#define MPMR_ADDR 0xfffffffb - -/* Cache Control Register */ -#define MCCR_ADDR 0xffffffff -#define MCCR_CP 0x80 -/* not supported */ -#define MCCR_CM0 2 -#define MCCR_CM1 1 - -/* Serial device addresses. */ -#ifdef M32R_EVA /* orig eva board, no longer supported */ -#define UART_INCHAR_ADDR 0xff102013 -#define UART_OUTCHAR_ADDR 0xff10200f -#define UART_STATUS_ADDR 0xff102006 -/* Indicate ready bit is inverted. */ -#define UART_INPUT_READY0 -#else -/* These are the values for the MSA2000 board. - ??? Will eventually need to move this to a config file. */ -#define UART_INCHAR_ADDR 0xff004009 -#define UART_OUTCHAR_ADDR 0xff004007 -#define UART_STATUS_ADDR 0xff004002 -#endif - -#define UART_INPUT_READY 0x4 -#define UART_OUTPUT_READY 0x1 - -/* Start address and length of all device support. */ -#define M32R_DEVICE_ADDR 0xff000000 -#define M32R_DEVICE_LEN 0x00ffffff - -/* sim_core_attach device argument. */ -extern device m32r_devices; - -/* FIXME: Temporary, until device support ready. */ -struct _device { int foo; }; - -/* Handle the trap insn. */ -USI m32r_trap (SIM_CPU *, PCADDR, int); - -#endif /* M32R_SIM_H */ diff --git a/sim/m32r/m32r.c b/sim/m32r/m32r.c deleted file mode 100644 index 8e9c75e..0000000 --- a/sim/m32r/m32r.c +++ /dev/null @@ -1,414 +0,0 @@ -/* m32r simulator support code - Copyright (C) 1996, 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. */ - -#define WANT_CPU m32rbf -#define WANT_CPU_M32RBF - -#include "sim-main.h" -#include "cgen-mem.h" -#include "cgen-ops.h" - -/* Decode gdb ctrl register number. */ - -int -m32r_decode_gdb_ctrl_regnum (int gdb_regnum) -{ - switch (gdb_regnum) - { - case PSW_REGNUM : return H_CR_PSW; - case CBR_REGNUM : return H_CR_CBR; - case SPI_REGNUM : return H_CR_SPI; - case SPU_REGNUM : return H_CR_SPU; - case BPC_REGNUM : return H_CR_BPC; - case BBPSW_REGNUM : return H_CR_BBPSW; - case BBPC_REGNUM : return H_CR_BBPC; - case EVB_REGNUM : return H_CR_CR5; - } - abort (); -} - -/* The contents of BUF are in target byte order. */ - -int -m32rbf_fetch_register (SIM_CPU *current_cpu, int rn, unsigned char *buf, int len) -{ - if (rn < 16) - SETTWI (buf, m32rbf_h_gr_get (current_cpu, rn)); - else - switch (rn) - { - case PSW_REGNUM : - case CBR_REGNUM : - case SPI_REGNUM : - case SPU_REGNUM : - case BPC_REGNUM : - case BBPSW_REGNUM : - case BBPC_REGNUM : - SETTWI (buf, m32rbf_h_cr_get (current_cpu, - m32r_decode_gdb_ctrl_regnum (rn))); - break; - case PC_REGNUM : - SETTWI (buf, m32rbf_h_pc_get (current_cpu)); - break; - case ACCL_REGNUM : - SETTWI (buf, GETLODI (m32rbf_h_accum_get (current_cpu))); - break; - case ACCH_REGNUM : - SETTWI (buf, GETHIDI (m32rbf_h_accum_get (current_cpu))); - break; - default : - return 0; - } - - return -1; /*FIXME*/ -} - -/* The contents of BUF are in target byte order. */ - -int -m32rbf_store_register (SIM_CPU *current_cpu, int rn, unsigned char *buf, int len) -{ - if (rn < 16) - m32rbf_h_gr_set (current_cpu, rn, GETTWI (buf)); - else - switch (rn) - { - case PSW_REGNUM : - case CBR_REGNUM : - case SPI_REGNUM : - case SPU_REGNUM : - case BPC_REGNUM : - case BBPSW_REGNUM : - case BBPC_REGNUM : - m32rbf_h_cr_set (current_cpu, - m32r_decode_gdb_ctrl_regnum (rn), - GETTWI (buf)); - break; - case PC_REGNUM : - m32rbf_h_pc_set (current_cpu, GETTWI (buf)); - break; - case ACCL_REGNUM : - { - DI val = m32rbf_h_accum_get (current_cpu); - SETLODI (val, GETTWI (buf)); - m32rbf_h_accum_set (current_cpu, val); - break; - } - case ACCH_REGNUM : - { - DI val = m32rbf_h_accum_get (current_cpu); - SETHIDI (val, GETTWI (buf)); - m32rbf_h_accum_set (current_cpu, val); - break; - } - default : - return 0; - } - - return -1; /*FIXME*/ -} - -USI -m32rbf_h_cr_get_handler (SIM_CPU *current_cpu, UINT cr) -{ - switch (cr) - { - case H_CR_PSW : /* psw */ - return (((CPU (h_bpsw) & 0xc1) << 8) - | ((CPU (h_psw) & 0xc0) << 0) - | GET_H_COND ()); - case H_CR_BBPSW : /* backup backup psw */ - return CPU (h_bbpsw) & 0xc1; - case H_CR_CBR : /* condition bit */ - return GET_H_COND (); - case H_CR_SPI : /* interrupt stack pointer */ - if (! GET_H_SM ()) - return CPU (h_gr[H_GR_SP]); - else - return CPU (h_cr[H_CR_SPI]); - case H_CR_SPU : /* user stack pointer */ - if (GET_H_SM ()) - return CPU (h_gr[H_GR_SP]); - else - return CPU (h_cr[H_CR_SPU]); - case H_CR_BPC : /* backup pc */ - return CPU (h_cr[H_CR_BPC]) & 0xfffffffe; - case H_CR_BBPC : /* backup backup pc */ - return CPU (h_cr[H_CR_BBPC]) & 0xfffffffe; - case 4 : /* ??? unspecified, but apparently available */ - case 5 : /* ??? unspecified, but apparently available */ - return CPU (h_cr[cr]); - default : - return 0; - } -} - -void -m32rbf_h_cr_set_handler (SIM_CPU *current_cpu, UINT cr, USI newval) -{ - switch (cr) - { - case H_CR_PSW : /* psw */ - { - int old_sm = (CPU (h_psw) & 0x80) != 0; - int new_sm = (newval & 0x80) != 0; - CPU (h_bpsw) = (newval >> 8) & 0xff; - CPU (h_psw) = newval & 0xff; - SET_H_COND (newval & 1); - /* When switching stack modes, update the registers. */ - if (old_sm != new_sm) - { - if (old_sm) - { - /* Switching user -> system. */ - CPU (h_cr[H_CR_SPU]) = CPU (h_gr[H_GR_SP]); - CPU (h_gr[H_GR_SP]) = CPU (h_cr[H_CR_SPI]); - } - else - { - /* Switching system -> user. */ - CPU (h_cr[H_CR_SPI]) = CPU (h_gr[H_GR_SP]); - CPU (h_gr[H_GR_SP]) = CPU (h_cr[H_CR_SPU]); - } - } - break; - } - case H_CR_BBPSW : /* backup backup psw */ - CPU (h_bbpsw) = newval & 0xff; - break; - case H_CR_CBR : /* condition bit */ - SET_H_COND (newval & 1); - break; - case H_CR_SPI : /* interrupt stack pointer */ - if (! GET_H_SM ()) - CPU (h_gr[H_GR_SP]) = newval; - else - CPU (h_cr[H_CR_SPI]) = newval; - break; - case H_CR_SPU : /* user stack pointer */ - if (GET_H_SM ()) - CPU (h_gr[H_GR_SP]) = newval; - else - CPU (h_cr[H_CR_SPU]) = newval; - break; - case H_CR_BPC : /* backup pc */ - CPU (h_cr[H_CR_BPC]) = newval; - break; - case H_CR_BBPC : /* backup backup pc */ - CPU (h_cr[H_CR_BBPC]) = newval; - break; - case 4 : /* ??? unspecified, but apparently available */ - case 5 : /* ??? unspecified, but apparently available */ - CPU (h_cr[cr]) = newval; - break; - default : - /* ignore */ - break; - } -} - -/* Cover fns to access h-psw. */ - -UQI -m32rbf_h_psw_get_handler (SIM_CPU *current_cpu) -{ - return (CPU (h_psw) & 0xfe) | (CPU (h_cond) & 1); -} - -void -m32rbf_h_psw_set_handler (SIM_CPU *current_cpu, UQI newval) -{ - CPU (h_psw) = newval; - CPU (h_cond) = newval & 1; -} - -/* Cover fns to access h-accum. */ - -DI -m32rbf_h_accum_get_handler (SIM_CPU *current_cpu) -{ - /* Sign extend the top 8 bits. */ - DI r; -#if 1 - r = ANDDI (CPU (h_accum), MAKEDI (0xffffff, 0xffffffff)); - r = XORDI (r, MAKEDI (0x800000, 0)); - r = SUBDI (r, MAKEDI (0x800000, 0)); -#else - SI hi,lo; - r = CPU (h_accum); - hi = GETHIDI (r); - lo = GETLODI (r); - hi = ((hi & 0xffffff) ^ 0x800000) - 0x800000; - r = MAKEDI (hi, lo); -#endif - return r; -} - -void -m32rbf_h_accum_set_handler (SIM_CPU *current_cpu, DI newval) -{ - CPU (h_accum) = newval; -} - -#if WITH_PROFILE_MODEL_P - -/* FIXME: Some of these should be inline or macros. Later. */ - -/* Initialize cycle counting for an insn. - FIRST_P is non-zero if this is the first insn in a set of parallel - insns. */ - -void -m32rbf_model_insn_before (SIM_CPU *cpu, int first_p) -{ - M32R_MISC_PROFILE *mp = CPU_M32R_MISC_PROFILE (cpu); - mp->cti_stall = 0; - mp->load_stall = 0; - if (first_p) - { - mp->load_regs_pending = 0; - mp->biggest_cycles = 0; - } -} - -/* Record the cycles computed for an insn. - LAST_P is non-zero if this is the last insn in a set of parallel insns, - and we update the total cycle count. - CYCLES is the cycle count of the insn. */ - -void -m32rbf_model_insn_after (SIM_CPU *cpu, int last_p, int cycles) -{ - PROFILE_DATA *p = CPU_PROFILE_DATA (cpu); - M32R_MISC_PROFILE *mp = CPU_M32R_MISC_PROFILE (cpu); - unsigned long total = cycles + mp->cti_stall + mp->load_stall; - - if (last_p) - { - unsigned long biggest = total > mp->biggest_cycles ? total : mp->biggest_cycles; - PROFILE_MODEL_TOTAL_CYCLES (p) += biggest; - PROFILE_MODEL_CUR_INSN_CYCLES (p) = total; - } - else - { - /* Here we take advantage of the fact that !last_p -> first_p. */ - mp->biggest_cycles = total; - PROFILE_MODEL_CUR_INSN_CYCLES (p) = total; - } - - /* Branch and load stall counts are recorded independently of the - total cycle count. */ - PROFILE_MODEL_CTI_STALL_CYCLES (p) += mp->cti_stall; - PROFILE_MODEL_LOAD_STALL_CYCLES (p) += mp->load_stall; - - mp->load_regs = mp->load_regs_pending; -} - -static INLINE void -check_load_stall (SIM_CPU *cpu, int regno) -{ - UINT h_gr = CPU_M32R_MISC_PROFILE (cpu)->load_regs; - - if (regno != -1 - && (h_gr & (1 << regno)) != 0) - { - CPU_M32R_MISC_PROFILE (cpu)->load_stall += 2; - if (TRACE_INSN_P (cpu)) - cgen_trace_printf (cpu, " ; Load stall of 2 cycles."); - } -} - -int -m32rbf_model_m32r_d_u_exec (SIM_CPU *cpu, const IDESC *idesc, - int unit_num, int referenced, - INT sr, INT sr2, INT dr) -{ - check_load_stall (cpu, sr); - check_load_stall (cpu, sr2); - return idesc->timing->units[unit_num].done; -} - -int -m32rbf_model_m32r_d_u_cmp (SIM_CPU *cpu, const IDESC *idesc, - int unit_num, int referenced, - INT src1, INT src2) -{ - check_load_stall (cpu, src1); - check_load_stall (cpu, src2); - return idesc->timing->units[unit_num].done; -} - -int -m32rbf_model_m32r_d_u_mac (SIM_CPU *cpu, const IDESC *idesc, - int unit_num, int referenced, - INT src1, INT src2) -{ - check_load_stall (cpu, src1); - check_load_stall (cpu, src2); - return idesc->timing->units[unit_num].done; -} - -int -m32rbf_model_m32r_d_u_cti (SIM_CPU *cpu, const IDESC *idesc, - int unit_num, int referenced, - INT sr) -{ - PROFILE_DATA *profile = CPU_PROFILE_DATA (cpu); - int taken_p = (referenced & (1 << 1)) != 0; - - check_load_stall (cpu, sr); - if (taken_p) - { - CPU_M32R_MISC_PROFILE (cpu)->cti_stall += 2; - PROFILE_MODEL_TAKEN_COUNT (profile) += 1; - } - else - PROFILE_MODEL_UNTAKEN_COUNT (profile) += 1; - return idesc->timing->units[unit_num].done; -} - -int -m32rbf_model_m32r_d_u_load (SIM_CPU *cpu, const IDESC *idesc, - int unit_num, int referenced, - INT sr, INT dr) -{ - CPU_M32R_MISC_PROFILE (cpu)->load_regs_pending |= (1 << dr); - check_load_stall (cpu, sr); - return idesc->timing->units[unit_num].done; -} - -int -m32rbf_model_m32r_d_u_store (SIM_CPU *cpu, const IDESC *idesc, - int unit_num, int referenced, - INT src1, INT src2) -{ - check_load_stall (cpu, src1); - check_load_stall (cpu, src2); - return idesc->timing->units[unit_num].done; -} - -int -m32rbf_model_test_u_exec (SIM_CPU *cpu, const IDESC *idesc, - int unit_num, int referenced) -{ - return idesc->timing->units[unit_num].done; -} - -#endif /* WITH_PROFILE_MODEL_P */ diff --git a/sim/m32r/m32r2.c b/sim/m32r/m32r2.c deleted file mode 100644 index 594ce8a..0000000 --- a/sim/m32r/m32r2.c +++ /dev/null @@ -1,311 +0,0 @@ -/* m32r2 simulator support code - 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. */ - -#define WANT_CPU m32r2f -#define WANT_CPU_M32R2F - -#include "sim-main.h" -#include "cgen-mem.h" -#include "cgen-ops.h" - -/* The contents of BUF are in target byte order. */ - -int -m32r2f_fetch_register (SIM_CPU *current_cpu, int rn, unsigned char *buf, int len) -{ - return m32rbf_fetch_register (current_cpu, rn, buf, len); -} - -/* The contents of BUF are in target byte order. */ - -int -m32r2f_store_register (SIM_CPU *current_cpu, int rn, unsigned char *buf, int len) -{ - return m32rbf_store_register (current_cpu, rn, buf, len); -} - -/* Cover fns to get/set the control registers. - FIXME: Duplicated from m32r.c. The issue is structure offsets. */ - -USI -m32r2f_h_cr_get_handler (SIM_CPU *current_cpu, UINT cr) -{ - switch (cr) - { - case H_CR_PSW : /* PSW. */ - return (((CPU (h_bpsw) & 0xc1) << 8) - | ((CPU (h_psw) & 0xc0) << 0) - | GET_H_COND ()); - case H_CR_BBPSW : /* Backup backup psw. */ - return CPU (h_bbpsw) & 0xc1; - case H_CR_CBR : /* Condition bit. */ - return GET_H_COND (); - case H_CR_SPI : /* Interrupt stack pointer. */ - if (! GET_H_SM ()) - return CPU (h_gr[H_GR_SP]); - else - return CPU (h_cr[H_CR_SPI]); - case H_CR_SPU : /* User stack pointer. */ - if (GET_H_SM ()) - return CPU (h_gr[H_GR_SP]); - else - return CPU (h_cr[H_CR_SPU]); - case H_CR_BPC : /* Backup pc. */ - return CPU (h_cr[H_CR_BPC]) & 0xfffffffe; - case H_CR_BBPC : /* Backup backup pc. */ - return CPU (h_cr[H_CR_BBPC]) & 0xfffffffe; - case 4 : /* ??? unspecified, but apparently available */ - case 5 : /* ??? unspecified, but apparently available */ - return CPU (h_cr[cr]); - default : - return 0; - } -} - -void -m32r2f_h_cr_set_handler (SIM_CPU *current_cpu, UINT cr, USI newval) -{ - switch (cr) - { - case H_CR_PSW : /* psw */ - { - int old_sm = (CPU (h_psw) & 0x80) != 0; - int new_sm = (newval & 0x80) != 0; - CPU (h_bpsw) = (newval >> 8) & 0xff; - CPU (h_psw) = newval & 0xff; - SET_H_COND (newval & 1); - /* When switching stack modes, update the registers. */ - if (old_sm != new_sm) - { - if (old_sm) - { - /* Switching user -> system. */ - CPU (h_cr[H_CR_SPU]) = CPU (h_gr[H_GR_SP]); - CPU (h_gr[H_GR_SP]) = CPU (h_cr[H_CR_SPI]); - } - else - { - /* Switching system -> user. */ - CPU (h_cr[H_CR_SPI]) = CPU (h_gr[H_GR_SP]); - CPU (h_gr[H_GR_SP]) = CPU (h_cr[H_CR_SPU]); - } - } - break; - } - case H_CR_BBPSW : /* backup backup psw */ - CPU (h_bbpsw) = newval & 0xff; - break; - case H_CR_CBR : /* condition bit */ - SET_H_COND (newval & 1); - break; - case H_CR_SPI : /* interrupt stack pointer */ - if (! GET_H_SM ()) - CPU (h_gr[H_GR_SP]) = newval; - else - CPU (h_cr[H_CR_SPI]) = newval; - break; - case H_CR_SPU : /* user stack pointer */ - if (GET_H_SM ()) - CPU (h_gr[H_GR_SP]) = newval; - else - CPU (h_cr[H_CR_SPU]) = newval; - break; - case H_CR_BPC : /* backup pc */ - CPU (h_cr[H_CR_BPC]) = newval; - break; - case H_CR_BBPC : /* backup backup pc */ - CPU (h_cr[H_CR_BBPC]) = newval; - break; - case 4 : /* ??? unspecified, but apparently available */ - case 5 : /* ??? unspecified, but apparently available */ - CPU (h_cr[cr]) = newval; - break; - default : - /* ignore */ - break; - } -} - -/* Cover fns to access h-psw. */ - -UQI -m32r2f_h_psw_get_handler (SIM_CPU *current_cpu) -{ - return (CPU (h_psw) & 0xfe) | (CPU (h_cond) & 1); -} - -void -m32r2f_h_psw_set_handler (SIM_CPU *current_cpu, UQI newval) -{ - CPU (h_psw) = newval; - CPU (h_cond) = newval & 1; -} - -/* Cover fns to access h-accum. */ - -DI -m32r2f_h_accum_get_handler (SIM_CPU *current_cpu) -{ - /* Sign extend the top 8 bits. */ - DI r; - r = ANDDI (CPU (h_accum), MAKEDI (0xffffff, 0xffffffff)); - r = XORDI (r, MAKEDI (0x800000, 0)); - r = SUBDI (r, MAKEDI (0x800000, 0)); - return r; -} - -void -m32r2f_h_accum_set_handler (SIM_CPU *current_cpu, DI newval) -{ - CPU (h_accum) = newval; -} - -/* Cover fns to access h-accums. */ - -DI -m32r2f_h_accums_get_handler (SIM_CPU *current_cpu, UINT regno) -{ - /* FIXME: Yes, this is just a quick hack. */ - DI r; - if (regno == 0) - r = CPU (h_accum); - else - r = CPU (h_accums[1]); - /* Sign extend the top 8 bits. */ - r = ANDDI (r, MAKEDI (0xffffff, 0xffffffff)); - r = XORDI (r, MAKEDI (0x800000, 0)); - r = SUBDI (r, MAKEDI (0x800000, 0)); - return r; -} - -void -m32r2f_h_accums_set_handler (SIM_CPU *current_cpu, UINT regno, DI newval) -{ - /* FIXME: Yes, this is just a quick hack. */ - if (regno == 0) - CPU (h_accum) = newval; - else - CPU (h_accums[1]) = newval; -} - -#if WITH_PROFILE_MODEL_P - -/* Initialize cycle counting for an insn. - FIRST_P is non-zero if this is the first insn in a set of parallel - insns. */ - -void -m32r2f_model_insn_before (SIM_CPU *cpu, int first_p) -{ - m32rbf_model_insn_before (cpu, first_p); -} - -/* Record the cycles computed for an insn. - LAST_P is non-zero if this is the last insn in a set of parallel insns, - and we update the total cycle count. - CYCLES is the cycle count of the insn. */ - -void -m32r2f_model_insn_after (SIM_CPU *cpu, int last_p, int cycles) -{ - m32rbf_model_insn_after (cpu, last_p, cycles); -} - -static INLINE void -check_load_stall (SIM_CPU *cpu, int regno) -{ - UINT h_gr = CPU_M32R_MISC_PROFILE (cpu)->load_regs; - - if (regno != -1 - && (h_gr & (1 << regno)) != 0) - { - CPU_M32R_MISC_PROFILE (cpu)->load_stall += 2; - if (TRACE_INSN_P (cpu)) - cgen_trace_printf (cpu, " ; Load stall of 2 cycles."); - } -} - -int -m32r2f_model_m32r2_u_exec (SIM_CPU *cpu, const IDESC *idesc, - int unit_num, int referenced, - INT sr, INT sr2, INT dr) -{ - check_load_stall (cpu, sr); - check_load_stall (cpu, sr2); - return idesc->timing->units[unit_num].done; -} - -int -m32r2f_model_m32r2_u_cmp (SIM_CPU *cpu, const IDESC *idesc, - int unit_num, int referenced, - INT src1, INT src2) -{ - check_load_stall (cpu, src1); - check_load_stall (cpu, src2); - return idesc->timing->units[unit_num].done; -} - -int -m32r2f_model_m32r2_u_mac (SIM_CPU *cpu, const IDESC *idesc, - int unit_num, int referenced, - INT src1, INT src2) -{ - check_load_stall (cpu, src1); - check_load_stall (cpu, src2); - return idesc->timing->units[unit_num].done; -} - -int -m32r2f_model_m32r2_u_cti (SIM_CPU *cpu, const IDESC *idesc, - int unit_num, int referenced, - INT sr) -{ - PROFILE_DATA *profile = CPU_PROFILE_DATA (cpu); - int taken_p = (referenced & (1 << 1)) != 0; - - check_load_stall (cpu, sr); - if (taken_p) - { - CPU_M32R_MISC_PROFILE (cpu)->cti_stall += 2; - PROFILE_MODEL_TAKEN_COUNT (profile) += 1; - } - else - PROFILE_MODEL_UNTAKEN_COUNT (profile) += 1; - return idesc->timing->units[unit_num].done; -} - -int -m32r2f_model_m32r2_u_load (SIM_CPU *cpu, const IDESC *idesc, - int unit_num, int referenced, - INT sr, INT dr) -{ - CPU_M32R_MISC_PROFILE (cpu)->load_regs_pending |= (1 << dr); - return idesc->timing->units[unit_num].done; -} - -int -m32r2f_model_m32r2_u_store (SIM_CPU *cpu, const IDESC *idesc, - int unit_num, int referenced, - INT src1, INT src2) -{ - return idesc->timing->units[unit_num].done; -} - -#endif /* WITH_PROFILE_MODEL_P */ diff --git a/sim/m32r/m32rx.c b/sim/m32r/m32rx.c deleted file mode 100644 index cb319f6..0000000 --- a/sim/m32r/m32rx.c +++ /dev/null @@ -1,311 +0,0 @@ -/* m32rx simulator support code - Copyright (C) 1997, 1998 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. */ - -#define WANT_CPU m32rxf -#define WANT_CPU_M32RXF - -#include "sim-main.h" -#include "cgen-mem.h" -#include "cgen-ops.h" - -/* The contents of BUF are in target byte order. */ - -int -m32rxf_fetch_register (SIM_CPU *current_cpu, int rn, unsigned char *buf, int len) -{ - return m32rbf_fetch_register (current_cpu, rn, buf, len); -} - -/* The contents of BUF are in target byte order. */ - -int -m32rxf_store_register (SIM_CPU *current_cpu, int rn, unsigned char *buf, int len) -{ - return m32rbf_store_register (current_cpu, rn, buf, len); -} - -/* Cover fns to get/set the control registers. - FIXME: Duplicated from m32r.c. The issue is structure offsets. */ - -USI -m32rxf_h_cr_get_handler (SIM_CPU *current_cpu, UINT cr) -{ - switch (cr) - { - case H_CR_PSW : /* psw */ - return (((CPU (h_bpsw) & 0xc1) << 8) - | ((CPU (h_psw) & 0xc0) << 0) - | GET_H_COND ()); - case H_CR_BBPSW : /* backup backup psw */ - return CPU (h_bbpsw) & 0xc1; - case H_CR_CBR : /* condition bit */ - return GET_H_COND (); - case H_CR_SPI : /* interrupt stack pointer */ - if (! GET_H_SM ()) - return CPU (h_gr[H_GR_SP]); - else - return CPU (h_cr[H_CR_SPI]); - case H_CR_SPU : /* user stack pointer */ - if (GET_H_SM ()) - return CPU (h_gr[H_GR_SP]); - else - return CPU (h_cr[H_CR_SPU]); - case H_CR_BPC : /* backup pc */ - return CPU (h_cr[H_CR_BPC]) & 0xfffffffe; - case H_CR_BBPC : /* backup backup pc */ - return CPU (h_cr[H_CR_BBPC]) & 0xfffffffe; - case 4 : /* ??? unspecified, but apparently available */ - case 5 : /* ??? unspecified, but apparently available */ - return CPU (h_cr[cr]); - default : - return 0; - } -} - -void -m32rxf_h_cr_set_handler (SIM_CPU *current_cpu, UINT cr, USI newval) -{ - switch (cr) - { - case H_CR_PSW : /* psw */ - { - int old_sm = (CPU (h_psw) & 0x80) != 0; - int new_sm = (newval & 0x80) != 0; - CPU (h_bpsw) = (newval >> 8) & 0xff; - CPU (h_psw) = newval & 0xff; - SET_H_COND (newval & 1); - /* When switching stack modes, update the registers. */ - if (old_sm != new_sm) - { - if (old_sm) - { - /* Switching user -> system. */ - CPU (h_cr[H_CR_SPU]) = CPU (h_gr[H_GR_SP]); - CPU (h_gr[H_GR_SP]) = CPU (h_cr[H_CR_SPI]); - } - else - { - /* Switching system -> user. */ - CPU (h_cr[H_CR_SPI]) = CPU (h_gr[H_GR_SP]); - CPU (h_gr[H_GR_SP]) = CPU (h_cr[H_CR_SPU]); - } - } - break; - } - case H_CR_BBPSW : /* backup backup psw */ - CPU (h_bbpsw) = newval & 0xff; - break; - case H_CR_CBR : /* condition bit */ - SET_H_COND (newval & 1); - break; - case H_CR_SPI : /* interrupt stack pointer */ - if (! GET_H_SM ()) - CPU (h_gr[H_GR_SP]) = newval; - else - CPU (h_cr[H_CR_SPI]) = newval; - break; - case H_CR_SPU : /* user stack pointer */ - if (GET_H_SM ()) - CPU (h_gr[H_GR_SP]) = newval; - else - CPU (h_cr[H_CR_SPU]) = newval; - break; - case H_CR_BPC : /* backup pc */ - CPU (h_cr[H_CR_BPC]) = newval; - break; - case H_CR_BBPC : /* backup backup pc */ - CPU (h_cr[H_CR_BBPC]) = newval; - break; - case 4 : /* ??? unspecified, but apparently available */ - case 5 : /* ??? unspecified, but apparently available */ - CPU (h_cr[cr]) = newval; - break; - default : - /* ignore */ - break; - } -} - -/* Cover fns to access h-psw. */ - -UQI -m32rxf_h_psw_get_handler (SIM_CPU *current_cpu) -{ - return (CPU (h_psw) & 0xfe) | (CPU (h_cond) & 1); -} - -void -m32rxf_h_psw_set_handler (SIM_CPU *current_cpu, UQI newval) -{ - CPU (h_psw) = newval; - CPU (h_cond) = newval & 1; -} - -/* Cover fns to access h-accum. */ - -DI -m32rxf_h_accum_get_handler (SIM_CPU *current_cpu) -{ - /* Sign extend the top 8 bits. */ - DI r; - r = ANDDI (CPU (h_accum), MAKEDI (0xffffff, 0xffffffff)); - r = XORDI (r, MAKEDI (0x800000, 0)); - r = SUBDI (r, MAKEDI (0x800000, 0)); - return r; -} - -void -m32rxf_h_accum_set_handler (SIM_CPU *current_cpu, DI newval) -{ - CPU (h_accum) = newval; -} - -/* Cover fns to access h-accums. */ - -DI -m32rxf_h_accums_get_handler (SIM_CPU *current_cpu, UINT regno) -{ - /* FIXME: Yes, this is just a quick hack. */ - DI r; - if (regno == 0) - r = CPU (h_accum); - else - r = CPU (h_accums[1]); - /* Sign extend the top 8 bits. */ - r = ANDDI (r, MAKEDI (0xffffff, 0xffffffff)); - r = XORDI (r, MAKEDI (0x800000, 0)); - r = SUBDI (r, MAKEDI (0x800000, 0)); - return r; -} - -void -m32rxf_h_accums_set_handler (SIM_CPU *current_cpu, UINT regno, DI newval) -{ - /* FIXME: Yes, this is just a quick hack. */ - if (regno == 0) - CPU (h_accum) = newval; - else - CPU (h_accums[1]) = newval; -} - -#if WITH_PROFILE_MODEL_P - -/* Initialize cycle counting for an insn. - FIRST_P is non-zero if this is the first insn in a set of parallel - insns. */ - -void -m32rxf_model_insn_before (SIM_CPU *cpu, int first_p) -{ - m32rbf_model_insn_before (cpu, first_p); -} - -/* Record the cycles computed for an insn. - LAST_P is non-zero if this is the last insn in a set of parallel insns, - and we update the total cycle count. - CYCLES is the cycle count of the insn. */ - -void -m32rxf_model_insn_after (SIM_CPU *cpu, int last_p, int cycles) -{ - m32rbf_model_insn_after (cpu, last_p, cycles); -} - -static INLINE void -check_load_stall (SIM_CPU *cpu, int regno) -{ - UINT h_gr = CPU_M32R_MISC_PROFILE (cpu)->load_regs; - - if (regno != -1 - && (h_gr & (1 << regno)) != 0) - { - CPU_M32R_MISC_PROFILE (cpu)->load_stall += 2; - if (TRACE_INSN_P (cpu)) - cgen_trace_printf (cpu, " ; Load stall of 2 cycles."); - } -} - -int -m32rxf_model_m32rx_u_exec (SIM_CPU *cpu, const IDESC *idesc, - int unit_num, int referenced, - INT sr, INT sr2, INT dr) -{ - check_load_stall (cpu, sr); - check_load_stall (cpu, sr2); - return idesc->timing->units[unit_num].done; -} - -int -m32rxf_model_m32rx_u_cmp (SIM_CPU *cpu, const IDESC *idesc, - int unit_num, int referenced, - INT src1, INT src2) -{ - check_load_stall (cpu, src1); - check_load_stall (cpu, src2); - return idesc->timing->units[unit_num].done; -} - -int -m32rxf_model_m32rx_u_mac (SIM_CPU *cpu, const IDESC *idesc, - int unit_num, int referenced, - INT src1, INT src2) -{ - check_load_stall (cpu, src1); - check_load_stall (cpu, src2); - return idesc->timing->units[unit_num].done; -} - -int -m32rxf_model_m32rx_u_cti (SIM_CPU *cpu, const IDESC *idesc, - int unit_num, int referenced, - INT sr) -{ - PROFILE_DATA *profile = CPU_PROFILE_DATA (cpu); - int taken_p = (referenced & (1 << 1)) != 0; - - check_load_stall (cpu, sr); - if (taken_p) - { - CPU_M32R_MISC_PROFILE (cpu)->cti_stall += 2; - PROFILE_MODEL_TAKEN_COUNT (profile) += 1; - } - else - PROFILE_MODEL_UNTAKEN_COUNT (profile) += 1; - return idesc->timing->units[unit_num].done; -} - -int -m32rxf_model_m32rx_u_load (SIM_CPU *cpu, const IDESC *idesc, - int unit_num, int referenced, - INT sr, INT dr) -{ - CPU_M32R_MISC_PROFILE (cpu)->load_regs_pending |= (1 << dr); - return idesc->timing->units[unit_num].done; -} - -int -m32rxf_model_m32rx_u_store (SIM_CPU *cpu, const IDESC *idesc, - int unit_num, int referenced, - INT src1, INT src2) -{ - return idesc->timing->units[unit_num].done; -} - -#endif /* WITH_PROFILE_MODEL_P */ diff --git a/sim/m32r/mloop.in b/sim/m32r/mloop.in deleted file mode 100644 index 0be16bb..0000000 --- a/sim/m32r/mloop.in +++ /dev/null @@ -1,319 +0,0 @@ -# Simulator main loop for m32r. -*- C -*- -# Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. -# -# This file is part of the GNU Simulators. -# -# 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. - -# Syntax: -# /bin/sh mainloop.in command -# -# Command is one of: -# -# init -# support -# extract-{simple,scache,pbb} -# {full,fast}-exec-{simple,scache,pbb} -# -# A target need only provide a "full" version of one of simple,scache,pbb. -# If the target wants it can also provide a fast version of same, or if -# the slow (full featured) version is `simple', then the fast version can be -# one of scache/pbb. -# A target can't provide more than this. -# However for illustration's sake this file provides examples of all. - -# ??? After a few more ports are done, revisit. -# Will eventually need to machine generate a lot of this. - -case "x$1" in - -xsupport) - -cat <<EOF - -static INLINE const IDESC * -extract16 (SIM_CPU *current_cpu, PCADDR pc, CGEN_INSN_INT insn, - ARGBUF *abuf, int fast_p) -{ - const IDESC *id = @cpu@_decode (current_cpu, pc, insn, insn, abuf); - - @cpu@_fill_argbuf (current_cpu, abuf, id, pc, fast_p); - if (! fast_p) - { - int trace_p = PC_IN_TRACE_RANGE_P (current_cpu, pc); - int profile_p = PC_IN_PROFILE_RANGE_P (current_cpu, pc); - @cpu@_fill_argbuf_tp (current_cpu, abuf, trace_p, profile_p); - } - return id; -} - -static INLINE const IDESC * -extract32 (SIM_CPU *current_cpu, PCADDR pc, CGEN_INSN_INT insn, - ARGBUF *abuf, int fast_p) -{ - const IDESC *id = @cpu@_decode (current_cpu, pc, (USI) insn >> 16, insn, abuf); - - @cpu@_fill_argbuf (current_cpu, abuf, id, pc, fast_p); - if (! fast_p) - { - int trace_p = PC_IN_TRACE_RANGE_P (current_cpu, pc); - int profile_p = PC_IN_PROFILE_RANGE_P (current_cpu, pc); - @cpu@_fill_argbuf_tp (current_cpu, abuf, trace_p, profile_p); - } - return id; -} - -static INLINE SEM_PC -execute (SIM_CPU *current_cpu, SCACHE *sc, int fast_p) -{ - SEM_PC vpc; - - if (fast_p) - { -#if ! WITH_SEM_SWITCH_FAST -#if WITH_SCACHE - vpc = (*sc->argbuf.semantic.sem_fast) (current_cpu, sc); -#else - vpc = (*sc->argbuf.semantic.sem_fast) (current_cpu, &sc->argbuf); -#endif -#else - abort (); -#endif /* WITH_SEM_SWITCH_FAST */ - } - else - { -#if ! WITH_SEM_SWITCH_FULL - ARGBUF *abuf = &sc->argbuf; - const IDESC *idesc = abuf->idesc; - const CGEN_INSN *idata = idesc->idata; -#if WITH_SCACHE_PBB - int virtual_p = CGEN_INSN_ATTR_VALUE (idata, CGEN_INSN_VIRTUAL); -#else - int virtual_p = 0; -#endif - - if (! virtual_p) - { - /* FIXME: call x-before */ - if (ARGBUF_PROFILE_P (abuf)) - PROFILE_COUNT_INSN (current_cpu, abuf->addr, idesc->num); - /* FIXME: Later make cover macros: PROFILE_INSN_{INIT,FINI}. */ - if (PROFILE_MODEL_P (current_cpu) - && ARGBUF_PROFILE_P (abuf)) - @cpu@_model_insn_before (current_cpu, 1 /*first_p*/); - TRACE_INSN_INIT (current_cpu, abuf, 1); - TRACE_INSN (current_cpu, idata, - (const struct argbuf *) abuf, abuf->addr); - } -#if WITH_SCACHE - vpc = (*sc->argbuf.semantic.sem_full) (current_cpu, sc); -#else - vpc = (*sc->argbuf.semantic.sem_full) (current_cpu, abuf); -#endif - if (! virtual_p) - { - /* FIXME: call x-after */ - if (PROFILE_MODEL_P (current_cpu) - && ARGBUF_PROFILE_P (abuf)) - { - int cycles; - - cycles = (*idesc->timing->model_fn) (current_cpu, sc); - @cpu@_model_insn_after (current_cpu, 1 /*last_p*/, cycles); - } - TRACE_INSN_FINI (current_cpu, abuf, 1); - } -#else - abort (); -#endif /* WITH_SEM_SWITCH_FULL */ - } - - return vpc; -} - -EOF - -;; - -xinit) - -# Nothing needed. - -;; - -xextract-simple | xextract-scache) - -cat <<EOF -{ - if ((pc & 3) != 0) - { - /* This only occurs when single stepping. - The test is unnecessary otherwise, but the cost is teensy, - compared with decoding/extraction. */ - UHI insn = GETIMEMUHI (current_cpu, pc); - extract16 (current_cpu, pc, insn & 0x7fff, sc, FAST_P); - } - else - { - USI insn = GETIMEMUSI (current_cpu, pc); - if ((SI) insn < 0) - { - extract32 (current_cpu, pc, insn, sc, FAST_P); - } - else - { - extract16 (current_cpu, pc, insn >> 16, sc, FAST_P); - extract16 (current_cpu, pc + 2, insn & 0x7fff, sc + 1, FAST_P); - /* The m32r doesn't support parallel execution. */ - if ((insn & 0x8000) != 0 - && (insn & 0x7fff) != 0x7000) /* parallel nops are ok */ - sim_engine_illegal_insn (current_cpu, pc); - } - } -} -EOF - -;; - -xextract-pbb) - -# Inputs: current_cpu, pc, sc, max_insns, FAST_P -# Outputs: sc, pc -# sc must be left pointing past the last created entry. -# pc must be left pointing past the last created entry. -# If the pbb is terminated by a cti insn, SET_CTI_VPC(sc) must be called -# to record the vpc of the cti insn. -# SET_INSN_COUNT(n) must be called to record number of real insns. - -cat <<EOF -{ - const IDESC *idesc; - int icount = 0; - - if ((pc & 3) != 0) - { - /* This only occurs when single stepping. - The test is unnecessary otherwise, but the cost is teensy, - compared with decoding/extraction. */ - UHI insn = GETIMEMUHI (current_cpu, pc); - idesc = extract16 (current_cpu, pc, insn & 0x7fff, &sc->argbuf, FAST_P); - ++sc; - --max_insns; - ++icount; - pc += 2; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (sc - 1); - goto Finish; - } - } - - while (max_insns > 0) - { - USI insn = GETIMEMUSI (current_cpu, pc); - if ((SI) insn < 0) - { - idesc = extract32 (current_cpu, pc, insn, &sc->argbuf, FAST_P); - ++sc; - --max_insns; - ++icount; - pc += 4; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (sc - 1); - break; - } - } - else - { - idesc = extract16 (current_cpu, pc, insn >> 16, &sc->argbuf, FAST_P); - ++sc; - --max_insns; - ++icount; - pc += 2; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (sc - 1); - break; - } - /* The m32r doesn't support parallel execution. */ - if ((insn & 0x8000) != 0) - { - /* ??? Defer signalling to execution. */ - if ((insn & 0x7fff) != 0x7000) /* parallel nops are ok */ - sim_engine_invalid_insn (current_cpu, pc - 2, 0); - /* There's no point in processing parallel nops in fast mode. - We might as well do this test since we've already tested - that we have a parallel nop. */ - if (0 && FAST_P) - { - pc += 2; - continue; - } - } - else - { - /* Non-parallel case. - While we're guaranteed that there's room to extract the - insn, when single stepping we can't; the pbb must stop - after the first insn. */ - if (max_insns == 0) - break; - } - /* We're guaranteed that we can always process 16 bit insns in - pairs. */ - idesc = extract16 (current_cpu, pc, insn & 0x7fff, &sc->argbuf, FAST_P); - ++sc; - --max_insns; - ++icount; - pc += 2; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (sc - 1); - break; - } - } - } - - Finish: - SET_INSN_COUNT (icount); -} -EOF - -;; - -xfull-exec-* | xfast-exec-*) - -# Inputs: current_cpu, vpc, FAST_P -# Outputs: vpc -# vpc is the virtual program counter. - -cat <<EOF -#if (! FAST_P && WITH_SEM_SWITCH_FULL) || (FAST_P && WITH_SEM_SWITCH_FAST) -#define DEFINE_SWITCH -#include "sem-switch.c" -#else - vpc = execute (current_cpu, vpc, FAST_P); -#endif -EOF - -;; - -*) - echo "Invalid argument to mainloop.in: $1" >&2 - exit 1 - ;; - -esac diff --git a/sim/m32r/mloop2.in b/sim/m32r/mloop2.in deleted file mode 100644 index 69c6ec7..0000000 --- a/sim/m32r/mloop2.in +++ /dev/null @@ -1,536 +0,0 @@ -# Simulator main loop for m32r2. -*- C -*- -# -# Copyright 1996, 1997, 1998, 2003, 2004 Free Software Foundation, Inc. -# -# 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. - -# Syntax: -# /bin/sh mainloop.in command -# -# Command is one of: -# -# init -# support -# extract-{simple,scache,pbb} -# {full,fast}-exec-{simple,scache,pbb} -# -# A target need only provide a "full" version of one of simple,scache,pbb. -# If the target wants it can also provide a fast version of same, or if -# the slow (full featured) version is `simple', then the fast version can be -# one of scache/pbb. -# A target can't provide more than this. - -# ??? After a few more ports are done, revisit. -# Will eventually need to machine generate a lot of this. - -case "x$1" in - -xsupport) - -cat <<EOF - -/* Emit insns to write back the results of insns executed in parallel. - SC points to a sufficient number of scache entries for the writeback - handlers. - SC1/ID1 is the first insn (left slot, lower address). - SC2/ID2 is the second insn (right slot, higher address). */ - -static INLINE void -emit_par_finish (SIM_CPU *current_cpu, PCADDR pc, SCACHE *sc, - SCACHE *sc1, const IDESC *id1, SCACHE *sc2, const IDESC *id2) -{ - ARGBUF *abuf; - - abuf = &sc->argbuf; - id1 = id1->par_idesc; - abuf->fields.write.abuf = &sc1->argbuf; - @cpu@_fill_argbuf (current_cpu, abuf, id1, pc, 0); - /* no need to set trace_p,profile_p */ -#if 0 /* not currently needed for id2 since results written directly */ - abuf = &sc[1].argbuf; - id2 = id2->par_idesc; - abuf->fields.write.abuf = &sc2->argbuf; - @cpu@_fill_argbuf (current_cpu, abuf, id2, pc + 2, 0); - /* no need to set trace_p,profile_p */ -#endif -} - -static INLINE const IDESC * -emit_16 (SIM_CPU *current_cpu, PCADDR pc, CGEN_INSN_INT insn, - SCACHE *sc, int fast_p, int parallel_p) -{ - ARGBUF *abuf = &sc->argbuf; - const IDESC *id = @cpu@_decode (current_cpu, pc, insn, insn, abuf); - - if (parallel_p) - id = id->par_idesc; - @cpu@_fill_argbuf (current_cpu, abuf, id, pc, fast_p); - return id; -} - -static INLINE const IDESC * -emit_full16 (SIM_CPU *current_cpu, PCADDR pc, CGEN_INSN_INT insn, SCACHE *sc, - int trace_p, int profile_p) -{ - const IDESC *id; - - @cpu@_emit_before (current_cpu, sc, pc, 1); - id = emit_16 (current_cpu, pc, insn, sc + 1, 0, 0); - @cpu@_emit_after (current_cpu, sc + 2, pc); - sc[1].argbuf.trace_p = trace_p; - sc[1].argbuf.profile_p = profile_p; - return id; -} - -static INLINE const IDESC * -emit_parallel (SIM_CPU *current_cpu, PCADDR pc, CGEN_INSN_INT insn, - SCACHE *sc, int fast_p) -{ - const IDESC *id,*id2; - - /* Emit both insns, then emit a finisher-upper. - We speed things up by handling the second insn serially - [not parallelly]. Then the writeback only has to deal - with the first insn. */ - /* ??? Revisit to handle exceptions right. */ - - /* FIXME: No need to handle this parallely if second is nop. */ - id = emit_16 (current_cpu, pc, insn >> 16, sc, fast_p, 1); - - /* Note that this can never be a cti. No cti's go in the S pipeline. */ - id2 = emit_16 (current_cpu, pc + 2, insn & 0x7fff, sc + 1, fast_p, 0); - - /* Set sc/snc insns notion of where to skip to. */ - if (IDESC_SKIP_P (id)) - SEM_SKIP_COMPILE (current_cpu, sc, 1); - - /* Emit code to finish executing the semantics - (write back the results). */ - emit_par_finish (current_cpu, pc, sc + 2, sc, id, sc + 1, id2); - - return id; -} - -static INLINE const IDESC * -emit_full_parallel (SIM_CPU *current_cpu, PCADDR pc, CGEN_INSN_INT insn, - SCACHE *sc, int trace_p, int profile_p) -{ - const IDESC *id,*id2; - - /* Emit both insns, then emit a finisher-upper. - We speed things up by handling the second insn serially - [not parallelly]. Then the writeback only has to deal - with the first insn. */ - /* ??? Revisit to handle exceptions right. */ - - @cpu@_emit_before (current_cpu, sc, pc, 1); - - /* FIXME: No need to handle this parallelly if second is nop. */ - id = emit_16 (current_cpu, pc, insn >> 16, sc + 1, 0, 1); - sc[1].argbuf.trace_p = trace_p; - sc[1].argbuf.profile_p = profile_p; - - @cpu@_emit_before (current_cpu, sc + 2, pc, 0); - - /* Note that this can never be a cti. No cti's go in the S pipeline. */ - id2 = emit_16 (current_cpu, pc + 2, insn & 0x7fff, sc + 3, 0, 0); - sc[3].argbuf.trace_p = trace_p; - sc[3].argbuf.profile_p = profile_p; - - /* Set sc/snc insns notion of where to skip to. */ - if (IDESC_SKIP_P (id)) - SEM_SKIP_COMPILE (current_cpu, sc, 4); - - /* Emit code to finish executing the semantics - (write back the results). */ - emit_par_finish (current_cpu, pc, sc + 4, sc + 1, id, sc + 3, id2); - - @cpu@_emit_after (current_cpu, sc + 5, pc); - - return id; -} - -static INLINE const IDESC * -emit_32 (SIM_CPU *current_cpu, PCADDR pc, CGEN_INSN_INT insn, - SCACHE *sc, int fast_p) -{ - ARGBUF *abuf = &sc->argbuf; - const IDESC *id = @cpu@_decode (current_cpu, pc, - (USI) insn >> 16, insn, abuf); - - @cpu@_fill_argbuf (current_cpu, abuf, id, pc, fast_p); - return id; -} - -static INLINE const IDESC * -emit_full32 (SIM_CPU *current_cpu, PCADDR pc, CGEN_INSN_INT insn, SCACHE *sc, - int trace_p, int profile_p) -{ - const IDESC *id; - - @cpu@_emit_before (current_cpu, sc, pc, 1); - id = emit_32 (current_cpu, pc, insn, sc + 1, 0); - @cpu@_emit_after (current_cpu, sc + 2, pc); - sc[1].argbuf.trace_p = trace_p; - sc[1].argbuf.profile_p = profile_p; - return id; -} - -EOF - -;; - -xinit) - -# Nothing needed. - -;; - -xextract-pbb) - -# Inputs: current_cpu, pc, sc, max_insns, FAST_P -# Outputs: sc, pc -# sc must be left pointing past the last created entry. -# pc must be left pointing past the last created entry. -# If the pbb is terminated by a cti insn, SET_CTI_VPC(sc) must be called -# to record the vpc of the cti insn. -# SET_INSN_COUNT(n) must be called to record number of real insns. - -cat <<EOF -{ - const IDESC *idesc; - int icount = 0; - - if ((pc & 3) != 0) - { - /* This occurs when single stepping and when compiling the not-taken - part of conditional branches. */ - UHI insn = GETIMEMUHI (current_cpu, pc); - int trace_p = PC_IN_TRACE_RANGE_P (current_cpu, pc); - int profile_p = PC_IN_PROFILE_RANGE_P (current_cpu, pc); - SCACHE *cti_sc; /* ??? tmp hack */ - - /* A parallel insn isn't allowed here, but we don't mind nops. - ??? We need to wait until the insn is executed before signalling - the error, for situations where such signalling is wanted. */ -#if 0 - if ((insn & 0x8000) != 0 - && (insn & 0x7fff) != 0x7000) /* parallel nops are ok */ - sim_engine_invalid_insn (current_cpu, pc, 0); -#endif - - /* Only emit before/after handlers if necessary. */ - if (FAST_P || (! trace_p && ! profile_p)) - { - idesc = emit_16 (current_cpu, pc, insn & 0x7fff, sc, FAST_P, 0); - cti_sc = sc; - ++sc; - --max_insns; - } - else - { - idesc = emit_full16 (current_cpu, pc, insn & 0x7fff, sc, - trace_p, profile_p); - cti_sc = sc + 1; - sc += 3; - max_insns -= 3; - } - ++icount; - pc += 2; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (cti_sc); - goto Finish; - } - } - - /* There are two copies of the compiler: full(!fast) and fast. - The "full" case emits before/after handlers for each insn. - Having two copies of this code is a tradeoff, having one copy - seemed a bit more difficult to read (due to constantly testing - FAST_P). ??? On the other hand, with address ranges we'll want to - omit before/after handlers for unwanted insns. Having separate loops - for FAST/!FAST avoids constantly doing the test in the loop, but - typically FAST_P is a constant and such tests will get optimized out. */ - - if (FAST_P) - { - while (max_insns > 0) - { - USI insn = GETIMEMUSI (current_cpu, pc); - if ((SI) insn < 0) - { - /* 32 bit insn */ - idesc = emit_32 (current_cpu, pc, insn, sc, 1); - ++sc; - --max_insns; - ++icount; - pc += 4; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (sc - 1); - break; - } - } - else - { - if ((insn & 0x8000) != 0) /* parallel? */ - { - int up_count; - - if (((insn >> 16) & 0xfff0) == 0x10f0) - { - /* FIXME: No need to handle this sequentially if system - calls will be able to execute after second insn in - parallel. ( trap #num || insn ) */ - /* insn */ - idesc = emit_16 (current_cpu, pc + 2, insn & 0x7fff, - sc, 1, 0); - /* trap */ - emit_16 (current_cpu, pc, insn >> 16, sc + 1, 1, 0); - up_count = 2; - } - else - { - /* Yep. Here's the "interesting" [sic] part. */ - idesc = emit_parallel (current_cpu, pc, insn, sc, 1); - up_count = 3; - } - sc += up_count; - max_insns -= up_count; - icount += 2; - pc += 4; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (sc - up_count); - break; - } - } - else /* 2 serial 16 bit insns */ - { - idesc = emit_16 (current_cpu, pc, insn >> 16, sc, 1, 0); - ++sc; - --max_insns; - ++icount; - pc += 2; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (sc - 1); - break; - } - /* While we're guaranteed that there's room to extract the - insn, when single stepping we can't; the pbb must stop - after the first insn. */ - if (max_insns == 0) - break; - idesc = emit_16 (current_cpu, pc, insn & 0x7fff, sc, 1, 0); - ++sc; - --max_insns; - ++icount; - pc += 2; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (sc - 1); - break; - } - } - } - } - } - else /* ! FAST_P */ - { - while (max_insns > 0) - { - USI insn = GETIMEMUSI (current_cpu, pc); - int trace_p = PC_IN_TRACE_RANGE_P (current_cpu, pc); - int profile_p = PC_IN_PROFILE_RANGE_P (current_cpu, pc); - SCACHE *cti_sc; /* ??? tmp hack */ - if ((SI) insn < 0) - { - /* 32 bit insn - Only emit before/after handlers if necessary. */ - if (trace_p || profile_p) - { - idesc = emit_full32 (current_cpu, pc, insn, sc, - trace_p, profile_p); - cti_sc = sc + 1; - sc += 3; - max_insns -= 3; - } - else - { - idesc = emit_32 (current_cpu, pc, insn, sc, 0); - cti_sc = sc; - ++sc; - --max_insns; - } - ++icount; - pc += 4; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (cti_sc); - break; - } - } - else - { - if ((insn & 0x8000) != 0) /* parallel? */ - { - /* Yep. Here's the "interesting" [sic] part. - Only emit before/after handlers if necessary. */ - if (trace_p || profile_p) - { - if (((insn >> 16) & 0xfff0) == 0x10f0) - { - /* FIXME: No need to handle this sequentially if - system calls will be able to execute after second - insn in parallel. ( trap #num || insn ) */ - /* insn */ - idesc = emit_full16 (current_cpu, pc + 2, - insn & 0x7fff, sc, 0, 0); - /* trap */ - emit_full16 (current_cpu, pc, insn >> 16, sc + 3, - 0, 0); - } - else - { - idesc = emit_full_parallel (current_cpu, pc, insn, - sc, trace_p, profile_p); - } - cti_sc = sc + 1; - sc += 6; - max_insns -= 6; - } - else - { - int up_count; - - if (((insn >> 16) & 0xfff0) == 0x10f0) - { - /* FIXME: No need to handle this sequentially if - system calls will be able to execute after second - insn in parallel. ( trap #num || insn ) */ - /* insn */ - idesc = emit_16 (current_cpu, pc + 2, insn & 0x7fff, - sc, 0, 0); - /* trap */ - emit_16 (current_cpu, pc, insn >> 16, sc + 1, 0, 0); - up_count = 2; - } - else - { - idesc = emit_parallel (current_cpu, pc, insn, sc, 0); - up_count = 3; - } - cti_sc = sc; - sc += up_count; - max_insns -= up_count; - } - icount += 2; - pc += 4; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (cti_sc); - break; - } - } - else /* 2 serial 16 bit insns */ - { - /* Only emit before/after handlers if necessary. */ - if (trace_p || profile_p) - { - idesc = emit_full16 (current_cpu, pc, insn >> 16, sc, - trace_p, profile_p); - cti_sc = sc + 1; - sc += 3; - max_insns -= 3; - } - else - { - idesc = emit_16 (current_cpu, pc, insn >> 16, sc, 0, 0); - cti_sc = sc; - ++sc; - --max_insns; - } - ++icount; - pc += 2; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (cti_sc); - break; - } - /* While we're guaranteed that there's room to extract the - insn, when single stepping we can't; the pbb must stop - after the first insn. */ - if (max_insns <= 0) - break; - /* Use the same trace/profile address for the 2nd insn. - Saves us having to compute it and they come in pairs - anyway (e.g. can never branch to the 2nd insn). */ - if (trace_p || profile_p) - { - idesc = emit_full16 (current_cpu, pc, insn & 0x7fff, sc, - trace_p, profile_p); - cti_sc = sc + 1; - sc += 3; - max_insns -= 3; - } - else - { - idesc = emit_16 (current_cpu, pc, insn & 0x7fff, sc, 0, 0); - cti_sc = sc; - ++sc; - --max_insns; - } - ++icount; - pc += 2; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (cti_sc); - break; - } - } - } - } - } - - Finish: - SET_INSN_COUNT (icount); -} -EOF - -;; - -xfull-exec-pbb) - -# Inputs: current_cpu, vpc, FAST_P -# Outputs: vpc -# vpc is the virtual program counter. - -cat <<EOF -#define DEFINE_SWITCH -#include "sem2-switch.c" -EOF - -;; - -*) - echo "Invalid argument to mainloop.in: $1" >&2 - exit 1 - ;; - -esac diff --git a/sim/m32r/mloopx.in b/sim/m32r/mloopx.in deleted file mode 100644 index 5ca20a1..0000000 --- a/sim/m32r/mloopx.in +++ /dev/null @@ -1,536 +0,0 @@ -# Simulator main loop for m32rx. -*- C -*- -# -# Copyright 1996, 1997, 1998, 2004 Free Software Foundation, Inc. -# -# This file is part of the GNU Simulators. -# -# 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. - -# Syntax: -# /bin/sh mainloop.in command -# -# Command is one of: -# -# init -# support -# extract-{simple,scache,pbb} -# {full,fast}-exec-{simple,scache,pbb} -# -# A target need only provide a "full" version of one of simple,scache,pbb. -# If the target wants it can also provide a fast version of same, or if -# the slow (full featured) version is `simple', then the fast version can be -# one of scache/pbb. -# A target can't provide more than this. - -# ??? After a few more ports are done, revisit. -# Will eventually need to machine generate a lot of this. - -case "x$1" in - -xsupport) - -cat <<EOF - -/* Emit insns to write back the results of insns executed in parallel. - SC points to a sufficient number of scache entries for the writeback - handlers. - SC1/ID1 is the first insn (left slot, lower address). - SC2/ID2 is the second insn (right slot, higher address). */ - -static INLINE void -emit_par_finish (SIM_CPU *current_cpu, PCADDR pc, SCACHE *sc, - SCACHE *sc1, const IDESC *id1, SCACHE *sc2, const IDESC *id2) -{ - ARGBUF *abuf; - - abuf = &sc->argbuf; - id1 = id1->par_idesc; - abuf->fields.write.abuf = &sc1->argbuf; - @cpu@_fill_argbuf (current_cpu, abuf, id1, pc, 0); - /* no need to set trace_p,profile_p */ -#if 0 /* not currently needed for id2 since results written directly */ - abuf = &sc[1].argbuf; - id2 = id2->par_idesc; - abuf->fields.write.abuf = &sc2->argbuf; - @cpu@_fill_argbuf (current_cpu, abuf, id2, pc + 2, 0); - /* no need to set trace_p,profile_p */ -#endif -} - -static INLINE const IDESC * -emit_16 (SIM_CPU *current_cpu, PCADDR pc, CGEN_INSN_INT insn, - SCACHE *sc, int fast_p, int parallel_p) -{ - ARGBUF *abuf = &sc->argbuf; - const IDESC *id = @cpu@_decode (current_cpu, pc, insn, insn, abuf); - - if (parallel_p) - id = id->par_idesc; - @cpu@_fill_argbuf (current_cpu, abuf, id, pc, fast_p); - return id; -} - -static INLINE const IDESC * -emit_full16 (SIM_CPU *current_cpu, PCADDR pc, CGEN_INSN_INT insn, SCACHE *sc, - int trace_p, int profile_p) -{ - const IDESC *id; - - @cpu@_emit_before (current_cpu, sc, pc, 1); - id = emit_16 (current_cpu, pc, insn, sc + 1, 0, 0); - @cpu@_emit_after (current_cpu, sc + 2, pc); - sc[1].argbuf.trace_p = trace_p; - sc[1].argbuf.profile_p = profile_p; - return id; -} - -static INLINE const IDESC * -emit_parallel (SIM_CPU *current_cpu, PCADDR pc, CGEN_INSN_INT insn, - SCACHE *sc, int fast_p) -{ - const IDESC *id,*id2; - - /* Emit both insns, then emit a finisher-upper. - We speed things up by handling the second insn serially - [not parallelly]. Then the writeback only has to deal - with the first insn. */ - /* ??? Revisit to handle exceptions right. */ - - /* FIXME: No need to handle this parallely if second is nop. */ - id = emit_16 (current_cpu, pc, insn >> 16, sc, fast_p, 1); - - /* Note that this can never be a cti. No cti's go in the S pipeline. */ - id2 = emit_16 (current_cpu, pc + 2, insn & 0x7fff, sc + 1, fast_p, 0); - - /* Set sc/snc insns notion of where to skip to. */ - if (IDESC_SKIP_P (id)) - SEM_SKIP_COMPILE (current_cpu, sc, 1); - - /* Emit code to finish executing the semantics - (write back the results). */ - emit_par_finish (current_cpu, pc, sc + 2, sc, id, sc + 1, id2); - - return id; -} - -static INLINE const IDESC * -emit_full_parallel (SIM_CPU *current_cpu, PCADDR pc, CGEN_INSN_INT insn, - SCACHE *sc, int trace_p, int profile_p) -{ - const IDESC *id,*id2; - - /* Emit both insns, then emit a finisher-upper. - We speed things up by handling the second insn serially - [not parallelly]. Then the writeback only has to deal - with the first insn. */ - /* ??? Revisit to handle exceptions right. */ - - @cpu@_emit_before (current_cpu, sc, pc, 1); - - /* FIXME: No need to handle this parallelly if second is nop. */ - id = emit_16 (current_cpu, pc, insn >> 16, sc + 1, 0, 1); - sc[1].argbuf.trace_p = trace_p; - sc[1].argbuf.profile_p = profile_p; - - @cpu@_emit_before (current_cpu, sc + 2, pc, 0); - - /* Note that this can never be a cti. No cti's go in the S pipeline. */ - id2 = emit_16 (current_cpu, pc + 2, insn & 0x7fff, sc + 3, 0, 0); - sc[3].argbuf.trace_p = trace_p; - sc[3].argbuf.profile_p = profile_p; - - /* Set sc/snc insns notion of where to skip to. */ - if (IDESC_SKIP_P (id)) - SEM_SKIP_COMPILE (current_cpu, sc, 4); - - /* Emit code to finish executing the semantics - (write back the results). */ - emit_par_finish (current_cpu, pc, sc + 4, sc + 1, id, sc + 3, id2); - - @cpu@_emit_after (current_cpu, sc + 5, pc); - - return id; -} - -static INLINE const IDESC * -emit_32 (SIM_CPU *current_cpu, PCADDR pc, CGEN_INSN_INT insn, - SCACHE *sc, int fast_p) -{ - ARGBUF *abuf = &sc->argbuf; - const IDESC *id = @cpu@_decode (current_cpu, pc, - (USI) insn >> 16, insn, abuf); - - @cpu@_fill_argbuf (current_cpu, abuf, id, pc, fast_p); - return id; -} - -static INLINE const IDESC * -emit_full32 (SIM_CPU *current_cpu, PCADDR pc, CGEN_INSN_INT insn, SCACHE *sc, - int trace_p, int profile_p) -{ - const IDESC *id; - - @cpu@_emit_before (current_cpu, sc, pc, 1); - id = emit_32 (current_cpu, pc, insn, sc + 1, 0); - @cpu@_emit_after (current_cpu, sc + 2, pc); - sc[1].argbuf.trace_p = trace_p; - sc[1].argbuf.profile_p = profile_p; - return id; -} - -EOF - -;; - -xinit) - -# Nothing needed. - -;; - -xextract-pbb) - -# Inputs: current_cpu, pc, sc, max_insns, FAST_P -# Outputs: sc, pc -# sc must be left pointing past the last created entry. -# pc must be left pointing past the last created entry. -# If the pbb is terminated by a cti insn, SET_CTI_VPC(sc) must be called -# to record the vpc of the cti insn. -# SET_INSN_COUNT(n) must be called to record number of real insns. - -cat <<EOF -{ - const IDESC *idesc; - int icount = 0; - - if ((pc & 3) != 0) - { - /* This occurs when single stepping and when compiling the not-taken - part of conditional branches. */ - UHI insn = GETIMEMUHI (current_cpu, pc); - int trace_p = PC_IN_TRACE_RANGE_P (current_cpu, pc); - int profile_p = PC_IN_PROFILE_RANGE_P (current_cpu, pc); - SCACHE *cti_sc; /* ??? tmp hack */ - - /* A parallel insn isn't allowed here, but we don't mind nops. - ??? We need to wait until the insn is executed before signalling - the error, for situations where such signalling is wanted. */ -#if 0 - if ((insn & 0x8000) != 0 - && (insn & 0x7fff) != 0x7000) /* parallel nops are ok */ - sim_engine_invalid_insn (current_cpu, pc, 0); -#endif - - /* Only emit before/after handlers if necessary. */ - if (FAST_P || (! trace_p && ! profile_p)) - { - idesc = emit_16 (current_cpu, pc, insn & 0x7fff, sc, FAST_P, 0); - cti_sc = sc; - ++sc; - --max_insns; - } - else - { - idesc = emit_full16 (current_cpu, pc, insn & 0x7fff, sc, - trace_p, profile_p); - cti_sc = sc + 1; - sc += 3; - max_insns -= 3; - } - ++icount; - pc += 2; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (cti_sc); - goto Finish; - } - } - - /* There are two copies of the compiler: full(!fast) and fast. - The "full" case emits before/after handlers for each insn. - Having two copies of this code is a tradeoff, having one copy - seemed a bit more difficult to read (due to constantly testing - FAST_P). ??? On the other hand, with address ranges we'll want to - omit before/after handlers for unwanted insns. Having separate loops - for FAST/!FAST avoids constantly doing the test in the loop, but - typically FAST_P is a constant and such tests will get optimized out. */ - - if (FAST_P) - { - while (max_insns > 0) - { - USI insn = GETIMEMUSI (current_cpu, pc); - if ((SI) insn < 0) - { - /* 32 bit insn */ - idesc = emit_32 (current_cpu, pc, insn, sc, 1); - ++sc; - --max_insns; - ++icount; - pc += 4; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (sc - 1); - break; - } - } - else - { - if ((insn & 0x8000) != 0) /* parallel? */ - { - int up_count; - - if (((insn >> 16) & 0xfff0) == 0x10f0) - { - /* FIXME: No need to handle this sequentially if system - calls will be able to execute after second insn in - parallel. ( trap #num || insn ) */ - /* insn */ - idesc = emit_16 (current_cpu, pc + 2, insn & 0x7fff, - sc, 1, 0); - /* trap */ - emit_16 (current_cpu, pc, insn >> 16, sc + 1, 1, 0); - up_count = 2; - } - else - { - /* Yep. Here's the "interesting" [sic] part. */ - idesc = emit_parallel (current_cpu, pc, insn, sc, 1); - up_count = 3; - } - sc += up_count; - max_insns -= up_count; - icount += 2; - pc += 4; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (sc - up_count); - break; - } - } - else /* 2 serial 16 bit insns */ - { - idesc = emit_16 (current_cpu, pc, insn >> 16, sc, 1, 0); - ++sc; - --max_insns; - ++icount; - pc += 2; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (sc - 1); - break; - } - /* While we're guaranteed that there's room to extract the - insn, when single stepping we can't; the pbb must stop - after the first insn. */ - if (max_insns == 0) - break; - idesc = emit_16 (current_cpu, pc, insn & 0x7fff, sc, 1, 0); - ++sc; - --max_insns; - ++icount; - pc += 2; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (sc - 1); - break; - } - } - } - } - } - else /* ! FAST_P */ - { - while (max_insns > 0) - { - USI insn = GETIMEMUSI (current_cpu, pc); - int trace_p = PC_IN_TRACE_RANGE_P (current_cpu, pc); - int profile_p = PC_IN_PROFILE_RANGE_P (current_cpu, pc); - SCACHE *cti_sc; /* ??? tmp hack */ - if ((SI) insn < 0) - { - /* 32 bit insn - Only emit before/after handlers if necessary. */ - if (trace_p || profile_p) - { - idesc = emit_full32 (current_cpu, pc, insn, sc, - trace_p, profile_p); - cti_sc = sc + 1; - sc += 3; - max_insns -= 3; - } - else - { - idesc = emit_32 (current_cpu, pc, insn, sc, 0); - cti_sc = sc; - ++sc; - --max_insns; - } - ++icount; - pc += 4; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (cti_sc); - break; - } - } - else - { - if ((insn & 0x8000) != 0) /* parallel? */ - { - /* Yep. Here's the "interesting" [sic] part. - Only emit before/after handlers if necessary. */ - if (trace_p || profile_p) - { - if (((insn >> 16) & 0xfff0) == 0x10f0) - { - /* FIXME: No need to handle this sequentially if - system calls will be able to execute after second - insn in parallel. ( trap #num || insn ) */ - /* insn */ - idesc = emit_full16 (current_cpu, pc + 2, - insn & 0x7fff, sc, 0, 0); - /* trap */ - emit_full16 (current_cpu, pc, insn >> 16, sc + 3, - 0, 0); - } - else - { - idesc = emit_full_parallel (current_cpu, pc, insn, - sc, trace_p, profile_p); - } - cti_sc = sc + 1; - sc += 6; - max_insns -= 6; - } - else - { - int up_count; - - if (((insn >> 16) & 0xfff0) == 0x10f0) - { - /* FIXME: No need to handle this sequentially if - system calls will be able to execute after second - insn in parallel. ( trap #num || insn ) */ - /* insn */ - idesc = emit_16 (current_cpu, pc + 2, insn & 0x7fff, - sc, 0, 0); - /* trap */ - emit_16 (current_cpu, pc, insn >> 16, sc + 1, 0, 0); - up_count = 2; - } - else - { - idesc = emit_parallel (current_cpu, pc, insn, sc, 0); - up_count = 3; - } - cti_sc = sc; - sc += up_count; - max_insns -= up_count; - } - icount += 2; - pc += 4; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (cti_sc); - break; - } - } - else /* 2 serial 16 bit insns */ - { - /* Only emit before/after handlers if necessary. */ - if (trace_p || profile_p) - { - idesc = emit_full16 (current_cpu, pc, insn >> 16, sc, - trace_p, profile_p); - cti_sc = sc + 1; - sc += 3; - max_insns -= 3; - } - else - { - idesc = emit_16 (current_cpu, pc, insn >> 16, sc, 0, 0); - cti_sc = sc; - ++sc; - --max_insns; - } - ++icount; - pc += 2; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (cti_sc); - break; - } - /* While we're guaranteed that there's room to extract the - insn, when single stepping we can't; the pbb must stop - after the first insn. */ - if (max_insns <= 0) - break; - /* Use the same trace/profile address for the 2nd insn. - Saves us having to compute it and they come in pairs - anyway (e.g. can never branch to the 2nd insn). */ - if (trace_p || profile_p) - { - idesc = emit_full16 (current_cpu, pc, insn & 0x7fff, sc, - trace_p, profile_p); - cti_sc = sc + 1; - sc += 3; - max_insns -= 3; - } - else - { - idesc = emit_16 (current_cpu, pc, insn & 0x7fff, sc, 0, 0); - cti_sc = sc; - ++sc; - --max_insns; - } - ++icount; - pc += 2; - if (IDESC_CTI_P (idesc)) - { - SET_CTI_VPC (cti_sc); - break; - } - } - } - } - } - - Finish: - SET_INSN_COUNT (icount); -} -EOF - -;; - -xfull-exec-pbb) - -# Inputs: current_cpu, vpc, FAST_P -# Outputs: vpc -# vpc is the virtual program counter. - -cat <<EOF -#define DEFINE_SWITCH -#include "semx-switch.c" -EOF - -;; - -*) - echo "Invalid argument to mainloop.in: $1" >&2 - exit 1 - ;; - -esac diff --git a/sim/m32r/model.c b/sim/m32r/model.c deleted file mode 100644 index c94e349..0000000 --- a/sim/m32r/model.c +++ /dev/null @@ -1,4359 +0,0 @@ -/* Simulator model support for m32rbf. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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. - -*/ - -#define WANT_CPU m32rbf -#define WANT_CPU_M32RBF - -#include "sim-main.h" - -/* The profiling data is recorded here, but is accessed via the profiling - mechanism. After all, this is information for profiling. */ - -#if WITH_PROFILE_MODEL_P - -/* Model handlers for each insn. */ - -static int -model_m32r_d_add (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_add3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_and (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_and3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_and3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_or (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_or3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_and3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_xor (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_xor3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_and3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_addi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_addi.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_addv (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_addv3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_addx (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_bc8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_bc24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_beq (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 3)) referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_beqz (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_bgez (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_bgtz (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_blez (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_bltz (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_bnez (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_bl8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_bl24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_bnc8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_bnc24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_bne (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 3)) referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_bra8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_bra24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_cmp (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_cmpi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_cmpu (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_cmpui (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_div (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_divu (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_rem (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_remu (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_jl (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_jl.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - in_sr = FLD (in_sr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_jmp (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_jl.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - in_sr = FLD (in_sr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_ld (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_ld_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_ldb (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_ldb_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_ldh (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_ldh_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_ldub (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_ldub_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_lduh (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_lduh_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_ld_plus (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_sr); - out_dr = FLD (out_sr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_ld24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_ldi8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_addi.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_ldi16 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_lock (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_machi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_maclo (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_macwhi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_macwlo (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_mul (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_mulhi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_mullo (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_mulwhi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_mulwlo (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_mv (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_mvfachi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_seth.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_mvfaclo (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_seth.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_mvfacmi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_seth.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_mvfc (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_mvtachi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_src1); - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_mvtaclo (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_src1); - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_mvtc (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - referenced |= 1 << 0; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_neg (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_nop (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_not (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_rac (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_rach (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_rte (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_seth (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_seth.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_sll (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_sll3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_slli (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_slli.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_sra (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_sra3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_srai (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_slli.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_srl (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_srl3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_srli (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_slli.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_st (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_st_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_stb (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_stb_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_sth (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_sth_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_st_plus (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_src2); - out_dr = FLD (out_src2); - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_st_minus (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_src2); - out_dr = FLD (out_src2); - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_sub (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_subv (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_subx (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_trap (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_trap.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_unlock (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_clrpsw (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_clrpsw.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_setpsw (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_clrpsw.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_bset (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bset.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - referenced |= 1 << 0; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_bclr (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bset.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - referenced |= 1 << 0; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r_d_btst (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bset.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - referenced |= 1 << 0; - cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_test_add (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_add3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_and (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_and3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_and3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_or (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_or3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_and3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_xor (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_xor3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_and3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_addi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_addi.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_addv (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_addv3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_addx (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_bc8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_bc24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_beq (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_beqz (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_bgez (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_bgtz (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_blez (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_bltz (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_bnez (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_bl8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_bl24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_bnc8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_bnc24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_bne (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_bra8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_bra24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_cmp (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_cmpi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_cmpu (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_cmpui (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_div (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_divu (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_rem (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_remu (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_jl (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_jl.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_jmp (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_jl.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_ld (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_ld_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_ldb (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_ldb_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_ldh (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_ldh_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_ldub (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_ldub_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_lduh (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_lduh_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_ld_plus (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_ld24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_ldi8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_addi.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_ldi16 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_lock (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_machi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_maclo (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_macwhi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_macwlo (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_mul (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_mulhi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_mullo (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_mulwhi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_mulwlo (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_mv (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_mvfachi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_seth.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_mvfaclo (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_seth.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_mvfacmi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_seth.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_mvfc (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_mvtachi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_mvtaclo (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_mvtc (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_neg (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_nop (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_not (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_rac (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_rach (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_rte (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_seth (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_seth.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_sll (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_sll3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_slli (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_slli.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_sra (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_sra3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_srai (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_slli.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_srl (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_srl3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_srli (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_slli.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_st (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_st_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_stb (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_stb_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_sth (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_sth_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_st_plus (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_st_minus (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_sub (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_subv (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_subx (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_trap (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_trap.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_unlock (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_clrpsw (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_clrpsw.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_setpsw (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_clrpsw.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_bset (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bset.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_bclr (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bset.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -static int -model_test_btst (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bset.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); - } - return cycles; -#undef FLD -} - -/* We assume UNIT_NONE == 0 because the tables don't always terminate - entries with it. */ - -/* Model timing data for `m32r/d'. */ - -static const INSN_TIMING m32r_d_timing[] = { - { M32RBF_INSN_X_INVALID, 0, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_X_AFTER, 0, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_X_BEFORE, 0, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_X_CTI_CHAIN, 0, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_X_CHAIN, 0, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_X_BEGIN, 0, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_ADD, model_m32r_d_add, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_ADD3, model_m32r_d_add3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_AND, model_m32r_d_and, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_AND3, model_m32r_d_and3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_OR, model_m32r_d_or, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_OR3, model_m32r_d_or3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_XOR, model_m32r_d_xor, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_XOR3, model_m32r_d_xor3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_ADDI, model_m32r_d_addi, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_ADDV, model_m32r_d_addv, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_ADDV3, model_m32r_d_addv3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_ADDX, model_m32r_d_addx, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BC8, model_m32r_d_bc8, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } }, - { M32RBF_INSN_BC24, model_m32r_d_bc24, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } }, - { M32RBF_INSN_BEQ, model_m32r_d_beq, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } }, - { M32RBF_INSN_BEQZ, model_m32r_d_beqz, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } }, - { M32RBF_INSN_BGEZ, model_m32r_d_bgez, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } }, - { M32RBF_INSN_BGTZ, model_m32r_d_bgtz, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } }, - { M32RBF_INSN_BLEZ, model_m32r_d_blez, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } }, - { M32RBF_INSN_BLTZ, model_m32r_d_bltz, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } }, - { M32RBF_INSN_BNEZ, model_m32r_d_bnez, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } }, - { M32RBF_INSN_BL8, model_m32r_d_bl8, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } }, - { M32RBF_INSN_BL24, model_m32r_d_bl24, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } }, - { M32RBF_INSN_BNC8, model_m32r_d_bnc8, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } }, - { M32RBF_INSN_BNC24, model_m32r_d_bnc24, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } }, - { M32RBF_INSN_BNE, model_m32r_d_bne, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } }, - { M32RBF_INSN_BRA8, model_m32r_d_bra8, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } }, - { M32RBF_INSN_BRA24, model_m32r_d_bra24, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } }, - { M32RBF_INSN_CMP, model_m32r_d_cmp, { { (int) UNIT_M32R_D_U_CMP, 1, 1 } } }, - { M32RBF_INSN_CMPI, model_m32r_d_cmpi, { { (int) UNIT_M32R_D_U_CMP, 1, 1 } } }, - { M32RBF_INSN_CMPU, model_m32r_d_cmpu, { { (int) UNIT_M32R_D_U_CMP, 1, 1 } } }, - { M32RBF_INSN_CMPUI, model_m32r_d_cmpui, { { (int) UNIT_M32R_D_U_CMP, 1, 1 } } }, - { M32RBF_INSN_DIV, model_m32r_d_div, { { (int) UNIT_M32R_D_U_EXEC, 1, 37 } } }, - { M32RBF_INSN_DIVU, model_m32r_d_divu, { { (int) UNIT_M32R_D_U_EXEC, 1, 37 } } }, - { M32RBF_INSN_REM, model_m32r_d_rem, { { (int) UNIT_M32R_D_U_EXEC, 1, 37 } } }, - { M32RBF_INSN_REMU, model_m32r_d_remu, { { (int) UNIT_M32R_D_U_EXEC, 1, 37 } } }, - { M32RBF_INSN_JL, model_m32r_d_jl, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } }, - { M32RBF_INSN_JMP, model_m32r_d_jmp, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } }, - { M32RBF_INSN_LD, model_m32r_d_ld, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } }, - { M32RBF_INSN_LD_D, model_m32r_d_ld_d, { { (int) UNIT_M32R_D_U_LOAD, 1, 2 } } }, - { M32RBF_INSN_LDB, model_m32r_d_ldb, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } }, - { M32RBF_INSN_LDB_D, model_m32r_d_ldb_d, { { (int) UNIT_M32R_D_U_LOAD, 1, 2 } } }, - { M32RBF_INSN_LDH, model_m32r_d_ldh, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } }, - { M32RBF_INSN_LDH_D, model_m32r_d_ldh_d, { { (int) UNIT_M32R_D_U_LOAD, 1, 2 } } }, - { M32RBF_INSN_LDUB, model_m32r_d_ldub, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } }, - { M32RBF_INSN_LDUB_D, model_m32r_d_ldub_d, { { (int) UNIT_M32R_D_U_LOAD, 1, 2 } } }, - { M32RBF_INSN_LDUH, model_m32r_d_lduh, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } }, - { M32RBF_INSN_LDUH_D, model_m32r_d_lduh_d, { { (int) UNIT_M32R_D_U_LOAD, 1, 2 } } }, - { M32RBF_INSN_LD_PLUS, model_m32r_d_ld_plus, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 }, { (int) UNIT_M32R_D_U_EXEC, 1, 0 } } }, - { M32RBF_INSN_LD24, model_m32r_d_ld24, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_LDI8, model_m32r_d_ldi8, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_LDI16, model_m32r_d_ldi16, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_LOCK, model_m32r_d_lock, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } }, - { M32RBF_INSN_MACHI, model_m32r_d_machi, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } }, - { M32RBF_INSN_MACLO, model_m32r_d_maclo, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } }, - { M32RBF_INSN_MACWHI, model_m32r_d_macwhi, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } }, - { M32RBF_INSN_MACWLO, model_m32r_d_macwlo, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } }, - { M32RBF_INSN_MUL, model_m32r_d_mul, { { (int) UNIT_M32R_D_U_EXEC, 1, 4 } } }, - { M32RBF_INSN_MULHI, model_m32r_d_mulhi, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } }, - { M32RBF_INSN_MULLO, model_m32r_d_mullo, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } }, - { M32RBF_INSN_MULWHI, model_m32r_d_mulwhi, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } }, - { M32RBF_INSN_MULWLO, model_m32r_d_mulwlo, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } }, - { M32RBF_INSN_MV, model_m32r_d_mv, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MVFACHI, model_m32r_d_mvfachi, { { (int) UNIT_M32R_D_U_EXEC, 1, 2 } } }, - { M32RBF_INSN_MVFACLO, model_m32r_d_mvfaclo, { { (int) UNIT_M32R_D_U_EXEC, 1, 2 } } }, - { M32RBF_INSN_MVFACMI, model_m32r_d_mvfacmi, { { (int) UNIT_M32R_D_U_EXEC, 1, 2 } } }, - { M32RBF_INSN_MVFC, model_m32r_d_mvfc, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MVTACHI, model_m32r_d_mvtachi, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MVTACLO, model_m32r_d_mvtaclo, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MVTC, model_m32r_d_mvtc, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_NEG, model_m32r_d_neg, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_NOP, model_m32r_d_nop, { { (int) UNIT_M32R_D_U_EXEC, 1, 0 } } }, - { M32RBF_INSN_NOT, model_m32r_d_not, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_RAC, model_m32r_d_rac, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } }, - { M32RBF_INSN_RACH, model_m32r_d_rach, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } }, - { M32RBF_INSN_RTE, model_m32r_d_rte, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SETH, model_m32r_d_seth, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SLL, model_m32r_d_sll, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SLL3, model_m32r_d_sll3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SLLI, model_m32r_d_slli, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SRA, model_m32r_d_sra, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SRA3, model_m32r_d_sra3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SRAI, model_m32r_d_srai, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SRL, model_m32r_d_srl, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SRL3, model_m32r_d_srl3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SRLI, model_m32r_d_srli, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_ST, model_m32r_d_st, { { (int) UNIT_M32R_D_U_STORE, 1, 1 } } }, - { M32RBF_INSN_ST_D, model_m32r_d_st_d, { { (int) UNIT_M32R_D_U_STORE, 1, 2 } } }, - { M32RBF_INSN_STB, model_m32r_d_stb, { { (int) UNIT_M32R_D_U_STORE, 1, 1 } } }, - { M32RBF_INSN_STB_D, model_m32r_d_stb_d, { { (int) UNIT_M32R_D_U_STORE, 1, 2 } } }, - { M32RBF_INSN_STH, model_m32r_d_sth, { { (int) UNIT_M32R_D_U_STORE, 1, 1 } } }, - { M32RBF_INSN_STH_D, model_m32r_d_sth_d, { { (int) UNIT_M32R_D_U_STORE, 1, 2 } } }, - { M32RBF_INSN_ST_PLUS, model_m32r_d_st_plus, { { (int) UNIT_M32R_D_U_STORE, 1, 1 }, { (int) UNIT_M32R_D_U_EXEC, 1, 0 } } }, - { M32RBF_INSN_ST_MINUS, model_m32r_d_st_minus, { { (int) UNIT_M32R_D_U_STORE, 1, 1 }, { (int) UNIT_M32R_D_U_EXEC, 1, 0 } } }, - { M32RBF_INSN_SUB, model_m32r_d_sub, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SUBV, model_m32r_d_subv, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SUBX, model_m32r_d_subx, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_TRAP, model_m32r_d_trap, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_UNLOCK, model_m32r_d_unlock, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } }, - { M32RBF_INSN_CLRPSW, model_m32r_d_clrpsw, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SETPSW, model_m32r_d_setpsw, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BSET, model_m32r_d_bset, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BCLR, model_m32r_d_bclr, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BTST, model_m32r_d_btst, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, -}; - -/* Model timing data for `test'. */ - -static const INSN_TIMING test_timing[] = { - { M32RBF_INSN_X_INVALID, 0, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_X_AFTER, 0, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_X_BEFORE, 0, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_X_CTI_CHAIN, 0, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_X_CHAIN, 0, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_X_BEGIN, 0, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_ADD, model_test_add, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_ADD3, model_test_add3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_AND, model_test_and, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_AND3, model_test_and3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_OR, model_test_or, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_OR3, model_test_or3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_XOR, model_test_xor, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_XOR3, model_test_xor3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_ADDI, model_test_addi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_ADDV, model_test_addv, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_ADDV3, model_test_addv3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_ADDX, model_test_addx, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BC8, model_test_bc8, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BC24, model_test_bc24, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BEQ, model_test_beq, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BEQZ, model_test_beqz, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BGEZ, model_test_bgez, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BGTZ, model_test_bgtz, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BLEZ, model_test_blez, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BLTZ, model_test_bltz, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BNEZ, model_test_bnez, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BL8, model_test_bl8, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BL24, model_test_bl24, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BNC8, model_test_bnc8, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BNC24, model_test_bnc24, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BNE, model_test_bne, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BRA8, model_test_bra8, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BRA24, model_test_bra24, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_CMP, model_test_cmp, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_CMPI, model_test_cmpi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_CMPU, model_test_cmpu, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_CMPUI, model_test_cmpui, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_DIV, model_test_div, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_DIVU, model_test_divu, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_REM, model_test_rem, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_REMU, model_test_remu, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_JL, model_test_jl, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_JMP, model_test_jmp, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_LD, model_test_ld, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_LD_D, model_test_ld_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_LDB, model_test_ldb, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_LDB_D, model_test_ldb_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_LDH, model_test_ldh, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_LDH_D, model_test_ldh_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_LDUB, model_test_ldub, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_LDUB_D, model_test_ldub_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_LDUH, model_test_lduh, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_LDUH_D, model_test_lduh_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_LD_PLUS, model_test_ld_plus, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_LD24, model_test_ld24, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_LDI8, model_test_ldi8, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_LDI16, model_test_ldi16, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_LOCK, model_test_lock, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MACHI, model_test_machi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MACLO, model_test_maclo, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MACWHI, model_test_macwhi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MACWLO, model_test_macwlo, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MUL, model_test_mul, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MULHI, model_test_mulhi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MULLO, model_test_mullo, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MULWHI, model_test_mulwhi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MULWLO, model_test_mulwlo, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MV, model_test_mv, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MVFACHI, model_test_mvfachi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MVFACLO, model_test_mvfaclo, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MVFACMI, model_test_mvfacmi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MVFC, model_test_mvfc, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MVTACHI, model_test_mvtachi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MVTACLO, model_test_mvtaclo, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_MVTC, model_test_mvtc, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_NEG, model_test_neg, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_NOP, model_test_nop, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_NOT, model_test_not, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_RAC, model_test_rac, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_RACH, model_test_rach, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_RTE, model_test_rte, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SETH, model_test_seth, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SLL, model_test_sll, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SLL3, model_test_sll3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SLLI, model_test_slli, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SRA, model_test_sra, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SRA3, model_test_sra3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SRAI, model_test_srai, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SRL, model_test_srl, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SRL3, model_test_srl3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SRLI, model_test_srli, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_ST, model_test_st, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_ST_D, model_test_st_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_STB, model_test_stb, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_STB_D, model_test_stb_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_STH, model_test_sth, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_STH_D, model_test_sth_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_ST_PLUS, model_test_st_plus, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_ST_MINUS, model_test_st_minus, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SUB, model_test_sub, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SUBV, model_test_subv, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SUBX, model_test_subx, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_TRAP, model_test_trap, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_UNLOCK, model_test_unlock, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_CLRPSW, model_test_clrpsw, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_SETPSW, model_test_setpsw, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BSET, model_test_bset, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BCLR, model_test_bclr, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, - { M32RBF_INSN_BTST, model_test_btst, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, -}; - -#endif /* WITH_PROFILE_MODEL_P */ - -static void -m32r_d_model_init (SIM_CPU *cpu) -{ - CPU_MODEL_DATA (cpu) = (void *) zalloc (sizeof (MODEL_M32R_D_DATA)); -} - -static void -test_model_init (SIM_CPU *cpu) -{ - CPU_MODEL_DATA (cpu) = (void *) zalloc (sizeof (MODEL_TEST_DATA)); -} - -#if WITH_PROFILE_MODEL_P -#define TIMING_DATA(td) td -#else -#define TIMING_DATA(td) 0 -#endif - -static const MODEL m32r_models[] = -{ - { "m32r/d", & m32r_mach, MODEL_M32R_D, TIMING_DATA (& m32r_d_timing[0]), m32r_d_model_init }, - { "test", & m32r_mach, MODEL_TEST, TIMING_DATA (& test_timing[0]), test_model_init }, - { 0 } -}; - -/* The properties of this cpu's implementation. */ - -static const MACH_IMP_PROPERTIES m32rbf_imp_properties = -{ - sizeof (SIM_CPU), -#if WITH_SCACHE - sizeof (SCACHE) -#else - 0 -#endif -}; - - -static void -m32rbf_prepare_run (SIM_CPU *cpu) -{ - if (CPU_IDESC (cpu) == NULL) - m32rbf_init_idesc_table (cpu); -} - -static const CGEN_INSN * -m32rbf_get_idata (SIM_CPU *cpu, int inum) -{ - return CPU_IDESC (cpu) [inum].idata; -} - -static void -m32r_init_cpu (SIM_CPU *cpu) -{ - CPU_REG_FETCH (cpu) = m32rbf_fetch_register; - CPU_REG_STORE (cpu) = m32rbf_store_register; - CPU_PC_FETCH (cpu) = m32rbf_h_pc_get; - CPU_PC_STORE (cpu) = m32rbf_h_pc_set; - CPU_GET_IDATA (cpu) = m32rbf_get_idata; - CPU_MAX_INSNS (cpu) = M32RBF_INSN__MAX; - CPU_INSN_NAME (cpu) = cgen_insn_name; - CPU_FULL_ENGINE_FN (cpu) = m32rbf_engine_run_full; -#if WITH_FAST - CPU_FAST_ENGINE_FN (cpu) = m32rbf_engine_run_fast; -#else - CPU_FAST_ENGINE_FN (cpu) = m32rbf_engine_run_full; -#endif -} - -const MACH m32r_mach = -{ - "m32r", "m32r", MACH_M32R, - 32, 32, & m32r_models[0], & m32rbf_imp_properties, - m32r_init_cpu, - m32rbf_prepare_run -}; - diff --git a/sim/m32r/model2.c b/sim/m32r/model2.c deleted file mode 100644 index 7328ea4..0000000 --- a/sim/m32r/model2.c +++ /dev/null @@ -1,3253 +0,0 @@ -/* Simulator model support for m32r2f. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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. - -*/ - -#define WANT_CPU m32r2f -#define WANT_CPU_M32R2F - -#include "sim-main.h" - -/* The profiling data is recorded here, but is accessed via the profiling - mechanism. After all, this is information for profiling. */ - -#if WITH_PROFILE_MODEL_P - -/* Model handlers for each insn. */ - -static int -model_m32r2_add (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_add3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_and (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_and3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_and3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_or (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_or3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_and3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_xor (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_xor3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_and3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_addi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_addi.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_addv (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_addv3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_addx (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_bc8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_bc24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_beq (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 3)) referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_beqz (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_bgez (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_bgtz (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_blez (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_bltz (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_bnez (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_bl8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_bl24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_bcl8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 4)) referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_bcl24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 4)) referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_bnc8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_bnc24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_bne (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 3)) referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_bra8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_bra24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_bncl8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 4)) referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_bncl24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 4)) referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_cmp (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_cmpi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_cmpu (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_cmpui (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_cmpeq (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_cmpz (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_div (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_divu (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_rem (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_remu (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_remh (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_remuh (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_remb (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_remub (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_divuh (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_divb (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_divub (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_divh (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_jc (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_jl.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - in_sr = FLD (in_sr); - if (insn_referenced & (1 << 1)) referenced |= 1 << 0; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_jnc (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_jl.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - in_sr = FLD (in_sr); - if (insn_referenced & (1 << 1)) referenced |= 1 << 0; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_jl (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_jl.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - in_sr = FLD (in_sr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_jmp (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_jl.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - in_sr = FLD (in_sr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_ld (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_ld_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_ldb (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_ldb_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_ldh (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_ldh_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_ldub (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_ldub_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_lduh (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_lduh_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_ld_plus (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_sr); - out_dr = FLD (out_sr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_ld24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_ldi8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_addi.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_ldi16 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_lock (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_machi_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_machi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_maclo_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_machi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_macwhi_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_machi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_macwlo_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_machi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_mul (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_mulhi_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_machi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_mullo_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_machi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_mulwhi_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_machi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_mulwlo_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_machi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_mv (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_mvfachi_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_mvfaclo_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_mvfacmi_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_mvfc (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_mvtachi_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_mvtachi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_src1); - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_mvtaclo_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_mvtachi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_src1); - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_mvtc (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - referenced |= 1 << 0; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_neg (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_nop (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_not (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_rac_dsi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_rac_dsi.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_rach_dsi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_rac_dsi.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_rte (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_seth (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_seth.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_sll (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_sll3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_slli (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_slli.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_sra (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_sra3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_srai (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_slli.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_srl (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_srl3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_srli (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_slli.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_st (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_st_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_stb (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_stb_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_sth (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_sth_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_st_plus (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_src2); - out_dr = FLD (out_src2); - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_sth_plus (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_src2); - out_dr = FLD (out_src2); - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_stb_plus (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_src2); - out_dr = FLD (out_src2); - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_st_minus (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_src2); - out_dr = FLD (out_src2); - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_sub (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_subv (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_subx (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_trap (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_trap.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_unlock (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_satb (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_sath (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_sat (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - if (insn_referenced & (1 << 1)) referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_pcmpbz (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_sadd (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_macwu1 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_msblo (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_mulwu1 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_maclh1 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_sc (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_snc (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_clrpsw (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_clrpsw.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_setpsw (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_clrpsw.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_bset (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bset.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - referenced |= 1 << 0; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_bclr (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bset.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - referenced |= 1 << 0; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32r2_btst (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bset.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - referenced |= 1 << 0; - cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -/* We assume UNIT_NONE == 0 because the tables don't always terminate - entries with it. */ - -/* Model timing data for `m32r2'. */ - -static const INSN_TIMING m32r2_timing[] = { - { M32R2F_INSN_X_INVALID, 0, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_X_AFTER, 0, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_X_BEFORE, 0, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_X_CTI_CHAIN, 0, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_X_CHAIN, 0, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_X_BEGIN, 0, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_ADD, model_m32r2_add, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_ADD3, model_m32r2_add3, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_AND, model_m32r2_and, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_AND3, model_m32r2_and3, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_OR, model_m32r2_or, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_OR3, model_m32r2_or3, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_XOR, model_m32r2_xor, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_XOR3, model_m32r2_xor3, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_ADDI, model_m32r2_addi, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_ADDV, model_m32r2_addv, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_ADDV3, model_m32r2_addv3, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_ADDX, model_m32r2_addx, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_BC8, model_m32r2_bc8, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } }, - { M32R2F_INSN_BC24, model_m32r2_bc24, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } }, - { M32R2F_INSN_BEQ, model_m32r2_beq, { { (int) UNIT_M32R2_U_CTI, 1, 1 }, { (int) UNIT_M32R2_U_CMP, 1, 0 } } }, - { M32R2F_INSN_BEQZ, model_m32r2_beqz, { { (int) UNIT_M32R2_U_CTI, 1, 1 }, { (int) UNIT_M32R2_U_CMP, 1, 0 } } }, - { M32R2F_INSN_BGEZ, model_m32r2_bgez, { { (int) UNIT_M32R2_U_CTI, 1, 1 }, { (int) UNIT_M32R2_U_CMP, 1, 0 } } }, - { M32R2F_INSN_BGTZ, model_m32r2_bgtz, { { (int) UNIT_M32R2_U_CTI, 1, 1 }, { (int) UNIT_M32R2_U_CMP, 1, 0 } } }, - { M32R2F_INSN_BLEZ, model_m32r2_blez, { { (int) UNIT_M32R2_U_CTI, 1, 1 }, { (int) UNIT_M32R2_U_CMP, 1, 0 } } }, - { M32R2F_INSN_BLTZ, model_m32r2_bltz, { { (int) UNIT_M32R2_U_CTI, 1, 1 }, { (int) UNIT_M32R2_U_CMP, 1, 0 } } }, - { M32R2F_INSN_BNEZ, model_m32r2_bnez, { { (int) UNIT_M32R2_U_CTI, 1, 1 }, { (int) UNIT_M32R2_U_CMP, 1, 0 } } }, - { M32R2F_INSN_BL8, model_m32r2_bl8, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } }, - { M32R2F_INSN_BL24, model_m32r2_bl24, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } }, - { M32R2F_INSN_BCL8, model_m32r2_bcl8, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } }, - { M32R2F_INSN_BCL24, model_m32r2_bcl24, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } }, - { M32R2F_INSN_BNC8, model_m32r2_bnc8, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } }, - { M32R2F_INSN_BNC24, model_m32r2_bnc24, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } }, - { M32R2F_INSN_BNE, model_m32r2_bne, { { (int) UNIT_M32R2_U_CTI, 1, 1 }, { (int) UNIT_M32R2_U_CMP, 1, 0 } } }, - { M32R2F_INSN_BRA8, model_m32r2_bra8, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } }, - { M32R2F_INSN_BRA24, model_m32r2_bra24, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } }, - { M32R2F_INSN_BNCL8, model_m32r2_bncl8, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } }, - { M32R2F_INSN_BNCL24, model_m32r2_bncl24, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } }, - { M32R2F_INSN_CMP, model_m32r2_cmp, { { (int) UNIT_M32R2_U_CMP, 1, 1 } } }, - { M32R2F_INSN_CMPI, model_m32r2_cmpi, { { (int) UNIT_M32R2_U_CMP, 1, 1 } } }, - { M32R2F_INSN_CMPU, model_m32r2_cmpu, { { (int) UNIT_M32R2_U_CMP, 1, 1 } } }, - { M32R2F_INSN_CMPUI, model_m32r2_cmpui, { { (int) UNIT_M32R2_U_CMP, 1, 1 } } }, - { M32R2F_INSN_CMPEQ, model_m32r2_cmpeq, { { (int) UNIT_M32R2_U_CMP, 1, 1 } } }, - { M32R2F_INSN_CMPZ, model_m32r2_cmpz, { { (int) UNIT_M32R2_U_CMP, 1, 1 } } }, - { M32R2F_INSN_DIV, model_m32r2_div, { { (int) UNIT_M32R2_U_EXEC, 1, 37 } } }, - { M32R2F_INSN_DIVU, model_m32r2_divu, { { (int) UNIT_M32R2_U_EXEC, 1, 37 } } }, - { M32R2F_INSN_REM, model_m32r2_rem, { { (int) UNIT_M32R2_U_EXEC, 1, 37 } } }, - { M32R2F_INSN_REMU, model_m32r2_remu, { { (int) UNIT_M32R2_U_EXEC, 1, 37 } } }, - { M32R2F_INSN_REMH, model_m32r2_remh, { { (int) UNIT_M32R2_U_EXEC, 1, 21 } } }, - { M32R2F_INSN_REMUH, model_m32r2_remuh, { { (int) UNIT_M32R2_U_EXEC, 1, 21 } } }, - { M32R2F_INSN_REMB, model_m32r2_remb, { { (int) UNIT_M32R2_U_EXEC, 1, 21 } } }, - { M32R2F_INSN_REMUB, model_m32r2_remub, { { (int) UNIT_M32R2_U_EXEC, 1, 21 } } }, - { M32R2F_INSN_DIVUH, model_m32r2_divuh, { { (int) UNIT_M32R2_U_EXEC, 1, 21 } } }, - { M32R2F_INSN_DIVB, model_m32r2_divb, { { (int) UNIT_M32R2_U_EXEC, 1, 21 } } }, - { M32R2F_INSN_DIVUB, model_m32r2_divub, { { (int) UNIT_M32R2_U_EXEC, 1, 21 } } }, - { M32R2F_INSN_DIVH, model_m32r2_divh, { { (int) UNIT_M32R2_U_EXEC, 1, 21 } } }, - { M32R2F_INSN_JC, model_m32r2_jc, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } }, - { M32R2F_INSN_JNC, model_m32r2_jnc, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } }, - { M32R2F_INSN_JL, model_m32r2_jl, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } }, - { M32R2F_INSN_JMP, model_m32r2_jmp, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } }, - { M32R2F_INSN_LD, model_m32r2_ld, { { (int) UNIT_M32R2_U_LOAD, 1, 1 } } }, - { M32R2F_INSN_LD_D, model_m32r2_ld_d, { { (int) UNIT_M32R2_U_LOAD, 1, 2 } } }, - { M32R2F_INSN_LDB, model_m32r2_ldb, { { (int) UNIT_M32R2_U_LOAD, 1, 1 } } }, - { M32R2F_INSN_LDB_D, model_m32r2_ldb_d, { { (int) UNIT_M32R2_U_LOAD, 1, 2 } } }, - { M32R2F_INSN_LDH, model_m32r2_ldh, { { (int) UNIT_M32R2_U_LOAD, 1, 1 } } }, - { M32R2F_INSN_LDH_D, model_m32r2_ldh_d, { { (int) UNIT_M32R2_U_LOAD, 1, 2 } } }, - { M32R2F_INSN_LDUB, model_m32r2_ldub, { { (int) UNIT_M32R2_U_LOAD, 1, 1 } } }, - { M32R2F_INSN_LDUB_D, model_m32r2_ldub_d, { { (int) UNIT_M32R2_U_LOAD, 1, 2 } } }, - { M32R2F_INSN_LDUH, model_m32r2_lduh, { { (int) UNIT_M32R2_U_LOAD, 1, 1 } } }, - { M32R2F_INSN_LDUH_D, model_m32r2_lduh_d, { { (int) UNIT_M32R2_U_LOAD, 1, 2 } } }, - { M32R2F_INSN_LD_PLUS, model_m32r2_ld_plus, { { (int) UNIT_M32R2_U_LOAD, 1, 1 }, { (int) UNIT_M32R2_U_EXEC, 1, 0 } } }, - { M32R2F_INSN_LD24, model_m32r2_ld24, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_LDI8, model_m32r2_ldi8, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_LDI16, model_m32r2_ldi16, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_LOCK, model_m32r2_lock, { { (int) UNIT_M32R2_U_LOAD, 1, 1 } } }, - { M32R2F_INSN_MACHI_A, model_m32r2_machi_a, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } }, - { M32R2F_INSN_MACLO_A, model_m32r2_maclo_a, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } }, - { M32R2F_INSN_MACWHI_A, model_m32r2_macwhi_a, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } }, - { M32R2F_INSN_MACWLO_A, model_m32r2_macwlo_a, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } }, - { M32R2F_INSN_MUL, model_m32r2_mul, { { (int) UNIT_M32R2_U_EXEC, 1, 4 } } }, - { M32R2F_INSN_MULHI_A, model_m32r2_mulhi_a, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } }, - { M32R2F_INSN_MULLO_A, model_m32r2_mullo_a, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } }, - { M32R2F_INSN_MULWHI_A, model_m32r2_mulwhi_a, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } }, - { M32R2F_INSN_MULWLO_A, model_m32r2_mulwlo_a, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } }, - { M32R2F_INSN_MV, model_m32r2_mv, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_MVFACHI_A, model_m32r2_mvfachi_a, { { (int) UNIT_M32R2_U_EXEC, 1, 2 } } }, - { M32R2F_INSN_MVFACLO_A, model_m32r2_mvfaclo_a, { { (int) UNIT_M32R2_U_EXEC, 1, 2 } } }, - { M32R2F_INSN_MVFACMI_A, model_m32r2_mvfacmi_a, { { (int) UNIT_M32R2_U_EXEC, 1, 2 } } }, - { M32R2F_INSN_MVFC, model_m32r2_mvfc, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_MVTACHI_A, model_m32r2_mvtachi_a, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_MVTACLO_A, model_m32r2_mvtaclo_a, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_MVTC, model_m32r2_mvtc, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_NEG, model_m32r2_neg, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_NOP, model_m32r2_nop, { { (int) UNIT_M32R2_U_EXEC, 1, 0 } } }, - { M32R2F_INSN_NOT, model_m32r2_not, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_RAC_DSI, model_m32r2_rac_dsi, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } }, - { M32R2F_INSN_RACH_DSI, model_m32r2_rach_dsi, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } }, - { M32R2F_INSN_RTE, model_m32r2_rte, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_SETH, model_m32r2_seth, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_SLL, model_m32r2_sll, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_SLL3, model_m32r2_sll3, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_SLLI, model_m32r2_slli, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_SRA, model_m32r2_sra, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_SRA3, model_m32r2_sra3, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_SRAI, model_m32r2_srai, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_SRL, model_m32r2_srl, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_SRL3, model_m32r2_srl3, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_SRLI, model_m32r2_srli, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_ST, model_m32r2_st, { { (int) UNIT_M32R2_U_STORE, 1, 1 } } }, - { M32R2F_INSN_ST_D, model_m32r2_st_d, { { (int) UNIT_M32R2_U_STORE, 1, 2 } } }, - { M32R2F_INSN_STB, model_m32r2_stb, { { (int) UNIT_M32R2_U_STORE, 1, 1 } } }, - { M32R2F_INSN_STB_D, model_m32r2_stb_d, { { (int) UNIT_M32R2_U_STORE, 1, 2 } } }, - { M32R2F_INSN_STH, model_m32r2_sth, { { (int) UNIT_M32R2_U_STORE, 1, 1 } } }, - { M32R2F_INSN_STH_D, model_m32r2_sth_d, { { (int) UNIT_M32R2_U_STORE, 1, 2 } } }, - { M32R2F_INSN_ST_PLUS, model_m32r2_st_plus, { { (int) UNIT_M32R2_U_STORE, 1, 1 }, { (int) UNIT_M32R2_U_EXEC, 1, 0 } } }, - { M32R2F_INSN_STH_PLUS, model_m32r2_sth_plus, { { (int) UNIT_M32R2_U_STORE, 1, 1 }, { (int) UNIT_M32R2_U_EXEC, 1, 0 } } }, - { M32R2F_INSN_STB_PLUS, model_m32r2_stb_plus, { { (int) UNIT_M32R2_U_STORE, 1, 1 }, { (int) UNIT_M32R2_U_EXEC, 1, 0 } } }, - { M32R2F_INSN_ST_MINUS, model_m32r2_st_minus, { { (int) UNIT_M32R2_U_STORE, 1, 1 }, { (int) UNIT_M32R2_U_EXEC, 1, 0 } } }, - { M32R2F_INSN_SUB, model_m32r2_sub, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_SUBV, model_m32r2_subv, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_SUBX, model_m32r2_subx, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_TRAP, model_m32r2_trap, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_UNLOCK, model_m32r2_unlock, { { (int) UNIT_M32R2_U_LOAD, 1, 1 } } }, - { M32R2F_INSN_SATB, model_m32r2_satb, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_SATH, model_m32r2_sath, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_SAT, model_m32r2_sat, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_PCMPBZ, model_m32r2_pcmpbz, { { (int) UNIT_M32R2_U_CMP, 1, 1 } } }, - { M32R2F_INSN_SADD, model_m32r2_sadd, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } }, - { M32R2F_INSN_MACWU1, model_m32r2_macwu1, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } }, - { M32R2F_INSN_MSBLO, model_m32r2_msblo, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } }, - { M32R2F_INSN_MULWU1, model_m32r2_mulwu1, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } }, - { M32R2F_INSN_MACLH1, model_m32r2_maclh1, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } }, - { M32R2F_INSN_SC, model_m32r2_sc, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_SNC, model_m32r2_snc, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_CLRPSW, model_m32r2_clrpsw, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_SETPSW, model_m32r2_setpsw, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_BSET, model_m32r2_bset, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_BCLR, model_m32r2_bclr, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, - { M32R2F_INSN_BTST, model_m32r2_btst, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } }, -}; - -#endif /* WITH_PROFILE_MODEL_P */ - -static void -m32r2_model_init (SIM_CPU *cpu) -{ - CPU_MODEL_DATA (cpu) = (void *) zalloc (sizeof (MODEL_M32R2_DATA)); -} - -#if WITH_PROFILE_MODEL_P -#define TIMING_DATA(td) td -#else -#define TIMING_DATA(td) 0 -#endif - -static const MODEL m32r2_models[] = -{ - { "m32r2", & m32r2_mach, MODEL_M32R2, TIMING_DATA (& m32r2_timing[0]), m32r2_model_init }, - { 0 } -}; - -/* The properties of this cpu's implementation. */ - -static const MACH_IMP_PROPERTIES m32r2f_imp_properties = -{ - sizeof (SIM_CPU), -#if WITH_SCACHE - sizeof (SCACHE) -#else - 0 -#endif -}; - - -static void -m32r2f_prepare_run (SIM_CPU *cpu) -{ - if (CPU_IDESC (cpu) == NULL) - m32r2f_init_idesc_table (cpu); -} - -static const CGEN_INSN * -m32r2f_get_idata (SIM_CPU *cpu, int inum) -{ - return CPU_IDESC (cpu) [inum].idata; -} - -static void -m32r2_init_cpu (SIM_CPU *cpu) -{ - CPU_REG_FETCH (cpu) = m32r2f_fetch_register; - CPU_REG_STORE (cpu) = m32r2f_store_register; - CPU_PC_FETCH (cpu) = m32r2f_h_pc_get; - CPU_PC_STORE (cpu) = m32r2f_h_pc_set; - CPU_GET_IDATA (cpu) = m32r2f_get_idata; - CPU_MAX_INSNS (cpu) = M32R2F_INSN__MAX; - CPU_INSN_NAME (cpu) = cgen_insn_name; - CPU_FULL_ENGINE_FN (cpu) = m32r2f_engine_run_full; -#if WITH_FAST - CPU_FAST_ENGINE_FN (cpu) = m32r2f_engine_run_fast; -#else - CPU_FAST_ENGINE_FN (cpu) = m32r2f_engine_run_full; -#endif -} - -const MACH m32r2_mach = -{ - "m32r2", "m32r2", MACH_M32R2, - 32, 32, & m32r2_models[0], & m32r2f_imp_properties, - m32r2_init_cpu, - m32r2f_prepare_run -}; - diff --git a/sim/m32r/modelx.c b/sim/m32r/modelx.c deleted file mode 100644 index 8e0250c..0000000 --- a/sim/m32r/modelx.c +++ /dev/null @@ -1,3071 +0,0 @@ -/* Simulator model support for m32rxf. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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. - -*/ - -#define WANT_CPU m32rxf -#define WANT_CPU_M32RXF - -#include "sim-main.h" - -/* The profiling data is recorded here, but is accessed via the profiling - mechanism. After all, this is information for profiling. */ - -#if WITH_PROFILE_MODEL_P - -/* Model handlers for each insn. */ - -static int -model_m32rx_add (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_add3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_and (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_and3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_and3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_or (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_or3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_and3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_xor (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_xor3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_and3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_addi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_addi.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_addv (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_addv3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_addx (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_bc8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_bc24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_beq (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 3)) referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_beqz (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_bgez (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_bgtz (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_blez (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_bltz (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_bnez (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_bl8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_bl24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_bcl8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 4)) referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_bcl24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 4)) referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_bnc8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_bnc24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_bne (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 3)) referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_bra8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_bra24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_bncl8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 4)) referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_bncl24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - if (insn_referenced & (1 << 4)) referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_cmp (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_cmpi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_cmpu (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_cmpui (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_cmpeq (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_cmpz (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_div (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_divu (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_rem (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_remu (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_divh (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - if (insn_referenced & (1 << 0)) referenced |= 1 << 1; - if (insn_referenced & (1 << 2)) referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_jc (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_jl.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - in_sr = FLD (in_sr); - if (insn_referenced & (1 << 1)) referenced |= 1 << 0; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_jnc (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_jl.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - in_sr = FLD (in_sr); - if (insn_referenced & (1 << 1)) referenced |= 1 << 0; - if (insn_referenced & (1 << 2)) referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_jl (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_jl.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - in_sr = FLD (in_sr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_jmp (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_jl.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - in_sr = FLD (in_sr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cti (current_cpu, idesc, 0, referenced, in_sr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_ld (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_ld_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_ldb (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_ldb_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_ldh (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_ldh_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_ldub (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_ldub_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_lduh (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_lduh_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_ld_plus (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_sr); - out_dr = FLD (out_sr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_ld24 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld24.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_ldi8 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_addi.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_ldi16 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_lock (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_machi_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_machi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_maclo_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_machi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_macwhi_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_machi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_macwlo_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_machi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_mul (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_mulhi_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_machi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_mullo_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_machi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_mulwhi_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_machi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_mulwlo_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_machi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_mv (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_mvfachi_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_mvfaclo_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_mvfacmi_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_mvfc (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_mvtachi_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_mvtachi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_src1); - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_mvtaclo_a (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_mvtachi_a.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_src1); - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_mvtc (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - referenced |= 1 << 0; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_neg (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_nop (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_not (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_rac_dsi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_rac_dsi.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - cycles += m32rxf_model_m32rx_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_rach_dsi (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_rac_dsi.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - cycles += m32rxf_model_m32rx_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_rte (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_seth (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_seth.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - out_dr = FLD (out_dr); - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_sll (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_sll3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_slli (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_slli.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_sra (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_sra3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_srai (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_slli.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_srl (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_srl3 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_srli (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_slli.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_st (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_st_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_stb (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_stb_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_sth (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_sth_d (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_st_plus (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_src2); - out_dr = FLD (out_src2); - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_sth_plus (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_src2); - out_dr = FLD (out_src2); - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_stb_plus (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_src2); - out_dr = FLD (out_src2); - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_st_minus (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = 0; - INT in_src2 = 0; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_dr = FLD (in_src2); - out_dr = FLD (out_src2); - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_sub (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_subv (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_subx (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - in_dr = FLD (in_dr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 1; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_trap (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_trap.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_unlock (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = 0; - INT out_dr = 0; - cycles += m32rxf_model_m32rx_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_satb (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_sath (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_sat (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - out_dr = FLD (out_dr); - if (insn_referenced & (1 << 1)) referenced |= 1 << 0; - referenced |= 1 << 2; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_pcmpbz (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src2 = FLD (in_src2); - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_sadd (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - cycles += m32rxf_model_m32rx_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_macwu1 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_msblo (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_mulwu1 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_maclh1 (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_src1 = -1; - INT in_src2 = -1; - in_src1 = FLD (in_src1); - in_src2 = FLD (in_src2); - referenced |= 1 << 0; - referenced |= 1 << 1; - cycles += m32rxf_model_m32rx_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_sc (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_snc (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_clrpsw (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_clrpsw.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_setpsw (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_clrpsw.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_bset (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bset.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - referenced |= 1 << 0; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_bclr (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bset.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - referenced |= 1 << 0; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -static int -model_m32rx_btst (SIM_CPU *current_cpu, void *sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bset.f - const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); - const IDESC * UNUSED idesc = abuf->idesc; - int cycles = 0; - { - int referenced = 0; - int UNUSED insn_referenced = abuf->written; - INT in_sr = -1; - INT in_dr = -1; - INT out_dr = -1; - in_sr = FLD (in_sr); - referenced |= 1 << 0; - cycles += m32rxf_model_m32rx_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); - } - return cycles; -#undef FLD -} - -/* We assume UNIT_NONE == 0 because the tables don't always terminate - entries with it. */ - -/* Model timing data for `m32rx'. */ - -static const INSN_TIMING m32rx_timing[] = { - { M32RXF_INSN_X_INVALID, 0, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_X_AFTER, 0, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_X_BEFORE, 0, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_X_CTI_CHAIN, 0, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_X_CHAIN, 0, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_X_BEGIN, 0, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_ADD, model_m32rx_add, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_ADD3, model_m32rx_add3, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_AND, model_m32rx_and, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_AND3, model_m32rx_and3, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_OR, model_m32rx_or, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_OR3, model_m32rx_or3, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_XOR, model_m32rx_xor, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_XOR3, model_m32rx_xor3, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_ADDI, model_m32rx_addi, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_ADDV, model_m32rx_addv, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_ADDV3, model_m32rx_addv3, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_ADDX, model_m32rx_addx, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_BC8, model_m32rx_bc8, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } }, - { M32RXF_INSN_BC24, model_m32rx_bc24, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } }, - { M32RXF_INSN_BEQ, model_m32rx_beq, { { (int) UNIT_M32RX_U_CTI, 1, 1 }, { (int) UNIT_M32RX_U_CMP, 1, 0 } } }, - { M32RXF_INSN_BEQZ, model_m32rx_beqz, { { (int) UNIT_M32RX_U_CTI, 1, 1 }, { (int) UNIT_M32RX_U_CMP, 1, 0 } } }, - { M32RXF_INSN_BGEZ, model_m32rx_bgez, { { (int) UNIT_M32RX_U_CTI, 1, 1 }, { (int) UNIT_M32RX_U_CMP, 1, 0 } } }, - { M32RXF_INSN_BGTZ, model_m32rx_bgtz, { { (int) UNIT_M32RX_U_CTI, 1, 1 }, { (int) UNIT_M32RX_U_CMP, 1, 0 } } }, - { M32RXF_INSN_BLEZ, model_m32rx_blez, { { (int) UNIT_M32RX_U_CTI, 1, 1 }, { (int) UNIT_M32RX_U_CMP, 1, 0 } } }, - { M32RXF_INSN_BLTZ, model_m32rx_bltz, { { (int) UNIT_M32RX_U_CTI, 1, 1 }, { (int) UNIT_M32RX_U_CMP, 1, 0 } } }, - { M32RXF_INSN_BNEZ, model_m32rx_bnez, { { (int) UNIT_M32RX_U_CTI, 1, 1 }, { (int) UNIT_M32RX_U_CMP, 1, 0 } } }, - { M32RXF_INSN_BL8, model_m32rx_bl8, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } }, - { M32RXF_INSN_BL24, model_m32rx_bl24, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } }, - { M32RXF_INSN_BCL8, model_m32rx_bcl8, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } }, - { M32RXF_INSN_BCL24, model_m32rx_bcl24, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } }, - { M32RXF_INSN_BNC8, model_m32rx_bnc8, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } }, - { M32RXF_INSN_BNC24, model_m32rx_bnc24, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } }, - { M32RXF_INSN_BNE, model_m32rx_bne, { { (int) UNIT_M32RX_U_CTI, 1, 1 }, { (int) UNIT_M32RX_U_CMP, 1, 0 } } }, - { M32RXF_INSN_BRA8, model_m32rx_bra8, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } }, - { M32RXF_INSN_BRA24, model_m32rx_bra24, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } }, - { M32RXF_INSN_BNCL8, model_m32rx_bncl8, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } }, - { M32RXF_INSN_BNCL24, model_m32rx_bncl24, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } }, - { M32RXF_INSN_CMP, model_m32rx_cmp, { { (int) UNIT_M32RX_U_CMP, 1, 1 } } }, - { M32RXF_INSN_CMPI, model_m32rx_cmpi, { { (int) UNIT_M32RX_U_CMP, 1, 1 } } }, - { M32RXF_INSN_CMPU, model_m32rx_cmpu, { { (int) UNIT_M32RX_U_CMP, 1, 1 } } }, - { M32RXF_INSN_CMPUI, model_m32rx_cmpui, { { (int) UNIT_M32RX_U_CMP, 1, 1 } } }, - { M32RXF_INSN_CMPEQ, model_m32rx_cmpeq, { { (int) UNIT_M32RX_U_CMP, 1, 1 } } }, - { M32RXF_INSN_CMPZ, model_m32rx_cmpz, { { (int) UNIT_M32RX_U_CMP, 1, 1 } } }, - { M32RXF_INSN_DIV, model_m32rx_div, { { (int) UNIT_M32RX_U_EXEC, 1, 37 } } }, - { M32RXF_INSN_DIVU, model_m32rx_divu, { { (int) UNIT_M32RX_U_EXEC, 1, 37 } } }, - { M32RXF_INSN_REM, model_m32rx_rem, { { (int) UNIT_M32RX_U_EXEC, 1, 37 } } }, - { M32RXF_INSN_REMU, model_m32rx_remu, { { (int) UNIT_M32RX_U_EXEC, 1, 37 } } }, - { M32RXF_INSN_DIVH, model_m32rx_divh, { { (int) UNIT_M32RX_U_EXEC, 1, 21 } } }, - { M32RXF_INSN_JC, model_m32rx_jc, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } }, - { M32RXF_INSN_JNC, model_m32rx_jnc, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } }, - { M32RXF_INSN_JL, model_m32rx_jl, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } }, - { M32RXF_INSN_JMP, model_m32rx_jmp, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } }, - { M32RXF_INSN_LD, model_m32rx_ld, { { (int) UNIT_M32RX_U_LOAD, 1, 1 } } }, - { M32RXF_INSN_LD_D, model_m32rx_ld_d, { { (int) UNIT_M32RX_U_LOAD, 1, 2 } } }, - { M32RXF_INSN_LDB, model_m32rx_ldb, { { (int) UNIT_M32RX_U_LOAD, 1, 1 } } }, - { M32RXF_INSN_LDB_D, model_m32rx_ldb_d, { { (int) UNIT_M32RX_U_LOAD, 1, 2 } } }, - { M32RXF_INSN_LDH, model_m32rx_ldh, { { (int) UNIT_M32RX_U_LOAD, 1, 1 } } }, - { M32RXF_INSN_LDH_D, model_m32rx_ldh_d, { { (int) UNIT_M32RX_U_LOAD, 1, 2 } } }, - { M32RXF_INSN_LDUB, model_m32rx_ldub, { { (int) UNIT_M32RX_U_LOAD, 1, 1 } } }, - { M32RXF_INSN_LDUB_D, model_m32rx_ldub_d, { { (int) UNIT_M32RX_U_LOAD, 1, 2 } } }, - { M32RXF_INSN_LDUH, model_m32rx_lduh, { { (int) UNIT_M32RX_U_LOAD, 1, 1 } } }, - { M32RXF_INSN_LDUH_D, model_m32rx_lduh_d, { { (int) UNIT_M32RX_U_LOAD, 1, 2 } } }, - { M32RXF_INSN_LD_PLUS, model_m32rx_ld_plus, { { (int) UNIT_M32RX_U_LOAD, 1, 1 }, { (int) UNIT_M32RX_U_EXEC, 1, 0 } } }, - { M32RXF_INSN_LD24, model_m32rx_ld24, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_LDI8, model_m32rx_ldi8, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_LDI16, model_m32rx_ldi16, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_LOCK, model_m32rx_lock, { { (int) UNIT_M32RX_U_LOAD, 1, 1 } } }, - { M32RXF_INSN_MACHI_A, model_m32rx_machi_a, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } }, - { M32RXF_INSN_MACLO_A, model_m32rx_maclo_a, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } }, - { M32RXF_INSN_MACWHI_A, model_m32rx_macwhi_a, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } }, - { M32RXF_INSN_MACWLO_A, model_m32rx_macwlo_a, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } }, - { M32RXF_INSN_MUL, model_m32rx_mul, { { (int) UNIT_M32RX_U_EXEC, 1, 4 } } }, - { M32RXF_INSN_MULHI_A, model_m32rx_mulhi_a, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } }, - { M32RXF_INSN_MULLO_A, model_m32rx_mullo_a, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } }, - { M32RXF_INSN_MULWHI_A, model_m32rx_mulwhi_a, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } }, - { M32RXF_INSN_MULWLO_A, model_m32rx_mulwlo_a, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } }, - { M32RXF_INSN_MV, model_m32rx_mv, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_MVFACHI_A, model_m32rx_mvfachi_a, { { (int) UNIT_M32RX_U_EXEC, 1, 2 } } }, - { M32RXF_INSN_MVFACLO_A, model_m32rx_mvfaclo_a, { { (int) UNIT_M32RX_U_EXEC, 1, 2 } } }, - { M32RXF_INSN_MVFACMI_A, model_m32rx_mvfacmi_a, { { (int) UNIT_M32RX_U_EXEC, 1, 2 } } }, - { M32RXF_INSN_MVFC, model_m32rx_mvfc, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_MVTACHI_A, model_m32rx_mvtachi_a, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_MVTACLO_A, model_m32rx_mvtaclo_a, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_MVTC, model_m32rx_mvtc, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_NEG, model_m32rx_neg, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_NOP, model_m32rx_nop, { { (int) UNIT_M32RX_U_EXEC, 1, 0 } } }, - { M32RXF_INSN_NOT, model_m32rx_not, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_RAC_DSI, model_m32rx_rac_dsi, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } }, - { M32RXF_INSN_RACH_DSI, model_m32rx_rach_dsi, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } }, - { M32RXF_INSN_RTE, model_m32rx_rte, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_SETH, model_m32rx_seth, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_SLL, model_m32rx_sll, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_SLL3, model_m32rx_sll3, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_SLLI, model_m32rx_slli, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_SRA, model_m32rx_sra, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_SRA3, model_m32rx_sra3, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_SRAI, model_m32rx_srai, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_SRL, model_m32rx_srl, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_SRL3, model_m32rx_srl3, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_SRLI, model_m32rx_srli, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_ST, model_m32rx_st, { { (int) UNIT_M32RX_U_STORE, 1, 1 } } }, - { M32RXF_INSN_ST_D, model_m32rx_st_d, { { (int) UNIT_M32RX_U_STORE, 1, 2 } } }, - { M32RXF_INSN_STB, model_m32rx_stb, { { (int) UNIT_M32RX_U_STORE, 1, 1 } } }, - { M32RXF_INSN_STB_D, model_m32rx_stb_d, { { (int) UNIT_M32RX_U_STORE, 1, 2 } } }, - { M32RXF_INSN_STH, model_m32rx_sth, { { (int) UNIT_M32RX_U_STORE, 1, 1 } } }, - { M32RXF_INSN_STH_D, model_m32rx_sth_d, { { (int) UNIT_M32RX_U_STORE, 1, 2 } } }, - { M32RXF_INSN_ST_PLUS, model_m32rx_st_plus, { { (int) UNIT_M32RX_U_STORE, 1, 1 }, { (int) UNIT_M32RX_U_EXEC, 1, 0 } } }, - { M32RXF_INSN_STH_PLUS, model_m32rx_sth_plus, { { (int) UNIT_M32RX_U_STORE, 1, 1 }, { (int) UNIT_M32RX_U_EXEC, 1, 0 } } }, - { M32RXF_INSN_STB_PLUS, model_m32rx_stb_plus, { { (int) UNIT_M32RX_U_STORE, 1, 1 }, { (int) UNIT_M32RX_U_EXEC, 1, 0 } } }, - { M32RXF_INSN_ST_MINUS, model_m32rx_st_minus, { { (int) UNIT_M32RX_U_STORE, 1, 1 }, { (int) UNIT_M32RX_U_EXEC, 1, 0 } } }, - { M32RXF_INSN_SUB, model_m32rx_sub, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_SUBV, model_m32rx_subv, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_SUBX, model_m32rx_subx, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_TRAP, model_m32rx_trap, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_UNLOCK, model_m32rx_unlock, { { (int) UNIT_M32RX_U_LOAD, 1, 1 } } }, - { M32RXF_INSN_SATB, model_m32rx_satb, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_SATH, model_m32rx_sath, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_SAT, model_m32rx_sat, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_PCMPBZ, model_m32rx_pcmpbz, { { (int) UNIT_M32RX_U_CMP, 1, 1 } } }, - { M32RXF_INSN_SADD, model_m32rx_sadd, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } }, - { M32RXF_INSN_MACWU1, model_m32rx_macwu1, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } }, - { M32RXF_INSN_MSBLO, model_m32rx_msblo, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } }, - { M32RXF_INSN_MULWU1, model_m32rx_mulwu1, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } }, - { M32RXF_INSN_MACLH1, model_m32rx_maclh1, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } }, - { M32RXF_INSN_SC, model_m32rx_sc, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_SNC, model_m32rx_snc, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_CLRPSW, model_m32rx_clrpsw, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_SETPSW, model_m32rx_setpsw, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_BSET, model_m32rx_bset, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_BCLR, model_m32rx_bclr, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, - { M32RXF_INSN_BTST, model_m32rx_btst, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } }, -}; - -#endif /* WITH_PROFILE_MODEL_P */ - -static void -m32rx_model_init (SIM_CPU *cpu) -{ - CPU_MODEL_DATA (cpu) = (void *) zalloc (sizeof (MODEL_M32RX_DATA)); -} - -#if WITH_PROFILE_MODEL_P -#define TIMING_DATA(td) td -#else -#define TIMING_DATA(td) 0 -#endif - -static const MODEL m32rx_models[] = -{ - { "m32rx", & m32rx_mach, MODEL_M32RX, TIMING_DATA (& m32rx_timing[0]), m32rx_model_init }, - { 0 } -}; - -/* The properties of this cpu's implementation. */ - -static const MACH_IMP_PROPERTIES m32rxf_imp_properties = -{ - sizeof (SIM_CPU), -#if WITH_SCACHE - sizeof (SCACHE) -#else - 0 -#endif -}; - - -static void -m32rxf_prepare_run (SIM_CPU *cpu) -{ - if (CPU_IDESC (cpu) == NULL) - m32rxf_init_idesc_table (cpu); -} - -static const CGEN_INSN * -m32rxf_get_idata (SIM_CPU *cpu, int inum) -{ - return CPU_IDESC (cpu) [inum].idata; -} - -static void -m32rx_init_cpu (SIM_CPU *cpu) -{ - CPU_REG_FETCH (cpu) = m32rxf_fetch_register; - CPU_REG_STORE (cpu) = m32rxf_store_register; - CPU_PC_FETCH (cpu) = m32rxf_h_pc_get; - CPU_PC_STORE (cpu) = m32rxf_h_pc_set; - CPU_GET_IDATA (cpu) = m32rxf_get_idata; - CPU_MAX_INSNS (cpu) = M32RXF_INSN__MAX; - CPU_INSN_NAME (cpu) = cgen_insn_name; - CPU_FULL_ENGINE_FN (cpu) = m32rxf_engine_run_full; -#if WITH_FAST - CPU_FAST_ENGINE_FN (cpu) = m32rxf_engine_run_fast; -#else - CPU_FAST_ENGINE_FN (cpu) = m32rxf_engine_run_full; -#endif -} - -const MACH m32rx_mach = -{ - "m32rx", "m32rx", MACH_M32RX, - 32, 32, & m32rx_models[0], & m32rxf_imp_properties, - m32rx_init_cpu, - m32rxf_prepare_run -}; - diff --git a/sim/m32r/sem-switch.c b/sim/m32r/sem-switch.c deleted file mode 100644 index b378010..0000000 --- a/sim/m32r/sem-switch.c +++ /dev/null @@ -1,2615 +0,0 @@ -/* Simulator instruction semantics for m32rbf. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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. - -*/ - -#ifdef DEFINE_LABELS - - /* The labels have the case they have because the enum of insn types - is all uppercase and in the non-stdc case the insn symbol is built - into the enum name. */ - - static struct { - int index; - void *label; - } labels[] = { - { M32RBF_INSN_X_INVALID, && case_sem_INSN_X_INVALID }, - { M32RBF_INSN_X_AFTER, && case_sem_INSN_X_AFTER }, - { M32RBF_INSN_X_BEFORE, && case_sem_INSN_X_BEFORE }, - { M32RBF_INSN_X_CTI_CHAIN, && case_sem_INSN_X_CTI_CHAIN }, - { M32RBF_INSN_X_CHAIN, && case_sem_INSN_X_CHAIN }, - { M32RBF_INSN_X_BEGIN, && case_sem_INSN_X_BEGIN }, - { M32RBF_INSN_ADD, && case_sem_INSN_ADD }, - { M32RBF_INSN_ADD3, && case_sem_INSN_ADD3 }, - { M32RBF_INSN_AND, && case_sem_INSN_AND }, - { M32RBF_INSN_AND3, && case_sem_INSN_AND3 }, - { M32RBF_INSN_OR, && case_sem_INSN_OR }, - { M32RBF_INSN_OR3, && case_sem_INSN_OR3 }, - { M32RBF_INSN_XOR, && case_sem_INSN_XOR }, - { M32RBF_INSN_XOR3, && case_sem_INSN_XOR3 }, - { M32RBF_INSN_ADDI, && case_sem_INSN_ADDI }, - { M32RBF_INSN_ADDV, && case_sem_INSN_ADDV }, - { M32RBF_INSN_ADDV3, && case_sem_INSN_ADDV3 }, - { M32RBF_INSN_ADDX, && case_sem_INSN_ADDX }, - { M32RBF_INSN_BC8, && case_sem_INSN_BC8 }, - { M32RBF_INSN_BC24, && case_sem_INSN_BC24 }, - { M32RBF_INSN_BEQ, && case_sem_INSN_BEQ }, - { M32RBF_INSN_BEQZ, && case_sem_INSN_BEQZ }, - { M32RBF_INSN_BGEZ, && case_sem_INSN_BGEZ }, - { M32RBF_INSN_BGTZ, && case_sem_INSN_BGTZ }, - { M32RBF_INSN_BLEZ, && case_sem_INSN_BLEZ }, - { M32RBF_INSN_BLTZ, && case_sem_INSN_BLTZ }, - { M32RBF_INSN_BNEZ, && case_sem_INSN_BNEZ }, - { M32RBF_INSN_BL8, && case_sem_INSN_BL8 }, - { M32RBF_INSN_BL24, && case_sem_INSN_BL24 }, - { M32RBF_INSN_BNC8, && case_sem_INSN_BNC8 }, - { M32RBF_INSN_BNC24, && case_sem_INSN_BNC24 }, - { M32RBF_INSN_BNE, && case_sem_INSN_BNE }, - { M32RBF_INSN_BRA8, && case_sem_INSN_BRA8 }, - { M32RBF_INSN_BRA24, && case_sem_INSN_BRA24 }, - { M32RBF_INSN_CMP, && case_sem_INSN_CMP }, - { M32RBF_INSN_CMPI, && case_sem_INSN_CMPI }, - { M32RBF_INSN_CMPU, && case_sem_INSN_CMPU }, - { M32RBF_INSN_CMPUI, && case_sem_INSN_CMPUI }, - { M32RBF_INSN_DIV, && case_sem_INSN_DIV }, - { M32RBF_INSN_DIVU, && case_sem_INSN_DIVU }, - { M32RBF_INSN_REM, && case_sem_INSN_REM }, - { M32RBF_INSN_REMU, && case_sem_INSN_REMU }, - { M32RBF_INSN_JL, && case_sem_INSN_JL }, - { M32RBF_INSN_JMP, && case_sem_INSN_JMP }, - { M32RBF_INSN_LD, && case_sem_INSN_LD }, - { M32RBF_INSN_LD_D, && case_sem_INSN_LD_D }, - { M32RBF_INSN_LDB, && case_sem_INSN_LDB }, - { M32RBF_INSN_LDB_D, && case_sem_INSN_LDB_D }, - { M32RBF_INSN_LDH, && case_sem_INSN_LDH }, - { M32RBF_INSN_LDH_D, && case_sem_INSN_LDH_D }, - { M32RBF_INSN_LDUB, && case_sem_INSN_LDUB }, - { M32RBF_INSN_LDUB_D, && case_sem_INSN_LDUB_D }, - { M32RBF_INSN_LDUH, && case_sem_INSN_LDUH }, - { M32RBF_INSN_LDUH_D, && case_sem_INSN_LDUH_D }, - { M32RBF_INSN_LD_PLUS, && case_sem_INSN_LD_PLUS }, - { M32RBF_INSN_LD24, && case_sem_INSN_LD24 }, - { M32RBF_INSN_LDI8, && case_sem_INSN_LDI8 }, - { M32RBF_INSN_LDI16, && case_sem_INSN_LDI16 }, - { M32RBF_INSN_LOCK, && case_sem_INSN_LOCK }, - { M32RBF_INSN_MACHI, && case_sem_INSN_MACHI }, - { M32RBF_INSN_MACLO, && case_sem_INSN_MACLO }, - { M32RBF_INSN_MACWHI, && case_sem_INSN_MACWHI }, - { M32RBF_INSN_MACWLO, && case_sem_INSN_MACWLO }, - { M32RBF_INSN_MUL, && case_sem_INSN_MUL }, - { M32RBF_INSN_MULHI, && case_sem_INSN_MULHI }, - { M32RBF_INSN_MULLO, && case_sem_INSN_MULLO }, - { M32RBF_INSN_MULWHI, && case_sem_INSN_MULWHI }, - { M32RBF_INSN_MULWLO, && case_sem_INSN_MULWLO }, - { M32RBF_INSN_MV, && case_sem_INSN_MV }, - { M32RBF_INSN_MVFACHI, && case_sem_INSN_MVFACHI }, - { M32RBF_INSN_MVFACLO, && case_sem_INSN_MVFACLO }, - { M32RBF_INSN_MVFACMI, && case_sem_INSN_MVFACMI }, - { M32RBF_INSN_MVFC, && case_sem_INSN_MVFC }, - { M32RBF_INSN_MVTACHI, && case_sem_INSN_MVTACHI }, - { M32RBF_INSN_MVTACLO, && case_sem_INSN_MVTACLO }, - { M32RBF_INSN_MVTC, && case_sem_INSN_MVTC }, - { M32RBF_INSN_NEG, && case_sem_INSN_NEG }, - { M32RBF_INSN_NOP, && case_sem_INSN_NOP }, - { M32RBF_INSN_NOT, && case_sem_INSN_NOT }, - { M32RBF_INSN_RAC, && case_sem_INSN_RAC }, - { M32RBF_INSN_RACH, && case_sem_INSN_RACH }, - { M32RBF_INSN_RTE, && case_sem_INSN_RTE }, - { M32RBF_INSN_SETH, && case_sem_INSN_SETH }, - { M32RBF_INSN_SLL, && case_sem_INSN_SLL }, - { M32RBF_INSN_SLL3, && case_sem_INSN_SLL3 }, - { M32RBF_INSN_SLLI, && case_sem_INSN_SLLI }, - { M32RBF_INSN_SRA, && case_sem_INSN_SRA }, - { M32RBF_INSN_SRA3, && case_sem_INSN_SRA3 }, - { M32RBF_INSN_SRAI, && case_sem_INSN_SRAI }, - { M32RBF_INSN_SRL, && case_sem_INSN_SRL }, - { M32RBF_INSN_SRL3, && case_sem_INSN_SRL3 }, - { M32RBF_INSN_SRLI, && case_sem_INSN_SRLI }, - { M32RBF_INSN_ST, && case_sem_INSN_ST }, - { M32RBF_INSN_ST_D, && case_sem_INSN_ST_D }, - { M32RBF_INSN_STB, && case_sem_INSN_STB }, - { M32RBF_INSN_STB_D, && case_sem_INSN_STB_D }, - { M32RBF_INSN_STH, && case_sem_INSN_STH }, - { M32RBF_INSN_STH_D, && case_sem_INSN_STH_D }, - { M32RBF_INSN_ST_PLUS, && case_sem_INSN_ST_PLUS }, - { M32RBF_INSN_ST_MINUS, && case_sem_INSN_ST_MINUS }, - { M32RBF_INSN_SUB, && case_sem_INSN_SUB }, - { M32RBF_INSN_SUBV, && case_sem_INSN_SUBV }, - { M32RBF_INSN_SUBX, && case_sem_INSN_SUBX }, - { M32RBF_INSN_TRAP, && case_sem_INSN_TRAP }, - { M32RBF_INSN_UNLOCK, && case_sem_INSN_UNLOCK }, - { M32RBF_INSN_CLRPSW, && case_sem_INSN_CLRPSW }, - { M32RBF_INSN_SETPSW, && case_sem_INSN_SETPSW }, - { M32RBF_INSN_BSET, && case_sem_INSN_BSET }, - { M32RBF_INSN_BCLR, && case_sem_INSN_BCLR }, - { M32RBF_INSN_BTST, && case_sem_INSN_BTST }, - { 0, 0 } - }; - int i; - - for (i = 0; labels[i].label != 0; ++i) - { -#if FAST_P - CPU_IDESC (current_cpu) [labels[i].index].sem_fast_lab = labels[i].label; -#else - CPU_IDESC (current_cpu) [labels[i].index].sem_full_lab = labels[i].label; -#endif - } - -#undef DEFINE_LABELS -#endif /* DEFINE_LABELS */ - -#ifdef DEFINE_SWITCH - -/* If hyper-fast [well not unnecessarily slow] execution is selected, turn - off frills like tracing and profiling. */ -/* FIXME: A better way would be to have TRACE_RESULT check for something - that can cause it to be optimized out. Another way would be to emit - special handlers into the instruction "stream". */ - -#if FAST_P -#undef TRACE_RESULT -#define TRACE_RESULT(cpu, abuf, name, type, val) -#endif - -#undef GET_ATTR -#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) -#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr) -#else -#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_/**/attr) -#endif - -{ - -#if WITH_SCACHE_PBB - -/* Branch to next handler without going around main loop. */ -#define NEXT(vpc) goto * SEM_ARGBUF (vpc) -> semantic.sem_case -SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case) - -#else /* ! WITH_SCACHE_PBB */ - -#define NEXT(vpc) BREAK (sem) -#ifdef __GNUC__ -#if FAST_P - SWITCH (sem, SEM_ARGBUF (sc) -> idesc->sem_fast_lab) -#else - SWITCH (sem, SEM_ARGBUF (sc) -> idesc->sem_full_lab) -#endif -#else - SWITCH (sem, SEM_ARGBUF (sc) -> idesc->num) -#endif - -#endif /* ! WITH_SCACHE_PBB */ - - { - - CASE (sem, INSN_X_INVALID) : /* --invalid-- */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { - /* Update the recorded pc in the cpu state struct. - Only necessary for WITH_SCACHE case, but to avoid the - conditional compilation .... */ - SET_H_PC (pc); - /* Virtual insns have zero size. Overwrite vpc with address of next insn - using the default-insn-bitsize spec. When executing insns in parallel - we may want to queue the fault and continue execution. */ - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - vpc = sim_engine_invalid_insn (current_cpu, pc, vpc); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_X_AFTER) : /* --after-- */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { -#if WITH_SCACHE_PBB_M32RBF - m32rbf_pbb_after (current_cpu, sem_arg); -#endif - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_X_BEFORE) : /* --before-- */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { -#if WITH_SCACHE_PBB_M32RBF - m32rbf_pbb_before (current_cpu, sem_arg); -#endif - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_X_CTI_CHAIN) : /* --cti-chain-- */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { -#if WITH_SCACHE_PBB_M32RBF -#ifdef DEFINE_SWITCH - vpc = m32rbf_pbb_cti_chain (current_cpu, sem_arg, - pbb_br_type, pbb_br_npc); - BREAK (sem); -#else - /* FIXME: Allow provision of explicit ifmt spec in insn spec. */ - vpc = m32rbf_pbb_cti_chain (current_cpu, sem_arg, - CPU_PBB_BR_TYPE (current_cpu), - CPU_PBB_BR_NPC (current_cpu)); -#endif -#endif - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_X_CHAIN) : /* --chain-- */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { -#if WITH_SCACHE_PBB_M32RBF - vpc = m32rbf_pbb_chain (current_cpu, sem_arg); -#ifdef DEFINE_SWITCH - BREAK (sem); -#endif -#endif - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_X_BEGIN) : /* --begin-- */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { -#if WITH_SCACHE_PBB_M32RBF -#if defined DEFINE_SWITCH || defined FAST_P - /* In the switch case FAST_P is a constant, allowing several optimizations - in any called inline functions. */ - vpc = m32rbf_pbb_begin (current_cpu, FAST_P); -#else -#if 0 /* cgen engine can't handle dynamic fast/full switching yet. */ - vpc = m32rbf_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu))); -#else - vpc = m32rbf_pbb_begin (current_cpu, 0); -#endif -#endif -#endif - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ADD) : /* add $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ADDSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ADD3) : /* add3 $dr,$sr,$hash$slo16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ADDSI (* FLD (i_sr), FLD (f_simm16)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_AND) : /* and $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ANDSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_AND3) : /* and3 $dr,$sr,$uimm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_and3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ANDSI (* FLD (i_sr), FLD (f_uimm16)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_OR) : /* or $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ORSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_OR3) : /* or3 $dr,$sr,$hash$ulo16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_and3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ORSI (* FLD (i_sr), FLD (f_uimm16)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_XOR) : /* xor $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = XORSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_XOR3) : /* xor3 $dr,$sr,$uimm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_and3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = XORSI (* FLD (i_sr), FLD (f_uimm16)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ADDI) : /* addi $dr,$simm8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_addi.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ADDSI (* FLD (i_dr), FLD (f_simm8)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ADDV) : /* addv $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = ADDSI (* FLD (i_dr), * FLD (i_sr)); - temp1 = ADDOFSI (* FLD (i_dr), * FLD (i_sr), 0); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ADDV3) : /* addv3 $dr,$sr,$simm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -{ - SI temp0;BI temp1; - temp0 = ADDSI (* FLD (i_sr), FLD (f_simm16)); - temp1 = ADDOFSI (* FLD (i_sr), FLD (f_simm16), 0); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ADDX) : /* addx $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = ADDCSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - temp1 = ADDCFSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BC8) : /* bc.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (CPU (h_cond)) { - { - USI opval = FLD (i_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BC24) : /* bc.l $disp24 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl24.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (CPU (h_cond)) { - { - USI opval = FLD (i_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BEQ) : /* beq $src1,$src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (EQSI (* FLD (i_src1), * FLD (i_src2))) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BEQZ) : /* beqz $src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (EQSI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BGEZ) : /* bgez $src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (GESI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BGTZ) : /* bgtz $src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (GTSI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BLEZ) : /* blez $src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (LESI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BLTZ) : /* bltz $src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (LTSI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BNEZ) : /* bnez $src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BL8) : /* bl.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - SI opval = ADDSI (ANDSI (pc, -4), 4); - CPU (h_gr[((UINT) 14)]) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BL24) : /* bl.l $disp24 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl24.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -{ - { - SI opval = ADDSI (pc, 4); - CPU (h_gr[((UINT) 14)]) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BNC8) : /* bnc.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (NOTBI (CPU (h_cond))) { - { - USI opval = FLD (i_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BNC24) : /* bnc.l $disp24 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl24.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NOTBI (CPU (h_cond))) { - { - USI opval = FLD (i_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BNE) : /* bne $src1,$src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_src1), * FLD (i_src2))) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BRA8) : /* bra.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - USI opval = FLD (i_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BRA24) : /* bra.l $disp24 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl24.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - USI opval = FLD (i_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_CMP) : /* cmp $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = LTSI (* FLD (i_src1), * FLD (i_src2)); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_CMPI) : /* cmpi $src2,$simm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_d.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - BI opval = LTSI (* FLD (i_src2), FLD (f_simm16)); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_CMPU) : /* cmpu $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = LTUSI (* FLD (i_src1), * FLD (i_src2)); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_CMPUI) : /* cmpui $src2,$simm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_d.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - BI opval = LTUSI (* FLD (i_src2), FLD (f_simm16)); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_DIV) : /* div $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = DIVSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_DIVU) : /* divu $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = UDIVSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_REM) : /* rem $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = MODSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_REMU) : /* remu $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = UMODSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_JL) : /* jl $sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_jl.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;USI temp1; - temp0 = ADDSI (ANDSI (pc, -4), 4); - temp1 = ANDSI (* FLD (i_sr), -4); - { - SI opval = temp0; - CPU (h_gr[((UINT) 14)]) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = temp1; - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_JMP) : /* jmp $sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_jl.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - USI opval = ANDSI (* FLD (i_sr), -4); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LD) : /* ld $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = GETMEMSI (current_cpu, pc, * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LD_D) : /* ld $dr,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = GETMEMSI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDB) : /* ldb $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = EXTQISI (GETMEMQI (current_cpu, pc, * FLD (i_sr))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDB_D) : /* ldb $dr,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = EXTQISI (GETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDH) : /* ldh $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = EXTHISI (GETMEMHI (current_cpu, pc, * FLD (i_sr))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDH_D) : /* ldh $dr,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = EXTHISI (GETMEMHI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDUB) : /* ldub $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ZEXTQISI (GETMEMQI (current_cpu, pc, * FLD (i_sr))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDUB_D) : /* ldub $dr,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ZEXTQISI (GETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDUH) : /* lduh $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ZEXTHISI (GETMEMHI (current_cpu, pc, * FLD (i_sr))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDUH_D) : /* lduh $dr,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ZEXTHISI (GETMEMHI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LD_PLUS) : /* ld $dr,@$sr+ */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;SI temp1; - temp0 = GETMEMSI (current_cpu, pc, * FLD (i_sr)); - temp1 = ADDSI (* FLD (i_sr), 4); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - SI opval = temp1; - * FLD (i_sr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LD24) : /* ld24 $dr,$uimm24 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld24.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = FLD (i_uimm24); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDI8) : /* ldi8 $dr,$simm8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_addi.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = FLD (f_simm8); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDI16) : /* ldi16 $dr,$hash$slo16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = FLD (f_simm16); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LOCK) : /* lock $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - BI opval = 1; - CPU (h_lock) = opval; - TRACE_RESULT (current_cpu, abuf, "lock", 'x', opval); - } - { - SI opval = GETMEMSI (current_cpu, pc, * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MACHI) : /* machi $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUM (), MULDI (EXTSIDI (ANDSI (* FLD (i_src1), 0xffff0000)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16))))), 8), 8); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MACLO) : /* maclo $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUM (), MULDI (EXTSIDI (SLLSI (* FLD (i_src1), 16)), EXTHIDI (TRUNCSIHI (* FLD (i_src2))))), 8), 8); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MACWHI) : /* macwhi $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUM (), MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16))))), 8), 8); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MACWLO) : /* macwlo $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUM (), MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (* FLD (i_src2))))), 8), 8); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MUL) : /* mul $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = MULSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MULHI) : /* mulhi $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (MULDI (EXTSIDI (ANDSI (* FLD (i_src1), 0xffff0000)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16)))), 16), 16); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MULLO) : /* mullo $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (MULDI (EXTSIDI (SLLSI (* FLD (i_src1), 16)), EXTHIDI (TRUNCSIHI (* FLD (i_src2)))), 16), 16); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MULWHI) : /* mulwhi $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16)))), 8), 8); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MULWLO) : /* mulwlo $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (* FLD (i_src2)))), 8), 8); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MV) : /* mv $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = * FLD (i_sr); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVFACHI) : /* mvfachi $dr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_seth.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = TRUNCDISI (SRADI (GET_H_ACCUM (), 32)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVFACLO) : /* mvfaclo $dr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_seth.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = TRUNCDISI (GET_H_ACCUM ()); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVFACMI) : /* mvfacmi $dr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_seth.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = TRUNCDISI (SRADI (GET_H_ACCUM (), 16)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVFC) : /* mvfc $dr,$scr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = GET_H_CR (FLD (f_r2)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVTACHI) : /* mvtachi $src1 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ORDI (ANDDI (GET_H_ACCUM (), MAKEDI (0, 0xffffffff)), SLLDI (EXTSIDI (* FLD (i_src1)), 32)); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVTACLO) : /* mvtaclo $src1 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ORDI (ANDDI (GET_H_ACCUM (), MAKEDI (0xffffffff, 0)), ZEXTSIDI (* FLD (i_src1))); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVTC) : /* mvtc $sr,$dcr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - USI opval = * FLD (i_sr); - SET_H_CR (FLD (f_r1), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_NEG) : /* neg $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = NEGSI (* FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_NOP) : /* nop */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -PROFILE_COUNT_FILLNOPS (current_cpu, abuf->addr); - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_NOT) : /* not $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = INVSI (* FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_RAC) : /* rac */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - DI tmp_tmp1; - tmp_tmp1 = SLLDI (GET_H_ACCUM (), 1); - tmp_tmp1 = ADDDI (tmp_tmp1, MAKEDI (0, 32768)); - { - DI opval = (GTDI (tmp_tmp1, MAKEDI (32767, 0xffff0000))) ? (MAKEDI (32767, 0xffff0000)) : (LTDI (tmp_tmp1, MAKEDI (0xffff8000, 0))) ? (MAKEDI (0xffff8000, 0)) : (ANDDI (tmp_tmp1, MAKEDI (0xffffffff, 0xffff0000))); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_RACH) : /* rach */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - DI tmp_tmp1; - tmp_tmp1 = ANDDI (GET_H_ACCUM (), MAKEDI (16777215, 0xffffffff)); -if (ANDIF (GEDI (tmp_tmp1, MAKEDI (16383, 0x80000000)), LEDI (tmp_tmp1, MAKEDI (8388607, 0xffffffff)))) { - tmp_tmp1 = MAKEDI (16383, 0x80000000); -} else { -if (ANDIF (GEDI (tmp_tmp1, MAKEDI (8388608, 0)), LEDI (tmp_tmp1, MAKEDI (16760832, 0)))) { - tmp_tmp1 = MAKEDI (16760832, 0); -} else { - tmp_tmp1 = ANDDI (ADDDI (GET_H_ACCUM (), MAKEDI (0, 1073741824)), MAKEDI (0xffffffff, 0x80000000)); -} -} - tmp_tmp1 = SLLDI (tmp_tmp1, 1); - { - DI opval = SRADI (SLLDI (tmp_tmp1, 7), 7); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_RTE) : /* rte */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - USI opval = ANDSI (GET_H_CR (((UINT) 6)), -4); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - { - USI opval = GET_H_CR (((UINT) 14)); - SET_H_CR (((UINT) 6), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - { - UQI opval = CPU (h_bpsw); - SET_H_PSW (opval); - TRACE_RESULT (current_cpu, abuf, "psw", 'x', opval); - } - { - UQI opval = CPU (h_bbpsw); - CPU (h_bpsw) = opval; - TRACE_RESULT (current_cpu, abuf, "bpsw", 'x', opval); - } -} - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SETH) : /* seth $dr,$hash$hi16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_seth.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = SLLSI (FLD (f_hi16), 16); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SLL) : /* sll $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SLLSI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SLL3) : /* sll3 $dr,$sr,$simm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = SLLSI (* FLD (i_sr), ANDSI (FLD (f_simm16), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SLLI) : /* slli $dr,$uimm5 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_slli.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SLLSI (* FLD (i_dr), FLD (f_uimm5)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SRA) : /* sra $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRASI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SRA3) : /* sra3 $dr,$sr,$simm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = SRASI (* FLD (i_sr), ANDSI (FLD (f_simm16), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SRAI) : /* srai $dr,$uimm5 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_slli.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRASI (* FLD (i_dr), FLD (f_uimm5)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SRL) : /* srl $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRLSI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SRL3) : /* srl3 $dr,$sr,$simm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = SRLSI (* FLD (i_sr), ANDSI (FLD (f_simm16), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SRLI) : /* srli $dr,$uimm5 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_slli.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRLSI (* FLD (i_dr), FLD (f_uimm5)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ST) : /* st $src1,@$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, pc, * FLD (i_src2), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ST_D) : /* st $src1,@($slo16,$src2) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_d.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, pc, ADDSI (* FLD (i_src2), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_STB) : /* stb $src1,@$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - QI opval = * FLD (i_src1); - SETMEMQI (current_cpu, pc, * FLD (i_src2), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_STB_D) : /* stb $src1,@($slo16,$src2) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_d.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - QI opval = * FLD (i_src1); - SETMEMQI (current_cpu, pc, ADDSI (* FLD (i_src2), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_STH) : /* sth $src1,@$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - HI opval = * FLD (i_src1); - SETMEMHI (current_cpu, pc, * FLD (i_src2), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_STH_D) : /* sth $src1,@($slo16,$src2) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_d.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - HI opval = * FLD (i_src1); - SETMEMHI (current_cpu, pc, ADDSI (* FLD (i_src2), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ST_PLUS) : /* st $src1,@+$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI tmp_new_src2; - tmp_new_src2 = ADDSI (* FLD (i_src2), 4); - { - SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, pc, tmp_new_src2, opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - { - SI opval = tmp_new_src2; - * FLD (i_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ST_MINUS) : /* st $src1,@-$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI tmp_new_src2; - tmp_new_src2 = SUBSI (* FLD (i_src2), 4); - { - SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, pc, tmp_new_src2, opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - { - SI opval = tmp_new_src2; - * FLD (i_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SUB) : /* sub $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SUBSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SUBV) : /* subv $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = SUBSI (* FLD (i_dr), * FLD (i_sr)); - temp1 = SUBOFSI (* FLD (i_dr), * FLD (i_sr), 0); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SUBX) : /* subx $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = SUBCSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - temp1 = SUBCFSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_TRAP) : /* trap $uimm4 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_trap.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - USI opval = GET_H_CR (((UINT) 6)); - SET_H_CR (((UINT) 14), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - { - USI opval = ADDSI (pc, 4); - SET_H_CR (((UINT) 6), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - { - UQI opval = CPU (h_bpsw); - CPU (h_bbpsw) = opval; - TRACE_RESULT (current_cpu, abuf, "bbpsw", 'x', opval); - } - { - UQI opval = GET_H_PSW (); - CPU (h_bpsw) = opval; - TRACE_RESULT (current_cpu, abuf, "bpsw", 'x', opval); - } - { - UQI opval = ANDQI (GET_H_PSW (), 128); - SET_H_PSW (opval); - TRACE_RESULT (current_cpu, abuf, "psw", 'x', opval); - } - { - SI opval = m32r_trap (current_cpu, pc, FLD (f_uimm4)); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_UNLOCK) : /* unlock $src1,@$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ -if (CPU (h_lock)) { - { - SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, pc, * FLD (i_src2), opval); - written |= (1 << 4); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } -} - { - BI opval = 0; - CPU (h_lock) = opval; - TRACE_RESULT (current_cpu, abuf, "lock", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_CLRPSW) : /* clrpsw $uimm8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_clrpsw.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ANDSI (GET_H_CR (((UINT) 0)), ORSI (INVBI (FLD (f_uimm8)), 65280)); - SET_H_CR (((UINT) 0), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SETPSW) : /* setpsw $uimm8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_clrpsw.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = FLD (f_uimm8); - SET_H_CR (((UINT) 0), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BSET) : /* bset $uimm3,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bset.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - QI opval = ORQI (GETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16))), SLLSI (1, SUBSI (7, FLD (f_uimm3)))); - SETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BCLR) : /* bclr $uimm3,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bset.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - QI opval = ANDQI (GETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16))), INVQI (SLLSI (1, SUBSI (7, FLD (f_uimm3))))); - SETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BTST) : /* btst $uimm3,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bset.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = ANDQI (SRLSI (* FLD (i_sr), SUBSI (7, FLD (f_uimm3))), 1); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - - } - ENDSWITCH (sem) /* End of semantic switch. */ - - /* At this point `vpc' contains the next insn to execute. */ -} - -#undef DEFINE_SWITCH -#endif /* DEFINE_SWITCH */ diff --git a/sim/m32r/sem.c b/sim/m32r/sem.c deleted file mode 100644 index b06c9f0..0000000 --- a/sim/m32r/sem.c +++ /dev/null @@ -1,2814 +0,0 @@ -/* Simulator instruction semantics for m32rbf. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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. - -*/ - -#define WANT_CPU m32rbf -#define WANT_CPU_M32RBF - -#include "sim-main.h" -#include "cgen-mem.h" -#include "cgen-ops.h" - -#undef GET_ATTR -#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) -#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr) -#else -#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_/**/attr) -#endif - -/* This is used so that we can compile two copies of the semantic code, - one with full feature support and one without that runs fast(er). - FAST_P, when desired, is defined on the command line, -DFAST_P=1. */ -#if FAST_P -#define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn) -#undef TRACE_RESULT -#define TRACE_RESULT(cpu, abuf, name, type, val) -#else -#define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn) -#endif - -/* x-invalid: --invalid-- */ - -static SEM_PC -SEM_FN_NAME (m32rbf,x_invalid) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { - /* Update the recorded pc in the cpu state struct. - Only necessary for WITH_SCACHE case, but to avoid the - conditional compilation .... */ - SET_H_PC (pc); - /* Virtual insns have zero size. Overwrite vpc with address of next insn - using the default-insn-bitsize spec. When executing insns in parallel - we may want to queue the fault and continue execution. */ - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - vpc = sim_engine_invalid_insn (current_cpu, pc, vpc); - } - - return vpc; -#undef FLD -} - -/* x-after: --after-- */ - -static SEM_PC -SEM_FN_NAME (m32rbf,x_after) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { -#if WITH_SCACHE_PBB_M32RBF - m32rbf_pbb_after (current_cpu, sem_arg); -#endif - } - - return vpc; -#undef FLD -} - -/* x-before: --before-- */ - -static SEM_PC -SEM_FN_NAME (m32rbf,x_before) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { -#if WITH_SCACHE_PBB_M32RBF - m32rbf_pbb_before (current_cpu, sem_arg); -#endif - } - - return vpc; -#undef FLD -} - -/* x-cti-chain: --cti-chain-- */ - -static SEM_PC -SEM_FN_NAME (m32rbf,x_cti_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { -#if WITH_SCACHE_PBB_M32RBF -#ifdef DEFINE_SWITCH - vpc = m32rbf_pbb_cti_chain (current_cpu, sem_arg, - pbb_br_type, pbb_br_npc); - BREAK (sem); -#else - /* FIXME: Allow provision of explicit ifmt spec in insn spec. */ - vpc = m32rbf_pbb_cti_chain (current_cpu, sem_arg, - CPU_PBB_BR_TYPE (current_cpu), - CPU_PBB_BR_NPC (current_cpu)); -#endif -#endif - } - - return vpc; -#undef FLD -} - -/* x-chain: --chain-- */ - -static SEM_PC -SEM_FN_NAME (m32rbf,x_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { -#if WITH_SCACHE_PBB_M32RBF - vpc = m32rbf_pbb_chain (current_cpu, sem_arg); -#ifdef DEFINE_SWITCH - BREAK (sem); -#endif -#endif - } - - return vpc; -#undef FLD -} - -/* x-begin: --begin-- */ - -static SEM_PC -SEM_FN_NAME (m32rbf,x_begin) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { -#if WITH_SCACHE_PBB_M32RBF -#if defined DEFINE_SWITCH || defined FAST_P - /* In the switch case FAST_P is a constant, allowing several optimizations - in any called inline functions. */ - vpc = m32rbf_pbb_begin (current_cpu, FAST_P); -#else -#if 0 /* cgen engine can't handle dynamic fast/full switching yet. */ - vpc = m32rbf_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu))); -#else - vpc = m32rbf_pbb_begin (current_cpu, 0); -#endif -#endif -#endif - } - - return vpc; -#undef FLD -} - -/* add: add $dr,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,add) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ADDSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* add3: add3 $dr,$sr,$hash$slo16 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,add3) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ADDSI (* FLD (i_sr), FLD (f_simm16)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* and: and $dr,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,and) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ANDSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* and3: and3 $dr,$sr,$uimm16 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,and3) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_and3.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ANDSI (* FLD (i_sr), FLD (f_uimm16)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* or: or $dr,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,or) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ORSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* or3: or3 $dr,$sr,$hash$ulo16 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,or3) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_and3.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ORSI (* FLD (i_sr), FLD (f_uimm16)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* xor: xor $dr,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,xor) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = XORSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* xor3: xor3 $dr,$sr,$uimm16 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,xor3) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_and3.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = XORSI (* FLD (i_sr), FLD (f_uimm16)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* addi: addi $dr,$simm8 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,addi) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_addi.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ADDSI (* FLD (i_dr), FLD (f_simm8)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* addv: addv $dr,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,addv) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = ADDSI (* FLD (i_dr), * FLD (i_sr)); - temp1 = ADDOFSI (* FLD (i_dr), * FLD (i_sr), 0); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - - return vpc; -#undef FLD -} - -/* addv3: addv3 $dr,$sr,$simm16 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,addv3) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -{ - SI temp0;BI temp1; - temp0 = ADDSI (* FLD (i_sr), FLD (f_simm16)); - temp1 = ADDOFSI (* FLD (i_sr), FLD (f_simm16), 0); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - - return vpc; -#undef FLD -} - -/* addx: addx $dr,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,addx) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = ADDCSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - temp1 = ADDCFSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - - return vpc; -#undef FLD -} - -/* bc8: bc.s $disp8 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,bc8) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (CPU (h_cond)) { - { - USI opval = FLD (i_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); - return vpc; -#undef FLD -} - -/* bc24: bc.l $disp24 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,bc24) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (CPU (h_cond)) { - { - USI opval = FLD (i_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); - return vpc; -#undef FLD -} - -/* beq: beq $src1,$src2,$disp16 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,beq) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (EQSI (* FLD (i_src1), * FLD (i_src2))) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); - return vpc; -#undef FLD -} - -/* beqz: beqz $src2,$disp16 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,beqz) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (EQSI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); - return vpc; -#undef FLD -} - -/* bgez: bgez $src2,$disp16 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,bgez) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (GESI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); - return vpc; -#undef FLD -} - -/* bgtz: bgtz $src2,$disp16 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,bgtz) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (GTSI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); - return vpc; -#undef FLD -} - -/* blez: blez $src2,$disp16 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,blez) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (LESI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); - return vpc; -#undef FLD -} - -/* bltz: bltz $src2,$disp16 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,bltz) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (LTSI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); - return vpc; -#undef FLD -} - -/* bnez: bnez $src2,$disp16 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,bnez) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); - return vpc; -#undef FLD -} - -/* bl8: bl.s $disp8 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,bl8) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - SI opval = ADDSI (ANDSI (pc, -4), 4); - CPU (h_gr[((UINT) 14)]) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - SEM_BRANCH_FINI (vpc); - return vpc; -#undef FLD -} - -/* bl24: bl.l $disp24 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,bl24) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -{ - { - SI opval = ADDSI (pc, 4); - CPU (h_gr[((UINT) 14)]) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - SEM_BRANCH_FINI (vpc); - return vpc; -#undef FLD -} - -/* bnc8: bnc.s $disp8 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,bnc8) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (NOTBI (CPU (h_cond))) { - { - USI opval = FLD (i_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); - return vpc; -#undef FLD -} - -/* bnc24: bnc.l $disp24 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,bnc24) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NOTBI (CPU (h_cond))) { - { - USI opval = FLD (i_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); - return vpc; -#undef FLD -} - -/* bne: bne $src1,$src2,$disp16 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,bne) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_beq.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_src1), * FLD (i_src2))) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); - return vpc; -#undef FLD -} - -/* bra8: bra.s $disp8 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,bra8) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl8.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - USI opval = FLD (i_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - - SEM_BRANCH_FINI (vpc); - return vpc; -#undef FLD -} - -/* bra24: bra.l $disp24 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,bra24) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bl24.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - USI opval = FLD (i_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - - SEM_BRANCH_FINI (vpc); - return vpc; -#undef FLD -} - -/* cmp: cmp $src1,$src2 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,cmp) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = LTSI (* FLD (i_src1), * FLD (i_src2)); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* cmpi: cmpi $src2,$simm16 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,cmpi) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - BI opval = LTSI (* FLD (i_src2), FLD (f_simm16)); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* cmpu: cmpu $src1,$src2 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,cmpu) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = LTUSI (* FLD (i_src1), * FLD (i_src2)); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* cmpui: cmpui $src2,$simm16 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,cmpui) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - BI opval = LTUSI (* FLD (i_src2), FLD (f_simm16)); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* div: div $dr,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,div) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = DIVSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; - return vpc; -#undef FLD -} - -/* divu: divu $dr,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,divu) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = UDIVSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; - return vpc; -#undef FLD -} - -/* rem: rem $dr,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,rem) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = MODSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; - return vpc; -#undef FLD -} - -/* remu: remu $dr,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,remu) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = UMODSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; - return vpc; -#undef FLD -} - -/* jl: jl $sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,jl) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_jl.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;USI temp1; - temp0 = ADDSI (ANDSI (pc, -4), 4); - temp1 = ANDSI (* FLD (i_sr), -4); - { - SI opval = temp0; - CPU (h_gr[((UINT) 14)]) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = temp1; - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - SEM_BRANCH_FINI (vpc); - return vpc; -#undef FLD -} - -/* jmp: jmp $sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,jmp) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_jl.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - USI opval = ANDSI (* FLD (i_sr), -4); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - - SEM_BRANCH_FINI (vpc); - return vpc; -#undef FLD -} - -/* ld: ld $dr,@$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,ld) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = GETMEMSI (current_cpu, pc, * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* ld-d: ld $dr,@($slo16,$sr) */ - -static SEM_PC -SEM_FN_NAME (m32rbf,ld_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = GETMEMSI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* ldb: ldb $dr,@$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,ldb) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = EXTQISI (GETMEMQI (current_cpu, pc, * FLD (i_sr))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* ldb-d: ldb $dr,@($slo16,$sr) */ - -static SEM_PC -SEM_FN_NAME (m32rbf,ldb_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = EXTQISI (GETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* ldh: ldh $dr,@$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,ldh) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = EXTHISI (GETMEMHI (current_cpu, pc, * FLD (i_sr))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* ldh-d: ldh $dr,@($slo16,$sr) */ - -static SEM_PC -SEM_FN_NAME (m32rbf,ldh_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = EXTHISI (GETMEMHI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* ldub: ldub $dr,@$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,ldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ZEXTQISI (GETMEMQI (current_cpu, pc, * FLD (i_sr))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* ldub-d: ldub $dr,@($slo16,$sr) */ - -static SEM_PC -SEM_FN_NAME (m32rbf,ldub_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ZEXTQISI (GETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* lduh: lduh $dr,@$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,lduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ZEXTHISI (GETMEMHI (current_cpu, pc, * FLD (i_sr))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* lduh-d: lduh $dr,@($slo16,$sr) */ - -static SEM_PC -SEM_FN_NAME (m32rbf,lduh_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ZEXTHISI (GETMEMHI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* ld-plus: ld $dr,@$sr+ */ - -static SEM_PC -SEM_FN_NAME (m32rbf,ld_plus) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;SI temp1; - temp0 = GETMEMSI (current_cpu, pc, * FLD (i_sr)); - temp1 = ADDSI (* FLD (i_sr), 4); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - SI opval = temp1; - * FLD (i_sr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - return vpc; -#undef FLD -} - -/* ld24: ld24 $dr,$uimm24 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,ld24) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld24.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = FLD (i_uimm24); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* ldi8: ldi8 $dr,$simm8 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,ldi8) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_addi.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = FLD (f_simm8); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* ldi16: ldi16 $dr,$hash$slo16 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,ldi16) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = FLD (f_simm16); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* lock: lock $dr,@$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,lock) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - BI opval = 1; - CPU (h_lock) = opval; - TRACE_RESULT (current_cpu, abuf, "lock", 'x', opval); - } - { - SI opval = GETMEMSI (current_cpu, pc, * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - return vpc; -#undef FLD -} - -/* machi: machi $src1,$src2 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,machi) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUM (), MULDI (EXTSIDI (ANDSI (* FLD (i_src1), 0xffff0000)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16))))), 8), 8); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - - return vpc; -#undef FLD -} - -/* maclo: maclo $src1,$src2 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,maclo) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUM (), MULDI (EXTSIDI (SLLSI (* FLD (i_src1), 16)), EXTHIDI (TRUNCSIHI (* FLD (i_src2))))), 8), 8); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - - return vpc; -#undef FLD -} - -/* macwhi: macwhi $src1,$src2 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,macwhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUM (), MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16))))), 8), 8); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - - return vpc; -#undef FLD -} - -/* macwlo: macwlo $src1,$src2 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,macwlo) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUM (), MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (* FLD (i_src2))))), 8), 8); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - - return vpc; -#undef FLD -} - -/* mul: mul $dr,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,mul) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = MULSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* mulhi: mulhi $src1,$src2 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,mulhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (MULDI (EXTSIDI (ANDSI (* FLD (i_src1), 0xffff0000)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16)))), 16), 16); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - - return vpc; -#undef FLD -} - -/* mullo: mullo $src1,$src2 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,mullo) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (MULDI (EXTSIDI (SLLSI (* FLD (i_src1), 16)), EXTHIDI (TRUNCSIHI (* FLD (i_src2)))), 16), 16); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - - return vpc; -#undef FLD -} - -/* mulwhi: mulwhi $src1,$src2 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,mulwhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16)))), 8), 8); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - - return vpc; -#undef FLD -} - -/* mulwlo: mulwlo $src1,$src2 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,mulwlo) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (* FLD (i_src2)))), 8), 8); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - - return vpc; -#undef FLD -} - -/* mv: mv $dr,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,mv) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = * FLD (i_sr); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* mvfachi: mvfachi $dr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,mvfachi) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_seth.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = TRUNCDISI (SRADI (GET_H_ACCUM (), 32)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* mvfaclo: mvfaclo $dr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,mvfaclo) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_seth.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = TRUNCDISI (GET_H_ACCUM ()); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* mvfacmi: mvfacmi $dr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,mvfacmi) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_seth.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = TRUNCDISI (SRADI (GET_H_ACCUM (), 16)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* mvfc: mvfc $dr,$scr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,mvfc) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = GET_H_CR (FLD (f_r2)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* mvtachi: mvtachi $src1 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,mvtachi) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ORDI (ANDDI (GET_H_ACCUM (), MAKEDI (0, 0xffffffff)), SLLDI (EXTSIDI (* FLD (i_src1)), 32)); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - - return vpc; -#undef FLD -} - -/* mvtaclo: mvtaclo $src1 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,mvtaclo) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ORDI (ANDDI (GET_H_ACCUM (), MAKEDI (0xffffffff, 0)), ZEXTSIDI (* FLD (i_src1))); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - - return vpc; -#undef FLD -} - -/* mvtc: mvtc $sr,$dcr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,mvtc) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - USI opval = * FLD (i_sr); - SET_H_CR (FLD (f_r1), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* neg: neg $dr,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,neg) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = NEGSI (* FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* nop: nop */ - -static SEM_PC -SEM_FN_NAME (m32rbf,nop) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -PROFILE_COUNT_FILLNOPS (current_cpu, abuf->addr); - - return vpc; -#undef FLD -} - -/* not: not $dr,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,not) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_ld_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = INVSI (* FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* rac: rac */ - -static SEM_PC -SEM_FN_NAME (m32rbf,rac) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - DI tmp_tmp1; - tmp_tmp1 = SLLDI (GET_H_ACCUM (), 1); - tmp_tmp1 = ADDDI (tmp_tmp1, MAKEDI (0, 32768)); - { - DI opval = (GTDI (tmp_tmp1, MAKEDI (32767, 0xffff0000))) ? (MAKEDI (32767, 0xffff0000)) : (LTDI (tmp_tmp1, MAKEDI (0xffff8000, 0))) ? (MAKEDI (0xffff8000, 0)) : (ANDDI (tmp_tmp1, MAKEDI (0xffffffff, 0xffff0000))); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } -} - - return vpc; -#undef FLD -} - -/* rach: rach */ - -static SEM_PC -SEM_FN_NAME (m32rbf,rach) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - DI tmp_tmp1; - tmp_tmp1 = ANDDI (GET_H_ACCUM (), MAKEDI (16777215, 0xffffffff)); -if (ANDIF (GEDI (tmp_tmp1, MAKEDI (16383, 0x80000000)), LEDI (tmp_tmp1, MAKEDI (8388607, 0xffffffff)))) { - tmp_tmp1 = MAKEDI (16383, 0x80000000); -} else { -if (ANDIF (GEDI (tmp_tmp1, MAKEDI (8388608, 0)), LEDI (tmp_tmp1, MAKEDI (16760832, 0)))) { - tmp_tmp1 = MAKEDI (16760832, 0); -} else { - tmp_tmp1 = ANDDI (ADDDI (GET_H_ACCUM (), MAKEDI (0, 1073741824)), MAKEDI (0xffffffff, 0x80000000)); -} -} - tmp_tmp1 = SLLDI (tmp_tmp1, 1); - { - DI opval = SRADI (SLLDI (tmp_tmp1, 7), 7); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } -} - - return vpc; -#undef FLD -} - -/* rte: rte */ - -static SEM_PC -SEM_FN_NAME (m32rbf,rte) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.fmt_empty.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - USI opval = ANDSI (GET_H_CR (((UINT) 6)), -4); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - { - USI opval = GET_H_CR (((UINT) 14)); - SET_H_CR (((UINT) 6), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - { - UQI opval = CPU (h_bpsw); - SET_H_PSW (opval); - TRACE_RESULT (current_cpu, abuf, "psw", 'x', opval); - } - { - UQI opval = CPU (h_bbpsw); - CPU (h_bpsw) = opval; - TRACE_RESULT (current_cpu, abuf, "bpsw", 'x', opval); - } -} - - SEM_BRANCH_FINI (vpc); - return vpc; -#undef FLD -} - -/* seth: seth $dr,$hash$hi16 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,seth) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_seth.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = SLLSI (FLD (f_hi16), 16); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* sll: sll $dr,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,sll) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SLLSI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* sll3: sll3 $dr,$sr,$simm16 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,sll3) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = SLLSI (* FLD (i_sr), ANDSI (FLD (f_simm16), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* slli: slli $dr,$uimm5 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,slli) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_slli.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SLLSI (* FLD (i_dr), FLD (f_uimm5)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* sra: sra $dr,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,sra) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRASI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* sra3: sra3 $dr,$sr,$simm16 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,sra3) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = SRASI (* FLD (i_sr), ANDSI (FLD (f_simm16), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* srai: srai $dr,$uimm5 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,srai) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_slli.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRASI (* FLD (i_dr), FLD (f_uimm5)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* srl: srl $dr,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,srl) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRLSI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* srl3: srl3 $dr,$sr,$simm16 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,srl3) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add3.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = SRLSI (* FLD (i_sr), ANDSI (FLD (f_simm16), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* srli: srli $dr,$uimm5 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,srli) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_slli.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRLSI (* FLD (i_dr), FLD (f_uimm5)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* st: st $src1,@$src2 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,st) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, pc, * FLD (i_src2), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* st-d: st $src1,@($slo16,$src2) */ - -static SEM_PC -SEM_FN_NAME (m32rbf,st_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, pc, ADDSI (* FLD (i_src2), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* stb: stb $src1,@$src2 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,stb) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - QI opval = * FLD (i_src1); - SETMEMQI (current_cpu, pc, * FLD (i_src2), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* stb-d: stb $src1,@($slo16,$src2) */ - -static SEM_PC -SEM_FN_NAME (m32rbf,stb_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - QI opval = * FLD (i_src1); - SETMEMQI (current_cpu, pc, ADDSI (* FLD (i_src2), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* sth: sth $src1,@$src2 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,sth) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - HI opval = * FLD (i_src1); - SETMEMHI (current_cpu, pc, * FLD (i_src2), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* sth-d: sth $src1,@($slo16,$src2) */ - -static SEM_PC -SEM_FN_NAME (m32rbf,sth_d) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_d.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - HI opval = * FLD (i_src1); - SETMEMHI (current_cpu, pc, ADDSI (* FLD (i_src2), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* st-plus: st $src1,@+$src2 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,st_plus) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI tmp_new_src2; - tmp_new_src2 = ADDSI (* FLD (i_src2), 4); - { - SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, pc, tmp_new_src2, opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - { - SI opval = tmp_new_src2; - * FLD (i_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - return vpc; -#undef FLD -} - -/* st-minus: st $src1,@-$src2 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,st_minus) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI tmp_new_src2; - tmp_new_src2 = SUBSI (* FLD (i_src2), 4); - { - SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, pc, tmp_new_src2, opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - { - SI opval = tmp_new_src2; - * FLD (i_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - return vpc; -#undef FLD -} - -/* sub: sub $dr,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,sub) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SUBSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* subv: subv $dr,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,subv) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = SUBSI (* FLD (i_dr), * FLD (i_sr)); - temp1 = SUBOFSI (* FLD (i_dr), * FLD (i_sr), 0); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - - return vpc; -#undef FLD -} - -/* subx: subx $dr,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,subx) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_add.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = SUBCSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - temp1 = SUBCFSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - - return vpc; -#undef FLD -} - -/* trap: trap $uimm4 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,trap) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_trap.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - USI opval = GET_H_CR (((UINT) 6)); - SET_H_CR (((UINT) 14), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - { - USI opval = ADDSI (pc, 4); - SET_H_CR (((UINT) 6), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - { - UQI opval = CPU (h_bpsw); - CPU (h_bbpsw) = opval; - TRACE_RESULT (current_cpu, abuf, "bbpsw", 'x', opval); - } - { - UQI opval = GET_H_PSW (); - CPU (h_bpsw) = opval; - TRACE_RESULT (current_cpu, abuf, "bpsw", 'x', opval); - } - { - UQI opval = ANDQI (GET_H_PSW (), 128); - SET_H_PSW (opval); - TRACE_RESULT (current_cpu, abuf, "psw", 'x', opval); - } - { - SI opval = m32r_trap (current_cpu, pc, FLD (f_uimm4)); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - SEM_BRANCH_FINI (vpc); - return vpc; -#undef FLD -} - -/* unlock: unlock $src1,@$src2 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,unlock) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_st_plus.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ -if (CPU (h_lock)) { - { - SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, pc, * FLD (i_src2), opval); - written |= (1 << 4); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } -} - { - BI opval = 0; - CPU (h_lock) = opval; - TRACE_RESULT (current_cpu, abuf, "lock", 'x', opval); - } -} - - abuf->written = written; - return vpc; -#undef FLD -} - -/* clrpsw: clrpsw $uimm8 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,clrpsw) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_clrpsw.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ANDSI (GET_H_CR (((UINT) 0)), ORSI (INVBI (FLD (f_uimm8)), 65280)); - SET_H_CR (((UINT) 0), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* setpsw: setpsw $uimm8 */ - -static SEM_PC -SEM_FN_NAME (m32rbf,setpsw) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_clrpsw.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = FLD (f_uimm8); - SET_H_CR (((UINT) 0), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* bset: bset $uimm3,@($slo16,$sr) */ - -static SEM_PC -SEM_FN_NAME (m32rbf,bset) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bset.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - QI opval = ORQI (GETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16))), SLLSI (1, SUBSI (7, FLD (f_uimm3)))); - SETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* bclr: bclr $uimm3,@($slo16,$sr) */ - -static SEM_PC -SEM_FN_NAME (m32rbf,bclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bset.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - QI opval = ANDQI (GETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16))), INVQI (SLLSI (1, SUBSI (7, FLD (f_uimm3))))); - SETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* btst: btst $uimm3,$sr */ - -static SEM_PC -SEM_FN_NAME (m32rbf,btst) (SIM_CPU *current_cpu, SEM_ARG sem_arg) -{ -#define FLD(f) abuf->fields.sfmt_bset.f - ARGBUF *abuf = SEM_ARGBUF (sem_arg); - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = ANDQI (SRLSI (* FLD (i_sr), SUBSI (7, FLD (f_uimm3))), 1); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - - return vpc; -#undef FLD -} - -/* Table of all semantic fns. */ - -static const struct sem_fn_desc sem_fns[] = { - { M32RBF_INSN_X_INVALID, SEM_FN_NAME (m32rbf,x_invalid) }, - { M32RBF_INSN_X_AFTER, SEM_FN_NAME (m32rbf,x_after) }, - { M32RBF_INSN_X_BEFORE, SEM_FN_NAME (m32rbf,x_before) }, - { M32RBF_INSN_X_CTI_CHAIN, SEM_FN_NAME (m32rbf,x_cti_chain) }, - { M32RBF_INSN_X_CHAIN, SEM_FN_NAME (m32rbf,x_chain) }, - { M32RBF_INSN_X_BEGIN, SEM_FN_NAME (m32rbf,x_begin) }, - { M32RBF_INSN_ADD, SEM_FN_NAME (m32rbf,add) }, - { M32RBF_INSN_ADD3, SEM_FN_NAME (m32rbf,add3) }, - { M32RBF_INSN_AND, SEM_FN_NAME (m32rbf,and) }, - { M32RBF_INSN_AND3, SEM_FN_NAME (m32rbf,and3) }, - { M32RBF_INSN_OR, SEM_FN_NAME (m32rbf,or) }, - { M32RBF_INSN_OR3, SEM_FN_NAME (m32rbf,or3) }, - { M32RBF_INSN_XOR, SEM_FN_NAME (m32rbf,xor) }, - { M32RBF_INSN_XOR3, SEM_FN_NAME (m32rbf,xor3) }, - { M32RBF_INSN_ADDI, SEM_FN_NAME (m32rbf,addi) }, - { M32RBF_INSN_ADDV, SEM_FN_NAME (m32rbf,addv) }, - { M32RBF_INSN_ADDV3, SEM_FN_NAME (m32rbf,addv3) }, - { M32RBF_INSN_ADDX, SEM_FN_NAME (m32rbf,addx) }, - { M32RBF_INSN_BC8, SEM_FN_NAME (m32rbf,bc8) }, - { M32RBF_INSN_BC24, SEM_FN_NAME (m32rbf,bc24) }, - { M32RBF_INSN_BEQ, SEM_FN_NAME (m32rbf,beq) }, - { M32RBF_INSN_BEQZ, SEM_FN_NAME (m32rbf,beqz) }, - { M32RBF_INSN_BGEZ, SEM_FN_NAME (m32rbf,bgez) }, - { M32RBF_INSN_BGTZ, SEM_FN_NAME (m32rbf,bgtz) }, - { M32RBF_INSN_BLEZ, SEM_FN_NAME (m32rbf,blez) }, - { M32RBF_INSN_BLTZ, SEM_FN_NAME (m32rbf,bltz) }, - { M32RBF_INSN_BNEZ, SEM_FN_NAME (m32rbf,bnez) }, - { M32RBF_INSN_BL8, SEM_FN_NAME (m32rbf,bl8) }, - { M32RBF_INSN_BL24, SEM_FN_NAME (m32rbf,bl24) }, - { M32RBF_INSN_BNC8, SEM_FN_NAME (m32rbf,bnc8) }, - { M32RBF_INSN_BNC24, SEM_FN_NAME (m32rbf,bnc24) }, - { M32RBF_INSN_BNE, SEM_FN_NAME (m32rbf,bne) }, - { M32RBF_INSN_BRA8, SEM_FN_NAME (m32rbf,bra8) }, - { M32RBF_INSN_BRA24, SEM_FN_NAME (m32rbf,bra24) }, - { M32RBF_INSN_CMP, SEM_FN_NAME (m32rbf,cmp) }, - { M32RBF_INSN_CMPI, SEM_FN_NAME (m32rbf,cmpi) }, - { M32RBF_INSN_CMPU, SEM_FN_NAME (m32rbf,cmpu) }, - { M32RBF_INSN_CMPUI, SEM_FN_NAME (m32rbf,cmpui) }, - { M32RBF_INSN_DIV, SEM_FN_NAME (m32rbf,div) }, - { M32RBF_INSN_DIVU, SEM_FN_NAME (m32rbf,divu) }, - { M32RBF_INSN_REM, SEM_FN_NAME (m32rbf,rem) }, - { M32RBF_INSN_REMU, SEM_FN_NAME (m32rbf,remu) }, - { M32RBF_INSN_JL, SEM_FN_NAME (m32rbf,jl) }, - { M32RBF_INSN_JMP, SEM_FN_NAME (m32rbf,jmp) }, - { M32RBF_INSN_LD, SEM_FN_NAME (m32rbf,ld) }, - { M32RBF_INSN_LD_D, SEM_FN_NAME (m32rbf,ld_d) }, - { M32RBF_INSN_LDB, SEM_FN_NAME (m32rbf,ldb) }, - { M32RBF_INSN_LDB_D, SEM_FN_NAME (m32rbf,ldb_d) }, - { M32RBF_INSN_LDH, SEM_FN_NAME (m32rbf,ldh) }, - { M32RBF_INSN_LDH_D, SEM_FN_NAME (m32rbf,ldh_d) }, - { M32RBF_INSN_LDUB, SEM_FN_NAME (m32rbf,ldub) }, - { M32RBF_INSN_LDUB_D, SEM_FN_NAME (m32rbf,ldub_d) }, - { M32RBF_INSN_LDUH, SEM_FN_NAME (m32rbf,lduh) }, - { M32RBF_INSN_LDUH_D, SEM_FN_NAME (m32rbf,lduh_d) }, - { M32RBF_INSN_LD_PLUS, SEM_FN_NAME (m32rbf,ld_plus) }, - { M32RBF_INSN_LD24, SEM_FN_NAME (m32rbf,ld24) }, - { M32RBF_INSN_LDI8, SEM_FN_NAME (m32rbf,ldi8) }, - { M32RBF_INSN_LDI16, SEM_FN_NAME (m32rbf,ldi16) }, - { M32RBF_INSN_LOCK, SEM_FN_NAME (m32rbf,lock) }, - { M32RBF_INSN_MACHI, SEM_FN_NAME (m32rbf,machi) }, - { M32RBF_INSN_MACLO, SEM_FN_NAME (m32rbf,maclo) }, - { M32RBF_INSN_MACWHI, SEM_FN_NAME (m32rbf,macwhi) }, - { M32RBF_INSN_MACWLO, SEM_FN_NAME (m32rbf,macwlo) }, - { M32RBF_INSN_MUL, SEM_FN_NAME (m32rbf,mul) }, - { M32RBF_INSN_MULHI, SEM_FN_NAME (m32rbf,mulhi) }, - { M32RBF_INSN_MULLO, SEM_FN_NAME (m32rbf,mullo) }, - { M32RBF_INSN_MULWHI, SEM_FN_NAME (m32rbf,mulwhi) }, - { M32RBF_INSN_MULWLO, SEM_FN_NAME (m32rbf,mulwlo) }, - { M32RBF_INSN_MV, SEM_FN_NAME (m32rbf,mv) }, - { M32RBF_INSN_MVFACHI, SEM_FN_NAME (m32rbf,mvfachi) }, - { M32RBF_INSN_MVFACLO, SEM_FN_NAME (m32rbf,mvfaclo) }, - { M32RBF_INSN_MVFACMI, SEM_FN_NAME (m32rbf,mvfacmi) }, - { M32RBF_INSN_MVFC, SEM_FN_NAME (m32rbf,mvfc) }, - { M32RBF_INSN_MVTACHI, SEM_FN_NAME (m32rbf,mvtachi) }, - { M32RBF_INSN_MVTACLO, SEM_FN_NAME (m32rbf,mvtaclo) }, - { M32RBF_INSN_MVTC, SEM_FN_NAME (m32rbf,mvtc) }, - { M32RBF_INSN_NEG, SEM_FN_NAME (m32rbf,neg) }, - { M32RBF_INSN_NOP, SEM_FN_NAME (m32rbf,nop) }, - { M32RBF_INSN_NOT, SEM_FN_NAME (m32rbf,not) }, - { M32RBF_INSN_RAC, SEM_FN_NAME (m32rbf,rac) }, - { M32RBF_INSN_RACH, SEM_FN_NAME (m32rbf,rach) }, - { M32RBF_INSN_RTE, SEM_FN_NAME (m32rbf,rte) }, - { M32RBF_INSN_SETH, SEM_FN_NAME (m32rbf,seth) }, - { M32RBF_INSN_SLL, SEM_FN_NAME (m32rbf,sll) }, - { M32RBF_INSN_SLL3, SEM_FN_NAME (m32rbf,sll3) }, - { M32RBF_INSN_SLLI, SEM_FN_NAME (m32rbf,slli) }, - { M32RBF_INSN_SRA, SEM_FN_NAME (m32rbf,sra) }, - { M32RBF_INSN_SRA3, SEM_FN_NAME (m32rbf,sra3) }, - { M32RBF_INSN_SRAI, SEM_FN_NAME (m32rbf,srai) }, - { M32RBF_INSN_SRL, SEM_FN_NAME (m32rbf,srl) }, - { M32RBF_INSN_SRL3, SEM_FN_NAME (m32rbf,srl3) }, - { M32RBF_INSN_SRLI, SEM_FN_NAME (m32rbf,srli) }, - { M32RBF_INSN_ST, SEM_FN_NAME (m32rbf,st) }, - { M32RBF_INSN_ST_D, SEM_FN_NAME (m32rbf,st_d) }, - { M32RBF_INSN_STB, SEM_FN_NAME (m32rbf,stb) }, - { M32RBF_INSN_STB_D, SEM_FN_NAME (m32rbf,stb_d) }, - { M32RBF_INSN_STH, SEM_FN_NAME (m32rbf,sth) }, - { M32RBF_INSN_STH_D, SEM_FN_NAME (m32rbf,sth_d) }, - { M32RBF_INSN_ST_PLUS, SEM_FN_NAME (m32rbf,st_plus) }, - { M32RBF_INSN_ST_MINUS, SEM_FN_NAME (m32rbf,st_minus) }, - { M32RBF_INSN_SUB, SEM_FN_NAME (m32rbf,sub) }, - { M32RBF_INSN_SUBV, SEM_FN_NAME (m32rbf,subv) }, - { M32RBF_INSN_SUBX, SEM_FN_NAME (m32rbf,subx) }, - { M32RBF_INSN_TRAP, SEM_FN_NAME (m32rbf,trap) }, - { M32RBF_INSN_UNLOCK, SEM_FN_NAME (m32rbf,unlock) }, - { M32RBF_INSN_CLRPSW, SEM_FN_NAME (m32rbf,clrpsw) }, - { M32RBF_INSN_SETPSW, SEM_FN_NAME (m32rbf,setpsw) }, - { M32RBF_INSN_BSET, SEM_FN_NAME (m32rbf,bset) }, - { M32RBF_INSN_BCLR, SEM_FN_NAME (m32rbf,bclr) }, - { M32RBF_INSN_BTST, SEM_FN_NAME (m32rbf,btst) }, - { 0, 0 } -}; - -/* Add the semantic fns to IDESC_TABLE. */ - -void -SEM_FN_NAME (m32rbf,init_idesc_table) (SIM_CPU *current_cpu) -{ - IDESC *idesc_table = CPU_IDESC (current_cpu); - const struct sem_fn_desc *sf; - int mach_num = MACH_NUM (CPU_MACH (current_cpu)); - - for (sf = &sem_fns[0]; sf->fn != 0; ++sf) - { - const CGEN_INSN *insn = idesc_table[sf->index].idata; - int valid_p = (CGEN_INSN_VIRTUAL_P (insn) - || CGEN_INSN_MACH_HAS_P (insn, mach_num)); -#if FAST_P - if (valid_p) - idesc_table[sf->index].sem_fast = sf->fn; - else - idesc_table[sf->index].sem_fast = SEM_FN_NAME (m32rbf,x_invalid); -#else - if (valid_p) - idesc_table[sf->index].sem_full = sf->fn; - else - idesc_table[sf->index].sem_full = SEM_FN_NAME (m32rbf,x_invalid); -#endif - } -} - diff --git a/sim/m32r/sem2-switch.c b/sim/m32r/sem2-switch.c deleted file mode 100644 index 82af4cd..0000000 --- a/sim/m32r/sem2-switch.c +++ /dev/null @@ -1,6822 +0,0 @@ -/* Simulator instruction semantics for m32r2f. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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. - -*/ - -#ifdef DEFINE_LABELS - - /* The labels have the case they have because the enum of insn types - is all uppercase and in the non-stdc case the insn symbol is built - into the enum name. */ - - static struct { - int index; - void *label; - } labels[] = { - { M32R2F_INSN_X_INVALID, && case_sem_INSN_X_INVALID }, - { M32R2F_INSN_X_AFTER, && case_sem_INSN_X_AFTER }, - { M32R2F_INSN_X_BEFORE, && case_sem_INSN_X_BEFORE }, - { M32R2F_INSN_X_CTI_CHAIN, && case_sem_INSN_X_CTI_CHAIN }, - { M32R2F_INSN_X_CHAIN, && case_sem_INSN_X_CHAIN }, - { M32R2F_INSN_X_BEGIN, && case_sem_INSN_X_BEGIN }, - { M32R2F_INSN_ADD, && case_sem_INSN_ADD }, - { M32R2F_INSN_ADD3, && case_sem_INSN_ADD3 }, - { M32R2F_INSN_AND, && case_sem_INSN_AND }, - { M32R2F_INSN_AND3, && case_sem_INSN_AND3 }, - { M32R2F_INSN_OR, && case_sem_INSN_OR }, - { M32R2F_INSN_OR3, && case_sem_INSN_OR3 }, - { M32R2F_INSN_XOR, && case_sem_INSN_XOR }, - { M32R2F_INSN_XOR3, && case_sem_INSN_XOR3 }, - { M32R2F_INSN_ADDI, && case_sem_INSN_ADDI }, - { M32R2F_INSN_ADDV, && case_sem_INSN_ADDV }, - { M32R2F_INSN_ADDV3, && case_sem_INSN_ADDV3 }, - { M32R2F_INSN_ADDX, && case_sem_INSN_ADDX }, - { M32R2F_INSN_BC8, && case_sem_INSN_BC8 }, - { M32R2F_INSN_BC24, && case_sem_INSN_BC24 }, - { M32R2F_INSN_BEQ, && case_sem_INSN_BEQ }, - { M32R2F_INSN_BEQZ, && case_sem_INSN_BEQZ }, - { M32R2F_INSN_BGEZ, && case_sem_INSN_BGEZ }, - { M32R2F_INSN_BGTZ, && case_sem_INSN_BGTZ }, - { M32R2F_INSN_BLEZ, && case_sem_INSN_BLEZ }, - { M32R2F_INSN_BLTZ, && case_sem_INSN_BLTZ }, - { M32R2F_INSN_BNEZ, && case_sem_INSN_BNEZ }, - { M32R2F_INSN_BL8, && case_sem_INSN_BL8 }, - { M32R2F_INSN_BL24, && case_sem_INSN_BL24 }, - { M32R2F_INSN_BCL8, && case_sem_INSN_BCL8 }, - { M32R2F_INSN_BCL24, && case_sem_INSN_BCL24 }, - { M32R2F_INSN_BNC8, && case_sem_INSN_BNC8 }, - { M32R2F_INSN_BNC24, && case_sem_INSN_BNC24 }, - { M32R2F_INSN_BNE, && case_sem_INSN_BNE }, - { M32R2F_INSN_BRA8, && case_sem_INSN_BRA8 }, - { M32R2F_INSN_BRA24, && case_sem_INSN_BRA24 }, - { M32R2F_INSN_BNCL8, && case_sem_INSN_BNCL8 }, - { M32R2F_INSN_BNCL24, && case_sem_INSN_BNCL24 }, - { M32R2F_INSN_CMP, && case_sem_INSN_CMP }, - { M32R2F_INSN_CMPI, && case_sem_INSN_CMPI }, - { M32R2F_INSN_CMPU, && case_sem_INSN_CMPU }, - { M32R2F_INSN_CMPUI, && case_sem_INSN_CMPUI }, - { M32R2F_INSN_CMPEQ, && case_sem_INSN_CMPEQ }, - { M32R2F_INSN_CMPZ, && case_sem_INSN_CMPZ }, - { M32R2F_INSN_DIV, && case_sem_INSN_DIV }, - { M32R2F_INSN_DIVU, && case_sem_INSN_DIVU }, - { M32R2F_INSN_REM, && case_sem_INSN_REM }, - { M32R2F_INSN_REMU, && case_sem_INSN_REMU }, - { M32R2F_INSN_REMH, && case_sem_INSN_REMH }, - { M32R2F_INSN_REMUH, && case_sem_INSN_REMUH }, - { M32R2F_INSN_REMB, && case_sem_INSN_REMB }, - { M32R2F_INSN_REMUB, && case_sem_INSN_REMUB }, - { M32R2F_INSN_DIVUH, && case_sem_INSN_DIVUH }, - { M32R2F_INSN_DIVB, && case_sem_INSN_DIVB }, - { M32R2F_INSN_DIVUB, && case_sem_INSN_DIVUB }, - { M32R2F_INSN_DIVH, && case_sem_INSN_DIVH }, - { M32R2F_INSN_JC, && case_sem_INSN_JC }, - { M32R2F_INSN_JNC, && case_sem_INSN_JNC }, - { M32R2F_INSN_JL, && case_sem_INSN_JL }, - { M32R2F_INSN_JMP, && case_sem_INSN_JMP }, - { M32R2F_INSN_LD, && case_sem_INSN_LD }, - { M32R2F_INSN_LD_D, && case_sem_INSN_LD_D }, - { M32R2F_INSN_LDB, && case_sem_INSN_LDB }, - { M32R2F_INSN_LDB_D, && case_sem_INSN_LDB_D }, - { M32R2F_INSN_LDH, && case_sem_INSN_LDH }, - { M32R2F_INSN_LDH_D, && case_sem_INSN_LDH_D }, - { M32R2F_INSN_LDUB, && case_sem_INSN_LDUB }, - { M32R2F_INSN_LDUB_D, && case_sem_INSN_LDUB_D }, - { M32R2F_INSN_LDUH, && case_sem_INSN_LDUH }, - { M32R2F_INSN_LDUH_D, && case_sem_INSN_LDUH_D }, - { M32R2F_INSN_LD_PLUS, && case_sem_INSN_LD_PLUS }, - { M32R2F_INSN_LD24, && case_sem_INSN_LD24 }, - { M32R2F_INSN_LDI8, && case_sem_INSN_LDI8 }, - { M32R2F_INSN_LDI16, && case_sem_INSN_LDI16 }, - { M32R2F_INSN_LOCK, && case_sem_INSN_LOCK }, - { M32R2F_INSN_MACHI_A, && case_sem_INSN_MACHI_A }, - { M32R2F_INSN_MACLO_A, && case_sem_INSN_MACLO_A }, - { M32R2F_INSN_MACWHI_A, && case_sem_INSN_MACWHI_A }, - { M32R2F_INSN_MACWLO_A, && case_sem_INSN_MACWLO_A }, - { M32R2F_INSN_MUL, && case_sem_INSN_MUL }, - { M32R2F_INSN_MULHI_A, && case_sem_INSN_MULHI_A }, - { M32R2F_INSN_MULLO_A, && case_sem_INSN_MULLO_A }, - { M32R2F_INSN_MULWHI_A, && case_sem_INSN_MULWHI_A }, - { M32R2F_INSN_MULWLO_A, && case_sem_INSN_MULWLO_A }, - { M32R2F_INSN_MV, && case_sem_INSN_MV }, - { M32R2F_INSN_MVFACHI_A, && case_sem_INSN_MVFACHI_A }, - { M32R2F_INSN_MVFACLO_A, && case_sem_INSN_MVFACLO_A }, - { M32R2F_INSN_MVFACMI_A, && case_sem_INSN_MVFACMI_A }, - { M32R2F_INSN_MVFC, && case_sem_INSN_MVFC }, - { M32R2F_INSN_MVTACHI_A, && case_sem_INSN_MVTACHI_A }, - { M32R2F_INSN_MVTACLO_A, && case_sem_INSN_MVTACLO_A }, - { M32R2F_INSN_MVTC, && case_sem_INSN_MVTC }, - { M32R2F_INSN_NEG, && case_sem_INSN_NEG }, - { M32R2F_INSN_NOP, && case_sem_INSN_NOP }, - { M32R2F_INSN_NOT, && case_sem_INSN_NOT }, - { M32R2F_INSN_RAC_DSI, && case_sem_INSN_RAC_DSI }, - { M32R2F_INSN_RACH_DSI, && case_sem_INSN_RACH_DSI }, - { M32R2F_INSN_RTE, && case_sem_INSN_RTE }, - { M32R2F_INSN_SETH, && case_sem_INSN_SETH }, - { M32R2F_INSN_SLL, && case_sem_INSN_SLL }, - { M32R2F_INSN_SLL3, && case_sem_INSN_SLL3 }, - { M32R2F_INSN_SLLI, && case_sem_INSN_SLLI }, - { M32R2F_INSN_SRA, && case_sem_INSN_SRA }, - { M32R2F_INSN_SRA3, && case_sem_INSN_SRA3 }, - { M32R2F_INSN_SRAI, && case_sem_INSN_SRAI }, - { M32R2F_INSN_SRL, && case_sem_INSN_SRL }, - { M32R2F_INSN_SRL3, && case_sem_INSN_SRL3 }, - { M32R2F_INSN_SRLI, && case_sem_INSN_SRLI }, - { M32R2F_INSN_ST, && case_sem_INSN_ST }, - { M32R2F_INSN_ST_D, && case_sem_INSN_ST_D }, - { M32R2F_INSN_STB, && case_sem_INSN_STB }, - { M32R2F_INSN_STB_D, && case_sem_INSN_STB_D }, - { M32R2F_INSN_STH, && case_sem_INSN_STH }, - { M32R2F_INSN_STH_D, && case_sem_INSN_STH_D }, - { M32R2F_INSN_ST_PLUS, && case_sem_INSN_ST_PLUS }, - { M32R2F_INSN_STH_PLUS, && case_sem_INSN_STH_PLUS }, - { M32R2F_INSN_STB_PLUS, && case_sem_INSN_STB_PLUS }, - { M32R2F_INSN_ST_MINUS, && case_sem_INSN_ST_MINUS }, - { M32R2F_INSN_SUB, && case_sem_INSN_SUB }, - { M32R2F_INSN_SUBV, && case_sem_INSN_SUBV }, - { M32R2F_INSN_SUBX, && case_sem_INSN_SUBX }, - { M32R2F_INSN_TRAP, && case_sem_INSN_TRAP }, - { M32R2F_INSN_UNLOCK, && case_sem_INSN_UNLOCK }, - { M32R2F_INSN_SATB, && case_sem_INSN_SATB }, - { M32R2F_INSN_SATH, && case_sem_INSN_SATH }, - { M32R2F_INSN_SAT, && case_sem_INSN_SAT }, - { M32R2F_INSN_PCMPBZ, && case_sem_INSN_PCMPBZ }, - { M32R2F_INSN_SADD, && case_sem_INSN_SADD }, - { M32R2F_INSN_MACWU1, && case_sem_INSN_MACWU1 }, - { M32R2F_INSN_MSBLO, && case_sem_INSN_MSBLO }, - { M32R2F_INSN_MULWU1, && case_sem_INSN_MULWU1 }, - { M32R2F_INSN_MACLH1, && case_sem_INSN_MACLH1 }, - { M32R2F_INSN_SC, && case_sem_INSN_SC }, - { M32R2F_INSN_SNC, && case_sem_INSN_SNC }, - { M32R2F_INSN_CLRPSW, && case_sem_INSN_CLRPSW }, - { M32R2F_INSN_SETPSW, && case_sem_INSN_SETPSW }, - { M32R2F_INSN_BSET, && case_sem_INSN_BSET }, - { M32R2F_INSN_BCLR, && case_sem_INSN_BCLR }, - { M32R2F_INSN_BTST, && case_sem_INSN_BTST }, - { M32R2F_INSN_PAR_ADD, && case_sem_INSN_PAR_ADD }, - { M32R2F_INSN_WRITE_ADD, && case_sem_INSN_WRITE_ADD }, - { M32R2F_INSN_PAR_AND, && case_sem_INSN_PAR_AND }, - { M32R2F_INSN_WRITE_AND, && case_sem_INSN_WRITE_AND }, - { M32R2F_INSN_PAR_OR, && case_sem_INSN_PAR_OR }, - { M32R2F_INSN_WRITE_OR, && case_sem_INSN_WRITE_OR }, - { M32R2F_INSN_PAR_XOR, && case_sem_INSN_PAR_XOR }, - { M32R2F_INSN_WRITE_XOR, && case_sem_INSN_WRITE_XOR }, - { M32R2F_INSN_PAR_ADDI, && case_sem_INSN_PAR_ADDI }, - { M32R2F_INSN_WRITE_ADDI, && case_sem_INSN_WRITE_ADDI }, - { M32R2F_INSN_PAR_ADDV, && case_sem_INSN_PAR_ADDV }, - { M32R2F_INSN_WRITE_ADDV, && case_sem_INSN_WRITE_ADDV }, - { M32R2F_INSN_PAR_ADDX, && case_sem_INSN_PAR_ADDX }, - { M32R2F_INSN_WRITE_ADDX, && case_sem_INSN_WRITE_ADDX }, - { M32R2F_INSN_PAR_BC8, && case_sem_INSN_PAR_BC8 }, - { M32R2F_INSN_WRITE_BC8, && case_sem_INSN_WRITE_BC8 }, - { M32R2F_INSN_PAR_BL8, && case_sem_INSN_PAR_BL8 }, - { M32R2F_INSN_WRITE_BL8, && case_sem_INSN_WRITE_BL8 }, - { M32R2F_INSN_PAR_BCL8, && case_sem_INSN_PAR_BCL8 }, - { M32R2F_INSN_WRITE_BCL8, && case_sem_INSN_WRITE_BCL8 }, - { M32R2F_INSN_PAR_BNC8, && case_sem_INSN_PAR_BNC8 }, - { M32R2F_INSN_WRITE_BNC8, && case_sem_INSN_WRITE_BNC8 }, - { M32R2F_INSN_PAR_BRA8, && case_sem_INSN_PAR_BRA8 }, - { M32R2F_INSN_WRITE_BRA8, && case_sem_INSN_WRITE_BRA8 }, - { M32R2F_INSN_PAR_BNCL8, && case_sem_INSN_PAR_BNCL8 }, - { M32R2F_INSN_WRITE_BNCL8, && case_sem_INSN_WRITE_BNCL8 }, - { M32R2F_INSN_PAR_CMP, && case_sem_INSN_PAR_CMP }, - { M32R2F_INSN_WRITE_CMP, && case_sem_INSN_WRITE_CMP }, - { M32R2F_INSN_PAR_CMPU, && case_sem_INSN_PAR_CMPU }, - { M32R2F_INSN_WRITE_CMPU, && case_sem_INSN_WRITE_CMPU }, - { M32R2F_INSN_PAR_CMPEQ, && case_sem_INSN_PAR_CMPEQ }, - { M32R2F_INSN_WRITE_CMPEQ, && case_sem_INSN_WRITE_CMPEQ }, - { M32R2F_INSN_PAR_CMPZ, && case_sem_INSN_PAR_CMPZ }, - { M32R2F_INSN_WRITE_CMPZ, && case_sem_INSN_WRITE_CMPZ }, - { M32R2F_INSN_PAR_JC, && case_sem_INSN_PAR_JC }, - { M32R2F_INSN_WRITE_JC, && case_sem_INSN_WRITE_JC }, - { M32R2F_INSN_PAR_JNC, && case_sem_INSN_PAR_JNC }, - { M32R2F_INSN_WRITE_JNC, && case_sem_INSN_WRITE_JNC }, - { M32R2F_INSN_PAR_JL, && case_sem_INSN_PAR_JL }, - { M32R2F_INSN_WRITE_JL, && case_sem_INSN_WRITE_JL }, - { M32R2F_INSN_PAR_JMP, && case_sem_INSN_PAR_JMP }, - { M32R2F_INSN_WRITE_JMP, && case_sem_INSN_WRITE_JMP }, - { M32R2F_INSN_PAR_LD, && case_sem_INSN_PAR_LD }, - { M32R2F_INSN_WRITE_LD, && case_sem_INSN_WRITE_LD }, - { M32R2F_INSN_PAR_LDB, && case_sem_INSN_PAR_LDB }, - { M32R2F_INSN_WRITE_LDB, && case_sem_INSN_WRITE_LDB }, - { M32R2F_INSN_PAR_LDH, && case_sem_INSN_PAR_LDH }, - { M32R2F_INSN_WRITE_LDH, && case_sem_INSN_WRITE_LDH }, - { M32R2F_INSN_PAR_LDUB, && case_sem_INSN_PAR_LDUB }, - { M32R2F_INSN_WRITE_LDUB, && case_sem_INSN_WRITE_LDUB }, - { M32R2F_INSN_PAR_LDUH, && case_sem_INSN_PAR_LDUH }, - { M32R2F_INSN_WRITE_LDUH, && case_sem_INSN_WRITE_LDUH }, - { M32R2F_INSN_PAR_LD_PLUS, && case_sem_INSN_PAR_LD_PLUS }, - { M32R2F_INSN_WRITE_LD_PLUS, && case_sem_INSN_WRITE_LD_PLUS }, - { M32R2F_INSN_PAR_LDI8, && case_sem_INSN_PAR_LDI8 }, - { M32R2F_INSN_WRITE_LDI8, && case_sem_INSN_WRITE_LDI8 }, - { M32R2F_INSN_PAR_LOCK, && case_sem_INSN_PAR_LOCK }, - { M32R2F_INSN_WRITE_LOCK, && case_sem_INSN_WRITE_LOCK }, - { M32R2F_INSN_PAR_MACHI_A, && case_sem_INSN_PAR_MACHI_A }, - { M32R2F_INSN_WRITE_MACHI_A, && case_sem_INSN_WRITE_MACHI_A }, - { M32R2F_INSN_PAR_MACLO_A, && case_sem_INSN_PAR_MACLO_A }, - { M32R2F_INSN_WRITE_MACLO_A, && case_sem_INSN_WRITE_MACLO_A }, - { M32R2F_INSN_PAR_MACWHI_A, && case_sem_INSN_PAR_MACWHI_A }, - { M32R2F_INSN_WRITE_MACWHI_A, && case_sem_INSN_WRITE_MACWHI_A }, - { M32R2F_INSN_PAR_MACWLO_A, && case_sem_INSN_PAR_MACWLO_A }, - { M32R2F_INSN_WRITE_MACWLO_A, && case_sem_INSN_WRITE_MACWLO_A }, - { M32R2F_INSN_PAR_MUL, && case_sem_INSN_PAR_MUL }, - { M32R2F_INSN_WRITE_MUL, && case_sem_INSN_WRITE_MUL }, - { M32R2F_INSN_PAR_MULHI_A, && case_sem_INSN_PAR_MULHI_A }, - { M32R2F_INSN_WRITE_MULHI_A, && case_sem_INSN_WRITE_MULHI_A }, - { M32R2F_INSN_PAR_MULLO_A, && case_sem_INSN_PAR_MULLO_A }, - { M32R2F_INSN_WRITE_MULLO_A, && case_sem_INSN_WRITE_MULLO_A }, - { M32R2F_INSN_PAR_MULWHI_A, && case_sem_INSN_PAR_MULWHI_A }, - { M32R2F_INSN_WRITE_MULWHI_A, && case_sem_INSN_WRITE_MULWHI_A }, - { M32R2F_INSN_PAR_MULWLO_A, && case_sem_INSN_PAR_MULWLO_A }, - { M32R2F_INSN_WRITE_MULWLO_A, && case_sem_INSN_WRITE_MULWLO_A }, - { M32R2F_INSN_PAR_MV, && case_sem_INSN_PAR_MV }, - { M32R2F_INSN_WRITE_MV, && case_sem_INSN_WRITE_MV }, - { M32R2F_INSN_PAR_MVFACHI_A, && case_sem_INSN_PAR_MVFACHI_A }, - { M32R2F_INSN_WRITE_MVFACHI_A, && case_sem_INSN_WRITE_MVFACHI_A }, - { M32R2F_INSN_PAR_MVFACLO_A, && case_sem_INSN_PAR_MVFACLO_A }, - { M32R2F_INSN_WRITE_MVFACLO_A, && case_sem_INSN_WRITE_MVFACLO_A }, - { M32R2F_INSN_PAR_MVFACMI_A, && case_sem_INSN_PAR_MVFACMI_A }, - { M32R2F_INSN_WRITE_MVFACMI_A, && case_sem_INSN_WRITE_MVFACMI_A }, - { M32R2F_INSN_PAR_MVFC, && case_sem_INSN_PAR_MVFC }, - { M32R2F_INSN_WRITE_MVFC, && case_sem_INSN_WRITE_MVFC }, - { M32R2F_INSN_PAR_MVTACHI_A, && case_sem_INSN_PAR_MVTACHI_A }, - { M32R2F_INSN_WRITE_MVTACHI_A, && case_sem_INSN_WRITE_MVTACHI_A }, - { M32R2F_INSN_PAR_MVTACLO_A, && case_sem_INSN_PAR_MVTACLO_A }, - { M32R2F_INSN_WRITE_MVTACLO_A, && case_sem_INSN_WRITE_MVTACLO_A }, - { M32R2F_INSN_PAR_MVTC, && case_sem_INSN_PAR_MVTC }, - { M32R2F_INSN_WRITE_MVTC, && case_sem_INSN_WRITE_MVTC }, - { M32R2F_INSN_PAR_NEG, && case_sem_INSN_PAR_NEG }, - { M32R2F_INSN_WRITE_NEG, && case_sem_INSN_WRITE_NEG }, - { M32R2F_INSN_PAR_NOP, && case_sem_INSN_PAR_NOP }, - { M32R2F_INSN_WRITE_NOP, && case_sem_INSN_WRITE_NOP }, - { M32R2F_INSN_PAR_NOT, && case_sem_INSN_PAR_NOT }, - { M32R2F_INSN_WRITE_NOT, && case_sem_INSN_WRITE_NOT }, - { M32R2F_INSN_PAR_RAC_DSI, && case_sem_INSN_PAR_RAC_DSI }, - { M32R2F_INSN_WRITE_RAC_DSI, && case_sem_INSN_WRITE_RAC_DSI }, - { M32R2F_INSN_PAR_RACH_DSI, && case_sem_INSN_PAR_RACH_DSI }, - { M32R2F_INSN_WRITE_RACH_DSI, && case_sem_INSN_WRITE_RACH_DSI }, - { M32R2F_INSN_PAR_RTE, && case_sem_INSN_PAR_RTE }, - { M32R2F_INSN_WRITE_RTE, && case_sem_INSN_WRITE_RTE }, - { M32R2F_INSN_PAR_SLL, && case_sem_INSN_PAR_SLL }, - { M32R2F_INSN_WRITE_SLL, && case_sem_INSN_WRITE_SLL }, - { M32R2F_INSN_PAR_SLLI, && case_sem_INSN_PAR_SLLI }, - { M32R2F_INSN_WRITE_SLLI, && case_sem_INSN_WRITE_SLLI }, - { M32R2F_INSN_PAR_SRA, && case_sem_INSN_PAR_SRA }, - { M32R2F_INSN_WRITE_SRA, && case_sem_INSN_WRITE_SRA }, - { M32R2F_INSN_PAR_SRAI, && case_sem_INSN_PAR_SRAI }, - { M32R2F_INSN_WRITE_SRAI, && case_sem_INSN_WRITE_SRAI }, - { M32R2F_INSN_PAR_SRL, && case_sem_INSN_PAR_SRL }, - { M32R2F_INSN_WRITE_SRL, && case_sem_INSN_WRITE_SRL }, - { M32R2F_INSN_PAR_SRLI, && case_sem_INSN_PAR_SRLI }, - { M32R2F_INSN_WRITE_SRLI, && case_sem_INSN_WRITE_SRLI }, - { M32R2F_INSN_PAR_ST, && case_sem_INSN_PAR_ST }, - { M32R2F_INSN_WRITE_ST, && case_sem_INSN_WRITE_ST }, - { M32R2F_INSN_PAR_STB, && case_sem_INSN_PAR_STB }, - { M32R2F_INSN_WRITE_STB, && case_sem_INSN_WRITE_STB }, - { M32R2F_INSN_PAR_STH, && case_sem_INSN_PAR_STH }, - { M32R2F_INSN_WRITE_STH, && case_sem_INSN_WRITE_STH }, - { M32R2F_INSN_PAR_ST_PLUS, && case_sem_INSN_PAR_ST_PLUS }, - { M32R2F_INSN_WRITE_ST_PLUS, && case_sem_INSN_WRITE_ST_PLUS }, - { M32R2F_INSN_PAR_STH_PLUS, && case_sem_INSN_PAR_STH_PLUS }, - { M32R2F_INSN_WRITE_STH_PLUS, && case_sem_INSN_WRITE_STH_PLUS }, - { M32R2F_INSN_PAR_STB_PLUS, && case_sem_INSN_PAR_STB_PLUS }, - { M32R2F_INSN_WRITE_STB_PLUS, && case_sem_INSN_WRITE_STB_PLUS }, - { M32R2F_INSN_PAR_ST_MINUS, && case_sem_INSN_PAR_ST_MINUS }, - { M32R2F_INSN_WRITE_ST_MINUS, && case_sem_INSN_WRITE_ST_MINUS }, - { M32R2F_INSN_PAR_SUB, && case_sem_INSN_PAR_SUB }, - { M32R2F_INSN_WRITE_SUB, && case_sem_INSN_WRITE_SUB }, - { M32R2F_INSN_PAR_SUBV, && case_sem_INSN_PAR_SUBV }, - { M32R2F_INSN_WRITE_SUBV, && case_sem_INSN_WRITE_SUBV }, - { M32R2F_INSN_PAR_SUBX, && case_sem_INSN_PAR_SUBX }, - { M32R2F_INSN_WRITE_SUBX, && case_sem_INSN_WRITE_SUBX }, - { M32R2F_INSN_PAR_TRAP, && case_sem_INSN_PAR_TRAP }, - { M32R2F_INSN_WRITE_TRAP, && case_sem_INSN_WRITE_TRAP }, - { M32R2F_INSN_PAR_UNLOCK, && case_sem_INSN_PAR_UNLOCK }, - { M32R2F_INSN_WRITE_UNLOCK, && case_sem_INSN_WRITE_UNLOCK }, - { M32R2F_INSN_PAR_PCMPBZ, && case_sem_INSN_PAR_PCMPBZ }, - { M32R2F_INSN_WRITE_PCMPBZ, && case_sem_INSN_WRITE_PCMPBZ }, - { M32R2F_INSN_PAR_SADD, && case_sem_INSN_PAR_SADD }, - { M32R2F_INSN_WRITE_SADD, && case_sem_INSN_WRITE_SADD }, - { M32R2F_INSN_PAR_MACWU1, && case_sem_INSN_PAR_MACWU1 }, - { M32R2F_INSN_WRITE_MACWU1, && case_sem_INSN_WRITE_MACWU1 }, - { M32R2F_INSN_PAR_MSBLO, && case_sem_INSN_PAR_MSBLO }, - { M32R2F_INSN_WRITE_MSBLO, && case_sem_INSN_WRITE_MSBLO }, - { M32R2F_INSN_PAR_MULWU1, && case_sem_INSN_PAR_MULWU1 }, - { M32R2F_INSN_WRITE_MULWU1, && case_sem_INSN_WRITE_MULWU1 }, - { M32R2F_INSN_PAR_MACLH1, && case_sem_INSN_PAR_MACLH1 }, - { M32R2F_INSN_WRITE_MACLH1, && case_sem_INSN_WRITE_MACLH1 }, - { M32R2F_INSN_PAR_SC, && case_sem_INSN_PAR_SC }, - { M32R2F_INSN_WRITE_SC, && case_sem_INSN_WRITE_SC }, - { M32R2F_INSN_PAR_SNC, && case_sem_INSN_PAR_SNC }, - { M32R2F_INSN_WRITE_SNC, && case_sem_INSN_WRITE_SNC }, - { M32R2F_INSN_PAR_CLRPSW, && case_sem_INSN_PAR_CLRPSW }, - { M32R2F_INSN_WRITE_CLRPSW, && case_sem_INSN_WRITE_CLRPSW }, - { M32R2F_INSN_PAR_SETPSW, && case_sem_INSN_PAR_SETPSW }, - { M32R2F_INSN_WRITE_SETPSW, && case_sem_INSN_WRITE_SETPSW }, - { M32R2F_INSN_PAR_BTST, && case_sem_INSN_PAR_BTST }, - { M32R2F_INSN_WRITE_BTST, && case_sem_INSN_WRITE_BTST }, - { 0, 0 } - }; - int i; - - for (i = 0; labels[i].label != 0; ++i) - { -#if FAST_P - CPU_IDESC (current_cpu) [labels[i].index].sem_fast_lab = labels[i].label; -#else - CPU_IDESC (current_cpu) [labels[i].index].sem_full_lab = labels[i].label; -#endif - } - -#undef DEFINE_LABELS -#endif /* DEFINE_LABELS */ - -#ifdef DEFINE_SWITCH - -/* If hyper-fast [well not unnecessarily slow] execution is selected, turn - off frills like tracing and profiling. */ -/* FIXME: A better way would be to have TRACE_RESULT check for something - that can cause it to be optimized out. Another way would be to emit - special handlers into the instruction "stream". */ - -#if FAST_P -#undef TRACE_RESULT -#define TRACE_RESULT(cpu, abuf, name, type, val) -#endif - -#undef GET_ATTR -#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) -#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr) -#else -#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_/**/attr) -#endif - -{ - -#if WITH_SCACHE_PBB - -/* Branch to next handler without going around main loop. */ -#define NEXT(vpc) goto * SEM_ARGBUF (vpc) -> semantic.sem_case -SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case) - -#else /* ! WITH_SCACHE_PBB */ - -#define NEXT(vpc) BREAK (sem) -#ifdef __GNUC__ -#if FAST_P - SWITCH (sem, SEM_ARGBUF (sc) -> idesc->sem_fast_lab) -#else - SWITCH (sem, SEM_ARGBUF (sc) -> idesc->sem_full_lab) -#endif -#else - SWITCH (sem, SEM_ARGBUF (sc) -> idesc->num) -#endif - -#endif /* ! WITH_SCACHE_PBB */ - - { - - CASE (sem, INSN_X_INVALID) : /* --invalid-- */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { - /* Update the recorded pc in the cpu state struct. - Only necessary for WITH_SCACHE case, but to avoid the - conditional compilation .... */ - SET_H_PC (pc); - /* Virtual insns have zero size. Overwrite vpc with address of next insn - using the default-insn-bitsize spec. When executing insns in parallel - we may want to queue the fault and continue execution. */ - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - vpc = sim_engine_invalid_insn (current_cpu, pc, vpc); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_X_AFTER) : /* --after-- */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { -#if WITH_SCACHE_PBB_M32R2F - m32r2f_pbb_after (current_cpu, sem_arg); -#endif - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_X_BEFORE) : /* --before-- */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { -#if WITH_SCACHE_PBB_M32R2F - m32r2f_pbb_before (current_cpu, sem_arg); -#endif - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_X_CTI_CHAIN) : /* --cti-chain-- */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { -#if WITH_SCACHE_PBB_M32R2F -#ifdef DEFINE_SWITCH - vpc = m32r2f_pbb_cti_chain (current_cpu, sem_arg, - pbb_br_type, pbb_br_npc); - BREAK (sem); -#else - /* FIXME: Allow provision of explicit ifmt spec in insn spec. */ - vpc = m32r2f_pbb_cti_chain (current_cpu, sem_arg, - CPU_PBB_BR_TYPE (current_cpu), - CPU_PBB_BR_NPC (current_cpu)); -#endif -#endif - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_X_CHAIN) : /* --chain-- */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { -#if WITH_SCACHE_PBB_M32R2F - vpc = m32r2f_pbb_chain (current_cpu, sem_arg); -#ifdef DEFINE_SWITCH - BREAK (sem); -#endif -#endif - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_X_BEGIN) : /* --begin-- */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { -#if WITH_SCACHE_PBB_M32R2F -#if defined DEFINE_SWITCH || defined FAST_P - /* In the switch case FAST_P is a constant, allowing several optimizations - in any called inline functions. */ - vpc = m32r2f_pbb_begin (current_cpu, FAST_P); -#else -#if 0 /* cgen engine can't handle dynamic fast/full switching yet. */ - vpc = m32r2f_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu))); -#else - vpc = m32r2f_pbb_begin (current_cpu, 0); -#endif -#endif -#endif - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ADD) : /* add $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ADDSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ADD3) : /* add3 $dr,$sr,$hash$slo16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ADDSI (* FLD (i_sr), FLD (f_simm16)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_AND) : /* and $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ANDSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_AND3) : /* and3 $dr,$sr,$uimm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_and3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ANDSI (* FLD (i_sr), FLD (f_uimm16)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_OR) : /* or $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ORSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_OR3) : /* or3 $dr,$sr,$hash$ulo16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_and3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ORSI (* FLD (i_sr), FLD (f_uimm16)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_XOR) : /* xor $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = XORSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_XOR3) : /* xor3 $dr,$sr,$uimm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_and3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = XORSI (* FLD (i_sr), FLD (f_uimm16)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ADDI) : /* addi $dr,$simm8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_addi.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ADDSI (* FLD (i_dr), FLD (f_simm8)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ADDV) : /* addv $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = ADDSI (* FLD (i_dr), * FLD (i_sr)); - temp1 = ADDOFSI (* FLD (i_dr), * FLD (i_sr), 0); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ADDV3) : /* addv3 $dr,$sr,$simm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -{ - SI temp0;BI temp1; - temp0 = ADDSI (* FLD (i_sr), FLD (f_simm16)); - temp1 = ADDOFSI (* FLD (i_sr), FLD (f_simm16), 0); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ADDX) : /* addx $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = ADDCSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - temp1 = ADDCFSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BC8) : /* bc.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (CPU (h_cond)) { - { - USI opval = FLD (i_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BC24) : /* bc.l $disp24 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl24.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (CPU (h_cond)) { - { - USI opval = FLD (i_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BEQ) : /* beq $src1,$src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (EQSI (* FLD (i_src1), * FLD (i_src2))) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BEQZ) : /* beqz $src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (EQSI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BGEZ) : /* bgez $src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (GESI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BGTZ) : /* bgtz $src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (GTSI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BLEZ) : /* blez $src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (LESI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BLTZ) : /* bltz $src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (LTSI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BNEZ) : /* bnez $src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BL8) : /* bl.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - SI opval = ADDSI (ANDSI (pc, -4), 4); - CPU (h_gr[((UINT) 14)]) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BL24) : /* bl.l $disp24 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl24.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -{ - { - SI opval = ADDSI (pc, 4); - CPU (h_gr[((UINT) 14)]) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BCL8) : /* bcl.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (CPU (h_cond)) { -{ - { - SI opval = ADDSI (ANDSI (pc, -4), 4); - CPU (h_gr[((UINT) 14)]) = opval; - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 4); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BCL24) : /* bcl.l $disp24 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl24.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (CPU (h_cond)) { -{ - { - SI opval = ADDSI (pc, 4); - CPU (h_gr[((UINT) 14)]) = opval; - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 4); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BNC8) : /* bnc.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (NOTBI (CPU (h_cond))) { - { - USI opval = FLD (i_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BNC24) : /* bnc.l $disp24 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl24.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NOTBI (CPU (h_cond))) { - { - USI opval = FLD (i_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BNE) : /* bne $src1,$src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_src1), * FLD (i_src2))) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BRA8) : /* bra.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - USI opval = FLD (i_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BRA24) : /* bra.l $disp24 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl24.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - USI opval = FLD (i_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BNCL8) : /* bncl.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (NOTBI (CPU (h_cond))) { -{ - { - SI opval = ADDSI (ANDSI (pc, -4), 4); - CPU (h_gr[((UINT) 14)]) = opval; - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 4); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BNCL24) : /* bncl.l $disp24 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl24.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NOTBI (CPU (h_cond))) { -{ - { - SI opval = ADDSI (pc, 4); - CPU (h_gr[((UINT) 14)]) = opval; - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 4); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_CMP) : /* cmp $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = LTSI (* FLD (i_src1), * FLD (i_src2)); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_CMPI) : /* cmpi $src2,$simm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_d.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - BI opval = LTSI (* FLD (i_src2), FLD (f_simm16)); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_CMPU) : /* cmpu $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = LTUSI (* FLD (i_src1), * FLD (i_src2)); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_CMPUI) : /* cmpui $src2,$simm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_d.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - BI opval = LTUSI (* FLD (i_src2), FLD (f_simm16)); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_CMPEQ) : /* cmpeq $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = EQSI (* FLD (i_src1), * FLD (i_src2)); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_CMPZ) : /* cmpz $src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = EQSI (* FLD (i_src2), 0); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_DIV) : /* div $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = DIVSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_DIVU) : /* divu $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = UDIVSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_REM) : /* rem $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = MODSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_REMU) : /* remu $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = UMODSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_REMH) : /* remh $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = MODSI (EXTHISI (TRUNCSIHI (* FLD (i_dr))), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_REMUH) : /* remuh $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = UMODSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_REMB) : /* remb $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = MODSI (EXTBISI (TRUNCSIBI (* FLD (i_dr))), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_REMUB) : /* remub $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = UMODSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_DIVUH) : /* divuh $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = UDIVSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_DIVB) : /* divb $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = DIVSI (EXTBISI (TRUNCSIBI (* FLD (i_dr))), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_DIVUB) : /* divub $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = UDIVSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_DIVH) : /* divh $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = DIVSI (EXTHISI (TRUNCSIHI (* FLD (i_dr))), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_JC) : /* jc $sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_jl.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (CPU (h_cond)) { - { - USI opval = ANDSI (* FLD (i_sr), -4); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_JNC) : /* jnc $sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_jl.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (NOTBI (CPU (h_cond))) { - { - USI opval = ANDSI (* FLD (i_sr), -4); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_JL) : /* jl $sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_jl.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;USI temp1; - temp0 = ADDSI (ANDSI (pc, -4), 4); - temp1 = ANDSI (* FLD (i_sr), -4); - { - SI opval = temp0; - CPU (h_gr[((UINT) 14)]) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = temp1; - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_JMP) : /* jmp $sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_jl.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - USI opval = ANDSI (* FLD (i_sr), -4); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LD) : /* ld $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = GETMEMSI (current_cpu, pc, * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LD_D) : /* ld $dr,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = GETMEMSI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDB) : /* ldb $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = EXTQISI (GETMEMQI (current_cpu, pc, * FLD (i_sr))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDB_D) : /* ldb $dr,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = EXTQISI (GETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDH) : /* ldh $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = EXTHISI (GETMEMHI (current_cpu, pc, * FLD (i_sr))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDH_D) : /* ldh $dr,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = EXTHISI (GETMEMHI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDUB) : /* ldub $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ZEXTQISI (GETMEMQI (current_cpu, pc, * FLD (i_sr))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDUB_D) : /* ldub $dr,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ZEXTQISI (GETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDUH) : /* lduh $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ZEXTHISI (GETMEMHI (current_cpu, pc, * FLD (i_sr))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDUH_D) : /* lduh $dr,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ZEXTHISI (GETMEMHI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LD_PLUS) : /* ld $dr,@$sr+ */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;SI temp1; - temp0 = GETMEMSI (current_cpu, pc, * FLD (i_sr)); - temp1 = ADDSI (* FLD (i_sr), 4); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - SI opval = temp1; - * FLD (i_sr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LD24) : /* ld24 $dr,$uimm24 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld24.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = FLD (i_uimm24); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDI8) : /* ldi8 $dr,$simm8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_addi.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = FLD (f_simm8); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDI16) : /* ldi16 $dr,$hash$slo16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = FLD (f_simm16); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LOCK) : /* lock $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - BI opval = 1; - CPU (h_lock) = opval; - TRACE_RESULT (current_cpu, abuf, "lock", 'x', opval); - } - { - SI opval = GETMEMSI (current_cpu, pc, * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MACHI_A) : /* machi $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUMS (FLD (f_acc)), MULDI (EXTSIDI (ANDSI (* FLD (i_src1), 0xffff0000)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16))))), 8), 8); - SET_H_ACCUMS (FLD (f_acc), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MACLO_A) : /* maclo $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUMS (FLD (f_acc)), MULDI (EXTSIDI (SLLSI (* FLD (i_src1), 16)), EXTHIDI (TRUNCSIHI (* FLD (i_src2))))), 8), 8); - SET_H_ACCUMS (FLD (f_acc), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MACWHI_A) : /* macwhi $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ADDDI (GET_H_ACCUMS (FLD (f_acc)), MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16))))); - SET_H_ACCUMS (FLD (f_acc), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MACWLO_A) : /* macwlo $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ADDDI (GET_H_ACCUMS (FLD (f_acc)), MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (* FLD (i_src2))))); - SET_H_ACCUMS (FLD (f_acc), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MUL) : /* mul $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = MULSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MULHI_A) : /* mulhi $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (MULDI (EXTSIDI (ANDSI (* FLD (i_src1), 0xffff0000)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16)))), 16), 16); - SET_H_ACCUMS (FLD (f_acc), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MULLO_A) : /* mullo $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (MULDI (EXTSIDI (SLLSI (* FLD (i_src1), 16)), EXTHIDI (TRUNCSIHI (* FLD (i_src2)))), 16), 16); - SET_H_ACCUMS (FLD (f_acc), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MULWHI_A) : /* mulwhi $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16)))); - SET_H_ACCUMS (FLD (f_acc), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MULWLO_A) : /* mulwlo $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (* FLD (i_src2)))); - SET_H_ACCUMS (FLD (f_acc), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MV) : /* mv $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = * FLD (i_sr); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVFACHI_A) : /* mvfachi $dr,$accs */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = TRUNCDISI (SRADI (GET_H_ACCUMS (FLD (f_accs)), 32)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVFACLO_A) : /* mvfaclo $dr,$accs */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = TRUNCDISI (GET_H_ACCUMS (FLD (f_accs))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVFACMI_A) : /* mvfacmi $dr,$accs */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = TRUNCDISI (SRADI (GET_H_ACCUMS (FLD (f_accs)), 16)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVFC) : /* mvfc $dr,$scr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = GET_H_CR (FLD (f_r2)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVTACHI_A) : /* mvtachi $src1,$accs */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_mvtachi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ORDI (ANDDI (GET_H_ACCUMS (FLD (f_accs)), MAKEDI (0, 0xffffffff)), SLLDI (EXTSIDI (* FLD (i_src1)), 32)); - SET_H_ACCUMS (FLD (f_accs), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVTACLO_A) : /* mvtaclo $src1,$accs */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_mvtachi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ORDI (ANDDI (GET_H_ACCUMS (FLD (f_accs)), MAKEDI (0xffffffff, 0)), ZEXTSIDI (* FLD (i_src1))); - SET_H_ACCUMS (FLD (f_accs), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVTC) : /* mvtc $sr,$dcr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - USI opval = * FLD (i_sr); - SET_H_CR (FLD (f_r1), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_NEG) : /* neg $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = NEGSI (* FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_NOP) : /* nop */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -PROFILE_COUNT_FILLNOPS (current_cpu, abuf->addr); - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_NOT) : /* not $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = INVSI (* FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_RAC_DSI) : /* rac $accd,$accs,$imm1 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_rac_dsi.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - DI tmp_tmp1; - tmp_tmp1 = SLLDI (GET_H_ACCUMS (FLD (f_accs)), FLD (f_imm1)); - tmp_tmp1 = ADDDI (tmp_tmp1, MAKEDI (0, 32768)); - { - DI opval = (GTDI (tmp_tmp1, MAKEDI (32767, 0xffff0000))) ? (MAKEDI (32767, 0xffff0000)) : (LTDI (tmp_tmp1, MAKEDI (0xffff8000, 0))) ? (MAKEDI (0xffff8000, 0)) : (ANDDI (tmp_tmp1, MAKEDI (0xffffffff, 0xffff0000))); - SET_H_ACCUMS (FLD (f_accd), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_RACH_DSI) : /* rach $accd,$accs,$imm1 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_rac_dsi.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - DI tmp_tmp1; - tmp_tmp1 = SLLDI (GET_H_ACCUMS (FLD (f_accs)), FLD (f_imm1)); - tmp_tmp1 = ADDDI (tmp_tmp1, MAKEDI (0, 0x80000000)); - { - DI opval = (GTDI (tmp_tmp1, MAKEDI (32767, 0))) ? (MAKEDI (32767, 0)) : (LTDI (tmp_tmp1, MAKEDI (0xffff8000, 0))) ? (MAKEDI (0xffff8000, 0)) : (ANDDI (tmp_tmp1, MAKEDI (0xffffffff, 0))); - SET_H_ACCUMS (FLD (f_accd), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_RTE) : /* rte */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - USI opval = ANDSI (GET_H_CR (((UINT) 6)), -4); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - { - USI opval = GET_H_CR (((UINT) 14)); - SET_H_CR (((UINT) 6), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - { - UQI opval = CPU (h_bpsw); - SET_H_PSW (opval); - TRACE_RESULT (current_cpu, abuf, "psw", 'x', opval); - } - { - UQI opval = CPU (h_bbpsw); - CPU (h_bpsw) = opval; - TRACE_RESULT (current_cpu, abuf, "bpsw", 'x', opval); - } -} - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SETH) : /* seth $dr,$hash$hi16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_seth.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = SLLSI (FLD (f_hi16), 16); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SLL) : /* sll $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SLLSI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SLL3) : /* sll3 $dr,$sr,$simm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = SLLSI (* FLD (i_sr), ANDSI (FLD (f_simm16), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SLLI) : /* slli $dr,$uimm5 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_slli.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SLLSI (* FLD (i_dr), FLD (f_uimm5)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SRA) : /* sra $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRASI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SRA3) : /* sra3 $dr,$sr,$simm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = SRASI (* FLD (i_sr), ANDSI (FLD (f_simm16), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SRAI) : /* srai $dr,$uimm5 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_slli.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRASI (* FLD (i_dr), FLD (f_uimm5)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SRL) : /* srl $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRLSI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SRL3) : /* srl3 $dr,$sr,$simm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = SRLSI (* FLD (i_sr), ANDSI (FLD (f_simm16), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SRLI) : /* srli $dr,$uimm5 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_slli.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRLSI (* FLD (i_dr), FLD (f_uimm5)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ST) : /* st $src1,@$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, pc, * FLD (i_src2), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ST_D) : /* st $src1,@($slo16,$src2) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_d.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, pc, ADDSI (* FLD (i_src2), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_STB) : /* stb $src1,@$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - QI opval = * FLD (i_src1); - SETMEMQI (current_cpu, pc, * FLD (i_src2), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_STB_D) : /* stb $src1,@($slo16,$src2) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_d.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - QI opval = * FLD (i_src1); - SETMEMQI (current_cpu, pc, ADDSI (* FLD (i_src2), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_STH) : /* sth $src1,@$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - HI opval = * FLD (i_src1); - SETMEMHI (current_cpu, pc, * FLD (i_src2), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_STH_D) : /* sth $src1,@($slo16,$src2) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_d.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - HI opval = * FLD (i_src1); - SETMEMHI (current_cpu, pc, ADDSI (* FLD (i_src2), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ST_PLUS) : /* st $src1,@+$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI tmp_new_src2; - tmp_new_src2 = ADDSI (* FLD (i_src2), 4); - { - SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, pc, tmp_new_src2, opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - { - SI opval = tmp_new_src2; - * FLD (i_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_STH_PLUS) : /* sth $src1,@$src2+ */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - HI tmp_new_src2; - { - HI opval = * FLD (i_src1); - SETMEMHI (current_cpu, pc, tmp_new_src2, opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - tmp_new_src2 = ADDSI (* FLD (i_src2), 2); - { - SI opval = tmp_new_src2; - * FLD (i_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_STB_PLUS) : /* stb $src1,@$src2+ */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - QI tmp_new_src2; - { - QI opval = * FLD (i_src1); - SETMEMQI (current_cpu, pc, tmp_new_src2, opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - tmp_new_src2 = ADDSI (* FLD (i_src2), 1); - { - SI opval = tmp_new_src2; - * FLD (i_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ST_MINUS) : /* st $src1,@-$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI tmp_new_src2; - tmp_new_src2 = SUBSI (* FLD (i_src2), 4); - { - SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, pc, tmp_new_src2, opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - { - SI opval = tmp_new_src2; - * FLD (i_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SUB) : /* sub $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SUBSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SUBV) : /* subv $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = SUBSI (* FLD (i_dr), * FLD (i_sr)); - temp1 = SUBOFSI (* FLD (i_dr), * FLD (i_sr), 0); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SUBX) : /* subx $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = SUBCSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - temp1 = SUBCFSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_TRAP) : /* trap $uimm4 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_trap.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - USI opval = GET_H_CR (((UINT) 6)); - SET_H_CR (((UINT) 14), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - { - USI opval = ADDSI (pc, 4); - SET_H_CR (((UINT) 6), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - { - UQI opval = CPU (h_bpsw); - CPU (h_bbpsw) = opval; - TRACE_RESULT (current_cpu, abuf, "bbpsw", 'x', opval); - } - { - UQI opval = GET_H_PSW (); - CPU (h_bpsw) = opval; - TRACE_RESULT (current_cpu, abuf, "bpsw", 'x', opval); - } - { - UQI opval = ANDQI (GET_H_PSW (), 128); - SET_H_PSW (opval); - TRACE_RESULT (current_cpu, abuf, "psw", 'x', opval); - } - { - SI opval = m32r_trap (current_cpu, pc, FLD (f_uimm4)); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_UNLOCK) : /* unlock $src1,@$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ -if (CPU (h_lock)) { - { - SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, pc, * FLD (i_src2), opval); - written |= (1 << 4); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } -} - { - BI opval = 0; - CPU (h_lock) = opval; - TRACE_RESULT (current_cpu, abuf, "lock", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SATB) : /* satb $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = (GESI (* FLD (i_sr), 127)) ? (127) : (LESI (* FLD (i_sr), -128)) ? (-128) : (* FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SATH) : /* sath $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = (GESI (* FLD (i_sr), 32767)) ? (32767) : (LESI (* FLD (i_sr), -32768)) ? (-32768) : (* FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SAT) : /* sat $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ((CPU (h_cond)) ? (((LTSI (* FLD (i_sr), 0)) ? (2147483647) : (0x80000000))) : (* FLD (i_sr))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_PCMPBZ) : /* pcmpbz $src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = (EQSI (ANDSI (* FLD (i_src2), 255), 0)) ? (1) : (EQSI (ANDSI (* FLD (i_src2), 65280), 0)) ? (1) : (EQSI (ANDSI (* FLD (i_src2), 16711680), 0)) ? (1) : (EQSI (ANDSI (* FLD (i_src2), 0xff000000), 0)) ? (1) : (0); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SADD) : /* sadd */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ADDDI (SRADI (GET_H_ACCUMS (((UINT) 1)), 16), GET_H_ACCUMS (((UINT) 0))); - SET_H_ACCUMS (((UINT) 0), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MACWU1) : /* macwu1 $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUMS (((UINT) 1)), MULDI (EXTSIDI (* FLD (i_src1)), EXTSIDI (ANDSI (* FLD (i_src2), 65535)))), 8), 8); - SET_H_ACCUMS (((UINT) 1), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MSBLO) : /* msblo $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (SUBDI (GET_H_ACCUM (), SRADI (SLLDI (MULDI (EXTHIDI (TRUNCSIHI (* FLD (i_src1))), EXTHIDI (TRUNCSIHI (* FLD (i_src2)))), 32), 16)), 8), 8); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MULWU1) : /* mulwu1 $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (MULDI (EXTSIDI (* FLD (i_src1)), EXTSIDI (ANDSI (* FLD (i_src2), 65535))), 16), 16); - SET_H_ACCUMS (((UINT) 1), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MACLH1) : /* maclh1 $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUMS (((UINT) 1)), SLLDI (EXTSIDI (MULSI (EXTHISI (TRUNCSIHI (* FLD (i_src1))), SRASI (* FLD (i_src2), 16))), 16)), 8), 8); - SET_H_ACCUMS (((UINT) 1), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SC) : /* sc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (ZEXTBISI (CPU (h_cond))) - SEM_SKIP_INSN (current_cpu, sem_arg, vpc); - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SNC) : /* snc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (ZEXTBISI (NOTBI (CPU (h_cond)))) - SEM_SKIP_INSN (current_cpu, sem_arg, vpc); - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_CLRPSW) : /* clrpsw $uimm8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_clrpsw.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ANDSI (GET_H_CR (((UINT) 0)), ORSI (INVBI (FLD (f_uimm8)), 65280)); - SET_H_CR (((UINT) 0), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SETPSW) : /* setpsw $uimm8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_clrpsw.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = FLD (f_uimm8); - SET_H_CR (((UINT) 0), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BSET) : /* bset $uimm3,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bset.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - QI opval = ORQI (GETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16))), SLLSI (1, SUBSI (7, FLD (f_uimm3)))); - SETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BCLR) : /* bclr $uimm3,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bset.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - QI opval = ANDQI (GETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16))), INVQI (SLLSI (1, SUBSI (7, FLD (f_uimm3))))); - SETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BTST) : /* btst $uimm3,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bset.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = ANDQI (SRLSI (* FLD (i_sr), SUBSI (7, FLD (f_uimm3))), 1); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_PAR_ADD) : /* add $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ADDSI (* FLD (i_dr), * FLD (i_sr)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_ADD) : /* add $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_AND) : /* and $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ANDSI (* FLD (i_dr), * FLD (i_sr)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_AND) : /* and $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_OR) : /* or $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ORSI (* FLD (i_dr), * FLD (i_sr)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_OR) : /* or $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_XOR) : /* xor $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = XORSI (* FLD (i_dr), * FLD (i_sr)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_XOR) : /* xor $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_ADDI) : /* addi $dr,$simm8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_addi.f -#define OPRND(f) par_exec->operands.sfmt_addi.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ADDSI (* FLD (i_dr), FLD (f_simm8)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_ADDI) : /* addi $dr,$simm8 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_addi.f -#define OPRND(f) par_exec->operands.sfmt_addi.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_ADDV) : /* addv $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_addv.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = ADDSI (* FLD (i_dr), * FLD (i_sr)); - temp1 = ADDOFSI (* FLD (i_dr), * FLD (i_sr), 0); - { - SI opval = temp0; - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - OPRND (condbit) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_ADDV) : /* addv $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_addv.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_cond) = OPRND (condbit); - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_ADDX) : /* addx $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_addx.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = ADDCSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - temp1 = ADDCFSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - { - SI opval = temp0; - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - OPRND (condbit) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_ADDX) : /* addx $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_addx.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_cond) = OPRND (condbit); - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_BC8) : /* bc.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bc8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (CPU (h_cond)) { - { - USI opval = FLD (i_disp8); - OPRND (pc) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_BC8) : /* bc.s $disp8 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bc8.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - if (written & (1 << 2)) - { - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - } - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_BL8) : /* bl.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - SI opval = ADDSI (ANDSI (pc, -4), 4); - OPRND (h_gr_SI_14) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp8); - OPRND (pc) = opval; - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_BL8) : /* bl.s $disp8 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bl8.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_gr[((UINT) 14)]) = OPRND (h_gr_SI_14); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_BCL8) : /* bcl.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bcl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (CPU (h_cond)) { -{ - { - SI opval = ADDSI (ANDSI (pc, -4), 4); - OPRND (h_gr_SI_14) = opval; - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp8); - OPRND (pc) = opval; - written |= (1 << 4); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} -} - - abuf->written = written; -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_BCL8) : /* bcl.s $disp8 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bcl8.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - if (written & (1 << 3)) - { - CPU (h_gr[((UINT) 14)]) = OPRND (h_gr_SI_14); - } - if (written & (1 << 4)) - { - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - } - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_BNC8) : /* bnc.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bc8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (NOTBI (CPU (h_cond))) { - { - USI opval = FLD (i_disp8); - OPRND (pc) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_BNC8) : /* bnc.s $disp8 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bc8.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - if (written & (1 << 2)) - { - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - } - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_BRA8) : /* bra.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bra8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - USI opval = FLD (i_disp8); - OPRND (pc) = opval; - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_BRA8) : /* bra.s $disp8 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bra8.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_BNCL8) : /* bncl.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bcl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (NOTBI (CPU (h_cond))) { -{ - { - SI opval = ADDSI (ANDSI (pc, -4), 4); - OPRND (h_gr_SI_14) = opval; - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp8); - OPRND (pc) = opval; - written |= (1 << 4); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} -} - - abuf->written = written; -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_BNCL8) : /* bncl.s $disp8 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bcl8.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - if (written & (1 << 3)) - { - CPU (h_gr[((UINT) 14)]) = OPRND (h_gr_SI_14); - } - if (written & (1 << 4)) - { - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - } - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_CMP) : /* cmp $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_cmp.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = LTSI (* FLD (i_src1), * FLD (i_src2)); - OPRND (condbit) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_CMP) : /* cmp $src1,$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_cmp.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_cond) = OPRND (condbit); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_CMPU) : /* cmpu $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_cmp.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = LTUSI (* FLD (i_src1), * FLD (i_src2)); - OPRND (condbit) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_CMPU) : /* cmpu $src1,$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_cmp.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_cond) = OPRND (condbit); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_CMPEQ) : /* cmpeq $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_cmp.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = EQSI (* FLD (i_src1), * FLD (i_src2)); - OPRND (condbit) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_CMPEQ) : /* cmpeq $src1,$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_cmp.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_cond) = OPRND (condbit); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_CMPZ) : /* cmpz $src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_cmpz.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = EQSI (* FLD (i_src2), 0); - OPRND (condbit) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_CMPZ) : /* cmpz $src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_cmpz.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_cond) = OPRND (condbit); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_JC) : /* jc $sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_jl.f -#define OPRND(f) par_exec->operands.sfmt_jc.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (CPU (h_cond)) { - { - USI opval = ANDSI (* FLD (i_sr), -4); - OPRND (pc) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_JC) : /* jc $sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_jl.f -#define OPRND(f) par_exec->operands.sfmt_jc.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - if (written & (1 << 2)) - { - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - } - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_JNC) : /* jnc $sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_jl.f -#define OPRND(f) par_exec->operands.sfmt_jc.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (NOTBI (CPU (h_cond))) { - { - USI opval = ANDSI (* FLD (i_sr), -4); - OPRND (pc) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_JNC) : /* jnc $sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_jl.f -#define OPRND(f) par_exec->operands.sfmt_jc.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - if (written & (1 << 2)) - { - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - } - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_JL) : /* jl $sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_jl.f -#define OPRND(f) par_exec->operands.sfmt_jl.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;USI temp1; - temp0 = ADDSI (ANDSI (pc, -4), 4); - temp1 = ANDSI (* FLD (i_sr), -4); - { - SI opval = temp0; - OPRND (h_gr_SI_14) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = temp1; - OPRND (pc) = opval; - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_JL) : /* jl $sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_jl.f -#define OPRND(f) par_exec->operands.sfmt_jl.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_gr[((UINT) 14)]) = OPRND (h_gr_SI_14); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_JMP) : /* jmp $sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_jl.f -#define OPRND(f) par_exec->operands.sfmt_jmp.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - USI opval = ANDSI (* FLD (i_sr), -4); - OPRND (pc) = opval; - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_JMP) : /* jmp $sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_jl.f -#define OPRND(f) par_exec->operands.sfmt_jmp.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_LD) : /* ld $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ld.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = GETMEMSI (current_cpu, pc, * FLD (i_sr)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_LD) : /* ld $dr,@$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ld.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_LDB) : /* ldb $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ldb.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = EXTQISI (GETMEMQI (current_cpu, pc, * FLD (i_sr))); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_LDB) : /* ldb $dr,@$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ldb.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_LDH) : /* ldh $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ldh.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = EXTHISI (GETMEMHI (current_cpu, pc, * FLD (i_sr))); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_LDH) : /* ldh $dr,@$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ldh.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_LDUB) : /* ldub $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ldb.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ZEXTQISI (GETMEMQI (current_cpu, pc, * FLD (i_sr))); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_LDUB) : /* ldub $dr,@$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ldb.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_LDUH) : /* lduh $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ldh.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ZEXTHISI (GETMEMHI (current_cpu, pc, * FLD (i_sr))); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_LDUH) : /* lduh $dr,@$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ldh.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_LD_PLUS) : /* ld $dr,@$sr+ */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;SI temp1; - temp0 = GETMEMSI (current_cpu, pc, * FLD (i_sr)); - temp1 = ADDSI (* FLD (i_sr), 4); - { - SI opval = temp0; - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - SI opval = temp1; - OPRND (sr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_LD_PLUS) : /* ld $dr,@$sr+ */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ld_plus.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - * FLD (i_sr) = OPRND (sr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_LDI8) : /* ldi8 $dr,$simm8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_addi.f -#define OPRND(f) par_exec->operands.sfmt_ldi8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = FLD (f_simm8); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_LDI8) : /* ldi8 $dr,$simm8 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_addi.f -#define OPRND(f) par_exec->operands.sfmt_ldi8.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_LOCK) : /* lock $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_lock.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - BI opval = 1; - OPRND (h_lock_BI) = opval; - TRACE_RESULT (current_cpu, abuf, "lock", 'x', opval); - } - { - SI opval = GETMEMSI (current_cpu, pc, * FLD (i_sr)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_LOCK) : /* lock $dr,@$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_lock.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - CPU (h_lock) = OPRND (h_lock_BI); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MACHI_A) : /* machi $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUMS (FLD (f_acc)), MULDI (EXTSIDI (ANDSI (* FLD (i_src1), 0xffff0000)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16))))), 8), 8); - OPRND (acc) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MACHI_A) : /* machi $src1,$src2,$acc */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_machi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_acc), OPRND (acc)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MACLO_A) : /* maclo $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUMS (FLD (f_acc)), MULDI (EXTSIDI (SLLSI (* FLD (i_src1), 16)), EXTHIDI (TRUNCSIHI (* FLD (i_src2))))), 8), 8); - OPRND (acc) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MACLO_A) : /* maclo $src1,$src2,$acc */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_machi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_acc), OPRND (acc)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MACWHI_A) : /* macwhi $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ADDDI (GET_H_ACCUMS (FLD (f_acc)), MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16))))); - OPRND (acc) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MACWHI_A) : /* macwhi $src1,$src2,$acc */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_machi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_acc), OPRND (acc)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MACWLO_A) : /* macwlo $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ADDDI (GET_H_ACCUMS (FLD (f_acc)), MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (* FLD (i_src2))))); - OPRND (acc) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MACWLO_A) : /* macwlo $src1,$src2,$acc */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_machi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_acc), OPRND (acc)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MUL) : /* mul $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = MULSI (* FLD (i_dr), * FLD (i_sr)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MUL) : /* mul $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MULHI_A) : /* mulhi $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_mulhi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (MULDI (EXTSIDI (ANDSI (* FLD (i_src1), 0xffff0000)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16)))), 16), 16); - OPRND (acc) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MULHI_A) : /* mulhi $src1,$src2,$acc */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_mulhi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_acc), OPRND (acc)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MULLO_A) : /* mullo $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_mulhi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (MULDI (EXTSIDI (SLLSI (* FLD (i_src1), 16)), EXTHIDI (TRUNCSIHI (* FLD (i_src2)))), 16), 16); - OPRND (acc) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MULLO_A) : /* mullo $src1,$src2,$acc */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_mulhi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_acc), OPRND (acc)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MULWHI_A) : /* mulwhi $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_mulhi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16)))); - OPRND (acc) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MULWHI_A) : /* mulwhi $src1,$src2,$acc */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_mulhi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_acc), OPRND (acc)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MULWLO_A) : /* mulwlo $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_mulhi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (* FLD (i_src2)))); - OPRND (acc) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MULWLO_A) : /* mulwlo $src1,$src2,$acc */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_mulhi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_acc), OPRND (acc)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MV) : /* mv $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_mv.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = * FLD (i_sr); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MV) : /* mv $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_mv.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MVFACHI_A) : /* mvfachi $dr,$accs */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f -#define OPRND(f) par_exec->operands.sfmt_mvfachi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = TRUNCDISI (SRADI (GET_H_ACCUMS (FLD (f_accs)), 32)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MVFACHI_A) : /* mvfachi $dr,$accs */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f -#define OPRND(f) par_exec->operands.sfmt_mvfachi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MVFACLO_A) : /* mvfaclo $dr,$accs */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f -#define OPRND(f) par_exec->operands.sfmt_mvfachi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = TRUNCDISI (GET_H_ACCUMS (FLD (f_accs))); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MVFACLO_A) : /* mvfaclo $dr,$accs */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f -#define OPRND(f) par_exec->operands.sfmt_mvfachi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MVFACMI_A) : /* mvfacmi $dr,$accs */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f -#define OPRND(f) par_exec->operands.sfmt_mvfachi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = TRUNCDISI (SRADI (GET_H_ACCUMS (FLD (f_accs)), 16)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MVFACMI_A) : /* mvfacmi $dr,$accs */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f -#define OPRND(f) par_exec->operands.sfmt_mvfachi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MVFC) : /* mvfc $dr,$scr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_mvfc.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = GET_H_CR (FLD (f_r2)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MVFC) : /* mvfc $dr,$scr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_mvfc.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MVTACHI_A) : /* mvtachi $src1,$accs */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_mvtachi_a.f -#define OPRND(f) par_exec->operands.sfmt_mvtachi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ORDI (ANDDI (GET_H_ACCUMS (FLD (f_accs)), MAKEDI (0, 0xffffffff)), SLLDI (EXTSIDI (* FLD (i_src1)), 32)); - OPRND (accs) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MVTACHI_A) : /* mvtachi $src1,$accs */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_mvtachi_a.f -#define OPRND(f) par_exec->operands.sfmt_mvtachi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_accs), OPRND (accs)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MVTACLO_A) : /* mvtaclo $src1,$accs */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_mvtachi_a.f -#define OPRND(f) par_exec->operands.sfmt_mvtachi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ORDI (ANDDI (GET_H_ACCUMS (FLD (f_accs)), MAKEDI (0xffffffff, 0)), ZEXTSIDI (* FLD (i_src1))); - OPRND (accs) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MVTACLO_A) : /* mvtaclo $src1,$accs */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_mvtachi_a.f -#define OPRND(f) par_exec->operands.sfmt_mvtachi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_accs), OPRND (accs)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MVTC) : /* mvtc $sr,$dcr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_mvtc.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - USI opval = * FLD (i_sr); - OPRND (dcr) = opval; - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MVTC) : /* mvtc $sr,$dcr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_mvtc.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_CR (FLD (f_r1), OPRND (dcr)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_NEG) : /* neg $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_mv.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = NEGSI (* FLD (i_sr)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_NEG) : /* neg $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_mv.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_NOP) : /* nop */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f -#define OPRND(f) par_exec->operands.sfmt_nop.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -PROFILE_COUNT_FILLNOPS (current_cpu, abuf->addr); - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_NOP) : /* nop */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.fmt_empty.f -#define OPRND(f) par_exec->operands.sfmt_nop.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_NOT) : /* not $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_mv.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = INVSI (* FLD (i_sr)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_NOT) : /* not $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_mv.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_RAC_DSI) : /* rac $accd,$accs,$imm1 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_rac_dsi.f -#define OPRND(f) par_exec->operands.sfmt_rac_dsi.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - DI tmp_tmp1; - tmp_tmp1 = SLLDI (GET_H_ACCUMS (FLD (f_accs)), FLD (f_imm1)); - tmp_tmp1 = ADDDI (tmp_tmp1, MAKEDI (0, 32768)); - { - DI opval = (GTDI (tmp_tmp1, MAKEDI (32767, 0xffff0000))) ? (MAKEDI (32767, 0xffff0000)) : (LTDI (tmp_tmp1, MAKEDI (0xffff8000, 0))) ? (MAKEDI (0xffff8000, 0)) : (ANDDI (tmp_tmp1, MAKEDI (0xffffffff, 0xffff0000))); - OPRND (accd) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_RAC_DSI) : /* rac $accd,$accs,$imm1 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_rac_dsi.f -#define OPRND(f) par_exec->operands.sfmt_rac_dsi.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_accd), OPRND (accd)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_RACH_DSI) : /* rach $accd,$accs,$imm1 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_rac_dsi.f -#define OPRND(f) par_exec->operands.sfmt_rac_dsi.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - DI tmp_tmp1; - tmp_tmp1 = SLLDI (GET_H_ACCUMS (FLD (f_accs)), FLD (f_imm1)); - tmp_tmp1 = ADDDI (tmp_tmp1, MAKEDI (0, 0x80000000)); - { - DI opval = (GTDI (tmp_tmp1, MAKEDI (32767, 0))) ? (MAKEDI (32767, 0)) : (LTDI (tmp_tmp1, MAKEDI (0xffff8000, 0))) ? (MAKEDI (0xffff8000, 0)) : (ANDDI (tmp_tmp1, MAKEDI (0xffffffff, 0))); - OPRND (accd) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_RACH_DSI) : /* rach $accd,$accs,$imm1 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_rac_dsi.f -#define OPRND(f) par_exec->operands.sfmt_rac_dsi.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_accd), OPRND (accd)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_RTE) : /* rte */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f -#define OPRND(f) par_exec->operands.sfmt_rte.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - USI opval = ANDSI (GET_H_CR (((UINT) 6)), -4); - OPRND (pc) = opval; - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - { - USI opval = GET_H_CR (((UINT) 14)); - OPRND (h_cr_USI_6) = opval; - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - { - UQI opval = CPU (h_bpsw); - OPRND (h_psw_UQI) = opval; - TRACE_RESULT (current_cpu, abuf, "psw", 'x', opval); - } - { - UQI opval = CPU (h_bbpsw); - OPRND (h_bpsw_UQI) = opval; - TRACE_RESULT (current_cpu, abuf, "bpsw", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_RTE) : /* rte */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.fmt_empty.f -#define OPRND(f) par_exec->operands.sfmt_rte.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_bpsw) = OPRND (h_bpsw_UQI); - SET_H_CR (((UINT) 6), OPRND (h_cr_USI_6)); - SET_H_PSW (OPRND (h_psw_UQI)); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SLL) : /* sll $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SLLSI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SLL) : /* sll $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SLLI) : /* slli $dr,$uimm5 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_slli.f -#define OPRND(f) par_exec->operands.sfmt_slli.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SLLSI (* FLD (i_dr), FLD (f_uimm5)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SLLI) : /* slli $dr,$uimm5 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_slli.f -#define OPRND(f) par_exec->operands.sfmt_slli.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SRA) : /* sra $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRASI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SRA) : /* sra $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SRAI) : /* srai $dr,$uimm5 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_slli.f -#define OPRND(f) par_exec->operands.sfmt_slli.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRASI (* FLD (i_dr), FLD (f_uimm5)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SRAI) : /* srai $dr,$uimm5 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_slli.f -#define OPRND(f) par_exec->operands.sfmt_slli.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SRL) : /* srl $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRLSI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SRL) : /* srl $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SRLI) : /* srli $dr,$uimm5 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_slli.f -#define OPRND(f) par_exec->operands.sfmt_slli.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRLSI (* FLD (i_dr), FLD (f_uimm5)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SRLI) : /* srli $dr,$uimm5 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_slli.f -#define OPRND(f) par_exec->operands.sfmt_slli.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_ST) : /* st $src1,@$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_st.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = * FLD (i_src1); - OPRND (h_memory_SI_src2_idx) = * FLD (i_src2); - OPRND (h_memory_SI_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_ST) : /* st $src1,@$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_st.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SETMEMSI (current_cpu, pc, OPRND (h_memory_SI_src2_idx), OPRND (h_memory_SI_src2)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_STB) : /* stb $src1,@$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_stb.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - QI opval = * FLD (i_src1); - OPRND (h_memory_QI_src2_idx) = * FLD (i_src2); - OPRND (h_memory_QI_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_STB) : /* stb $src1,@$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_stb.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SETMEMQI (current_cpu, pc, OPRND (h_memory_QI_src2_idx), OPRND (h_memory_QI_src2)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_STH) : /* sth $src1,@$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_sth.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - HI opval = * FLD (i_src1); - OPRND (h_memory_HI_src2_idx) = * FLD (i_src2); - OPRND (h_memory_HI_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_STH) : /* sth $src1,@$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_sth.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SETMEMHI (current_cpu, pc, OPRND (h_memory_HI_src2_idx), OPRND (h_memory_HI_src2)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_ST_PLUS) : /* st $src1,@+$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI tmp_new_src2; - tmp_new_src2 = ADDSI (* FLD (i_src2), 4); - { - SI opval = * FLD (i_src1); - OPRND (h_memory_SI_new_src2_idx) = tmp_new_src2; - OPRND (h_memory_SI_new_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - { - SI opval = tmp_new_src2; - OPRND (src2) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_ST_PLUS) : /* st $src1,@+$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_st_plus.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SETMEMSI (current_cpu, pc, OPRND (h_memory_SI_new_src2_idx), OPRND (h_memory_SI_new_src2)); - * FLD (i_src2) = OPRND (src2); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_STH_PLUS) : /* sth $src1,@$src2+ */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_sth_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - HI tmp_new_src2; - { - HI opval = * FLD (i_src1); - OPRND (h_memory_HI_new_src2_idx) = tmp_new_src2; - OPRND (h_memory_HI_new_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - tmp_new_src2 = ADDSI (* FLD (i_src2), 2); - { - SI opval = tmp_new_src2; - OPRND (src2) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_STH_PLUS) : /* sth $src1,@$src2+ */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_sth_plus.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SETMEMHI (current_cpu, pc, OPRND (h_memory_HI_new_src2_idx), OPRND (h_memory_HI_new_src2)); - * FLD (i_src2) = OPRND (src2); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_STB_PLUS) : /* stb $src1,@$src2+ */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_stb_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - QI tmp_new_src2; - { - QI opval = * FLD (i_src1); - OPRND (h_memory_QI_new_src2_idx) = tmp_new_src2; - OPRND (h_memory_QI_new_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - tmp_new_src2 = ADDSI (* FLD (i_src2), 1); - { - SI opval = tmp_new_src2; - OPRND (src2) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_STB_PLUS) : /* stb $src1,@$src2+ */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_stb_plus.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SETMEMQI (current_cpu, pc, OPRND (h_memory_QI_new_src2_idx), OPRND (h_memory_QI_new_src2)); - * FLD (i_src2) = OPRND (src2); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_ST_MINUS) : /* st $src1,@-$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI tmp_new_src2; - tmp_new_src2 = SUBSI (* FLD (i_src2), 4); - { - SI opval = * FLD (i_src1); - OPRND (h_memory_SI_new_src2_idx) = tmp_new_src2; - OPRND (h_memory_SI_new_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - { - SI opval = tmp_new_src2; - OPRND (src2) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_ST_MINUS) : /* st $src1,@-$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_st_plus.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SETMEMSI (current_cpu, pc, OPRND (h_memory_SI_new_src2_idx), OPRND (h_memory_SI_new_src2)); - * FLD (i_src2) = OPRND (src2); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SUB) : /* sub $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SUBSI (* FLD (i_dr), * FLD (i_sr)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SUB) : /* sub $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SUBV) : /* subv $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_addv.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = SUBSI (* FLD (i_dr), * FLD (i_sr)); - temp1 = SUBOFSI (* FLD (i_dr), * FLD (i_sr), 0); - { - SI opval = temp0; - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - OPRND (condbit) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SUBV) : /* subv $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_addv.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_cond) = OPRND (condbit); - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SUBX) : /* subx $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_addx.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = SUBCSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - temp1 = SUBCFSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - { - SI opval = temp0; - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - OPRND (condbit) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SUBX) : /* subx $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_addx.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_cond) = OPRND (condbit); - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_TRAP) : /* trap $uimm4 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_trap.f -#define OPRND(f) par_exec->operands.sfmt_trap.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - USI opval = GET_H_CR (((UINT) 6)); - OPRND (h_cr_USI_14) = opval; - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - { - USI opval = ADDSI (pc, 4); - OPRND (h_cr_USI_6) = opval; - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - { - UQI opval = CPU (h_bpsw); - OPRND (h_bbpsw_UQI) = opval; - TRACE_RESULT (current_cpu, abuf, "bbpsw", 'x', opval); - } - { - UQI opval = GET_H_PSW (); - OPRND (h_bpsw_UQI) = opval; - TRACE_RESULT (current_cpu, abuf, "bpsw", 'x', opval); - } - { - UQI opval = ANDQI (GET_H_PSW (), 128); - OPRND (h_psw_UQI) = opval; - TRACE_RESULT (current_cpu, abuf, "psw", 'x', opval); - } - { - SI opval = m32r_trap (current_cpu, pc, FLD (f_uimm4)); - OPRND (pc) = opval; - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_TRAP) : /* trap $uimm4 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_trap.f -#define OPRND(f) par_exec->operands.sfmt_trap.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_bbpsw) = OPRND (h_bbpsw_UQI); - CPU (h_bpsw) = OPRND (h_bpsw_UQI); - SET_H_CR (((UINT) 14), OPRND (h_cr_USI_14)); - SET_H_CR (((UINT) 6), OPRND (h_cr_USI_6)); - SET_H_PSW (OPRND (h_psw_UQI)); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_UNLOCK) : /* unlock $src1,@$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_unlock.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ -if (CPU (h_lock)) { - { - SI opval = * FLD (i_src1); - OPRND (h_memory_SI_src2_idx) = * FLD (i_src2); - OPRND (h_memory_SI_src2) = opval; - written |= (1 << 4); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } -} - { - BI opval = 0; - OPRND (h_lock_BI) = opval; - TRACE_RESULT (current_cpu, abuf, "lock", 'x', opval); - } -} - - abuf->written = written; -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_UNLOCK) : /* unlock $src1,@$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_unlock.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_lock) = OPRND (h_lock_BI); - if (written & (1 << 4)) - { - SETMEMSI (current_cpu, pc, OPRND (h_memory_SI_src2_idx), OPRND (h_memory_SI_src2)); - } - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_PCMPBZ) : /* pcmpbz $src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_cmpz.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = (EQSI (ANDSI (* FLD (i_src2), 255), 0)) ? (1) : (EQSI (ANDSI (* FLD (i_src2), 65280), 0)) ? (1) : (EQSI (ANDSI (* FLD (i_src2), 16711680), 0)) ? (1) : (EQSI (ANDSI (* FLD (i_src2), 0xff000000), 0)) ? (1) : (0); - OPRND (condbit) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_PCMPBZ) : /* pcmpbz $src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_cmpz.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_cond) = OPRND (condbit); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SADD) : /* sadd */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f -#define OPRND(f) par_exec->operands.sfmt_sadd.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ADDDI (SRADI (GET_H_ACCUMS (((UINT) 1)), 16), GET_H_ACCUMS (((UINT) 0))); - OPRND (h_accums_DI_0) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SADD) : /* sadd */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.fmt_empty.f -#define OPRND(f) par_exec->operands.sfmt_sadd.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (((UINT) 0), OPRND (h_accums_DI_0)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MACWU1) : /* macwu1 $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_macwu1.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUMS (((UINT) 1)), MULDI (EXTSIDI (* FLD (i_src1)), EXTSIDI (ANDSI (* FLD (i_src2), 65535)))), 8), 8); - OPRND (h_accums_DI_1) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MACWU1) : /* macwu1 $src1,$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_macwu1.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (((UINT) 1), OPRND (h_accums_DI_1)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MSBLO) : /* msblo $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_msblo.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (SUBDI (GET_H_ACCUM (), SRADI (SLLDI (MULDI (EXTHIDI (TRUNCSIHI (* FLD (i_src1))), EXTHIDI (TRUNCSIHI (* FLD (i_src2)))), 32), 16)), 8), 8); - OPRND (accum) = opval; - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MSBLO) : /* msblo $src1,$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_msblo.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUM (OPRND (accum)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MULWU1) : /* mulwu1 $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_mulwu1.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (MULDI (EXTSIDI (* FLD (i_src1)), EXTSIDI (ANDSI (* FLD (i_src2), 65535))), 16), 16); - OPRND (h_accums_DI_1) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MULWU1) : /* mulwu1 $src1,$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_mulwu1.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (((UINT) 1), OPRND (h_accums_DI_1)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MACLH1) : /* maclh1 $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_macwu1.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUMS (((UINT) 1)), SLLDI (EXTSIDI (MULSI (EXTHISI (TRUNCSIHI (* FLD (i_src1))), SRASI (* FLD (i_src2), 16))), 16)), 8), 8); - OPRND (h_accums_DI_1) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MACLH1) : /* maclh1 $src1,$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_macwu1.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (((UINT) 1), OPRND (h_accums_DI_1)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SC) : /* sc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f -#define OPRND(f) par_exec->operands.sfmt_sc.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (ZEXTBISI (CPU (h_cond))) - SEM_SKIP_INSN (current_cpu, sem_arg, vpc); - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SC) : /* sc */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.fmt_empty.f -#define OPRND(f) par_exec->operands.sfmt_sc.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SNC) : /* snc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f -#define OPRND(f) par_exec->operands.sfmt_sc.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (ZEXTBISI (NOTBI (CPU (h_cond)))) - SEM_SKIP_INSN (current_cpu, sem_arg, vpc); - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SNC) : /* snc */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.fmt_empty.f -#define OPRND(f) par_exec->operands.sfmt_sc.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_CLRPSW) : /* clrpsw $uimm8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_clrpsw.f -#define OPRND(f) par_exec->operands.sfmt_clrpsw.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ANDSI (GET_H_CR (((UINT) 0)), ORSI (INVBI (FLD (f_uimm8)), 65280)); - OPRND (h_cr_USI_0) = opval; - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_CLRPSW) : /* clrpsw $uimm8 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_clrpsw.f -#define OPRND(f) par_exec->operands.sfmt_clrpsw.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_CR (((UINT) 0), OPRND (h_cr_USI_0)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SETPSW) : /* setpsw $uimm8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_clrpsw.f -#define OPRND(f) par_exec->operands.sfmt_setpsw.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = FLD (f_uimm8); - OPRND (h_cr_USI_0) = opval; - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SETPSW) : /* setpsw $uimm8 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_clrpsw.f -#define OPRND(f) par_exec->operands.sfmt_setpsw.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_CR (((UINT) 0), OPRND (h_cr_USI_0)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_BTST) : /* btst $uimm3,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bset.f -#define OPRND(f) par_exec->operands.sfmt_btst.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = ANDQI (SRLSI (* FLD (i_sr), SUBSI (7, FLD (f_uimm3))), 1); - OPRND (condbit) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_BTST) : /* btst $uimm3,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_bset.f -#define OPRND(f) par_exec->operands.sfmt_btst.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_cond) = OPRND (condbit); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - - } - ENDSWITCH (sem) /* End of semantic switch. */ - - /* At this point `vpc' contains the next insn to execute. */ -} - -#undef DEFINE_SWITCH -#endif /* DEFINE_SWITCH */ diff --git a/sim/m32r/semx-switch.c b/sim/m32r/semx-switch.c deleted file mode 100644 index d1d6abb..0000000 --- a/sim/m32r/semx-switch.c +++ /dev/null @@ -1,6654 +0,0 @@ -/* Simulator instruction semantics for m32rxf. - -THIS FILE IS MACHINE GENERATED WITH CGEN. - -Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -This file is part of the GNU simulators. - -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. - -*/ - -#ifdef DEFINE_LABELS - - /* The labels have the case they have because the enum of insn types - is all uppercase and in the non-stdc case the insn symbol is built - into the enum name. */ - - static struct { - int index; - void *label; - } labels[] = { - { M32RXF_INSN_X_INVALID, && case_sem_INSN_X_INVALID }, - { M32RXF_INSN_X_AFTER, && case_sem_INSN_X_AFTER }, - { M32RXF_INSN_X_BEFORE, && case_sem_INSN_X_BEFORE }, - { M32RXF_INSN_X_CTI_CHAIN, && case_sem_INSN_X_CTI_CHAIN }, - { M32RXF_INSN_X_CHAIN, && case_sem_INSN_X_CHAIN }, - { M32RXF_INSN_X_BEGIN, && case_sem_INSN_X_BEGIN }, - { M32RXF_INSN_ADD, && case_sem_INSN_ADD }, - { M32RXF_INSN_ADD3, && case_sem_INSN_ADD3 }, - { M32RXF_INSN_AND, && case_sem_INSN_AND }, - { M32RXF_INSN_AND3, && case_sem_INSN_AND3 }, - { M32RXF_INSN_OR, && case_sem_INSN_OR }, - { M32RXF_INSN_OR3, && case_sem_INSN_OR3 }, - { M32RXF_INSN_XOR, && case_sem_INSN_XOR }, - { M32RXF_INSN_XOR3, && case_sem_INSN_XOR3 }, - { M32RXF_INSN_ADDI, && case_sem_INSN_ADDI }, - { M32RXF_INSN_ADDV, && case_sem_INSN_ADDV }, - { M32RXF_INSN_ADDV3, && case_sem_INSN_ADDV3 }, - { M32RXF_INSN_ADDX, && case_sem_INSN_ADDX }, - { M32RXF_INSN_BC8, && case_sem_INSN_BC8 }, - { M32RXF_INSN_BC24, && case_sem_INSN_BC24 }, - { M32RXF_INSN_BEQ, && case_sem_INSN_BEQ }, - { M32RXF_INSN_BEQZ, && case_sem_INSN_BEQZ }, - { M32RXF_INSN_BGEZ, && case_sem_INSN_BGEZ }, - { M32RXF_INSN_BGTZ, && case_sem_INSN_BGTZ }, - { M32RXF_INSN_BLEZ, && case_sem_INSN_BLEZ }, - { M32RXF_INSN_BLTZ, && case_sem_INSN_BLTZ }, - { M32RXF_INSN_BNEZ, && case_sem_INSN_BNEZ }, - { M32RXF_INSN_BL8, && case_sem_INSN_BL8 }, - { M32RXF_INSN_BL24, && case_sem_INSN_BL24 }, - { M32RXF_INSN_BCL8, && case_sem_INSN_BCL8 }, - { M32RXF_INSN_BCL24, && case_sem_INSN_BCL24 }, - { M32RXF_INSN_BNC8, && case_sem_INSN_BNC8 }, - { M32RXF_INSN_BNC24, && case_sem_INSN_BNC24 }, - { M32RXF_INSN_BNE, && case_sem_INSN_BNE }, - { M32RXF_INSN_BRA8, && case_sem_INSN_BRA8 }, - { M32RXF_INSN_BRA24, && case_sem_INSN_BRA24 }, - { M32RXF_INSN_BNCL8, && case_sem_INSN_BNCL8 }, - { M32RXF_INSN_BNCL24, && case_sem_INSN_BNCL24 }, - { M32RXF_INSN_CMP, && case_sem_INSN_CMP }, - { M32RXF_INSN_CMPI, && case_sem_INSN_CMPI }, - { M32RXF_INSN_CMPU, && case_sem_INSN_CMPU }, - { M32RXF_INSN_CMPUI, && case_sem_INSN_CMPUI }, - { M32RXF_INSN_CMPEQ, && case_sem_INSN_CMPEQ }, - { M32RXF_INSN_CMPZ, && case_sem_INSN_CMPZ }, - { M32RXF_INSN_DIV, && case_sem_INSN_DIV }, - { M32RXF_INSN_DIVU, && case_sem_INSN_DIVU }, - { M32RXF_INSN_REM, && case_sem_INSN_REM }, - { M32RXF_INSN_REMU, && case_sem_INSN_REMU }, - { M32RXF_INSN_DIVH, && case_sem_INSN_DIVH }, - { M32RXF_INSN_JC, && case_sem_INSN_JC }, - { M32RXF_INSN_JNC, && case_sem_INSN_JNC }, - { M32RXF_INSN_JL, && case_sem_INSN_JL }, - { M32RXF_INSN_JMP, && case_sem_INSN_JMP }, - { M32RXF_INSN_LD, && case_sem_INSN_LD }, - { M32RXF_INSN_LD_D, && case_sem_INSN_LD_D }, - { M32RXF_INSN_LDB, && case_sem_INSN_LDB }, - { M32RXF_INSN_LDB_D, && case_sem_INSN_LDB_D }, - { M32RXF_INSN_LDH, && case_sem_INSN_LDH }, - { M32RXF_INSN_LDH_D, && case_sem_INSN_LDH_D }, - { M32RXF_INSN_LDUB, && case_sem_INSN_LDUB }, - { M32RXF_INSN_LDUB_D, && case_sem_INSN_LDUB_D }, - { M32RXF_INSN_LDUH, && case_sem_INSN_LDUH }, - { M32RXF_INSN_LDUH_D, && case_sem_INSN_LDUH_D }, - { M32RXF_INSN_LD_PLUS, && case_sem_INSN_LD_PLUS }, - { M32RXF_INSN_LD24, && case_sem_INSN_LD24 }, - { M32RXF_INSN_LDI8, && case_sem_INSN_LDI8 }, - { M32RXF_INSN_LDI16, && case_sem_INSN_LDI16 }, - { M32RXF_INSN_LOCK, && case_sem_INSN_LOCK }, - { M32RXF_INSN_MACHI_A, && case_sem_INSN_MACHI_A }, - { M32RXF_INSN_MACLO_A, && case_sem_INSN_MACLO_A }, - { M32RXF_INSN_MACWHI_A, && case_sem_INSN_MACWHI_A }, - { M32RXF_INSN_MACWLO_A, && case_sem_INSN_MACWLO_A }, - { M32RXF_INSN_MUL, && case_sem_INSN_MUL }, - { M32RXF_INSN_MULHI_A, && case_sem_INSN_MULHI_A }, - { M32RXF_INSN_MULLO_A, && case_sem_INSN_MULLO_A }, - { M32RXF_INSN_MULWHI_A, && case_sem_INSN_MULWHI_A }, - { M32RXF_INSN_MULWLO_A, && case_sem_INSN_MULWLO_A }, - { M32RXF_INSN_MV, && case_sem_INSN_MV }, - { M32RXF_INSN_MVFACHI_A, && case_sem_INSN_MVFACHI_A }, - { M32RXF_INSN_MVFACLO_A, && case_sem_INSN_MVFACLO_A }, - { M32RXF_INSN_MVFACMI_A, && case_sem_INSN_MVFACMI_A }, - { M32RXF_INSN_MVFC, && case_sem_INSN_MVFC }, - { M32RXF_INSN_MVTACHI_A, && case_sem_INSN_MVTACHI_A }, - { M32RXF_INSN_MVTACLO_A, && case_sem_INSN_MVTACLO_A }, - { M32RXF_INSN_MVTC, && case_sem_INSN_MVTC }, - { M32RXF_INSN_NEG, && case_sem_INSN_NEG }, - { M32RXF_INSN_NOP, && case_sem_INSN_NOP }, - { M32RXF_INSN_NOT, && case_sem_INSN_NOT }, - { M32RXF_INSN_RAC_DSI, && case_sem_INSN_RAC_DSI }, - { M32RXF_INSN_RACH_DSI, && case_sem_INSN_RACH_DSI }, - { M32RXF_INSN_RTE, && case_sem_INSN_RTE }, - { M32RXF_INSN_SETH, && case_sem_INSN_SETH }, - { M32RXF_INSN_SLL, && case_sem_INSN_SLL }, - { M32RXF_INSN_SLL3, && case_sem_INSN_SLL3 }, - { M32RXF_INSN_SLLI, && case_sem_INSN_SLLI }, - { M32RXF_INSN_SRA, && case_sem_INSN_SRA }, - { M32RXF_INSN_SRA3, && case_sem_INSN_SRA3 }, - { M32RXF_INSN_SRAI, && case_sem_INSN_SRAI }, - { M32RXF_INSN_SRL, && case_sem_INSN_SRL }, - { M32RXF_INSN_SRL3, && case_sem_INSN_SRL3 }, - { M32RXF_INSN_SRLI, && case_sem_INSN_SRLI }, - { M32RXF_INSN_ST, && case_sem_INSN_ST }, - { M32RXF_INSN_ST_D, && case_sem_INSN_ST_D }, - { M32RXF_INSN_STB, && case_sem_INSN_STB }, - { M32RXF_INSN_STB_D, && case_sem_INSN_STB_D }, - { M32RXF_INSN_STH, && case_sem_INSN_STH }, - { M32RXF_INSN_STH_D, && case_sem_INSN_STH_D }, - { M32RXF_INSN_ST_PLUS, && case_sem_INSN_ST_PLUS }, - { M32RXF_INSN_STH_PLUS, && case_sem_INSN_STH_PLUS }, - { M32RXF_INSN_STB_PLUS, && case_sem_INSN_STB_PLUS }, - { M32RXF_INSN_ST_MINUS, && case_sem_INSN_ST_MINUS }, - { M32RXF_INSN_SUB, && case_sem_INSN_SUB }, - { M32RXF_INSN_SUBV, && case_sem_INSN_SUBV }, - { M32RXF_INSN_SUBX, && case_sem_INSN_SUBX }, - { M32RXF_INSN_TRAP, && case_sem_INSN_TRAP }, - { M32RXF_INSN_UNLOCK, && case_sem_INSN_UNLOCK }, - { M32RXF_INSN_SATB, && case_sem_INSN_SATB }, - { M32RXF_INSN_SATH, && case_sem_INSN_SATH }, - { M32RXF_INSN_SAT, && case_sem_INSN_SAT }, - { M32RXF_INSN_PCMPBZ, && case_sem_INSN_PCMPBZ }, - { M32RXF_INSN_SADD, && case_sem_INSN_SADD }, - { M32RXF_INSN_MACWU1, && case_sem_INSN_MACWU1 }, - { M32RXF_INSN_MSBLO, && case_sem_INSN_MSBLO }, - { M32RXF_INSN_MULWU1, && case_sem_INSN_MULWU1 }, - { M32RXF_INSN_MACLH1, && case_sem_INSN_MACLH1 }, - { M32RXF_INSN_SC, && case_sem_INSN_SC }, - { M32RXF_INSN_SNC, && case_sem_INSN_SNC }, - { M32RXF_INSN_CLRPSW, && case_sem_INSN_CLRPSW }, - { M32RXF_INSN_SETPSW, && case_sem_INSN_SETPSW }, - { M32RXF_INSN_BSET, && case_sem_INSN_BSET }, - { M32RXF_INSN_BCLR, && case_sem_INSN_BCLR }, - { M32RXF_INSN_BTST, && case_sem_INSN_BTST }, - { M32RXF_INSN_PAR_ADD, && case_sem_INSN_PAR_ADD }, - { M32RXF_INSN_WRITE_ADD, && case_sem_INSN_WRITE_ADD }, - { M32RXF_INSN_PAR_AND, && case_sem_INSN_PAR_AND }, - { M32RXF_INSN_WRITE_AND, && case_sem_INSN_WRITE_AND }, - { M32RXF_INSN_PAR_OR, && case_sem_INSN_PAR_OR }, - { M32RXF_INSN_WRITE_OR, && case_sem_INSN_WRITE_OR }, - { M32RXF_INSN_PAR_XOR, && case_sem_INSN_PAR_XOR }, - { M32RXF_INSN_WRITE_XOR, && case_sem_INSN_WRITE_XOR }, - { M32RXF_INSN_PAR_ADDI, && case_sem_INSN_PAR_ADDI }, - { M32RXF_INSN_WRITE_ADDI, && case_sem_INSN_WRITE_ADDI }, - { M32RXF_INSN_PAR_ADDV, && case_sem_INSN_PAR_ADDV }, - { M32RXF_INSN_WRITE_ADDV, && case_sem_INSN_WRITE_ADDV }, - { M32RXF_INSN_PAR_ADDX, && case_sem_INSN_PAR_ADDX }, - { M32RXF_INSN_WRITE_ADDX, && case_sem_INSN_WRITE_ADDX }, - { M32RXF_INSN_PAR_BC8, && case_sem_INSN_PAR_BC8 }, - { M32RXF_INSN_WRITE_BC8, && case_sem_INSN_WRITE_BC8 }, - { M32RXF_INSN_PAR_BL8, && case_sem_INSN_PAR_BL8 }, - { M32RXF_INSN_WRITE_BL8, && case_sem_INSN_WRITE_BL8 }, - { M32RXF_INSN_PAR_BCL8, && case_sem_INSN_PAR_BCL8 }, - { M32RXF_INSN_WRITE_BCL8, && case_sem_INSN_WRITE_BCL8 }, - { M32RXF_INSN_PAR_BNC8, && case_sem_INSN_PAR_BNC8 }, - { M32RXF_INSN_WRITE_BNC8, && case_sem_INSN_WRITE_BNC8 }, - { M32RXF_INSN_PAR_BRA8, && case_sem_INSN_PAR_BRA8 }, - { M32RXF_INSN_WRITE_BRA8, && case_sem_INSN_WRITE_BRA8 }, - { M32RXF_INSN_PAR_BNCL8, && case_sem_INSN_PAR_BNCL8 }, - { M32RXF_INSN_WRITE_BNCL8, && case_sem_INSN_WRITE_BNCL8 }, - { M32RXF_INSN_PAR_CMP, && case_sem_INSN_PAR_CMP }, - { M32RXF_INSN_WRITE_CMP, && case_sem_INSN_WRITE_CMP }, - { M32RXF_INSN_PAR_CMPU, && case_sem_INSN_PAR_CMPU }, - { M32RXF_INSN_WRITE_CMPU, && case_sem_INSN_WRITE_CMPU }, - { M32RXF_INSN_PAR_CMPEQ, && case_sem_INSN_PAR_CMPEQ }, - { M32RXF_INSN_WRITE_CMPEQ, && case_sem_INSN_WRITE_CMPEQ }, - { M32RXF_INSN_PAR_CMPZ, && case_sem_INSN_PAR_CMPZ }, - { M32RXF_INSN_WRITE_CMPZ, && case_sem_INSN_WRITE_CMPZ }, - { M32RXF_INSN_PAR_JC, && case_sem_INSN_PAR_JC }, - { M32RXF_INSN_WRITE_JC, && case_sem_INSN_WRITE_JC }, - { M32RXF_INSN_PAR_JNC, && case_sem_INSN_PAR_JNC }, - { M32RXF_INSN_WRITE_JNC, && case_sem_INSN_WRITE_JNC }, - { M32RXF_INSN_PAR_JL, && case_sem_INSN_PAR_JL }, - { M32RXF_INSN_WRITE_JL, && case_sem_INSN_WRITE_JL }, - { M32RXF_INSN_PAR_JMP, && case_sem_INSN_PAR_JMP }, - { M32RXF_INSN_WRITE_JMP, && case_sem_INSN_WRITE_JMP }, - { M32RXF_INSN_PAR_LD, && case_sem_INSN_PAR_LD }, - { M32RXF_INSN_WRITE_LD, && case_sem_INSN_WRITE_LD }, - { M32RXF_INSN_PAR_LDB, && case_sem_INSN_PAR_LDB }, - { M32RXF_INSN_WRITE_LDB, && case_sem_INSN_WRITE_LDB }, - { M32RXF_INSN_PAR_LDH, && case_sem_INSN_PAR_LDH }, - { M32RXF_INSN_WRITE_LDH, && case_sem_INSN_WRITE_LDH }, - { M32RXF_INSN_PAR_LDUB, && case_sem_INSN_PAR_LDUB }, - { M32RXF_INSN_WRITE_LDUB, && case_sem_INSN_WRITE_LDUB }, - { M32RXF_INSN_PAR_LDUH, && case_sem_INSN_PAR_LDUH }, - { M32RXF_INSN_WRITE_LDUH, && case_sem_INSN_WRITE_LDUH }, - { M32RXF_INSN_PAR_LD_PLUS, && case_sem_INSN_PAR_LD_PLUS }, - { M32RXF_INSN_WRITE_LD_PLUS, && case_sem_INSN_WRITE_LD_PLUS }, - { M32RXF_INSN_PAR_LDI8, && case_sem_INSN_PAR_LDI8 }, - { M32RXF_INSN_WRITE_LDI8, && case_sem_INSN_WRITE_LDI8 }, - { M32RXF_INSN_PAR_LOCK, && case_sem_INSN_PAR_LOCK }, - { M32RXF_INSN_WRITE_LOCK, && case_sem_INSN_WRITE_LOCK }, - { M32RXF_INSN_PAR_MACHI_A, && case_sem_INSN_PAR_MACHI_A }, - { M32RXF_INSN_WRITE_MACHI_A, && case_sem_INSN_WRITE_MACHI_A }, - { M32RXF_INSN_PAR_MACLO_A, && case_sem_INSN_PAR_MACLO_A }, - { M32RXF_INSN_WRITE_MACLO_A, && case_sem_INSN_WRITE_MACLO_A }, - { M32RXF_INSN_PAR_MACWHI_A, && case_sem_INSN_PAR_MACWHI_A }, - { M32RXF_INSN_WRITE_MACWHI_A, && case_sem_INSN_WRITE_MACWHI_A }, - { M32RXF_INSN_PAR_MACWLO_A, && case_sem_INSN_PAR_MACWLO_A }, - { M32RXF_INSN_WRITE_MACWLO_A, && case_sem_INSN_WRITE_MACWLO_A }, - { M32RXF_INSN_PAR_MUL, && case_sem_INSN_PAR_MUL }, - { M32RXF_INSN_WRITE_MUL, && case_sem_INSN_WRITE_MUL }, - { M32RXF_INSN_PAR_MULHI_A, && case_sem_INSN_PAR_MULHI_A }, - { M32RXF_INSN_WRITE_MULHI_A, && case_sem_INSN_WRITE_MULHI_A }, - { M32RXF_INSN_PAR_MULLO_A, && case_sem_INSN_PAR_MULLO_A }, - { M32RXF_INSN_WRITE_MULLO_A, && case_sem_INSN_WRITE_MULLO_A }, - { M32RXF_INSN_PAR_MULWHI_A, && case_sem_INSN_PAR_MULWHI_A }, - { M32RXF_INSN_WRITE_MULWHI_A, && case_sem_INSN_WRITE_MULWHI_A }, - { M32RXF_INSN_PAR_MULWLO_A, && case_sem_INSN_PAR_MULWLO_A }, - { M32RXF_INSN_WRITE_MULWLO_A, && case_sem_INSN_WRITE_MULWLO_A }, - { M32RXF_INSN_PAR_MV, && case_sem_INSN_PAR_MV }, - { M32RXF_INSN_WRITE_MV, && case_sem_INSN_WRITE_MV }, - { M32RXF_INSN_PAR_MVFACHI_A, && case_sem_INSN_PAR_MVFACHI_A }, - { M32RXF_INSN_WRITE_MVFACHI_A, && case_sem_INSN_WRITE_MVFACHI_A }, - { M32RXF_INSN_PAR_MVFACLO_A, && case_sem_INSN_PAR_MVFACLO_A }, - { M32RXF_INSN_WRITE_MVFACLO_A, && case_sem_INSN_WRITE_MVFACLO_A }, - { M32RXF_INSN_PAR_MVFACMI_A, && case_sem_INSN_PAR_MVFACMI_A }, - { M32RXF_INSN_WRITE_MVFACMI_A, && case_sem_INSN_WRITE_MVFACMI_A }, - { M32RXF_INSN_PAR_MVFC, && case_sem_INSN_PAR_MVFC }, - { M32RXF_INSN_WRITE_MVFC, && case_sem_INSN_WRITE_MVFC }, - { M32RXF_INSN_PAR_MVTACHI_A, && case_sem_INSN_PAR_MVTACHI_A }, - { M32RXF_INSN_WRITE_MVTACHI_A, && case_sem_INSN_WRITE_MVTACHI_A }, - { M32RXF_INSN_PAR_MVTACLO_A, && case_sem_INSN_PAR_MVTACLO_A }, - { M32RXF_INSN_WRITE_MVTACLO_A, && case_sem_INSN_WRITE_MVTACLO_A }, - { M32RXF_INSN_PAR_MVTC, && case_sem_INSN_PAR_MVTC }, - { M32RXF_INSN_WRITE_MVTC, && case_sem_INSN_WRITE_MVTC }, - { M32RXF_INSN_PAR_NEG, && case_sem_INSN_PAR_NEG }, - { M32RXF_INSN_WRITE_NEG, && case_sem_INSN_WRITE_NEG }, - { M32RXF_INSN_PAR_NOP, && case_sem_INSN_PAR_NOP }, - { M32RXF_INSN_WRITE_NOP, && case_sem_INSN_WRITE_NOP }, - { M32RXF_INSN_PAR_NOT, && case_sem_INSN_PAR_NOT }, - { M32RXF_INSN_WRITE_NOT, && case_sem_INSN_WRITE_NOT }, - { M32RXF_INSN_PAR_RAC_DSI, && case_sem_INSN_PAR_RAC_DSI }, - { M32RXF_INSN_WRITE_RAC_DSI, && case_sem_INSN_WRITE_RAC_DSI }, - { M32RXF_INSN_PAR_RACH_DSI, && case_sem_INSN_PAR_RACH_DSI }, - { M32RXF_INSN_WRITE_RACH_DSI, && case_sem_INSN_WRITE_RACH_DSI }, - { M32RXF_INSN_PAR_RTE, && case_sem_INSN_PAR_RTE }, - { M32RXF_INSN_WRITE_RTE, && case_sem_INSN_WRITE_RTE }, - { M32RXF_INSN_PAR_SLL, && case_sem_INSN_PAR_SLL }, - { M32RXF_INSN_WRITE_SLL, && case_sem_INSN_WRITE_SLL }, - { M32RXF_INSN_PAR_SLLI, && case_sem_INSN_PAR_SLLI }, - { M32RXF_INSN_WRITE_SLLI, && case_sem_INSN_WRITE_SLLI }, - { M32RXF_INSN_PAR_SRA, && case_sem_INSN_PAR_SRA }, - { M32RXF_INSN_WRITE_SRA, && case_sem_INSN_WRITE_SRA }, - { M32RXF_INSN_PAR_SRAI, && case_sem_INSN_PAR_SRAI }, - { M32RXF_INSN_WRITE_SRAI, && case_sem_INSN_WRITE_SRAI }, - { M32RXF_INSN_PAR_SRL, && case_sem_INSN_PAR_SRL }, - { M32RXF_INSN_WRITE_SRL, && case_sem_INSN_WRITE_SRL }, - { M32RXF_INSN_PAR_SRLI, && case_sem_INSN_PAR_SRLI }, - { M32RXF_INSN_WRITE_SRLI, && case_sem_INSN_WRITE_SRLI }, - { M32RXF_INSN_PAR_ST, && case_sem_INSN_PAR_ST }, - { M32RXF_INSN_WRITE_ST, && case_sem_INSN_WRITE_ST }, - { M32RXF_INSN_PAR_STB, && case_sem_INSN_PAR_STB }, - { M32RXF_INSN_WRITE_STB, && case_sem_INSN_WRITE_STB }, - { M32RXF_INSN_PAR_STH, && case_sem_INSN_PAR_STH }, - { M32RXF_INSN_WRITE_STH, && case_sem_INSN_WRITE_STH }, - { M32RXF_INSN_PAR_ST_PLUS, && case_sem_INSN_PAR_ST_PLUS }, - { M32RXF_INSN_WRITE_ST_PLUS, && case_sem_INSN_WRITE_ST_PLUS }, - { M32RXF_INSN_PAR_STH_PLUS, && case_sem_INSN_PAR_STH_PLUS }, - { M32RXF_INSN_WRITE_STH_PLUS, && case_sem_INSN_WRITE_STH_PLUS }, - { M32RXF_INSN_PAR_STB_PLUS, && case_sem_INSN_PAR_STB_PLUS }, - { M32RXF_INSN_WRITE_STB_PLUS, && case_sem_INSN_WRITE_STB_PLUS }, - { M32RXF_INSN_PAR_ST_MINUS, && case_sem_INSN_PAR_ST_MINUS }, - { M32RXF_INSN_WRITE_ST_MINUS, && case_sem_INSN_WRITE_ST_MINUS }, - { M32RXF_INSN_PAR_SUB, && case_sem_INSN_PAR_SUB }, - { M32RXF_INSN_WRITE_SUB, && case_sem_INSN_WRITE_SUB }, - { M32RXF_INSN_PAR_SUBV, && case_sem_INSN_PAR_SUBV }, - { M32RXF_INSN_WRITE_SUBV, && case_sem_INSN_WRITE_SUBV }, - { M32RXF_INSN_PAR_SUBX, && case_sem_INSN_PAR_SUBX }, - { M32RXF_INSN_WRITE_SUBX, && case_sem_INSN_WRITE_SUBX }, - { M32RXF_INSN_PAR_TRAP, && case_sem_INSN_PAR_TRAP }, - { M32RXF_INSN_WRITE_TRAP, && case_sem_INSN_WRITE_TRAP }, - { M32RXF_INSN_PAR_UNLOCK, && case_sem_INSN_PAR_UNLOCK }, - { M32RXF_INSN_WRITE_UNLOCK, && case_sem_INSN_WRITE_UNLOCK }, - { M32RXF_INSN_PAR_PCMPBZ, && case_sem_INSN_PAR_PCMPBZ }, - { M32RXF_INSN_WRITE_PCMPBZ, && case_sem_INSN_WRITE_PCMPBZ }, - { M32RXF_INSN_PAR_SADD, && case_sem_INSN_PAR_SADD }, - { M32RXF_INSN_WRITE_SADD, && case_sem_INSN_WRITE_SADD }, - { M32RXF_INSN_PAR_MACWU1, && case_sem_INSN_PAR_MACWU1 }, - { M32RXF_INSN_WRITE_MACWU1, && case_sem_INSN_WRITE_MACWU1 }, - { M32RXF_INSN_PAR_MSBLO, && case_sem_INSN_PAR_MSBLO }, - { M32RXF_INSN_WRITE_MSBLO, && case_sem_INSN_WRITE_MSBLO }, - { M32RXF_INSN_PAR_MULWU1, && case_sem_INSN_PAR_MULWU1 }, - { M32RXF_INSN_WRITE_MULWU1, && case_sem_INSN_WRITE_MULWU1 }, - { M32RXF_INSN_PAR_MACLH1, && case_sem_INSN_PAR_MACLH1 }, - { M32RXF_INSN_WRITE_MACLH1, && case_sem_INSN_WRITE_MACLH1 }, - { M32RXF_INSN_PAR_SC, && case_sem_INSN_PAR_SC }, - { M32RXF_INSN_WRITE_SC, && case_sem_INSN_WRITE_SC }, - { M32RXF_INSN_PAR_SNC, && case_sem_INSN_PAR_SNC }, - { M32RXF_INSN_WRITE_SNC, && case_sem_INSN_WRITE_SNC }, - { M32RXF_INSN_PAR_CLRPSW, && case_sem_INSN_PAR_CLRPSW }, - { M32RXF_INSN_WRITE_CLRPSW, && case_sem_INSN_WRITE_CLRPSW }, - { M32RXF_INSN_PAR_SETPSW, && case_sem_INSN_PAR_SETPSW }, - { M32RXF_INSN_WRITE_SETPSW, && case_sem_INSN_WRITE_SETPSW }, - { M32RXF_INSN_PAR_BTST, && case_sem_INSN_PAR_BTST }, - { M32RXF_INSN_WRITE_BTST, && case_sem_INSN_WRITE_BTST }, - { 0, 0 } - }; - int i; - - for (i = 0; labels[i].label != 0; ++i) - { -#if FAST_P - CPU_IDESC (current_cpu) [labels[i].index].sem_fast_lab = labels[i].label; -#else - CPU_IDESC (current_cpu) [labels[i].index].sem_full_lab = labels[i].label; -#endif - } - -#undef DEFINE_LABELS -#endif /* DEFINE_LABELS */ - -#ifdef DEFINE_SWITCH - -/* If hyper-fast [well not unnecessarily slow] execution is selected, turn - off frills like tracing and profiling. */ -/* FIXME: A better way would be to have TRACE_RESULT check for something - that can cause it to be optimized out. Another way would be to emit - special handlers into the instruction "stream". */ - -#if FAST_P -#undef TRACE_RESULT -#define TRACE_RESULT(cpu, abuf, name, type, val) -#endif - -#undef GET_ATTR -#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) -#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr) -#else -#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_/**/attr) -#endif - -{ - -#if WITH_SCACHE_PBB - -/* Branch to next handler without going around main loop. */ -#define NEXT(vpc) goto * SEM_ARGBUF (vpc) -> semantic.sem_case -SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case) - -#else /* ! WITH_SCACHE_PBB */ - -#define NEXT(vpc) BREAK (sem) -#ifdef __GNUC__ -#if FAST_P - SWITCH (sem, SEM_ARGBUF (sc) -> idesc->sem_fast_lab) -#else - SWITCH (sem, SEM_ARGBUF (sc) -> idesc->sem_full_lab) -#endif -#else - SWITCH (sem, SEM_ARGBUF (sc) -> idesc->num) -#endif - -#endif /* ! WITH_SCACHE_PBB */ - - { - - CASE (sem, INSN_X_INVALID) : /* --invalid-- */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { - /* Update the recorded pc in the cpu state struct. - Only necessary for WITH_SCACHE case, but to avoid the - conditional compilation .... */ - SET_H_PC (pc); - /* Virtual insns have zero size. Overwrite vpc with address of next insn - using the default-insn-bitsize spec. When executing insns in parallel - we may want to queue the fault and continue execution. */ - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - vpc = sim_engine_invalid_insn (current_cpu, pc, vpc); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_X_AFTER) : /* --after-- */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { -#if WITH_SCACHE_PBB_M32RXF - m32rxf_pbb_after (current_cpu, sem_arg); -#endif - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_X_BEFORE) : /* --before-- */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { -#if WITH_SCACHE_PBB_M32RXF - m32rxf_pbb_before (current_cpu, sem_arg); -#endif - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_X_CTI_CHAIN) : /* --cti-chain-- */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { -#if WITH_SCACHE_PBB_M32RXF -#ifdef DEFINE_SWITCH - vpc = m32rxf_pbb_cti_chain (current_cpu, sem_arg, - pbb_br_type, pbb_br_npc); - BREAK (sem); -#else - /* FIXME: Allow provision of explicit ifmt spec in insn spec. */ - vpc = m32rxf_pbb_cti_chain (current_cpu, sem_arg, - CPU_PBB_BR_TYPE (current_cpu), - CPU_PBB_BR_NPC (current_cpu)); -#endif -#endif - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_X_CHAIN) : /* --chain-- */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { -#if WITH_SCACHE_PBB_M32RXF - vpc = m32rxf_pbb_chain (current_cpu, sem_arg); -#ifdef DEFINE_SWITCH - BREAK (sem); -#endif -#endif - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_X_BEGIN) : /* --begin-- */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - { -#if WITH_SCACHE_PBB_M32RXF -#if defined DEFINE_SWITCH || defined FAST_P - /* In the switch case FAST_P is a constant, allowing several optimizations - in any called inline functions. */ - vpc = m32rxf_pbb_begin (current_cpu, FAST_P); -#else -#if 0 /* cgen engine can't handle dynamic fast/full switching yet. */ - vpc = m32rxf_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu))); -#else - vpc = m32rxf_pbb_begin (current_cpu, 0); -#endif -#endif -#endif - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ADD) : /* add $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ADDSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ADD3) : /* add3 $dr,$sr,$hash$slo16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ADDSI (* FLD (i_sr), FLD (f_simm16)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_AND) : /* and $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ANDSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_AND3) : /* and3 $dr,$sr,$uimm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_and3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ANDSI (* FLD (i_sr), FLD (f_uimm16)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_OR) : /* or $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ORSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_OR3) : /* or3 $dr,$sr,$hash$ulo16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_and3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ORSI (* FLD (i_sr), FLD (f_uimm16)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_XOR) : /* xor $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = XORSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_XOR3) : /* xor3 $dr,$sr,$uimm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_and3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = XORSI (* FLD (i_sr), FLD (f_uimm16)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ADDI) : /* addi $dr,$simm8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_addi.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ADDSI (* FLD (i_dr), FLD (f_simm8)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ADDV) : /* addv $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = ADDSI (* FLD (i_dr), * FLD (i_sr)); - temp1 = ADDOFSI (* FLD (i_dr), * FLD (i_sr), 0); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ADDV3) : /* addv3 $dr,$sr,$simm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -{ - SI temp0;BI temp1; - temp0 = ADDSI (* FLD (i_sr), FLD (f_simm16)); - temp1 = ADDOFSI (* FLD (i_sr), FLD (f_simm16), 0); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ADDX) : /* addx $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = ADDCSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - temp1 = ADDCFSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BC8) : /* bc.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (CPU (h_cond)) { - { - USI opval = FLD (i_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BC24) : /* bc.l $disp24 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl24.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (CPU (h_cond)) { - { - USI opval = FLD (i_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BEQ) : /* beq $src1,$src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (EQSI (* FLD (i_src1), * FLD (i_src2))) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BEQZ) : /* beqz $src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (EQSI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BGEZ) : /* bgez $src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (GESI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BGTZ) : /* bgtz $src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (GTSI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BLEZ) : /* blez $src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (LESI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BLTZ) : /* bltz $src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (LTSI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BNEZ) : /* bnez $src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_src2), 0)) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BL8) : /* bl.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - SI opval = ADDSI (ANDSI (pc, -4), 4); - CPU (h_gr[((UINT) 14)]) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BL24) : /* bl.l $disp24 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl24.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -{ - { - SI opval = ADDSI (pc, 4); - CPU (h_gr[((UINT) 14)]) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BCL8) : /* bcl.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (CPU (h_cond)) { -{ - { - SI opval = ADDSI (ANDSI (pc, -4), 4); - CPU (h_gr[((UINT) 14)]) = opval; - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 4); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BCL24) : /* bcl.l $disp24 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl24.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (CPU (h_cond)) { -{ - { - SI opval = ADDSI (pc, 4); - CPU (h_gr[((UINT) 14)]) = opval; - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 4); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BNC8) : /* bnc.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (NOTBI (CPU (h_cond))) { - { - USI opval = FLD (i_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BNC24) : /* bnc.l $disp24 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl24.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NOTBI (CPU (h_cond))) { - { - USI opval = FLD (i_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BNE) : /* bne $src1,$src2,$disp16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_beq.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_src1), * FLD (i_src2))) { - { - USI opval = FLD (i_disp16); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BRA8) : /* bra.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - USI opval = FLD (i_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BRA24) : /* bra.l $disp24 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl24.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - USI opval = FLD (i_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BNCL8) : /* bncl.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (NOTBI (CPU (h_cond))) { -{ - { - SI opval = ADDSI (ANDSI (pc, -4), 4); - CPU (h_gr[((UINT) 14)]) = opval; - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp8); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 4); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BNCL24) : /* bncl.l $disp24 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl24.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NOTBI (CPU (h_cond))) { -{ - { - SI opval = ADDSI (pc, 4); - CPU (h_gr[((UINT) 14)]) = opval; - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp24); - SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc); - written |= (1 << 4); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_CMP) : /* cmp $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = LTSI (* FLD (i_src1), * FLD (i_src2)); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_CMPI) : /* cmpi $src2,$simm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_d.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - BI opval = LTSI (* FLD (i_src2), FLD (f_simm16)); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_CMPU) : /* cmpu $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = LTUSI (* FLD (i_src1), * FLD (i_src2)); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_CMPUI) : /* cmpui $src2,$simm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_d.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - BI opval = LTUSI (* FLD (i_src2), FLD (f_simm16)); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_CMPEQ) : /* cmpeq $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = EQSI (* FLD (i_src1), * FLD (i_src2)); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_CMPZ) : /* cmpz $src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = EQSI (* FLD (i_src2), 0); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_DIV) : /* div $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = DIVSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_DIVU) : /* divu $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = UDIVSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_REM) : /* rem $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = MODSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_REMU) : /* remu $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = UMODSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_DIVH) : /* divh $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - -if (NESI (* FLD (i_sr), 0)) { - { - SI opval = DIVSI (EXTHISI (TRUNCSIHI (* FLD (i_dr))), * FLD (i_sr)); - * FLD (i_dr) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_JC) : /* jc $sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_jl.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (CPU (h_cond)) { - { - USI opval = ANDSI (* FLD (i_sr), -4); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_JNC) : /* jnc $sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_jl.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (NOTBI (CPU (h_cond))) { - { - USI opval = ANDSI (* FLD (i_sr), -4); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_JL) : /* jl $sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_jl.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;USI temp1; - temp0 = ADDSI (ANDSI (pc, -4), 4); - temp1 = ANDSI (* FLD (i_sr), -4); - { - SI opval = temp0; - CPU (h_gr[((UINT) 14)]) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = temp1; - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_JMP) : /* jmp $sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_jl.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - USI opval = ANDSI (* FLD (i_sr), -4); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LD) : /* ld $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = GETMEMSI (current_cpu, pc, * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LD_D) : /* ld $dr,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = GETMEMSI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDB) : /* ldb $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = EXTQISI (GETMEMQI (current_cpu, pc, * FLD (i_sr))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDB_D) : /* ldb $dr,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = EXTQISI (GETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDH) : /* ldh $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = EXTHISI (GETMEMHI (current_cpu, pc, * FLD (i_sr))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDH_D) : /* ldh $dr,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = EXTHISI (GETMEMHI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDUB) : /* ldub $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ZEXTQISI (GETMEMQI (current_cpu, pc, * FLD (i_sr))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDUB_D) : /* ldub $dr,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ZEXTQISI (GETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDUH) : /* lduh $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ZEXTHISI (GETMEMHI (current_cpu, pc, * FLD (i_sr))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDUH_D) : /* lduh $dr,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ZEXTHISI (GETMEMHI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LD_PLUS) : /* ld $dr,@$sr+ */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;SI temp1; - temp0 = GETMEMSI (current_cpu, pc, * FLD (i_sr)); - temp1 = ADDSI (* FLD (i_sr), 4); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - SI opval = temp1; - * FLD (i_sr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LD24) : /* ld24 $dr,$uimm24 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld24.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = FLD (i_uimm24); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDI8) : /* ldi8 $dr,$simm8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_addi.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = FLD (f_simm8); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LDI16) : /* ldi16 $dr,$hash$slo16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = FLD (f_simm16); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_LOCK) : /* lock $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - BI opval = 1; - CPU (h_lock) = opval; - TRACE_RESULT (current_cpu, abuf, "lock", 'x', opval); - } - { - SI opval = GETMEMSI (current_cpu, pc, * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MACHI_A) : /* machi $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUMS (FLD (f_acc)), MULDI (EXTSIDI (ANDSI (* FLD (i_src1), 0xffff0000)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16))))), 8), 8); - SET_H_ACCUMS (FLD (f_acc), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MACLO_A) : /* maclo $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUMS (FLD (f_acc)), MULDI (EXTSIDI (SLLSI (* FLD (i_src1), 16)), EXTHIDI (TRUNCSIHI (* FLD (i_src2))))), 8), 8); - SET_H_ACCUMS (FLD (f_acc), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MACWHI_A) : /* macwhi $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ADDDI (GET_H_ACCUMS (FLD (f_acc)), MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16))))); - SET_H_ACCUMS (FLD (f_acc), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MACWLO_A) : /* macwlo $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ADDDI (GET_H_ACCUMS (FLD (f_acc)), MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (* FLD (i_src2))))); - SET_H_ACCUMS (FLD (f_acc), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MUL) : /* mul $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = MULSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MULHI_A) : /* mulhi $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (MULDI (EXTSIDI (ANDSI (* FLD (i_src1), 0xffff0000)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16)))), 16), 16); - SET_H_ACCUMS (FLD (f_acc), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MULLO_A) : /* mullo $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (MULDI (EXTSIDI (SLLSI (* FLD (i_src1), 16)), EXTHIDI (TRUNCSIHI (* FLD (i_src2)))), 16), 16); - SET_H_ACCUMS (FLD (f_acc), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MULWHI_A) : /* mulwhi $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16)))); - SET_H_ACCUMS (FLD (f_acc), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MULWLO_A) : /* mulwlo $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (* FLD (i_src2)))); - SET_H_ACCUMS (FLD (f_acc), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MV) : /* mv $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = * FLD (i_sr); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVFACHI_A) : /* mvfachi $dr,$accs */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = TRUNCDISI (SRADI (GET_H_ACCUMS (FLD (f_accs)), 32)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVFACLO_A) : /* mvfaclo $dr,$accs */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = TRUNCDISI (GET_H_ACCUMS (FLD (f_accs))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVFACMI_A) : /* mvfacmi $dr,$accs */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = TRUNCDISI (SRADI (GET_H_ACCUMS (FLD (f_accs)), 16)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVFC) : /* mvfc $dr,$scr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = GET_H_CR (FLD (f_r2)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVTACHI_A) : /* mvtachi $src1,$accs */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_mvtachi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ORDI (ANDDI (GET_H_ACCUMS (FLD (f_accs)), MAKEDI (0, 0xffffffff)), SLLDI (EXTSIDI (* FLD (i_src1)), 32)); - SET_H_ACCUMS (FLD (f_accs), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVTACLO_A) : /* mvtaclo $src1,$accs */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_mvtachi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ORDI (ANDDI (GET_H_ACCUMS (FLD (f_accs)), MAKEDI (0xffffffff, 0)), ZEXTSIDI (* FLD (i_src1))); - SET_H_ACCUMS (FLD (f_accs), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MVTC) : /* mvtc $sr,$dcr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - USI opval = * FLD (i_sr); - SET_H_CR (FLD (f_r1), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_NEG) : /* neg $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = NEGSI (* FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_NOP) : /* nop */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -PROFILE_COUNT_FILLNOPS (current_cpu, abuf->addr); - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_NOT) : /* not $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = INVSI (* FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_RAC_DSI) : /* rac $accd,$accs,$imm1 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_rac_dsi.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - DI tmp_tmp1; - tmp_tmp1 = SLLDI (GET_H_ACCUMS (FLD (f_accs)), FLD (f_imm1)); - tmp_tmp1 = ADDDI (tmp_tmp1, MAKEDI (0, 32768)); - { - DI opval = (GTDI (tmp_tmp1, MAKEDI (32767, 0xffff0000))) ? (MAKEDI (32767, 0xffff0000)) : (LTDI (tmp_tmp1, MAKEDI (0xffff8000, 0))) ? (MAKEDI (0xffff8000, 0)) : (ANDDI (tmp_tmp1, MAKEDI (0xffffffff, 0xffff0000))); - SET_H_ACCUMS (FLD (f_accd), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_RACH_DSI) : /* rach $accd,$accs,$imm1 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_rac_dsi.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - DI tmp_tmp1; - tmp_tmp1 = SLLDI (GET_H_ACCUMS (FLD (f_accs)), FLD (f_imm1)); - tmp_tmp1 = ADDDI (tmp_tmp1, MAKEDI (0, 0x80000000)); - { - DI opval = (GTDI (tmp_tmp1, MAKEDI (32767, 0))) ? (MAKEDI (32767, 0)) : (LTDI (tmp_tmp1, MAKEDI (0xffff8000, 0))) ? (MAKEDI (0xffff8000, 0)) : (ANDDI (tmp_tmp1, MAKEDI (0xffffffff, 0))); - SET_H_ACCUMS (FLD (f_accd), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_RTE) : /* rte */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - USI opval = ANDSI (GET_H_CR (((UINT) 6)), -4); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - { - USI opval = GET_H_CR (((UINT) 14)); - SET_H_CR (((UINT) 6), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - { - UQI opval = CPU (h_bpsw); - SET_H_PSW (opval); - TRACE_RESULT (current_cpu, abuf, "psw", 'x', opval); - } - { - UQI opval = CPU (h_bbpsw); - CPU (h_bpsw) = opval; - TRACE_RESULT (current_cpu, abuf, "bpsw", 'x', opval); - } -} - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SETH) : /* seth $dr,$hash$hi16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_seth.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = SLLSI (FLD (f_hi16), 16); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SLL) : /* sll $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SLLSI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SLL3) : /* sll3 $dr,$sr,$simm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = SLLSI (* FLD (i_sr), ANDSI (FLD (f_simm16), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SLLI) : /* slli $dr,$uimm5 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_slli.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SLLSI (* FLD (i_dr), FLD (f_uimm5)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SRA) : /* sra $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRASI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SRA3) : /* sra3 $dr,$sr,$simm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = SRASI (* FLD (i_sr), ANDSI (FLD (f_simm16), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SRAI) : /* srai $dr,$uimm5 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_slli.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRASI (* FLD (i_dr), FLD (f_uimm5)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SRL) : /* srl $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRLSI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SRL3) : /* srl3 $dr,$sr,$simm16 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add3.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = SRLSI (* FLD (i_sr), ANDSI (FLD (f_simm16), 31)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SRLI) : /* srli $dr,$uimm5 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_slli.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRLSI (* FLD (i_dr), FLD (f_uimm5)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ST) : /* st $src1,@$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, pc, * FLD (i_src2), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ST_D) : /* st $src1,@($slo16,$src2) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_d.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, pc, ADDSI (* FLD (i_src2), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_STB) : /* stb $src1,@$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - QI opval = * FLD (i_src1); - SETMEMQI (current_cpu, pc, * FLD (i_src2), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_STB_D) : /* stb $src1,@($slo16,$src2) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_d.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - QI opval = * FLD (i_src1); - SETMEMQI (current_cpu, pc, ADDSI (* FLD (i_src2), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_STH) : /* sth $src1,@$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - HI opval = * FLD (i_src1); - SETMEMHI (current_cpu, pc, * FLD (i_src2), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_STH_D) : /* sth $src1,@($slo16,$src2) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_d.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - HI opval = * FLD (i_src1); - SETMEMHI (current_cpu, pc, ADDSI (* FLD (i_src2), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ST_PLUS) : /* st $src1,@+$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI tmp_new_src2; - tmp_new_src2 = ADDSI (* FLD (i_src2), 4); - { - SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, pc, tmp_new_src2, opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - { - SI opval = tmp_new_src2; - * FLD (i_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_STH_PLUS) : /* sth $src1,@$src2+ */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - HI tmp_new_src2; - { - HI opval = * FLD (i_src1); - SETMEMHI (current_cpu, pc, tmp_new_src2, opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - tmp_new_src2 = ADDSI (* FLD (i_src2), 2); - { - SI opval = tmp_new_src2; - * FLD (i_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_STB_PLUS) : /* stb $src1,@$src2+ */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - QI tmp_new_src2; - { - QI opval = * FLD (i_src1); - SETMEMQI (current_cpu, pc, tmp_new_src2, opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - tmp_new_src2 = ADDSI (* FLD (i_src2), 1); - { - SI opval = tmp_new_src2; - * FLD (i_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_ST_MINUS) : /* st $src1,@-$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI tmp_new_src2; - tmp_new_src2 = SUBSI (* FLD (i_src2), 4); - { - SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, pc, tmp_new_src2, opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - { - SI opval = tmp_new_src2; - * FLD (i_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SUB) : /* sub $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SUBSI (* FLD (i_dr), * FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SUBV) : /* subv $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = SUBSI (* FLD (i_dr), * FLD (i_sr)); - temp1 = SUBOFSI (* FLD (i_dr), * FLD (i_sr), 0); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SUBX) : /* subx $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = SUBCSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - temp1 = SUBCFSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - { - SI opval = temp0; - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_TRAP) : /* trap $uimm4 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_trap.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - USI opval = GET_H_CR (((UINT) 6)); - SET_H_CR (((UINT) 14), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - { - USI opval = ADDSI (pc, 4); - SET_H_CR (((UINT) 6), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - { - UQI opval = CPU (h_bpsw); - CPU (h_bbpsw) = opval; - TRACE_RESULT (current_cpu, abuf, "bbpsw", 'x', opval); - } - { - UQI opval = GET_H_PSW (); - CPU (h_bpsw) = opval; - TRACE_RESULT (current_cpu, abuf, "bpsw", 'x', opval); - } - { - UQI opval = ANDQI (GET_H_PSW (), 128); - SET_H_PSW (opval); - TRACE_RESULT (current_cpu, abuf, "psw", 'x', opval); - } - { - SI opval = m32r_trap (current_cpu, pc, FLD (f_uimm4)); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - SEM_BRANCH_FINI (vpc); -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_UNLOCK) : /* unlock $src1,@$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ -if (CPU (h_lock)) { - { - SI opval = * FLD (i_src1); - SETMEMSI (current_cpu, pc, * FLD (i_src2), opval); - written |= (1 << 4); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } -} - { - BI opval = 0; - CPU (h_lock) = opval; - TRACE_RESULT (current_cpu, abuf, "lock", 'x', opval); - } -} - - abuf->written = written; -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SATB) : /* satb $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = (GESI (* FLD (i_sr), 127)) ? (127) : (LESI (* FLD (i_sr), -128)) ? (-128) : (* FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SATH) : /* sath $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = (GESI (* FLD (i_sr), 32767)) ? (32767) : (LESI (* FLD (i_sr), -32768)) ? (-32768) : (* FLD (i_sr)); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SAT) : /* sat $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - SI opval = ((CPU (h_cond)) ? (((LTSI (* FLD (i_sr), 0)) ? (2147483647) : (0x80000000))) : (* FLD (i_sr))); - * FLD (i_dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_PCMPBZ) : /* pcmpbz $src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = (EQSI (ANDSI (* FLD (i_src2), 255), 0)) ? (1) : (EQSI (ANDSI (* FLD (i_src2), 65280), 0)) ? (1) : (EQSI (ANDSI (* FLD (i_src2), 16711680), 0)) ? (1) : (EQSI (ANDSI (* FLD (i_src2), 0xff000000), 0)) ? (1) : (0); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SADD) : /* sadd */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ADDDI (SRADI (GET_H_ACCUMS (((UINT) 1)), 16), GET_H_ACCUMS (((UINT) 0))); - SET_H_ACCUMS (((UINT) 0), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MACWU1) : /* macwu1 $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUMS (((UINT) 1)), MULDI (EXTSIDI (* FLD (i_src1)), EXTSIDI (ANDSI (* FLD (i_src2), 65535)))), 8), 8); - SET_H_ACCUMS (((UINT) 1), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MSBLO) : /* msblo $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (SUBDI (GET_H_ACCUM (), SRADI (SLLDI (MULDI (EXTHIDI (TRUNCSIHI (* FLD (i_src1))), EXTHIDI (TRUNCSIHI (* FLD (i_src2)))), 32), 16)), 8), 8); - SET_H_ACCUM (opval); - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MULWU1) : /* mulwu1 $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (MULDI (EXTSIDI (* FLD (i_src1)), EXTSIDI (ANDSI (* FLD (i_src2), 65535))), 16), 16); - SET_H_ACCUMS (((UINT) 1), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_MACLH1) : /* maclh1 $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUMS (((UINT) 1)), SLLDI (EXTSIDI (MULSI (EXTHISI (TRUNCSIHI (* FLD (i_src1))), SRASI (* FLD (i_src2), 16))), 16)), 8), 8); - SET_H_ACCUMS (((UINT) 1), opval); - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SC) : /* sc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (ZEXTBISI (CPU (h_cond))) - SEM_SKIP_INSN (current_cpu, sem_arg, vpc); - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SNC) : /* snc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (ZEXTBISI (NOTBI (CPU (h_cond)))) - SEM_SKIP_INSN (current_cpu, sem_arg, vpc); - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_CLRPSW) : /* clrpsw $uimm8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_clrpsw.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ANDSI (GET_H_CR (((UINT) 0)), ORSI (INVBI (FLD (f_uimm8)), 65280)); - SET_H_CR (((UINT) 0), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_SETPSW) : /* setpsw $uimm8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_clrpsw.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = FLD (f_uimm8); - SET_H_CR (((UINT) 0), opval); - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BSET) : /* bset $uimm3,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bset.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - QI opval = ORQI (GETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16))), SLLSI (1, SUBSI (7, FLD (f_uimm3)))); - SETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BCLR) : /* bclr $uimm3,@($slo16,$sr) */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bset.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - - { - QI opval = ANDQI (GETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16))), INVQI (SLLSI (1, SUBSI (7, FLD (f_uimm3))))); - SETMEMQI (current_cpu, pc, ADDSI (* FLD (i_sr), FLD (f_simm16)), opval); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_BTST) : /* btst $uimm3,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bset.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = ANDQI (SRLSI (* FLD (i_sr), SUBSI (7, FLD (f_uimm3))), 1); - CPU (h_cond) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef FLD -} - NEXT (vpc); - - CASE (sem, INSN_PAR_ADD) : /* add $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ADDSI (* FLD (i_dr), * FLD (i_sr)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_ADD) : /* add $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_AND) : /* and $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ANDSI (* FLD (i_dr), * FLD (i_sr)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_AND) : /* and $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_OR) : /* or $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ORSI (* FLD (i_dr), * FLD (i_sr)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_OR) : /* or $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_XOR) : /* xor $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = XORSI (* FLD (i_dr), * FLD (i_sr)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_XOR) : /* xor $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_ADDI) : /* addi $dr,$simm8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_addi.f -#define OPRND(f) par_exec->operands.sfmt_addi.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ADDSI (* FLD (i_dr), FLD (f_simm8)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_ADDI) : /* addi $dr,$simm8 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_addi.f -#define OPRND(f) par_exec->operands.sfmt_addi.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_ADDV) : /* addv $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_addv.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = ADDSI (* FLD (i_dr), * FLD (i_sr)); - temp1 = ADDOFSI (* FLD (i_dr), * FLD (i_sr), 0); - { - SI opval = temp0; - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - OPRND (condbit) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_ADDV) : /* addv $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_addv.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_cond) = OPRND (condbit); - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_ADDX) : /* addx $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_addx.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = ADDCSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - temp1 = ADDCFSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - { - SI opval = temp0; - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - OPRND (condbit) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_ADDX) : /* addx $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_addx.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_cond) = OPRND (condbit); - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_BC8) : /* bc.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bc8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (CPU (h_cond)) { - { - USI opval = FLD (i_disp8); - OPRND (pc) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_BC8) : /* bc.s $disp8 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bc8.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - if (written & (1 << 2)) - { - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - } - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_BL8) : /* bl.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - SI opval = ADDSI (ANDSI (pc, -4), 4); - OPRND (h_gr_SI_14) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp8); - OPRND (pc) = opval; - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_BL8) : /* bl.s $disp8 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bl8.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_gr[((UINT) 14)]) = OPRND (h_gr_SI_14); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_BCL8) : /* bcl.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bcl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (CPU (h_cond)) { -{ - { - SI opval = ADDSI (ANDSI (pc, -4), 4); - OPRND (h_gr_SI_14) = opval; - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp8); - OPRND (pc) = opval; - written |= (1 << 4); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} -} - - abuf->written = written; -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_BCL8) : /* bcl.s $disp8 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bcl8.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - if (written & (1 << 3)) - { - CPU (h_gr[((UINT) 14)]) = OPRND (h_gr_SI_14); - } - if (written & (1 << 4)) - { - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - } - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_BNC8) : /* bnc.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bc8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (NOTBI (CPU (h_cond))) { - { - USI opval = FLD (i_disp8); - OPRND (pc) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_BNC8) : /* bnc.s $disp8 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bc8.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - if (written & (1 << 2)) - { - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - } - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_BRA8) : /* bra.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bra8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - USI opval = FLD (i_disp8); - OPRND (pc) = opval; - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_BRA8) : /* bra.s $disp8 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bra8.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_BNCL8) : /* bncl.s $disp8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bcl8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (NOTBI (CPU (h_cond))) { -{ - { - SI opval = ADDSI (ANDSI (pc, -4), 4); - OPRND (h_gr_SI_14) = opval; - written |= (1 << 3); - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = FLD (i_disp8); - OPRND (pc) = opval; - written |= (1 << 4); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} -} - - abuf->written = written; -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_BNCL8) : /* bncl.s $disp8 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_bl8.f -#define OPRND(f) par_exec->operands.sfmt_bcl8.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - if (written & (1 << 3)) - { - CPU (h_gr[((UINT) 14)]) = OPRND (h_gr_SI_14); - } - if (written & (1 << 4)) - { - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - } - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_CMP) : /* cmp $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_cmp.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = LTSI (* FLD (i_src1), * FLD (i_src2)); - OPRND (condbit) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_CMP) : /* cmp $src1,$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_cmp.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_cond) = OPRND (condbit); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_CMPU) : /* cmpu $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_cmp.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = LTUSI (* FLD (i_src1), * FLD (i_src2)); - OPRND (condbit) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_CMPU) : /* cmpu $src1,$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_cmp.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_cond) = OPRND (condbit); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_CMPEQ) : /* cmpeq $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_cmp.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = EQSI (* FLD (i_src1), * FLD (i_src2)); - OPRND (condbit) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_CMPEQ) : /* cmpeq $src1,$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_cmp.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_cond) = OPRND (condbit); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_CMPZ) : /* cmpz $src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_cmpz.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = EQSI (* FLD (i_src2), 0); - OPRND (condbit) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_CMPZ) : /* cmpz $src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_cmpz.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_cond) = OPRND (condbit); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_JC) : /* jc $sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_jl.f -#define OPRND(f) par_exec->operands.sfmt_jc.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (CPU (h_cond)) { - { - USI opval = ANDSI (* FLD (i_sr), -4); - OPRND (pc) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_JC) : /* jc $sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_jl.f -#define OPRND(f) par_exec->operands.sfmt_jc.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - if (written & (1 << 2)) - { - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - } - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_JNC) : /* jnc $sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_jl.f -#define OPRND(f) par_exec->operands.sfmt_jc.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (NOTBI (CPU (h_cond))) { - { - USI opval = ANDSI (* FLD (i_sr), -4); - OPRND (pc) = opval; - written |= (1 << 2); - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - - abuf->written = written; -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_JNC) : /* jnc $sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_jl.f -#define OPRND(f) par_exec->operands.sfmt_jc.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - if (written & (1 << 2)) - { - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - } - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_JL) : /* jl $sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_jl.f -#define OPRND(f) par_exec->operands.sfmt_jl.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;USI temp1; - temp0 = ADDSI (ANDSI (pc, -4), 4); - temp1 = ANDSI (* FLD (i_sr), -4); - { - SI opval = temp0; - OPRND (h_gr_SI_14) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - USI opval = temp1; - OPRND (pc) = opval; - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_JL) : /* jl $sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_jl.f -#define OPRND(f) par_exec->operands.sfmt_jl.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_gr[((UINT) 14)]) = OPRND (h_gr_SI_14); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_JMP) : /* jmp $sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_jl.f -#define OPRND(f) par_exec->operands.sfmt_jmp.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - USI opval = ANDSI (* FLD (i_sr), -4); - OPRND (pc) = opval; - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_JMP) : /* jmp $sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_jl.f -#define OPRND(f) par_exec->operands.sfmt_jmp.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_LD) : /* ld $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ld.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = GETMEMSI (current_cpu, pc, * FLD (i_sr)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_LD) : /* ld $dr,@$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ld.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_LDB) : /* ldb $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ldb.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = EXTQISI (GETMEMQI (current_cpu, pc, * FLD (i_sr))); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_LDB) : /* ldb $dr,@$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ldb.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_LDH) : /* ldh $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ldh.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = EXTHISI (GETMEMHI (current_cpu, pc, * FLD (i_sr))); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_LDH) : /* ldh $dr,@$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ldh.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_LDUB) : /* ldub $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ldb.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ZEXTQISI (GETMEMQI (current_cpu, pc, * FLD (i_sr))); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_LDUB) : /* ldub $dr,@$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ldb.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_LDUH) : /* lduh $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ldh.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ZEXTHISI (GETMEMHI (current_cpu, pc, * FLD (i_sr))); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_LDUH) : /* lduh $dr,@$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ldh.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_LD_PLUS) : /* ld $dr,@$sr+ */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ld_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;SI temp1; - temp0 = GETMEMSI (current_cpu, pc, * FLD (i_sr)); - temp1 = ADDSI (* FLD (i_sr), 4); - { - SI opval = temp0; - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - SI opval = temp1; - OPRND (sr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_LD_PLUS) : /* ld $dr,@$sr+ */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_ld_plus.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - * FLD (i_sr) = OPRND (sr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_LDI8) : /* ldi8 $dr,$simm8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_addi.f -#define OPRND(f) par_exec->operands.sfmt_ldi8.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = FLD (f_simm8); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_LDI8) : /* ldi8 $dr,$simm8 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_addi.f -#define OPRND(f) par_exec->operands.sfmt_ldi8.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_LOCK) : /* lock $dr,@$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_lock.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - BI opval = 1; - OPRND (h_lock_BI) = opval; - TRACE_RESULT (current_cpu, abuf, "lock", 'x', opval); - } - { - SI opval = GETMEMSI (current_cpu, pc, * FLD (i_sr)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_LOCK) : /* lock $dr,@$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_lock.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - CPU (h_lock) = OPRND (h_lock_BI); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MACHI_A) : /* machi $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUMS (FLD (f_acc)), MULDI (EXTSIDI (ANDSI (* FLD (i_src1), 0xffff0000)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16))))), 8), 8); - OPRND (acc) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MACHI_A) : /* machi $src1,$src2,$acc */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_machi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_acc), OPRND (acc)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MACLO_A) : /* maclo $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUMS (FLD (f_acc)), MULDI (EXTSIDI (SLLSI (* FLD (i_src1), 16)), EXTHIDI (TRUNCSIHI (* FLD (i_src2))))), 8), 8); - OPRND (acc) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MACLO_A) : /* maclo $src1,$src2,$acc */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_machi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_acc), OPRND (acc)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MACWHI_A) : /* macwhi $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ADDDI (GET_H_ACCUMS (FLD (f_acc)), MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16))))); - OPRND (acc) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MACWHI_A) : /* macwhi $src1,$src2,$acc */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_machi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_acc), OPRND (acc)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MACWLO_A) : /* macwlo $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_machi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ADDDI (GET_H_ACCUMS (FLD (f_acc)), MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (* FLD (i_src2))))); - OPRND (acc) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MACWLO_A) : /* macwlo $src1,$src2,$acc */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_machi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_acc), OPRND (acc)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MUL) : /* mul $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = MULSI (* FLD (i_dr), * FLD (i_sr)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MUL) : /* mul $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MULHI_A) : /* mulhi $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_mulhi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (MULDI (EXTSIDI (ANDSI (* FLD (i_src1), 0xffff0000)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16)))), 16), 16); - OPRND (acc) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MULHI_A) : /* mulhi $src1,$src2,$acc */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_mulhi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_acc), OPRND (acc)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MULLO_A) : /* mullo $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_mulhi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (MULDI (EXTSIDI (SLLSI (* FLD (i_src1), 16)), EXTHIDI (TRUNCSIHI (* FLD (i_src2)))), 16), 16); - OPRND (acc) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MULLO_A) : /* mullo $src1,$src2,$acc */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_mulhi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_acc), OPRND (acc)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MULWHI_A) : /* mulwhi $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_mulhi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (i_src2), 16)))); - OPRND (acc) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MULWHI_A) : /* mulwhi $src1,$src2,$acc */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_mulhi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_acc), OPRND (acc)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MULWLO_A) : /* mulwlo $src1,$src2,$acc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_mulhi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = MULDI (EXTSIDI (* FLD (i_src1)), EXTHIDI (TRUNCSIHI (* FLD (i_src2)))); - OPRND (acc) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MULWLO_A) : /* mulwlo $src1,$src2,$acc */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_machi_a.f -#define OPRND(f) par_exec->operands.sfmt_mulhi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_acc), OPRND (acc)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MV) : /* mv $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_mv.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = * FLD (i_sr); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MV) : /* mv $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_mv.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MVFACHI_A) : /* mvfachi $dr,$accs */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f -#define OPRND(f) par_exec->operands.sfmt_mvfachi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = TRUNCDISI (SRADI (GET_H_ACCUMS (FLD (f_accs)), 32)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MVFACHI_A) : /* mvfachi $dr,$accs */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f -#define OPRND(f) par_exec->operands.sfmt_mvfachi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MVFACLO_A) : /* mvfaclo $dr,$accs */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f -#define OPRND(f) par_exec->operands.sfmt_mvfachi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = TRUNCDISI (GET_H_ACCUMS (FLD (f_accs))); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MVFACLO_A) : /* mvfaclo $dr,$accs */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f -#define OPRND(f) par_exec->operands.sfmt_mvfachi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MVFACMI_A) : /* mvfacmi $dr,$accs */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f -#define OPRND(f) par_exec->operands.sfmt_mvfachi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = TRUNCDISI (SRADI (GET_H_ACCUMS (FLD (f_accs)), 16)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MVFACMI_A) : /* mvfacmi $dr,$accs */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_mvfachi_a.f -#define OPRND(f) par_exec->operands.sfmt_mvfachi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MVFC) : /* mvfc $dr,$scr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_mvfc.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = GET_H_CR (FLD (f_r2)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MVFC) : /* mvfc $dr,$scr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_mvfc.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MVTACHI_A) : /* mvtachi $src1,$accs */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_mvtachi_a.f -#define OPRND(f) par_exec->operands.sfmt_mvtachi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ORDI (ANDDI (GET_H_ACCUMS (FLD (f_accs)), MAKEDI (0, 0xffffffff)), SLLDI (EXTSIDI (* FLD (i_src1)), 32)); - OPRND (accs) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MVTACHI_A) : /* mvtachi $src1,$accs */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_mvtachi_a.f -#define OPRND(f) par_exec->operands.sfmt_mvtachi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_accs), OPRND (accs)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MVTACLO_A) : /* mvtaclo $src1,$accs */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_mvtachi_a.f -#define OPRND(f) par_exec->operands.sfmt_mvtachi_a.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ORDI (ANDDI (GET_H_ACCUMS (FLD (f_accs)), MAKEDI (0xffffffff, 0)), ZEXTSIDI (* FLD (i_src1))); - OPRND (accs) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MVTACLO_A) : /* mvtaclo $src1,$accs */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_mvtachi_a.f -#define OPRND(f) par_exec->operands.sfmt_mvtachi_a.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_accs), OPRND (accs)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MVTC) : /* mvtc $sr,$dcr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_mvtc.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - USI opval = * FLD (i_sr); - OPRND (dcr) = opval; - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MVTC) : /* mvtc $sr,$dcr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_mvtc.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_CR (FLD (f_r1), OPRND (dcr)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_NEG) : /* neg $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_mv.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = NEGSI (* FLD (i_sr)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_NEG) : /* neg $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_mv.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_NOP) : /* nop */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f -#define OPRND(f) par_exec->operands.sfmt_nop.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -PROFILE_COUNT_FILLNOPS (current_cpu, abuf->addr); - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_NOP) : /* nop */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.fmt_empty.f -#define OPRND(f) par_exec->operands.sfmt_nop.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_NOT) : /* not $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_mv.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = INVSI (* FLD (i_sr)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_NOT) : /* not $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_ld_plus.f -#define OPRND(f) par_exec->operands.sfmt_mv.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_RAC_DSI) : /* rac $accd,$accs,$imm1 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_rac_dsi.f -#define OPRND(f) par_exec->operands.sfmt_rac_dsi.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - DI tmp_tmp1; - tmp_tmp1 = SLLDI (GET_H_ACCUMS (FLD (f_accs)), FLD (f_imm1)); - tmp_tmp1 = ADDDI (tmp_tmp1, MAKEDI (0, 32768)); - { - DI opval = (GTDI (tmp_tmp1, MAKEDI (32767, 0xffff0000))) ? (MAKEDI (32767, 0xffff0000)) : (LTDI (tmp_tmp1, MAKEDI (0xffff8000, 0))) ? (MAKEDI (0xffff8000, 0)) : (ANDDI (tmp_tmp1, MAKEDI (0xffffffff, 0xffff0000))); - OPRND (accd) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_RAC_DSI) : /* rac $accd,$accs,$imm1 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_rac_dsi.f -#define OPRND(f) par_exec->operands.sfmt_rac_dsi.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_accd), OPRND (accd)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_RACH_DSI) : /* rach $accd,$accs,$imm1 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_rac_dsi.f -#define OPRND(f) par_exec->operands.sfmt_rac_dsi.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - DI tmp_tmp1; - tmp_tmp1 = SLLDI (GET_H_ACCUMS (FLD (f_accs)), FLD (f_imm1)); - tmp_tmp1 = ADDDI (tmp_tmp1, MAKEDI (0, 0x80000000)); - { - DI opval = (GTDI (tmp_tmp1, MAKEDI (32767, 0))) ? (MAKEDI (32767, 0)) : (LTDI (tmp_tmp1, MAKEDI (0xffff8000, 0))) ? (MAKEDI (0xffff8000, 0)) : (ANDDI (tmp_tmp1, MAKEDI (0xffffffff, 0))); - OPRND (accd) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_RACH_DSI) : /* rach $accd,$accs,$imm1 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_rac_dsi.f -#define OPRND(f) par_exec->operands.sfmt_rac_dsi.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (FLD (f_accd), OPRND (accd)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_RTE) : /* rte */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f -#define OPRND(f) par_exec->operands.sfmt_rte.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - USI opval = ANDSI (GET_H_CR (((UINT) 6)), -4); - OPRND (pc) = opval; - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } - { - USI opval = GET_H_CR (((UINT) 14)); - OPRND (h_cr_USI_6) = opval; - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - { - UQI opval = CPU (h_bpsw); - OPRND (h_psw_UQI) = opval; - TRACE_RESULT (current_cpu, abuf, "psw", 'x', opval); - } - { - UQI opval = CPU (h_bbpsw); - OPRND (h_bpsw_UQI) = opval; - TRACE_RESULT (current_cpu, abuf, "bpsw", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_RTE) : /* rte */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.fmt_empty.f -#define OPRND(f) par_exec->operands.sfmt_rte.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_bpsw) = OPRND (h_bpsw_UQI); - SET_H_CR (((UINT) 6), OPRND (h_cr_USI_6)); - SET_H_PSW (OPRND (h_psw_UQI)); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SLL) : /* sll $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SLLSI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SLL) : /* sll $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SLLI) : /* slli $dr,$uimm5 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_slli.f -#define OPRND(f) par_exec->operands.sfmt_slli.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SLLSI (* FLD (i_dr), FLD (f_uimm5)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SLLI) : /* slli $dr,$uimm5 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_slli.f -#define OPRND(f) par_exec->operands.sfmt_slli.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SRA) : /* sra $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRASI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SRA) : /* sra $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SRAI) : /* srai $dr,$uimm5 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_slli.f -#define OPRND(f) par_exec->operands.sfmt_slli.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRASI (* FLD (i_dr), FLD (f_uimm5)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SRAI) : /* srai $dr,$uimm5 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_slli.f -#define OPRND(f) par_exec->operands.sfmt_slli.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SRL) : /* srl $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRLSI (* FLD (i_dr), ANDSI (* FLD (i_sr), 31)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SRL) : /* srl $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SRLI) : /* srli $dr,$uimm5 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_slli.f -#define OPRND(f) par_exec->operands.sfmt_slli.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SRLSI (* FLD (i_dr), FLD (f_uimm5)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SRLI) : /* srli $dr,$uimm5 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_slli.f -#define OPRND(f) par_exec->operands.sfmt_slli.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_ST) : /* st $src1,@$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_st.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = * FLD (i_src1); - OPRND (h_memory_SI_src2_idx) = * FLD (i_src2); - OPRND (h_memory_SI_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_ST) : /* st $src1,@$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_st.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SETMEMSI (current_cpu, pc, OPRND (h_memory_SI_src2_idx), OPRND (h_memory_SI_src2)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_STB) : /* stb $src1,@$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_stb.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - QI opval = * FLD (i_src1); - OPRND (h_memory_QI_src2_idx) = * FLD (i_src2); - OPRND (h_memory_QI_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_STB) : /* stb $src1,@$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_stb.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SETMEMQI (current_cpu, pc, OPRND (h_memory_QI_src2_idx), OPRND (h_memory_QI_src2)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_STH) : /* sth $src1,@$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_sth.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - HI opval = * FLD (i_src1); - OPRND (h_memory_HI_src2_idx) = * FLD (i_src2); - OPRND (h_memory_HI_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_STH) : /* sth $src1,@$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_sth.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SETMEMHI (current_cpu, pc, OPRND (h_memory_HI_src2_idx), OPRND (h_memory_HI_src2)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_ST_PLUS) : /* st $src1,@+$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI tmp_new_src2; - tmp_new_src2 = ADDSI (* FLD (i_src2), 4); - { - SI opval = * FLD (i_src1); - OPRND (h_memory_SI_new_src2_idx) = tmp_new_src2; - OPRND (h_memory_SI_new_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - { - SI opval = tmp_new_src2; - OPRND (src2) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_ST_PLUS) : /* st $src1,@+$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_st_plus.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SETMEMSI (current_cpu, pc, OPRND (h_memory_SI_new_src2_idx), OPRND (h_memory_SI_new_src2)); - * FLD (i_src2) = OPRND (src2); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_STH_PLUS) : /* sth $src1,@$src2+ */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_sth_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - HI tmp_new_src2; - { - HI opval = * FLD (i_src1); - OPRND (h_memory_HI_new_src2_idx) = tmp_new_src2; - OPRND (h_memory_HI_new_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - tmp_new_src2 = ADDSI (* FLD (i_src2), 2); - { - SI opval = tmp_new_src2; - OPRND (src2) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_STH_PLUS) : /* sth $src1,@$src2+ */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_sth_plus.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SETMEMHI (current_cpu, pc, OPRND (h_memory_HI_new_src2_idx), OPRND (h_memory_HI_new_src2)); - * FLD (i_src2) = OPRND (src2); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_STB_PLUS) : /* stb $src1,@$src2+ */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_stb_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - QI tmp_new_src2; - { - QI opval = * FLD (i_src1); - OPRND (h_memory_QI_new_src2_idx) = tmp_new_src2; - OPRND (h_memory_QI_new_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - tmp_new_src2 = ADDSI (* FLD (i_src2), 1); - { - SI opval = tmp_new_src2; - OPRND (src2) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_STB_PLUS) : /* stb $src1,@$src2+ */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_stb_plus.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SETMEMQI (current_cpu, pc, OPRND (h_memory_QI_new_src2_idx), OPRND (h_memory_QI_new_src2)); - * FLD (i_src2) = OPRND (src2); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_ST_MINUS) : /* st $src1,@-$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_st_plus.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI tmp_new_src2; - tmp_new_src2 = SUBSI (* FLD (i_src2), 4); - { - SI opval = * FLD (i_src1); - OPRND (h_memory_SI_new_src2_idx) = tmp_new_src2; - OPRND (h_memory_SI_new_src2) = opval; - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } - { - SI opval = tmp_new_src2; - OPRND (src2) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_ST_MINUS) : /* st $src1,@-$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_st_plus.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SETMEMSI (current_cpu, pc, OPRND (h_memory_SI_new_src2_idx), OPRND (h_memory_SI_new_src2)); - * FLD (i_src2) = OPRND (src2); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SUB) : /* sub $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = SUBSI (* FLD (i_dr), * FLD (i_sr)); - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SUB) : /* sub $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_add.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SUBV) : /* subv $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_addv.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = SUBSI (* FLD (i_dr), * FLD (i_sr)); - temp1 = SUBOFSI (* FLD (i_dr), * FLD (i_sr), 0); - { - SI opval = temp0; - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - OPRND (condbit) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SUBV) : /* subv $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_addv.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_cond) = OPRND (condbit); - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SUBX) : /* subx $dr,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_addx.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - SI temp0;BI temp1; - temp0 = SUBCSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - temp1 = SUBCFSI (* FLD (i_dr), * FLD (i_sr), CPU (h_cond)); - { - SI opval = temp0; - OPRND (dr) = opval; - TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval); - } - { - BI opval = temp1; - OPRND (condbit) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SUBX) : /* subx $dr,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_add.f -#define OPRND(f) par_exec->operands.sfmt_addx.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_cond) = OPRND (condbit); - * FLD (i_dr) = OPRND (dr); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_TRAP) : /* trap $uimm4 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_trap.f -#define OPRND(f) par_exec->operands.sfmt_trap.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ - { - USI opval = GET_H_CR (((UINT) 6)); - OPRND (h_cr_USI_14) = opval; - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - { - USI opval = ADDSI (pc, 4); - OPRND (h_cr_USI_6) = opval; - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - { - UQI opval = CPU (h_bpsw); - OPRND (h_bbpsw_UQI) = opval; - TRACE_RESULT (current_cpu, abuf, "bbpsw", 'x', opval); - } - { - UQI opval = GET_H_PSW (); - OPRND (h_bpsw_UQI) = opval; - TRACE_RESULT (current_cpu, abuf, "bpsw", 'x', opval); - } - { - UQI opval = ANDQI (GET_H_PSW (), 128); - OPRND (h_psw_UQI) = opval; - TRACE_RESULT (current_cpu, abuf, "psw", 'x', opval); - } - { - SI opval = m32r_trap (current_cpu, pc, FLD (f_uimm4)); - OPRND (pc) = opval; - TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval); - } -} - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_TRAP) : /* trap $uimm4 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_trap.f -#define OPRND(f) par_exec->operands.sfmt_trap.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - SEM_BRANCH_INIT - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_bbpsw) = OPRND (h_bbpsw_UQI); - CPU (h_bpsw) = OPRND (h_bpsw_UQI); - SET_H_CR (((UINT) 14), OPRND (h_cr_USI_14)); - SET_H_CR (((UINT) 6), OPRND (h_cr_USI_6)); - SET_H_PSW (OPRND (h_psw_UQI)); - SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, OPRND (pc), vpc); - - SEM_BRANCH_FINI (vpc); -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_UNLOCK) : /* unlock $src1,@$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_unlock.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -{ -if (CPU (h_lock)) { - { - SI opval = * FLD (i_src1); - OPRND (h_memory_SI_src2_idx) = * FLD (i_src2); - OPRND (h_memory_SI_src2) = opval; - written |= (1 << 4); - TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval); - } -} - { - BI opval = 0; - OPRND (h_lock_BI) = opval; - TRACE_RESULT (current_cpu, abuf, "lock", 'x', opval); - } -} - - abuf->written = written; -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_UNLOCK) : /* unlock $src1,@$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_unlock.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_lock) = OPRND (h_lock_BI); - if (written & (1 << 4)) - { - SETMEMSI (current_cpu, pc, OPRND (h_memory_SI_src2_idx), OPRND (h_memory_SI_src2)); - } - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_PCMPBZ) : /* pcmpbz $src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_cmpz.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = (EQSI (ANDSI (* FLD (i_src2), 255), 0)) ? (1) : (EQSI (ANDSI (* FLD (i_src2), 65280), 0)) ? (1) : (EQSI (ANDSI (* FLD (i_src2), 16711680), 0)) ? (1) : (EQSI (ANDSI (* FLD (i_src2), 0xff000000), 0)) ? (1) : (0); - OPRND (condbit) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_PCMPBZ) : /* pcmpbz $src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_cmpz.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_cond) = OPRND (condbit); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SADD) : /* sadd */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f -#define OPRND(f) par_exec->operands.sfmt_sadd.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = ADDDI (SRADI (GET_H_ACCUMS (((UINT) 1)), 16), GET_H_ACCUMS (((UINT) 0))); - OPRND (h_accums_DI_0) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SADD) : /* sadd */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.fmt_empty.f -#define OPRND(f) par_exec->operands.sfmt_sadd.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (((UINT) 0), OPRND (h_accums_DI_0)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MACWU1) : /* macwu1 $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_macwu1.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUMS (((UINT) 1)), MULDI (EXTSIDI (* FLD (i_src1)), EXTSIDI (ANDSI (* FLD (i_src2), 65535)))), 8), 8); - OPRND (h_accums_DI_1) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MACWU1) : /* macwu1 $src1,$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_macwu1.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (((UINT) 1), OPRND (h_accums_DI_1)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MSBLO) : /* msblo $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_msblo.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (SUBDI (GET_H_ACCUM (), SRADI (SLLDI (MULDI (EXTHIDI (TRUNCSIHI (* FLD (i_src1))), EXTHIDI (TRUNCSIHI (* FLD (i_src2)))), 32), 16)), 8), 8); - OPRND (accum) = opval; - TRACE_RESULT (current_cpu, abuf, "accum", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MSBLO) : /* msblo $src1,$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_msblo.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUM (OPRND (accum)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MULWU1) : /* mulwu1 $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_mulwu1.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (MULDI (EXTSIDI (* FLD (i_src1)), EXTSIDI (ANDSI (* FLD (i_src2), 65535))), 16), 16); - OPRND (h_accums_DI_1) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MULWU1) : /* mulwu1 $src1,$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_mulwu1.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (((UINT) 1), OPRND (h_accums_DI_1)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_MACLH1) : /* maclh1 $src1,$src2 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_macwu1.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - DI opval = SRADI (SLLDI (ADDDI (GET_H_ACCUMS (((UINT) 1)), SLLDI (EXTSIDI (MULSI (EXTHISI (TRUNCSIHI (* FLD (i_src1))), SRASI (* FLD (i_src2), 16))), 16)), 8), 8); - OPRND (h_accums_DI_1) = opval; - TRACE_RESULT (current_cpu, abuf, "accums", 'D', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_MACLH1) : /* maclh1 $src1,$src2 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_st_plus.f -#define OPRND(f) par_exec->operands.sfmt_macwu1.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_ACCUMS (((UINT) 1), OPRND (h_accums_DI_1)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SC) : /* sc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f -#define OPRND(f) par_exec->operands.sfmt_sc.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (ZEXTBISI (CPU (h_cond))) - SEM_SKIP_INSN (current_cpu, sem_arg, vpc); - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SC) : /* sc */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.fmt_empty.f -#define OPRND(f) par_exec->operands.sfmt_sc.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SNC) : /* snc */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.fmt_empty.f -#define OPRND(f) par_exec->operands.sfmt_sc.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - -if (ZEXTBISI (NOTBI (CPU (h_cond)))) - SEM_SKIP_INSN (current_cpu, sem_arg, vpc); - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SNC) : /* snc */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.fmt_empty.f -#define OPRND(f) par_exec->operands.sfmt_sc.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_CLRPSW) : /* clrpsw $uimm8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_clrpsw.f -#define OPRND(f) par_exec->operands.sfmt_clrpsw.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = ANDSI (GET_H_CR (((UINT) 0)), ORSI (INVBI (FLD (f_uimm8)), 65280)); - OPRND (h_cr_USI_0) = opval; - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_CLRPSW) : /* clrpsw $uimm8 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_clrpsw.f -#define OPRND(f) par_exec->operands.sfmt_clrpsw.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_CR (((UINT) 0), OPRND (h_cr_USI_0)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_SETPSW) : /* setpsw $uimm8 */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_clrpsw.f -#define OPRND(f) par_exec->operands.sfmt_setpsw.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - SI opval = FLD (f_uimm8); - OPRND (h_cr_USI_0) = opval; - TRACE_RESULT (current_cpu, abuf, "cr", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_SETPSW) : /* setpsw $uimm8 */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_clrpsw.f -#define OPRND(f) par_exec->operands.sfmt_setpsw.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - SET_H_CR (((UINT) 0), OPRND (h_cr_USI_0)); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - CASE (sem, INSN_PAR_BTST) : /* btst $uimm3,$sr */ -{ - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - ARGBUF *abuf = SEM_ARGBUF (sem_arg); -#define FLD(f) abuf->fields.sfmt_bset.f -#define OPRND(f) par_exec->operands.sfmt_btst.f - int UNUSED written = 0; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 2); - - { - BI opval = ANDQI (SRLSI (* FLD (i_sr), SUBSI (7, FLD (f_uimm3))), 1); - OPRND (condbit) = opval; - TRACE_RESULT (current_cpu, abuf, "cond", 'x', opval); - } - -#undef OPRND -#undef FLD -} - NEXT (vpc); - -CASE (sem, INSN_WRITE_BTST) : /* btst $uimm3,$sr */ - { - SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc); - const ARGBUF *abuf = SEM_ARGBUF (sem_arg)->fields.write.abuf; -#define FLD(f) abuf->fields.sfmt_bset.f -#define OPRND(f) par_exec->operands.sfmt_btst.f - int UNUSED written = abuf->written; - IADDR UNUSED pc = abuf->addr; - vpc = SEM_NEXT_VPC (sem_arg, pc, 0); - - CPU (h_cond) = OPRND (condbit); - -#undef OPRND -#undef FLD - } - NEXT (vpc); - - - } - ENDSWITCH (sem) /* End of semantic switch. */ - - /* At this point `vpc' contains the next insn to execute. */ -} - -#undef DEFINE_SWITCH -#endif /* DEFINE_SWITCH */ diff --git a/sim/m32r/sim-if.c b/sim/m32r/sim-if.c deleted file mode 100644 index f8bbece..0000000 --- a/sim/m32r/sim-if.c +++ /dev/null @@ -1,306 +0,0 @@ -/* Main simulator entry points specific to the M32R. - Copyright (C) 1996, 1997, 1998, 1999, 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. */ - -#include "sim-main.h" -#include "sim-options.h" -#include "libiberty.h" -#include "bfd.h" - -#ifdef HAVE_STRING_H -#include <string.h> -#else -#ifdef HAVE_STRINGS_H -#include <strings.h> -#endif -#endif -#ifdef HAVE_STDLIB_H -#include <stdlib.h> -#endif - -static void free_state (SIM_DESC); -static void print_m32r_misc_cpu (SIM_CPU *cpu, int verbose); - -/* Records simulator descriptor so utilities like m32r_dump_regs can be - called from gdb. */ -SIM_DESC current_state; - -/* Cover function of sim_state_free to free the cpu buffers as well. */ - -static void -free_state (SIM_DESC sd) -{ - if (STATE_MODULES (sd) != NULL) - sim_module_uninstall (sd); - sim_cpu_free_all (sd); - sim_state_free (sd); -} - -/* Create an instance of the simulator. */ - -SIM_DESC -sim_open (kind, callback, abfd, argv) - SIM_OPEN_KIND kind; - host_callback *callback; - struct bfd *abfd; - char **argv; -{ - SIM_DESC sd = sim_state_alloc (kind, callback); - char c; - int i; - - /* The cpu data is kept in a separately allocated chunk of memory. */ - if (sim_cpu_alloc_all (sd, 1, cgen_cpu_max_extra_bytes ()) != SIM_RC_OK) - { - free_state (sd); - return 0; - } - -#if 0 /* FIXME: pc is in mach-specific struct */ - /* FIXME: watchpoints code shouldn't need this */ - { - SIM_CPU *current_cpu = STATE_CPU (sd, 0); - STATE_WATCHPOINTS (sd)->pc = &(PC); - STATE_WATCHPOINTS (sd)->sizeof_pc = sizeof (PC); - } -#endif - - if (sim_pre_argv_init (sd, argv[0]) != SIM_RC_OK) - { - free_state (sd); - return 0; - } - -#ifdef HAVE_DV_SOCKSER /* FIXME: was done differently before */ - if (dv_sockser_install (sd) != SIM_RC_OK) - { - free_state (sd); - return 0; - } -#endif - -#if 0 /* FIXME: 'twould be nice if we could do this */ - /* These options override any module options. - Obviously ambiguity should be avoided, however the caller may wish to - augment the meaning of an option. */ - if (extra_options != NULL) - sim_add_option_table (sd, extra_options); -#endif - - /* 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) - { - free_state (sd); - return 0; - } - - /* Allocate a handler for the control registers and other devices - if no memory for that range has been allocated by the user. - All are allocated in one chunk to keep things from being - unnecessarily complicated. */ - if (sim_core_read_buffer (sd, NULL, read_map, &c, M32R_DEVICE_ADDR, 1) == 0) - sim_core_attach (sd, NULL, - 0 /*level*/, - access_read_write, - 0 /*space ???*/, - M32R_DEVICE_ADDR, M32R_DEVICE_LEN /*nr_bytes*/, - 0 /*modulo*/, - &m32r_devices, - NULL /*buffer*/); - - /* Allocate core managed memory if none specified by user. - Use address 4 here in case the user wanted address 0 unmapped. */ - if (sim_core_read_buffer (sd, NULL, read_map, &c, 4, 1) == 0) - sim_do_commandf (sd, "memory region 0,0x%x", M32R_DEFAULT_MEM_SIZE); - - /* check for/establish the reference program image */ - if (sim_analyze_program (sd, - (STATE_PROG_ARGV (sd) != NULL - ? *STATE_PROG_ARGV (sd) - : NULL), - abfd) != SIM_RC_OK) - { - free_state (sd); - return 0; - } - - /* Establish any remaining configuration options. */ - if (sim_config (sd) != SIM_RC_OK) - { - free_state (sd); - return 0; - } - - if (sim_post_argv_init (sd) != SIM_RC_OK) - { - free_state (sd); - return 0; - } - - /* Open a copy of the cpu descriptor table. */ - { - CGEN_CPU_DESC cd = m32r_cgen_cpu_open_1 (STATE_ARCHITECTURE (sd)->printable_name, - CGEN_ENDIAN_BIG); - for (i = 0; i < MAX_NR_PROCESSORS; ++i) - { - SIM_CPU *cpu = STATE_CPU (sd, i); - CPU_CPU_DESC (cpu) = cd; - CPU_DISASSEMBLER (cpu) = sim_cgen_disassemble_insn; - } - m32r_cgen_init_dis (cd); - } - - /* Initialize various cgen things not done by common framework. - Must be done after m32r_cgen_cpu_open. */ - cgen_init (sd); - - for (c = 0; c < MAX_NR_PROCESSORS; ++c) - { - /* Only needed for profiling, but the structure member is small. */ - memset (CPU_M32R_MISC_PROFILE (STATE_CPU (sd, i)), 0, - sizeof (* CPU_M32R_MISC_PROFILE (STATE_CPU (sd, i)))); - /* Hook in callback for reporting these stats */ - PROFILE_INFO_CPU_CALLBACK (CPU_PROFILE_DATA (STATE_CPU (sd, i))) - = print_m32r_misc_cpu; - } - - /* Store in a global so things like sparc32_dump_regs can be invoked - from the gdb command line. */ - current_state = sd; - - return sd; -} - -void -sim_close (sd, quitting) - SIM_DESC sd; - int quitting; -{ - m32r_cgen_cpu_close (CPU_CPU_DESC (STATE_CPU (sd, 0))); - sim_module_uninstall (sd); -} - -SIM_RC -sim_create_inferior (sd, abfd, argv, envp) - SIM_DESC sd; - struct bfd *abfd; - char **argv; - char **envp; -{ - SIM_CPU *current_cpu = STATE_CPU (sd, 0); - SIM_ADDR addr; - - if (abfd != NULL) - addr = bfd_get_start_address (abfd); - else - addr = 0; - sim_pc_set (current_cpu, addr); - -#ifdef M32R_LINUX - m32rbf_h_cr_set (current_cpu, - m32r_decode_gdb_ctrl_regnum(SPI_REGNUM), 0x1f00000); - m32rbf_h_cr_set (current_cpu, - m32r_decode_gdb_ctrl_regnum(SPU_REGNUM), 0x1f00000); -#endif - -#if 0 - STATE_ARGV (sd) = sim_copy_argv (argv); - STATE_ENVP (sd) = sim_copy_argv (envp); -#endif - - return SIM_RC_OK; -} - -/* PROFILE_CPU_CALLBACK */ - -static void -print_m32r_misc_cpu (SIM_CPU *cpu, int verbose) -{ - SIM_DESC sd = CPU_STATE (cpu); - char buf[20]; - - if (CPU_PROFILE_FLAGS (cpu) [PROFILE_INSN_IDX]) - { - sim_io_printf (sd, "Miscellaneous Statistics\n\n"); - sim_io_printf (sd, " %-*s %s\n\n", - PROFILE_LABEL_WIDTH, "Fill nops:", - sim_add_commas (buf, sizeof (buf), - CPU_M32R_MISC_PROFILE (cpu)->fillnop_count)); - if (STATE_ARCHITECTURE (sd)->mach == bfd_mach_m32rx) - sim_io_printf (sd, " %-*s %s\n\n", - PROFILE_LABEL_WIDTH, "Parallel insns:", - sim_add_commas (buf, sizeof (buf), - CPU_M32R_MISC_PROFILE (cpu)->parallel_count)); - if (STATE_ARCHITECTURE (sd)->mach == bfd_mach_m32r2) - sim_io_printf (sd, " %-*s %s\n\n", - PROFILE_LABEL_WIDTH, "Parallel insns:", - sim_add_commas (buf, sizeof (buf), - CPU_M32R_MISC_PROFILE (cpu)->parallel_count)); - } -} - -void -sim_do_command (sd, cmd) - SIM_DESC sd; - char *cmd; -{ - char **argv; - - if (cmd == NULL) - return; - - argv = buildargv (cmd); - - if (argv[0] != NULL - && strcasecmp (argv[0], "info") == 0 - && argv[1] != NULL - && strncasecmp (argv[1], "reg", 3) == 0) - { - SI val; - - /* We only support printing bbpsw,bbpc here as there is no equivalent - functionality in gdb. */ - if (argv[2] == NULL) - sim_io_eprintf (sd, "Missing register in `%s'\n", cmd); - else if (argv[3] != NULL) - sim_io_eprintf (sd, "Too many arguments in `%s'\n", cmd); - else if (strcasecmp (argv[2], "bbpsw") == 0) - { - val = m32rbf_h_cr_get (STATE_CPU (sd, 0), H_CR_BBPSW); - sim_io_printf (sd, "bbpsw 0x%x %d\n", val, val); - } - else if (strcasecmp (argv[2], "bbpc") == 0) - { - val = m32rbf_h_cr_get (STATE_CPU (sd, 0), H_CR_BBPC); - sim_io_printf (sd, "bbpc 0x%x %d\n", val, val); - } - else - sim_io_eprintf (sd, "Printing of register `%s' not supported with `sim info'\n", - argv[2]); - } - else - { - if (sim_args_command (sd, cmd) != SIM_RC_OK) - sim_io_eprintf (sd, "Unknown sim command `%s'\n", cmd); - } - - freeargv (argv); -} diff --git a/sim/m32r/sim-main.h b/sim/m32r/sim-main.h deleted file mode 100644 index 2cbb40b..0000000 --- a/sim/m32r/sim-main.h +++ /dev/null @@ -1,94 +0,0 @@ -/* Main header for the m32r. */ - -#ifndef SIM_MAIN_H -#define SIM_MAIN_H - -#define USING_SIM_BASE_H /* FIXME: quick hack */ - -struct _sim_cpu; /* FIXME: should be in sim-basics.h */ -typedef struct _sim_cpu SIM_CPU; - -#include "symcat.h" -#include "sim-basics.h" -#include "cgen-types.h" -#include "m32r-desc.h" -#include "m32r-opc.h" -#include "arch.h" - -/* These must be defined before sim-base.h. */ -typedef USI sim_cia; - -#define CIA_GET(cpu) CPU_PC_GET (cpu) -#define CIA_SET(cpu,val) CPU_PC_SET ((cpu), (val)) - -#define SIM_ENGINE_HALT_HOOK(sd, cpu, cia) \ -do { \ - if (cpu) /* null if ctrl-c */ \ - sim_pc_set ((cpu), (cia)); \ -} while (0) -#define SIM_ENGINE_RESTART_HOOK(sd, cpu, cia) \ -do { \ - sim_pc_set ((cpu), (cia)); \ -} while (0) - -#include "sim-base.h" -#include "cgen-sim.h" -#include "m32r-sim.h" -#include "opcode/cgen.h" - -/* The _sim_cpu struct. */ - -struct _sim_cpu { - /* sim/common cpu base. */ - sim_cpu_base base; - - /* Static parts of cgen. */ - CGEN_CPU cgen_cpu; - - M32R_MISC_PROFILE m32r_misc_profile; -#define CPU_M32R_MISC_PROFILE(cpu) (& (cpu)->m32r_misc_profile) - - /* CPU specific parts go here. - Note that in files that don't need to access these pieces WANT_CPU_FOO - won't be defined and thus these parts won't appear. This is ok in the - sense that things work. It is a source of bugs though. - One has to of course be careful to not take the size of this - struct and no structure members accessed in non-cpu specific files can - go after here. Oh for a better language. */ -#if defined (WANT_CPU_M32RBF) - M32RBF_CPU_DATA cpu_data; -#endif -#if defined (WANT_CPU_M32RXF) - M32RXF_CPU_DATA cpu_data; -#elif defined (WANT_CPU_M32R2F) - M32R2F_CPU_DATA cpu_data; -#endif -}; - -/* The sim_state struct. */ - -struct sim_state { - sim_cpu *cpu; -#define STATE_CPU(sd, n) (/*&*/ (sd)->cpu) - - CGEN_STATE cgen_state; - - sim_state_base base; -}; - -/* Misc. */ - -/* Catch address exceptions. */ -extern SIM_CORE_SIGNAL_FN m32r_core_signal; -#define SIM_CORE_SIGNAL(SD,CPU,CIA,MAP,NR_BYTES,ADDR,TRANSFER,ERROR) \ -m32r_core_signal ((SD), (CPU), (CIA), (MAP), (NR_BYTES), (ADDR), \ - (TRANSFER), (ERROR)) - -/* Default memory size. */ -#ifdef M32R_LINUX -#define M32R_DEFAULT_MEM_SIZE 0x2000000 /* 32M */ -#else -#define M32R_DEFAULT_MEM_SIZE 0x800000 /* 8M */ -#endif - -#endif /* SIM_MAIN_H */ diff --git a/sim/m32r/syscall.h b/sim/m32r/syscall.h deleted file mode 100644 index 3f4252a..0000000 --- a/sim/m32r/syscall.h +++ /dev/null @@ -1,281 +0,0 @@ -/* - * This file contains the system call numbers. - */ - -#define __NR_exit 1 -#define __NR_fork 2 -#define __NR_read 3 -#define __NR_write 4 -#define __NR_open 5 -#define __NR_close 6 -#define __NR_waitpid 7 -#define __NR_creat 8 -#define __NR_link 9 -#define __NR_unlink 10 -#define __NR_execve 11 -#define __NR_chdir 12 -#define __NR_time 13 -#define __NR_mknod 14 -#define __NR_chmod 15 -#define __NR_lchown 16 -#define __NR_break 17 -#define __NR_oldstat 18 -#define __NR_lseek 19 -#define __NR_getpid 20 -#define __NR_mount 21 -#define __NR_umount 22 -#define __NR_setuid 23 -#define __NR_getuid 24 -#define __NR_stime 25 -#define __NR_ptrace 26 -#define __NR_alarm 27 -#define __NR_oldfstat 28 -#define __NR_pause 29 -#define __NR_utime 30 -#define __NR_stty 31 -#define __NR_gtty 32 -#define __NR_access 33 -#define __NR_nice 34 -#define __NR_ftime 35 -#define __NR_sync 36 -#define __NR_kill 37 -#define __NR_rename 38 -#define __NR_mkdir 39 -#define __NR_rmdir 40 -#define __NR_dup 41 -#define __NR_pipe 42 -#define __NR_times 43 -#define __NR_prof 44 -#define __NR_brk 45 -#define __NR_setgid 46 -#define __NR_getgid 47 -#define __NR_signal 48 -#define __NR_geteuid 49 -#define __NR_getegid 50 -#define __NR_acct 51 -#define __NR_umount2 52 -#define __NR_lock 53 -#define __NR_ioctl 54 -#define __NR_fcntl 55 -#define __NR_mpx 56 -#define __NR_setpgid 57 -#define __NR_ulimit 58 -#define __NR_oldolduname 59 -#define __NR_umask 60 -#define __NR_chroot 61 -#define __NR_ustat 62 -#define __NR_dup2 63 -#define __NR_getppid 64 -#define __NR_getpgrp 65 -#define __NR_setsid 66 -#define __NR_sigaction 67 -#define __NR_sgetmask 68 -#define __NR_ssetmask 69 -#define __NR_setreuid 70 -#define __NR_setregid 71 -#define __NR_sigsuspend 72 -#define __NR_sigpending 73 -#define __NR_sethostname 74 -#define __NR_setrlimit 75 -#define __NR_getrlimit 76 -#define __NR_getrusage 77 -#define __NR_gettimeofday 78 -#define __NR_settimeofday 79 -#define __NR_getgroups 80 -#define __NR_setgroups 81 -#define __NR_select 82 -#define __NR_symlink 83 -#define __NR_oldlstat 84 -#define __NR_readlink 85 -#define __NR_uselib 86 -#define __NR_swapon 87 -#define __NR_reboot 88 -#define __NR_readdir 89 -#define __NR_mmap 90 -#define __NR_munmap 91 -#define __NR_truncate 92 -#define __NR_ftruncate 93 -#define __NR_fchmod 94 -#define __NR_fchown 95 -#define __NR_getpriority 96 -#define __NR_setpriority 97 -#define __NR_profil 98 -#define __NR_statfs 99 -#define __NR_fstatfs 100 -#define __NR_ioperm 101 -#define __NR_socketcall 102 -#define __NR_syslog 103 -#define __NR_setitimer 104 -#define __NR_getitimer 105 -#define __NR_stat 106 -#define __NR_lstat 107 -#define __NR_fstat 108 -#define __NR_olduname 109 -#define __NR_iopl 110 -#define __NR_vhangup 111 -#define __NR_idle 112 -#define __NR_vm86old 113 -#define __NR_wait4 114 -#define __NR_swapoff 115 -#define __NR_sysinfo 116 -#define __NR_ipc 117 -#define __NR_fsync 118 -#define __NR_sigreturn 119 -#define __NR_clone 120 -#define __NR_setdomainname 121 -#define __NR_uname 122 -#define __NR_modify_ldt 123 -#define __NR_adjtimex 124 -#define __NR_mprotect 125 -#define __NR_sigprocmask 126 -#define __NR_create_module 127 -#define __NR_init_module 128 -#define __NR_delete_module 129 -#define __NR_get_kernel_syms 130 -#define __NR_quotactl 131 -#define __NR_getpgid 132 -#define __NR_fchdir 133 -#define __NR_bdflush 134 -#define __NR_sysfs 135 -#define __NR_personality 136 -#define __NR_afs_syscall 137 /* Syscall for Andrew File System */ -#define __NR_setfsuid 138 -#define __NR_setfsgid 139 -#define __NR__llseek 140 -#define __NR_getdents 141 -#define __NR__newselect 142 -#define __NR_flock 143 -#define __NR_msync 144 -#define __NR_readv 145 -#define __NR_writev 146 -#define __NR_getsid 147 -#define __NR_fdatasync 148 -#define __NR__sysctl 149 -#define __NR_mlock 150 -#define __NR_munlock 151 -#define __NR_mlockall 152 -#define __NR_munlockall 153 -#define __NR_sched_setparam 154 -#define __NR_sched_getparam 155 -#define __NR_sched_setscheduler 156 -#define __NR_sched_getscheduler 157 -#define __NR_sched_yield 158 -#define __NR_sched_get_priority_max 159 -#define __NR_sched_get_priority_min 160 -#define __NR_sched_rr_get_interval 161 -#define __NR_nanosleep 162 -#define __NR_mremap 163 -#define __NR_setresuid 164 -#define __NR_getresuid 165 -#define __NR_vm86 166 -#define __NR_query_module 167 -#define __NR_poll 168 -#define __NR_nfsservctl 169 -#define __NR_setresgid 170 -#define __NR_getresgid 171 -#define __NR_prctl 172 -#define __NR_rt_sigreturn 173 -#define __NR_rt_sigaction 174 -#define __NR_rt_sigprocmask 175 -#define __NR_rt_sigpending 176 -#define __NR_rt_sigtimedwait 177 -#define __NR_rt_sigqueueinfo 178 -#define __NR_rt_sigsuspend 179 -#define __NR_pread 180 -#define __NR_pwrite 181 -#define __NR_chown 182 -#define __NR_getcwd 183 -#define __NR_capget 184 -#define __NR_capset 185 -#define __NR_sigaltstack 186 -#define __NR_sendfile 187 -#define __NR_getpmsg 188 /* some people actually want streams */ -#define __NR_putpmsg 189 /* some people actually want streams */ -#define __NR_vfork 190 - -#define __NR_pread64 180 -#define __NR_pwrite64 181 - -#define __NR_ugetrlimit 191 /* SuS compliant getrlimit */ -#define __NR_mmap2 192 -#define __NR_truncate64 193 -#define __NR_ftruncate64 194 -#define __NR_stat64 195 -#define __NR_lstat64 196 -#define __NR_fstat64 197 -#define __NR_lchown32 198 -#define __NR_getuid32 199 -#define __NR_getgid32 200 -#define __NR_geteuid32 201 -#define __NR_getegid32 202 -#define __NR_setreuid32 203 -#define __NR_setregid32 204 -#define __NR_getgroups32 205 -#define __NR_setgroups32 206 -#define __NR_fchown32 207 -#define __NR_setresuid32 208 -#define __NR_getresuid32 209 -#define __NR_setresgid32 210 -#define __NR_getresgid32 211 -#define __NR_chown32 212 -#define __NR_setuid32 213 -#define __NR_setgid32 214 -#define __NR_setfsuid32 215 -#define __NR_setfsgid32 216 -#define __NR_pivot_root 217 -#define __NR_mincore 218 -#define __NR_madvise 219 -#define __NR_madvise1 219 /* delete when C lib stub is removed */ -#define __NR_getdents64 220 -#define __NR_fcntl64 221 -/* 223 is unused */ -#define __NR_gettid 224 -#define __NR_readahead 225 -#define __NR_setxattr 226 -#define __NR_lsetxattr 227 -#define __NR_fsetxattr 228 -#define __NR_getxattr 229 -#define __NR_lgetxattr 230 -#define __NR_fgetxattr 231 -#define __NR_listxattr 232 -#define __NR_llistxattr 233 -#define __NR_flistxattr 234 -#define __NR_removexattr 235 -#define __NR_lremovexattr 236 -#define __NR_fremovexattr 237 -#define __NR_tkill 238 -#define __NR_sendfile64 239 -#define __NR_futex 240 -#define __NR_sched_setaffinity 241 -#define __NR_sched_getaffinity 242 -#define __NR_set_thread_area 243 -#define __NR_get_thread_area 244 -#define __NR_io_setup 245 -#define __NR_io_destroy 246 -#define __NR_io_getevents 247 -#define __NR_io_submit 248 -#define __NR_io_cancel 249 -#define __NR_fadvise64 250 - -#define __NR_exit_group 252 -#define __NR_lookup_dcookie 253 -#define __NR_epoll_create 254 -#define __NR_epoll_ctl 255 -#define __NR_epoll_wait 256 -#define __NR_remap_file_pages 257 -#define __NR_set_tid_address 258 -#define __NR_timer_create 259 -#define __NR_timer_settime (__NR_timer_create+1) -#define __NR_timer_gettime (__NR_timer_create+2) -#define __NR_timer_getoverrun (__NR_timer_create+3) -#define __NR_timer_delete (__NR_timer_create+4) -#define __NR_clock_settime (__NR_timer_create+5) -#define __NR_clock_gettime (__NR_timer_create+6) -#define __NR_clock_getres (__NR_timer_create+7) -#define __NR_clock_nanosleep (__NR_timer_create+8) -#define __NR_statfs64 268 -#define __NR_fstatfs64 269 -#define __NR_tgkill 270 -#define __NR_utimes 271 -#define __NR_fadvise64_64 272 -#define __NR_vserver 273 diff --git a/sim/m32r/tconfig.in b/sim/m32r/tconfig.in deleted file mode 100644 index f2599e3..0000000 --- a/sim/m32r/tconfig.in +++ /dev/null @@ -1,47 +0,0 @@ -/* M32R target configuration file. -*- C -*- */ - -#ifndef M32R_TCONFIG_H -#define M32R_TCONFIG_H - -/* Define this if the simulator can vary the size of memory. - See the xxx simulator for an example. - This enables the `-m size' option. - The memory size is stored in STATE_MEM_SIZE. */ -/* Not used for M32R since we use the memory module. */ -/* #define SIM_HAVE_MEM_SIZE */ - -/* See sim-hload.c. We properly handle LMA. */ -#define SIM_HANDLES_LMA 1 - -/* For MSPR support. FIXME: revisit. */ -#define WITH_DEVICES 1 - -/* FIXME: Revisit. */ -#ifdef HAVE_DV_SOCKSER -MODULE_INSTALL_FN dv_sockser_install; -#define MODULE_LIST dv_sockser_install, -#endif - -#if 0 -/* Enable watchpoints. */ -#define WITH_WATCHPOINTS 1 -#endif - -/* Define this to enable the intrinsic breakpoint mechanism. */ -/* FIXME: may be able to remove SIM_HAVE_BREAKPOINT since it essentially - duplicates ifdef SIM_BREAKPOINT (right?) */ -#if 0 -#define SIM_HAVE_BREAKPOINTS -#define SIM_BREAKPOINT { 0x10, 0xf1 } -#define SIM_BREAKPOINT_SIZE 2 -#endif -#if 0 -#define HAVE_DV_SOCKSER -#endif - -/* This is a global setting. Different cpu families can't mix-n-match -scache - and -pbb. However some cpu families may use -simple while others use - one of -scache/-pbb. */ -#define WITH_SCACHE_PBB 1 - -#endif /* M32R_TCONFIG_H */ diff --git a/sim/m32r/traps-linux.c b/sim/m32r/traps-linux.c deleted file mode 100644 index f5b6783..0000000 --- a/sim/m32r/traps-linux.c +++ /dev/null @@ -1,1389 +0,0 @@ -/* m32r exception, interrupt, and trap (EIT) support - Copyright (C) 1998, 2003 Free Software Foundation, Inc. - Contributed by Renesas. - - 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" -#include "syscall.h" -#include "targ-vals.h" -#include <dirent.h> -#include <errno.h> -#include <fcntl.h> -#include <time.h> -#include <unistd.h> -#include <utime.h> -#include <sys/mman.h> -#include <sys/poll.h> -#include <sys/resource.h> -#include <sys/sysinfo.h> -#include <sys/stat.h> -#include <sys/time.h> -#include <sys/timeb.h> -#include <sys/timex.h> -#include <sys/types.h> -#include <sys/uio.h> -#include <sys/utsname.h> -#include <sys/vfs.h> -#include <linux/sysctl.h> -#include <linux/types.h> -#include <linux/unistd.h> - -#define TRAP_ELF_SYSCALL 0 -#define TRAP_LINUX_SYSCALL 2 -#define TRAP_FLUSH_CACHE 12 - -/* The semantic code invokes this for invalid (unrecognized) instructions. */ - -SEM_PC -sim_engine_invalid_insn (SIM_CPU *current_cpu, IADDR cia, SEM_PC vpc) -{ - SIM_DESC sd = CPU_STATE (current_cpu); - -#if 0 - if (STATE_ENVIRONMENT (sd) == OPERATING_ENVIRONMENT) - { - h_bsm_set (current_cpu, h_sm_get (current_cpu)); - h_bie_set (current_cpu, h_ie_get (current_cpu)); - h_bcond_set (current_cpu, h_cond_get (current_cpu)); - /* sm not changed */ - h_ie_set (current_cpu, 0); - h_cond_set (current_cpu, 0); - - h_bpc_set (current_cpu, cia); - - sim_engine_restart (CPU_STATE (current_cpu), current_cpu, NULL, - EIT_RSVD_INSN_ADDR); - } - else -#endif - sim_engine_halt (sd, current_cpu, NULL, cia, sim_stopped, SIM_SIGILL); - return vpc; -} - -/* Process an address exception. */ - -void -m32r_core_signal (SIM_DESC sd, SIM_CPU *current_cpu, sim_cia cia, - unsigned int map, int nr_bytes, address_word addr, - transfer_type transfer, sim_core_signals sig) -{ - if (STATE_ENVIRONMENT (sd) == OPERATING_ENVIRONMENT) - { - m32rbf_h_cr_set (current_cpu, H_CR_BBPC, - m32rbf_h_cr_get (current_cpu, H_CR_BPC)); - if (MACH_NUM (CPU_MACH (current_cpu)) == MACH_M32R) - { - m32rbf_h_bpsw_set (current_cpu, m32rbf_h_psw_get (current_cpu)); - /* sm not changed */ - m32rbf_h_psw_set (current_cpu, m32rbf_h_psw_get (current_cpu) & 0x80); - } - else if (MACH_NUM (CPU_MACH (current_cpu)) == MACH_M32RX) - { - m32rxf_h_bpsw_set (current_cpu, m32rxf_h_psw_get (current_cpu)); - /* sm not changed */ - m32rxf_h_psw_set (current_cpu, m32rxf_h_psw_get (current_cpu) & 0x80); - } - else - { - m32r2f_h_bpsw_set (current_cpu, m32r2f_h_psw_get (current_cpu)); - /* sm not changed */ - m32r2f_h_psw_set (current_cpu, m32r2f_h_psw_get (current_cpu) & 0x80); - } - m32rbf_h_cr_set (current_cpu, H_CR_BPC, cia); - - sim_engine_restart (CPU_STATE (current_cpu), current_cpu, NULL, - EIT_ADDR_EXCP_ADDR); - } - else - sim_core_signal (sd, current_cpu, cia, map, nr_bytes, addr, - transfer, sig); -} - -/* Read/write functions for system call interface. */ - -static int -syscall_read_mem (host_callback *cb, struct cb_syscall *sc, - unsigned long taddr, char *buf, int bytes) -{ - SIM_DESC sd = (SIM_DESC) sc->p1; - SIM_CPU *cpu = (SIM_CPU *) sc->p2; - - return sim_core_read_buffer (sd, cpu, read_map, buf, taddr, bytes); -} - -static int -syscall_write_mem (host_callback *cb, struct cb_syscall *sc, - unsigned long taddr, const char *buf, int bytes) -{ - SIM_DESC sd = (SIM_DESC) sc->p1; - SIM_CPU *cpu = (SIM_CPU *) sc->p2; - - return sim_core_write_buffer (sd, cpu, write_map, buf, taddr, bytes); -} - -/* Translate target's address to host's address. */ - -static void * -t2h_addr (host_callback *cb, struct cb_syscall *sc, - unsigned long taddr) -{ - extern sim_core_trans_addr (SIM_DESC, sim_cpu *, unsigned, address_word); - void *addr; - SIM_DESC sd = (SIM_DESC) sc->p1; - SIM_CPU *cpu = (SIM_CPU *) sc->p2; - - if (taddr == 0) - return NULL; - - return sim_core_trans_addr (sd, cpu, read_map, taddr); -} - -static unsigned int -conv_endian (unsigned int tvalue) -{ - unsigned int hvalue; - unsigned int t1, t2, t3, t4; - - if (CURRENT_HOST_BYTE_ORDER == LITTLE_ENDIAN) - { - t1 = tvalue & 0xff000000; - t2 = tvalue & 0x00ff0000; - t3 = tvalue & 0x0000ff00; - t4 = tvalue & 0x000000ff; - - hvalue = t1 >> 24; - hvalue += t2 >> 8; - hvalue += t3 << 8; - hvalue += t4 << 24; - } - else - hvalue = tvalue; - - return hvalue; -} - -static unsigned short -conv_endian16 (unsigned short tvalue) -{ - unsigned short hvalue; - unsigned short t1, t2; - - if (CURRENT_HOST_BYTE_ORDER == LITTLE_ENDIAN) - { - t1 = tvalue & 0xff00; - t2 = tvalue & 0x00ff; - - hvalue = t1 >> 8; - hvalue += t2 << 8; - } - else - hvalue = tvalue; - - return hvalue; -} - -static void -translate_endian(void *addr, size_t size) -{ - unsigned int *p = (unsigned int *) addr; - int i; - - for (i = 0; i <= size - 4; i += 4,p++) - *p = conv_endian(*p); - - if (i <= size - 2) - *((unsigned short *) p) = conv_endian16(*((unsigned short *) p)); -} - -/* Trap support. - The result is the pc address to continue at. - Preprocessing like saving the various registers has already been done. */ - -USI -m32r_trap (SIM_CPU *current_cpu, PCADDR pc, int num) -{ - SIM_DESC sd = CPU_STATE (current_cpu); - host_callback *cb = STATE_CALLBACK (sd); - -#ifdef SIM_HAVE_BREAKPOINTS - /* Check for breakpoints "owned" by the simulator first, regardless - of --environment. */ - if (num == TRAP_BREAKPOINT) - { - /* First try sim-break.c. If it's a breakpoint the simulator "owns" - it doesn't return. Otherwise it returns and let's us try. */ - sim_handle_breakpoint (sd, current_cpu, pc); - /* Fall through. */ - } -#endif - - switch (num) - { - case TRAP_ELF_SYSCALL : - { - CB_SYSCALL s; - - CB_SYSCALL_INIT (&s); - s.func = m32rbf_h_gr_get (current_cpu, 0); - s.arg1 = m32rbf_h_gr_get (current_cpu, 1); - s.arg2 = m32rbf_h_gr_get (current_cpu, 2); - s.arg3 = m32rbf_h_gr_get (current_cpu, 3); - - if (s.func == TARGET_SYS_exit) - { - sim_engine_halt (sd, current_cpu, NULL, pc, sim_exited, s.arg1); - } - - s.p1 = (PTR) sd; - s.p2 = (PTR) current_cpu; - s.read_mem = syscall_read_mem; - s.write_mem = syscall_write_mem; - cb_syscall (cb, &s); - m32rbf_h_gr_set (current_cpu, 2, s.errcode); - m32rbf_h_gr_set (current_cpu, 0, s.result); - m32rbf_h_gr_set (current_cpu, 1, s.result2); - break; - } - - case TRAP_LINUX_SYSCALL : - { - CB_SYSCALL s; - unsigned int func, arg1, arg2, arg3, arg4, arg5, arg6, arg7; - int result, result2, errcode; - - if (STATE_ENVIRONMENT (sd) == OPERATING_ENVIRONMENT) - { - /* The new pc is the trap vector entry. - We assume there's a branch there to some handler. - Use cr5 as EVB (EIT Vector Base) register. */ - USI new_pc = m32rbf_h_cr_get (current_cpu, 5) + 0x40 + num * 4; - return new_pc; - } - - func = m32rbf_h_gr_get (current_cpu, 7); - arg1 = m32rbf_h_gr_get (current_cpu, 0); - arg2 = m32rbf_h_gr_get (current_cpu, 1); - arg3 = m32rbf_h_gr_get (current_cpu, 2); - arg4 = m32rbf_h_gr_get (current_cpu, 3); - arg5 = m32rbf_h_gr_get (current_cpu, 4); - arg6 = m32rbf_h_gr_get (current_cpu, 5); - arg7 = m32rbf_h_gr_get (current_cpu, 6); - - CB_SYSCALL_INIT (&s); - s.func = func; - s.arg1 = arg1; - s.arg2 = arg2; - s.arg3 = arg3; - - s.p1 = (PTR) sd; - s.p2 = (PTR) current_cpu; - s.read_mem = syscall_read_mem; - s.write_mem = syscall_write_mem; - - result = 0; - result2 = 0; - errcode = 0; - - switch (func) - { - case __NR_exit: - sim_engine_halt (sd, current_cpu, NULL, pc, sim_exited, arg1); - break; - - case __NR_read: - result = read(arg1, t2h_addr(cb, &s, arg2), arg3); - errcode = errno; - break; - - case __NR_write: - result = write(arg1, t2h_addr(cb, &s, arg2), arg3); - errcode = errno; - break; - - case __NR_open: - result = open((char *) t2h_addr(cb, &s, arg1), arg2, arg3); - errcode = errno; - break; - - case __NR_close: - result = close(arg1); - errcode = errno; - break; - - case __NR_creat: - result = creat((char *) t2h_addr(cb, &s, arg1), arg2); - errcode = errno; - break; - - case __NR_link: - result = link((char *) t2h_addr(cb, &s, arg1), - (char *) t2h_addr(cb, &s, arg2)); - errcode = errno; - break; - - case __NR_unlink: - result = unlink((char *) t2h_addr(cb, &s, arg1)); - errcode = errno; - break; - - case __NR_chdir: - result = chdir((char *) t2h_addr(cb, &s, arg1)); - errcode = errno; - break; - - case __NR_time: - { - time_t t; - - if (arg1 == 0) - { - result = (int) time(NULL); - errcode = errno; - } - else - { - result = (int) time(&t); - errcode = errno; - - if (result != 0) - break; - - translate_endian((void *) &t, sizeof(t)); - if ((s.write_mem) (cb, &s, arg1, (char *) &t, sizeof(t)) != sizeof(t)) - { - result = -1; - errcode = EINVAL; - } - } - } - break; - - case __NR_mknod: - result = mknod((char *) t2h_addr(cb, &s, arg1), - (mode_t) arg2, (dev_t) arg3); - errcode = errno; - break; - - case __NR_chmod: - result = chmod((char *) t2h_addr(cb, &s, arg1), (mode_t) arg2); - errcode = errno; - break; - - case __NR_lchown32: - case __NR_lchown: - result = lchown((char *) t2h_addr(cb, &s, arg1), - (uid_t) arg2, (gid_t) arg3); - errcode = errno; - break; - - case __NR_lseek: - result = (int) lseek(arg1, (off_t) arg2, arg3); - errcode = errno; - break; - - case __NR_getpid: - result = getpid(); - errcode = errno; - break; - - case __NR_getuid32: - case __NR_getuid: - result = getuid(); - errcode = errno; - break; - - case __NR_utime: - { - struct utimbuf buf; - - if (arg2 == 0) - { - result = utime((char *) t2h_addr(cb, &s, arg1), NULL); - errcode = errno; - } - else - { - buf = *((struct utimbuf *) t2h_addr(cb, &s, arg2)); - translate_endian((void *) &buf, sizeof(buf)); - result = utime((char *) t2h_addr(cb, &s, arg1), &buf); - errcode = errno; - } - } - break; - - case __NR_access: - result = access((char *) t2h_addr(cb, &s, arg1), arg2); - errcode = errno; - break; - - case __NR_ftime: - { - struct timeb t; - - result = ftime(&t); - errcode = errno; - - if (result != 0) - break; - - t.time = conv_endian(t.time); - t.millitm = conv_endian16(t.millitm); - t.timezone = conv_endian16(t.timezone); - t.dstflag = conv_endian16(t.dstflag); - if ((s.write_mem) (cb, &s, arg1, (char *) &t, sizeof(t)) - != sizeof(t)) - { - result = -1; - errcode = EINVAL; - } - } - - case __NR_sync: - sync(); - result = 0; - break; - - case __NR_rename: - result = rename((char *) t2h_addr(cb, &s, arg1), - (char *) t2h_addr(cb, &s, arg2)); - errcode = errno; - break; - - case __NR_mkdir: - result = mkdir((char *) t2h_addr(cb, &s, arg1), arg2); - errcode = errno; - break; - - case __NR_rmdir: - result = rmdir((char *) t2h_addr(cb, &s, arg1)); - errcode = errno; - break; - - case __NR_dup: - result = dup(arg1); - errcode = errno; - break; - - case __NR_brk: - result = brk((void *) arg1); - errcode = errno; - //result = arg1; - break; - - case __NR_getgid32: - case __NR_getgid: - result = getgid(); - errcode = errno; - break; - - case __NR_geteuid32: - case __NR_geteuid: - result = geteuid(); - errcode = errno; - break; - - case __NR_getegid32: - case __NR_getegid: - result = getegid(); - errcode = errno; - break; - - case __NR_ioctl: - result = ioctl(arg1, arg2, arg3); - errcode = errno; - break; - - case __NR_fcntl: - result = fcntl(arg1, arg2, arg3); - errcode = errno; - break; - - case __NR_dup2: - result = dup2(arg1, arg2); - errcode = errno; - break; - - case __NR_getppid: - result = getppid(); - errcode = errno; - break; - - case __NR_getpgrp: - result = getpgrp(); - errcode = errno; - break; - - case __NR_getrlimit: - { - struct rlimit rlim; - - result = getrlimit(arg1, &rlim); - errcode = errno; - - if (result != 0) - break; - - translate_endian((void *) &rlim, sizeof(rlim)); - if ((s.write_mem) (cb, &s, arg2, (char *) &rlim, sizeof(rlim)) - != sizeof(rlim)) - { - result = -1; - errcode = EINVAL; - } - } - break; - - case __NR_getrusage: - { - struct rusage usage; - - result = getrusage(arg1, &usage); - errcode = errno; - - if (result != 0) - break; - - translate_endian((void *) &usage, sizeof(usage)); - if ((s.write_mem) (cb, &s, arg2, (char *) &usage, sizeof(usage)) - != sizeof(usage)) - { - result = -1; - errcode = EINVAL; - } - } - break; - - case __NR_gettimeofday: - { - struct timeval tv; - struct timezone tz; - - result = gettimeofday(&tv, &tz); - errcode = errno; - - if (result != 0) - break; - - translate_endian((void *) &tv, sizeof(tv)); - if ((s.write_mem) (cb, &s, arg1, (char *) &tv, sizeof(tv)) - != sizeof(tv)) - { - result = -1; - errcode = EINVAL; - } - - translate_endian((void *) &tz, sizeof(tz)); - if ((s.write_mem) (cb, &s, arg2, (char *) &tz, sizeof(tz)) - != sizeof(tz)) - { - result = -1; - errcode = EINVAL; - } - } - break; - - case __NR_getgroups32: - case __NR_getgroups: - { - gid_t *list; - - if (arg1 > 0) - list = (gid_t *) malloc(arg1 * sizeof(gid_t)); - - result = getgroups(arg1, list); - errcode = errno; - - if (result != 0) - break; - - translate_endian((void *) list, arg1 * sizeof(gid_t)); - if (arg1 > 0) - if ((s.write_mem) (cb, &s, arg2, (char *) list, arg1 * sizeof(gid_t)) - != arg1 * sizeof(gid_t)) - { - result = -1; - errcode = EINVAL; - } - } - break; - - case __NR_select: - { - int n; - fd_set readfds; - fd_set *treadfdsp; - fd_set *hreadfdsp; - fd_set writefds; - fd_set *twritefdsp; - fd_set *hwritefdsp; - fd_set exceptfds; - fd_set *texceptfdsp; - fd_set *hexceptfdsp; - struct timeval *ttimeoutp; - struct timeval timeout; - - n = arg1; - - treadfdsp = (fd_set *) arg2; - if (treadfdsp != NULL) - { - readfds = *((fd_set *) t2h_addr(cb, &s, (unsigned int) treadfdsp)); - translate_endian((void *) &readfds, sizeof(readfds)); - hreadfdsp = &readfds; - } - else - hreadfdsp = NULL; - - twritefdsp = (fd_set *) arg3; - if (twritefdsp != NULL) - { - writefds = *((fd_set *) t2h_addr(cb, &s, (unsigned int) twritefdsp)); - translate_endian((void *) &writefds, sizeof(writefds)); - hwritefdsp = &writefds; - } - else - hwritefdsp = NULL; - - texceptfdsp = (fd_set *) arg4; - if (texceptfdsp != NULL) - { - exceptfds = *((fd_set *) t2h_addr(cb, &s, (unsigned int) texceptfdsp)); - translate_endian((void *) &exceptfds, sizeof(exceptfds)); - hexceptfdsp = &exceptfds; - } - else - hexceptfdsp = NULL; - - ttimeoutp = (struct timeval *) arg5; - timeout = *((struct timeval *) t2h_addr(cb, &s, (unsigned int) ttimeoutp)); - translate_endian((void *) &timeout, sizeof(timeout)); - - result = select(n, hreadfdsp, hwritefdsp, hexceptfdsp, &timeout); - errcode = errno; - - if (result != 0) - break; - - if (treadfdsp != NULL) - { - translate_endian((void *) &readfds, sizeof(readfds)); - if ((s.write_mem) (cb, &s, (unsigned long) treadfdsp, - (char *) &readfds, sizeof(readfds)) != sizeof(readfds)) - { - result = -1; - errcode = EINVAL; - } - } - - if (twritefdsp != NULL) - { - translate_endian((void *) &writefds, sizeof(writefds)); - if ((s.write_mem) (cb, &s, (unsigned long) twritefdsp, - (char *) &writefds, sizeof(writefds)) != sizeof(writefds)) - { - result = -1; - errcode = EINVAL; - } - } - - if (texceptfdsp != NULL) - { - translate_endian((void *) &exceptfds, sizeof(exceptfds)); - if ((s.write_mem) (cb, &s, (unsigned long) texceptfdsp, - (char *) &exceptfds, sizeof(exceptfds)) != sizeof(exceptfds)) - { - result = -1; - errcode = EINVAL; - } - } - - translate_endian((void *) &timeout, sizeof(timeout)); - if ((s.write_mem) (cb, &s, (unsigned long) ttimeoutp, - (char *) &timeout, sizeof(timeout)) != sizeof(timeout)) - { - result = -1; - errcode = EINVAL; - } - } - break; - - case __NR_symlink: - result = symlink((char *) t2h_addr(cb, &s, arg1), - (char *) t2h_addr(cb, &s, arg2)); - errcode = errno; - break; - - case __NR_readlink: - result = readlink((char *) t2h_addr(cb, &s, arg1), - (char *) t2h_addr(cb, &s, arg2), - arg3); - errcode = errno; - break; - - case __NR_readdir: - result = (int) readdir((DIR *) t2h_addr(cb, &s, arg1)); - errcode = errno; - break; - -#if 0 - case __NR_mmap: - { - result = (int) mmap((void *) t2h_addr(cb, &s, arg1), - arg2, arg3, arg4, arg5, arg6); - errcode = errno; - - if (errno == 0) - { - sim_core_attach (sd, NULL, - 0, access_read_write_exec, 0, - result, arg2, 0, NULL, NULL); - } - } - break; -#endif - case __NR_mmap2: - { - void *addr; - size_t len; - int prot, flags, fildes; - off_t off; - - addr = (void *) t2h_addr(cb, &s, arg1); - len = arg2; - prot = arg3; - flags = arg4; - fildes = arg5; - off = arg6 << 12; - - result = (int) mmap(addr, len, prot, flags, fildes, off); - errcode = errno; - if (result != -1) - { - char c; - if (sim_core_read_buffer (sd, NULL, read_map, &c, result, 1) == 0) - sim_core_attach (sd, NULL, - 0, access_read_write_exec, 0, - result, len, 0, NULL, NULL); - } - } - break; - - case __NR_mmap: - { - void *addr; - size_t len; - int prot, flags, fildes; - off_t off; - - addr = *((void **) t2h_addr(cb, &s, arg1)); - len = *((size_t *) t2h_addr(cb, &s, arg1 + 4)); - prot = *((int *) t2h_addr(cb, &s, arg1 + 8)); - flags = *((int *) t2h_addr(cb, &s, arg1 + 12)); - fildes = *((int *) t2h_addr(cb, &s, arg1 + 16)); - off = *((off_t *) t2h_addr(cb, &s, arg1 + 20)); - - addr = (void *) conv_endian((unsigned int) addr); - len = conv_endian(len); - prot = conv_endian(prot); - flags = conv_endian(flags); - fildes = conv_endian(fildes); - off = conv_endian(off); - - //addr = (void *) t2h_addr(cb, &s, (unsigned int) addr); - result = (int) mmap(addr, len, prot, flags, fildes, off); - errcode = errno; - - //if (errno == 0) - if (result != -1) - { - char c; - if (sim_core_read_buffer (sd, NULL, read_map, &c, result, 1) == 0) - sim_core_attach (sd, NULL, - 0, access_read_write_exec, 0, - result, len, 0, NULL, NULL); - } - } - break; - - case __NR_munmap: - { - result = munmap((void *)arg1, arg2); - errcode = errno; - if (result != -1) - { - sim_core_detach (sd, NULL, 0, arg2, result); - } - } - break; - - case __NR_truncate: - result = truncate((char *) t2h_addr(cb, &s, arg1), arg2); - errcode = errno; - break; - - case __NR_ftruncate: - result = ftruncate(arg1, arg2); - errcode = errno; - break; - - case __NR_fchmod: - result = fchmod(arg1, arg2); - errcode = errno; - break; - - case __NR_fchown32: - case __NR_fchown: - result = fchown(arg1, arg2, arg3); - errcode = errno; - break; - - case __NR_statfs: - { - struct statfs statbuf; - - result = statfs((char *) t2h_addr(cb, &s, arg1), &statbuf); - errcode = errno; - - if (result != 0) - break; - - translate_endian((void *) &statbuf, sizeof(statbuf)); - if ((s.write_mem) (cb, &s, arg2, (char *) &statbuf, sizeof(statbuf)) - != sizeof(statbuf)) - { - result = -1; - errcode = EINVAL; - } - } - break; - - case __NR_fstatfs: - { - struct statfs statbuf; - - result = fstatfs(arg1, &statbuf); - errcode = errno; - - if (result != 0) - break; - - translate_endian((void *) &statbuf, sizeof(statbuf)); - if ((s.write_mem) (cb, &s, arg2, (char *) &statbuf, sizeof(statbuf)) - != sizeof(statbuf)) - { - result = -1; - errcode = EINVAL; - } - } - break; - - case __NR_syslog: - result = syslog(arg1, (char *) t2h_addr(cb, &s, arg2)); - errcode = errno; - break; - - case __NR_setitimer: - { - struct itimerval value, ovalue; - - value = *((struct itimerval *) t2h_addr(cb, &s, arg2)); - translate_endian((void *) &value, sizeof(value)); - - if (arg2 == 0) - { - result = setitimer(arg1, &value, NULL); - errcode = errno; - } - else - { - result = setitimer(arg1, &value, &ovalue); - errcode = errno; - - if (result != 0) - break; - - translate_endian((void *) &ovalue, sizeof(ovalue)); - if ((s.write_mem) (cb, &s, arg3, (char *) &ovalue, sizeof(ovalue)) - != sizeof(ovalue)) - { - result = -1; - errcode = EINVAL; - } - } - } - break; - - case __NR_getitimer: - { - struct itimerval value; - - result = getitimer(arg1, &value); - errcode = errno; - - if (result != 0) - break; - - translate_endian((void *) &value, sizeof(value)); - if ((s.write_mem) (cb, &s, arg2, (char *) &value, sizeof(value)) - != sizeof(value)) - { - result = -1; - errcode = EINVAL; - } - } - break; - - case __NR_stat: - { - char *buf; - int buflen; - struct stat statbuf; - - result = stat((char *) t2h_addr(cb, &s, arg1), &statbuf); - errcode = errno; - if (result < 0) - break; - - buflen = cb_host_to_target_stat (cb, NULL, NULL); - buf = xmalloc (buflen); - if (cb_host_to_target_stat (cb, &statbuf, buf) != buflen) - { - /* The translation failed. This is due to an internal - host program error, not the target's fault. */ - free (buf); - result = -1; - errcode = ENOSYS; - break; - } - if ((s.write_mem) (cb, &s, arg2, buf, buflen) != buflen) - { - free (buf); - result = -1; - errcode = EINVAL; - break; - } - free (buf); - } - break; - - case __NR_lstat: - { - char *buf; - int buflen; - struct stat statbuf; - - result = lstat((char *) t2h_addr(cb, &s, arg1), &statbuf); - errcode = errno; - if (result < 0) - break; - - buflen = cb_host_to_target_stat (cb, NULL, NULL); - buf = xmalloc (buflen); - if (cb_host_to_target_stat (cb, &statbuf, buf) != buflen) - { - /* The translation failed. This is due to an internal - host program error, not the target's fault. */ - free (buf); - result = -1; - errcode = ENOSYS; - break; - } - if ((s.write_mem) (cb, &s, arg2, buf, buflen) != buflen) - { - free (buf); - result = -1; - errcode = EINVAL; - break; - } - free (buf); - } - break; - - case __NR_fstat: - { - char *buf; - int buflen; - struct stat statbuf; - - result = fstat(arg1, &statbuf); - errcode = errno; - if (result < 0) - break; - - buflen = cb_host_to_target_stat (cb, NULL, NULL); - buf = xmalloc (buflen); - if (cb_host_to_target_stat (cb, &statbuf, buf) != buflen) - { - /* The translation failed. This is due to an internal - host program error, not the target's fault. */ - free (buf); - result = -1; - errcode = ENOSYS; - break; - } - if ((s.write_mem) (cb, &s, arg2, buf, buflen) != buflen) - { - free (buf); - result = -1; - errcode = EINVAL; - break; - } - free (buf); - } - break; - - case __NR_sysinfo: - { - struct sysinfo info; - - result = sysinfo(&info); - errcode = errno; - - if (result != 0) - break; - - info.uptime = conv_endian(info.uptime); - info.loads[0] = conv_endian(info.loads[0]); - info.loads[1] = conv_endian(info.loads[1]); - info.loads[2] = conv_endian(info.loads[2]); - info.totalram = conv_endian(info.totalram); - info.freeram = conv_endian(info.freeram); - info.sharedram = conv_endian(info.sharedram); - info.bufferram = conv_endian(info.bufferram); - info.totalswap = conv_endian(info.totalswap); - info.freeswap = conv_endian(info.freeswap); - info.procs = conv_endian16(info.procs); -#if LINUX_VERSION_CODE >= 0x20400 - info.totalhigh = conv_endian(info.totalhigh); - info.freehigh = conv_endian(info.freehigh); - info.mem_unit = conv_endian(info.mem_unit); -#endif - if ((s.write_mem) (cb, &s, arg1, (char *) &info, sizeof(info)) - != sizeof(info)) - { - result = -1; - errcode = EINVAL; - } - } - break; - -#if 0 - case __NR_ipc: - { - result = ipc(arg1, arg2, arg3, arg4, - (void *) t2h_addr(cb, &s, arg5), arg6); - errcode = errno; - } - break; -#endif - - case __NR_fsync: - result = fsync(arg1); - errcode = errno; - break; - - case __NR_uname: - /* utsname contains only arrays of char, so it is not necessary - to translate endian. */ - result = uname((struct utsname *) t2h_addr(cb, &s, arg1)); - errcode = errno; - break; - - case __NR_adjtimex: - { - struct timex buf; - - result = adjtimex(&buf); - errcode = errno; - - if (result != 0) - break; - - translate_endian((void *) &buf, sizeof(buf)); - if ((s.write_mem) (cb, &s, arg1, (char *) &buf, sizeof(buf)) - != sizeof(buf)) - { - result = -1; - errcode = EINVAL; - } - } - break; - - case __NR_mprotect: - result = mprotect((void *) arg1, arg2, arg3); - errcode = errno; - break; - - case __NR_fchdir: - result = fchdir(arg1); - errcode = errno; - break; - - case __NR_setfsuid32: - case __NR_setfsuid: - result = setfsuid(arg1); - errcode = errno; - break; - - case __NR_setfsgid32: - case __NR_setfsgid: - result = setfsgid(arg1); - errcode = errno; - break; - -#if 0 - case __NR__llseek: - { - loff_t buf; - - result = _llseek(arg1, arg2, arg3, &buf, arg5); - errcode = errno; - - if (result != 0) - break; - - translate_endian((void *) &buf, sizeof(buf)); - if ((s.write_mem) (cb, &s, t2h_addr(cb, &s, arg4), - (char *) &buf, sizeof(buf)) != sizeof(buf)) - { - result = -1; - errcode = EINVAL; - } - } - break; - - case __NR_getdents: - { - struct dirent dir; - - result = getdents(arg1, &dir, arg3); - errcode = errno; - - if (result != 0) - break; - - dir.d_ino = conv_endian(dir.d_ino); - dir.d_off = conv_endian(dir.d_off); - dir.d_reclen = conv_endian16(dir.d_reclen); - if ((s.write_mem) (cb, &s, arg2, (char *) &dir, sizeof(dir)) - != sizeof(dir)) - { - result = -1; - errcode = EINVAL; - } - } - break; -#endif - - case __NR_flock: - result = flock(arg1, arg2); - errcode = errno; - break; - - case __NR_msync: - result = msync((void *) arg1, arg2, arg3); - errcode = errno; - break; - - case __NR_readv: - { - struct iovec vector; - - vector = *((struct iovec *) t2h_addr(cb, &s, arg2)); - translate_endian((void *) &vector, sizeof(vector)); - - result = readv(arg1, &vector, arg3); - errcode = errno; - } - break; - - case __NR_writev: - { - struct iovec vector; - - vector = *((struct iovec *) t2h_addr(cb, &s, arg2)); - translate_endian((void *) &vector, sizeof(vector)); - - result = writev(arg1, &vector, arg3); - errcode = errno; - } - break; - - case __NR_fdatasync: - result = fdatasync(arg1); - errcode = errno; - break; - - case __NR_mlock: - result = mlock((void *) t2h_addr(cb, &s, arg1), arg2); - errcode = errno; - break; - - case __NR_munlock: - result = munlock((void *) t2h_addr(cb, &s, arg1), arg2); - errcode = errno; - break; - - case __NR_nanosleep: - { - struct timespec req, rem; - - req = *((struct timespec *) t2h_addr(cb, &s, arg2)); - translate_endian((void *) &req, sizeof(req)); - - result = nanosleep(&req, &rem); - errcode = errno; - - if (result != 0) - break; - - translate_endian((void *) &rem, sizeof(rem)); - if ((s.write_mem) (cb, &s, arg2, (char *) &rem, sizeof(rem)) - != sizeof(rem)) - { - result = -1; - errcode = EINVAL; - } - } - break; - - case __NR_mremap: /* FIXME */ - result = (int) mremap((void *) t2h_addr(cb, &s, arg1), arg2, arg3, arg4); - errcode = errno; - break; - - case __NR_getresuid32: - case __NR_getresuid: - { - uid_t ruid, euid, suid; - - result = getresuid(&ruid, &euid, &suid); - errcode = errno; - - if (result != 0) - break; - - *((uid_t *) t2h_addr(cb, &s, arg1)) = conv_endian(ruid); - *((uid_t *) t2h_addr(cb, &s, arg2)) = conv_endian(euid); - *((uid_t *) t2h_addr(cb, &s, arg3)) = conv_endian(suid); - } - break; - - case __NR_poll: - { - struct pollfd ufds; - - ufds = *((struct pollfd *) t2h_addr(cb, &s, arg1)); - ufds.fd = conv_endian(ufds.fd); - ufds.events = conv_endian16(ufds.events); - ufds.revents = conv_endian16(ufds.revents); - - result = poll(&ufds, arg2, arg3); - errcode = errno; - } - break; - - case __NR_getresgid32: - case __NR_getresgid: - { - uid_t rgid, egid, sgid; - - result = getresgid(&rgid, &egid, &sgid); - errcode = errno; - - if (result != 0) - break; - - *((uid_t *) t2h_addr(cb, &s, arg1)) = conv_endian(rgid); - *((uid_t *) t2h_addr(cb, &s, arg2)) = conv_endian(egid); - *((uid_t *) t2h_addr(cb, &s, arg3)) = conv_endian(sgid); - } - break; - - case __NR_pread: - result = pread(arg1, (void *) t2h_addr(cb, &s, arg2), arg3, arg4); - errcode = errno; - break; - - case __NR_pwrite: - result = pwrite(arg1, (void *) t2h_addr(cb, &s, arg2), arg3, arg4); - errcode = errno; - break; - - case __NR_chown32: - case __NR_chown: - result = chown((char *) t2h_addr(cb, &s, arg1), arg2, arg3); - errcode = errno; - break; - - case __NR_getcwd: - result = (int) getcwd((char *) t2h_addr(cb, &s, arg1), arg2); - errcode = errno; - break; - - case __NR_sendfile: - { - off_t offset; - - offset = *((off_t *) t2h_addr(cb, &s, arg3)); - offset = conv_endian(offset); - - result = sendfile(arg1, arg2, &offset, arg3); - errcode = errno; - - if (result != 0) - break; - - *((off_t *) t2h_addr(cb, &s, arg3)) = conv_endian(offset); - } - break; - - default: - result = -1; - errcode = ENOSYS; - break; - } - - if (result == -1) - m32rbf_h_gr_set (current_cpu, 0, -errcode); - else - m32rbf_h_gr_set (current_cpu, 0, result); - break; - } - - case TRAP_BREAKPOINT: - sim_engine_halt (sd, current_cpu, NULL, pc, - sim_stopped, SIM_SIGTRAP); - break; - - case TRAP_FLUSH_CACHE: - /* Do nothing. */ - break; - - default : - { - /* Use cr5 as EVB (EIT Vector Base) register. */ - USI new_pc = m32rbf_h_cr_get (current_cpu, 5) + 0x40 + num * 4; - return new_pc; - } - } - - /* Fake an "rte" insn. */ - /* FIXME: Should duplicate all of rte processing. */ - return (pc & -4) + 4; -} diff --git a/sim/m32r/traps.c b/sim/m32r/traps.c deleted file mode 100644 index 473d0d7..0000000 --- a/sim/m32r/traps.c +++ /dev/null @@ -1,199 +0,0 @@ -/* m32r exception, interrupt, and trap (EIT) support - Copyright (C) 1998, 2003 Free Software Foundation, Inc. - Contributed by Cygnus Solutions. - - 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" -#include "targ-vals.h" - -#define TRAP_FLUSH_CACHE 12 -/* The semantic code invokes this for invalid (unrecognized) instructions. */ - -SEM_PC -sim_engine_invalid_insn (SIM_CPU *current_cpu, IADDR cia, SEM_PC pc) -{ - SIM_DESC sd = CPU_STATE (current_cpu); - -#if 0 - if (STATE_ENVIRONMENT (sd) == OPERATING_ENVIRONMENT) - { - h_bsm_set (current_cpu, h_sm_get (current_cpu)); - h_bie_set (current_cpu, h_ie_get (current_cpu)); - h_bcond_set (current_cpu, h_cond_get (current_cpu)); - /* sm not changed */ - h_ie_set (current_cpu, 0); - h_cond_set (current_cpu, 0); - - h_bpc_set (current_cpu, cia); - - sim_engine_restart (CPU_STATE (current_cpu), current_cpu, NULL, - EIT_RSVD_INSN_ADDR); - } - else -#endif - sim_engine_halt (sd, current_cpu, NULL, cia, sim_stopped, SIM_SIGILL); - - return pc; -} - -/* Process an address exception. */ - -void -m32r_core_signal (SIM_DESC sd, SIM_CPU *current_cpu, sim_cia cia, - unsigned int map, int nr_bytes, address_word addr, - transfer_type transfer, sim_core_signals sig) -{ - if (STATE_ENVIRONMENT (sd) == OPERATING_ENVIRONMENT) - { - m32rbf_h_cr_set (current_cpu, H_CR_BBPC, - m32rbf_h_cr_get (current_cpu, H_CR_BPC)); - switch (MACH_NUM (CPU_MACH (current_cpu))) - { - case MACH_M32R: - m32rbf_h_bpsw_set (current_cpu, m32rbf_h_psw_get (current_cpu)); - /* sm not changed. */ - m32rbf_h_psw_set (current_cpu, m32rbf_h_psw_get (current_cpu) & 0x80); - break; - case MACH_M32RX: - m32rxf_h_bpsw_set (current_cpu, m32rxf_h_psw_get (current_cpu)); - /* sm not changed. */ - m32rxf_h_psw_set (current_cpu, m32rxf_h_psw_get (current_cpu) & 0x80); - break; - case MACH_M32R2: - m32r2f_h_bpsw_set (current_cpu, m32r2f_h_psw_get (current_cpu)); - /* sm not changed. */ - m32r2f_h_psw_set (current_cpu, m32r2f_h_psw_get (current_cpu) & 0x80); - break; - default: - abort (); - } - - m32rbf_h_cr_set (current_cpu, H_CR_BPC, cia); - - sim_engine_restart (CPU_STATE (current_cpu), current_cpu, NULL, - EIT_ADDR_EXCP_ADDR); - } - else - sim_core_signal (sd, current_cpu, cia, map, nr_bytes, addr, - transfer, sig); -} - -/* Read/write functions for system call interface. */ - -static int -syscall_read_mem (host_callback *cb, struct cb_syscall *sc, - unsigned long taddr, char *buf, int bytes) -{ - SIM_DESC sd = (SIM_DESC) sc->p1; - SIM_CPU *cpu = (SIM_CPU *) sc->p2; - - return sim_core_read_buffer (sd, cpu, read_map, buf, taddr, bytes); -} - -static int -syscall_write_mem (host_callback *cb, struct cb_syscall *sc, - unsigned long taddr, const char *buf, int bytes) -{ - SIM_DESC sd = (SIM_DESC) sc->p1; - SIM_CPU *cpu = (SIM_CPU *) sc->p2; - - return sim_core_write_buffer (sd, cpu, write_map, buf, taddr, bytes); -} - -/* Trap support. - The result is the pc address to continue at. - Preprocessing like saving the various registers has already been done. */ - -USI -m32r_trap (SIM_CPU *current_cpu, PCADDR pc, int num) -{ - SIM_DESC sd = CPU_STATE (current_cpu); - host_callback *cb = STATE_CALLBACK (sd); - -#ifdef SIM_HAVE_BREAKPOINTS - /* Check for breakpoints "owned" by the simulator first, regardless - of --environment. */ - if (num == TRAP_BREAKPOINT) - { - /* First try sim-break.c. If it's a breakpoint the simulator "owns" - it doesn't return. Otherwise it returns and let's us try. */ - sim_handle_breakpoint (sd, current_cpu, pc); - /* Fall through. */ - } -#endif - - if (STATE_ENVIRONMENT (sd) == OPERATING_ENVIRONMENT) - { - /* The new pc is the trap vector entry. - We assume there's a branch there to some handler. - Use cr5 as EVB (EIT Vector Base) register. */ - /* USI new_pc = EIT_TRAP_BASE_ADDR + num * 4; */ - USI new_pc = m32rbf_h_cr_get (current_cpu, 5) + 0x40 + num * 4; - return new_pc; - } - - switch (num) - { - case TRAP_SYSCALL : - { - CB_SYSCALL s; - - CB_SYSCALL_INIT (&s); - s.func = m32rbf_h_gr_get (current_cpu, 0); - s.arg1 = m32rbf_h_gr_get (current_cpu, 1); - s.arg2 = m32rbf_h_gr_get (current_cpu, 2); - s.arg3 = m32rbf_h_gr_get (current_cpu, 3); - - if (s.func == TARGET_SYS_exit) - { - sim_engine_halt (sd, current_cpu, NULL, pc, sim_exited, s.arg1); - } - - s.p1 = (PTR) sd; - s.p2 = (PTR) current_cpu; - s.read_mem = syscall_read_mem; - s.write_mem = syscall_write_mem; - cb_syscall (cb, &s); - m32rbf_h_gr_set (current_cpu, 2, s.errcode); - m32rbf_h_gr_set (current_cpu, 0, s.result); - m32rbf_h_gr_set (current_cpu, 1, s.result2); - break; - } - - case TRAP_BREAKPOINT: - sim_engine_halt (sd, current_cpu, NULL, pc, - sim_stopped, SIM_SIGTRAP); - break; - - case TRAP_FLUSH_CACHE: - /* Do nothing. */ - break; - - default : - { - /* USI new_pc = EIT_TRAP_BASE_ADDR + num * 4; */ - /* Use cr5 as EVB (EIT Vector Base) register. */ - USI new_pc = m32rbf_h_cr_get (current_cpu, 5) + 0x40 + num * 4; - return new_pc; - } - } - - /* Fake an "rte" insn. */ - /* FIXME: Should duplicate all of rte processing. */ - return (pc & -4) + 4; -} |